12bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 22bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# libtool (GNU libtool) 2.4.2 32bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996 42bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 52bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, 62bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc. 72bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# This is free software; see the source for copying conditions. There is NO 82bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 92bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 102bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# GNU Libtool is free software; you can redistribute it and/or modify 112bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# it under the terms of the GNU General Public License as published by 122bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# the Free Software Foundation; either version 2 of the License, or 132bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# (at your option) any later version. 142bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# 152bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# As a special exception to the GNU General Public License, 162bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# if you distribute this file as part of a program or library that 172bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# is built using GNU Libtool, you may include this file under the 182bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# same distribution terms that you use for the rest of that program. 192bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# 202bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# GNU Libtool is distributed in the hope that it will be useful, but 212bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# WITHOUT ANY WARRANTY; without even the implied warranty of 222bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 232bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# General Public License for more details. 242bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# 252bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# You should have received a copy of the GNU General Public License 262bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# along with GNU Libtool; see the file COPYING. If not, a copy 272bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# can be downloaded from http://www.gnu.org/licenses/gpl.html, 282bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# or obtained by writing to the Free Software Foundation, Inc., 292bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 302bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 312bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Usage: $progname [OPTION]... [MODE-ARG]... 322bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# 332bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Provide generalized library-building support services. 342bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# 352bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# --config show all configuration variables 362bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# --debug enable verbose shell tracing 372bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# -n, --dry-run display commands without modifying any files 382bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# --features display basic configuration information and exit 392bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# --mode=MODE use operation mode MODE 402bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# --preserve-dup-deps don't remove duplicate dependency libraries 412bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# --quiet, --silent don't print informational messages 422bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# --no-quiet, --no-silent 432bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# print informational messages (default) 442bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# --no-warn don't display warning messages 452bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# --tag=TAG use configuration variables from tag TAG 462bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# -v, --verbose print more informational messages than default 472bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# --no-verbose don't print the extra informational messages 482bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# --version print version information 492bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# -h, --help, --help-all print short, long, or detailed help message 502bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# 512bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# MODE must be one of the following: 522bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# 532bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# clean remove files from the build directory 542bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# compile compile a source file into a libtool object 552bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# execute automatically set library path, then run a program 562bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# finish complete the installation of libtool libraries 572bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# install install libraries or executables 582bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# link create a library or an executable 592bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# uninstall remove libraries from an installed directory 602bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# 612bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# MODE-ARGS vary depending on the MODE. When passed as first option, 622bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# `--mode=MODE' may be abbreviated as `MODE' or a unique abbreviation of that. 632bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Try `$progname --help --mode=MODE' for a more detailed description of MODE. 642bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# 652bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# When reporting a bug, please describe a test case to reproduce it and 662bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# include the following information: 672bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# 682bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# host-triplet: $host 692bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# shell: $SHELL 702bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# compiler: $LTCC 712bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# compiler flags: $LTCFLAGS 722bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# linker: $LD (gnu? $with_gnu_ld) 732bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# $progname: (GNU libtool) 2.4.2 742bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# automake: $automake_version 752bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# autoconf: $autoconf_version 762bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# 772bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Report bugs to <bug-libtool@gnu.org>. 782bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# GNU libtool home page: <http://www.gnu.org/software/libtool/>. 792bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# General help using GNU software: <http://www.gnu.org/gethelp/>. 802bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 812bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianPROGRAM=libtool 822bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianPACKAGE=libtool 832bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianVERSION=2.4.2 842bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianTIMESTAMP="" 852bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianpackage_revision=1.3337 862bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 872bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Be Bourne compatible 882bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianif test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then 892bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian emulate sh 902bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian NULLCMD=: 912bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which 922bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # is contrary to our usage. Disable this feature. 932bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian alias -g '${1+"$@"}'='"$@"' 942bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian setopt NO_GLOB_SUBST 952bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianelse 962bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac 972bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfi 982bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianBIN_SH=xpg4; export BIN_SH # for Tru64 992bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianDUALCASE=1; export DUALCASE # for MKS sh 1002bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 1012bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# A function that is used when there is no print builtin or printf. 1022bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_fallback_echo () 1032bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 1042bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval 'cat <<_LTECHO_EOF 1052bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian$1 1062bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian_LTECHO_EOF' 1072bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 1082bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 1092bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# NLS nuisances: We save the old values to restore during execute mode. 1102bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianlt_user_locale= 1112bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianlt_safe_locale= 1122bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfor lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES 1132bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramaniando 1142bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval "if test \"\${$lt_var+set}\" = set; then 1152bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian save_$lt_var=\$$lt_var 1162bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $lt_var=C 1172bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian export $lt_var 1182bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\" 1192bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\" 1202bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi" 1212bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramaniandone 1222bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianLC_ALL=C 1232bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianLANGUAGE=C 1242bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianexport LANGUAGE LC_ALL 1252bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 1262bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian$lt_unset CDPATH 1272bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 1282bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 1292bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh 1302bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# is ksh but when the shell is invoked as "sh" and the current value of 1312bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# the _XPG environment variable is not equal to 1 (one), the special 1322bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# positional parameter $0, within a function call, is the name of the 1332bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# function. 1342bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianprogpath="$0" 1352bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 1362bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 1372bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 1382bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian: ${CP="cp -f"} 1392bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramaniantest "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'} 1402bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian: ${MAKE="make"} 1412bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian: ${MKDIR="mkdir"} 1422bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian: ${MV="mv -f"} 1432bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian: ${RM="rm -f"} 1442bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian: ${SHELL="${CONFIG_SHELL-/bin/sh}"} 1452bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian: ${Xsed="$SED -e 1s/^X//"} 1462bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 1472bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Global variables: 1482bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianEXIT_SUCCESS=0 1492bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianEXIT_FAILURE=1 1502bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianEXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing. 1512bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianEXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake. 1522bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 1532bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianexit_status=$EXIT_SUCCESS 1542bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 1552bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Make sure IFS has a sensible default 1562bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianlt_nl=' 1572bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian' 1582bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianIFS=" $lt_nl" 1592bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 1602bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramaniandirname="s,/[^/]*$,," 1612bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianbasename="s,^.*/,," 1622bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 1632bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_dirname file append nondir_replacement 1642bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Compute the dirname of FILE. If nonempty, add APPEND to the result, 1652bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# otherwise set result to NONDIR_REPLACEMENT. 1662bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_dirname () 1672bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 1682bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_dirname_result=`$ECHO "${1}" | $SED "$dirname"` 1692bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "X$func_dirname_result" = "X${1}"; then 1702bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_dirname_result="${3}" 1712bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 1722bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_dirname_result="$func_dirname_result${2}" 1732bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 1742bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} # func_dirname may be replaced by extended shell implementation 1752bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 1762bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 1772bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_basename file 1782bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_basename () 1792bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 1802bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_basename_result=`$ECHO "${1}" | $SED "$basename"` 1812bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} # func_basename may be replaced by extended shell implementation 1822bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 1832bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 1842bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_dirname_and_basename file append nondir_replacement 1852bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# perform func_basename and func_dirname in a single function 1862bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# call: 1872bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# dirname: Compute the dirname of FILE. If nonempty, 1882bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# add APPEND to the result, otherwise set result 1892bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# to NONDIR_REPLACEMENT. 1902bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# value returned in "$func_dirname_result" 1912bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# basename: Compute filename of FILE. 1922bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# value retuned in "$func_basename_result" 1932bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Implementation must be kept synchronized with func_dirname 1942bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# and func_basename. For efficiency, we do not delegate to 1952bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# those functions but instead duplicate the functionality here. 1962bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_dirname_and_basename () 1972bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 1982bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Extract subdirectory from the argument. 1992bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_dirname_result=`$ECHO "${1}" | $SED -e "$dirname"` 2002bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "X$func_dirname_result" = "X${1}"; then 2012bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_dirname_result="${3}" 2022bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 2032bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_dirname_result="$func_dirname_result${2}" 2042bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 2052bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_basename_result=`$ECHO "${1}" | $SED -e "$basename"` 2062bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} # func_dirname_and_basename may be replaced by extended shell implementation 2072bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 2082bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 2092bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_stripname prefix suffix name 2102bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# strip PREFIX and SUFFIX off of NAME. 2112bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# PREFIX and SUFFIX must not contain globbing or regex special 2122bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# characters, hashes, percent signs, but SUFFIX may contain a leading 2132bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# dot (in which case that matches only a dot). 2142bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_strip_suffix prefix name 2152bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_stripname () 2162bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 2172bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case ${2} in 2182bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; 2192bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; 2202bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 2212bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} # func_stripname may be replaced by extended shell implementation 2222bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 2232bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 2242bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# These SED scripts presuppose an absolute path with a trailing slash. 2252bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianpathcar='s,^/\([^/]*\).*$,\1,' 2262bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianpathcdr='s,^/[^/]*,,' 2272bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianremovedotparts=':dotsl 2282bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian s@/\./@/@g 2292bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian t dotsl 2302bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian s,/\.$,/,' 2312bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramaniancollapseslashes='s@/\{1,\}@/@g' 2322bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfinalslash='s,/*$,/,' 2332bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 2342bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_normal_abspath PATH 2352bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Remove doubled-up and trailing slashes, "." path components, 2362bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# and cancel out any ".." path components in PATH after making 2372bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# it an absolute path. 2382bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# value returned in "$func_normal_abspath_result" 2392bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_normal_abspath () 2402bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 2412bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Start from root dir and reassemble the path. 2422bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_normal_abspath_result= 2432bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_normal_abspath_tpath=$1 2442bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_normal_abspath_altnamespace= 2452bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $func_normal_abspath_tpath in 2462bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian "") 2472bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Empty path, that just means $cwd. 2482bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_stripname '' '/' "`pwd`" 2492bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_normal_abspath_result=$func_stripname_result 2502bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian return 2512bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 2522bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # The next three entries are used to spot a run of precisely 2532bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # two leading slashes without using negated character classes; 2542bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # we take advantage of case's first-match behaviour. 2552bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ///*) 2562bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Unusual form of absolute path, do nothing. 2572bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 2582bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian //*) 2592bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Not necessarily an ordinary path; POSIX reserves leading '//' 2602bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # and for example Cygwin uses it to access remote file shares 2612bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # over CIFS/SMB, so we conserve a leading double slash if found. 2622bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_normal_abspath_altnamespace=/ 2632bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 2642bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian /*) 2652bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Absolute path, do nothing. 2662bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 2672bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) 2682bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Relative path, prepend $cwd. 2692bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath 2702bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 2712bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 2722bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Cancel out all the simple stuff to save iterations. We also want 2732bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # the path to end with a slash for ease of parsing, so make sure 2742bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # there is one (and only one) here. 2752bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ 2762bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -e "$removedotparts" -e "$collapseslashes" -e "$finalslash"` 2772bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian while :; do 2782bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Processed it all yet? 2792bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$func_normal_abspath_tpath" = / ; then 2802bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # If we ascended to the root using ".." the result may be empty now. 2812bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -z "$func_normal_abspath_result" ; then 2822bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_normal_abspath_result=/ 2832bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 2842bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian break 2852bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 2862bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \ 2872bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -e "$pathcar"` 2882bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ 2892bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -e "$pathcdr"` 2902bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Figure out what to do with it 2912bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $func_normal_abspath_tcomponent in 2922bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian "") 2932bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Trailing empty path component, ignore it. 2942bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 2952bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ..) 2962bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Parent dir; strip last assembled component from result. 2972bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_dirname "$func_normal_abspath_result" 2982bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_normal_abspath_result=$func_dirname_result 2992bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 3002bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) 3012bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Actual path component, append it. 3022bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_normal_abspath_result=$func_normal_abspath_result/$func_normal_abspath_tcomponent 3032bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 3042bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 3052bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 3062bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Restore leading double-slash if one was found on entry. 3072bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result 3082bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 3092bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 3102bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_relative_path SRCDIR DSTDIR 3112bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# generates a relative path from SRCDIR to DSTDIR, with a trailing 3122bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# slash if non-empty, suitable for immediately appending a filename 3132bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# without needing to append a separator. 3142bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# value returned in "$func_relative_path_result" 3152bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_relative_path () 3162bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 3172bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_relative_path_result= 3182bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_normal_abspath "$1" 3192bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_relative_path_tlibdir=$func_normal_abspath_result 3202bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_normal_abspath "$2" 3212bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_relative_path_tbindir=$func_normal_abspath_result 3222bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 3232bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Ascend the tree starting from libdir 3242bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian while :; do 3252bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # check if we have found a prefix of bindir 3262bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $func_relative_path_tbindir in 3272bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $func_relative_path_tlibdir) 3282bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # found an exact match 3292bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_relative_path_tcancelled= 3302bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian break 3312bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 3322bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $func_relative_path_tlibdir*) 3332bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # found a matching prefix 3342bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir" 3352bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_relative_path_tcancelled=$func_stripname_result 3362bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -z "$func_relative_path_result"; then 3372bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_relative_path_result=. 3382bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 3392bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian break 3402bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 3412bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) 3422bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_dirname $func_relative_path_tlibdir 3432bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_relative_path_tlibdir=${func_dirname_result} 3442bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "x$func_relative_path_tlibdir" = x ; then 3452bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Have to descend all the way to the root! 3462bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_relative_path_result=../$func_relative_path_result 3472bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_relative_path_tcancelled=$func_relative_path_tbindir 3482bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian break 3492bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 3502bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_relative_path_result=../$func_relative_path_result 3512bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 3522bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 3532bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 3542bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 3552bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Now calculate path; take care to avoid doubling-up slashes. 3562bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_stripname '' '/' "$func_relative_path_result" 3572bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_relative_path_result=$func_stripname_result 3582bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_stripname '/' '/' "$func_relative_path_tcancelled" 3592bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "x$func_stripname_result" != x ; then 3602bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_relative_path_result=${func_relative_path_result}/${func_stripname_result} 3612bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 3622bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 3632bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Normalisation. If bindir is libdir, return empty string, 3642bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # else relative path ending with a slash; either way, target 3652bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # file name can be directly appended. 3662bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test ! -z "$func_relative_path_result"; then 3672bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_stripname './' '' "$func_relative_path_result/" 3682bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_relative_path_result=$func_stripname_result 3692bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 3702bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 3712bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 3722bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# The name of this program: 3732bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_dirname_and_basename "$progpath" 3742bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianprogname=$func_basename_result 3752bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 3762bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Make sure we have an absolute path for reexecution: 3772bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramaniancase $progpath in 3782bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian [\\/]*|[A-Za-z]:\\*) ;; 3792bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *[\\/]*) 3802bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian progdir=$func_dirname_result 3812bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian progdir=`cd "$progdir" && pwd` 3822bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian progpath="$progdir/$progname" 3832bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 3842bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) 3852bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian save_IFS="$IFS" 3862bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian IFS=${PATH_SEPARATOR-:} 3872bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for progdir in $PATH; do 3882bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian IFS="$save_IFS" 3892bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test -x "$progdir/$progname" && break 3902bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 3912bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian IFS="$save_IFS" 3922bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test -n "$progdir" || progdir=`pwd` 3932bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian progpath="$progdir/$progname" 3942bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 3952bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianesac 3962bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 3972bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Sed substitution that helps us do robust quoting. It backslashifies 3982bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# metacharacters that are still active within double-quoted strings. 3992bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianXsed="${SED}"' -e 1s/^X//' 4002bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramaniansed_quote_subst='s/\([`"$\\]\)/\\\1/g' 4012bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 4022bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Same as above, but do not quote variable references. 4032bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramaniandouble_quote_subst='s/\(["`\\]\)/\\\1/g' 4042bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 4052bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Sed substitution that turns a string into a regex matching for the 4062bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# string literally. 4072bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramaniansed_make_literal_regex='s,[].[^$\\*\/],\\&,g' 4082bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 4092bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Sed substitution that converts a w32 file name or path 4102bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# which contains forward slashes, into one that contains 4112bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# (escaped) backslashes. A very naive implementation. 4122bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianlt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' 4132bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 4142bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Re-`\' parameter expansions in output of double_quote_subst that were 4152bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# `\'-ed in input to the same. If an odd number of `\' preceded a '$' 4162bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# in input to double_quote_subst, that '$' was protected from expansion. 4172bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Since each input `\' is now two `\'s, look for any number of runs of 4182bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# four `\'s followed by two `\'s and then a '$'. `\' that '$'. 4192bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianbs='\\' 4202bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianbs2='\\\\' 4212bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianbs4='\\\\\\\\' 4222bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramaniandollar='\$' 4232bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramaniansed_double_backslash="\ 4242bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian s/$bs4/&\\ 4252bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian/g 4262bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian s/^$bs2$dollar/$bs&/ 4272bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g 4282bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian s/\n//g" 4292bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 4302bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Standard options: 4312bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianopt_dry_run=false 4322bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianopt_help=false 4332bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianopt_quiet=false 4342bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianopt_verbose=false 4352bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianopt_warning=: 4362bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 4372bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_echo arg... 4382bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Echo program name prefixed message, along with the current mode 4392bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# name if it has been set yet. 4402bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_echo () 4412bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 4422bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $ECHO "$progname: ${opt_mode+$opt_mode: }$*" 4432bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 4442bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 4452bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_verbose arg... 4462bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Echo program name prefixed message in verbose mode only. 4472bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_verbose () 4482bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 4492bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $opt_verbose && func_echo ${1+"$@"} 4502bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 4512bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # A bug in bash halts the script if the last line of a function 4522bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # fails when set -e is in force, so we need another command to 4532bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # work around that: 4542bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian : 4552bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 4562bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 4572bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_echo_all arg... 4582bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Invoke $ECHO with all args, space-separated. 4592bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_echo_all () 4602bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 4612bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $ECHO "$*" 4622bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 4632bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 4642bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_error arg... 4652bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Echo program name prefixed message to standard error. 4662bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_error () 4672bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 4682bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $ECHO "$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2 4692bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 4702bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 4712bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_warning arg... 4722bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Echo program name prefixed warning message to standard error. 4732bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_warning () 4742bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 4752bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $opt_warning && $ECHO "$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2 4762bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 4772bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # bash bug again: 4782bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian : 4792bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 4802bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 4812bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_fatal_error arg... 4822bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Echo program name prefixed message to standard error, and exit. 4832bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_fatal_error () 4842bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 4852bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_error ${1+"$@"} 4862bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian exit $EXIT_FAILURE 4872bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 4882bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 4892bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_fatal_help arg... 4902bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Echo program name prefixed message to standard error, followed by 4912bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# a help hint, and exit. 4922bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_fatal_help () 4932bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 4942bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_error ${1+"$@"} 4952bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_fatal_error "$help" 4962bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 4972bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianhelp="Try \`$progname --help' for more information." ## default 4982bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 4992bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 5002bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_grep expression filename 5012bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Check whether EXPRESSION matches any line of FILENAME, without output. 5022bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_grep () 5032bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 5042bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $GREP "$1" "$2" >/dev/null 2>&1 5052bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 5062bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 5072bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 5082bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_mkdir_p directory-path 5092bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Make sure the entire path to DIRECTORY-PATH is available. 5102bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_mkdir_p () 5112bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 5122bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian my_directory_path="$1" 5132bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian my_dir_list= 5142bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 5152bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then 5162bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 5172bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Protect directory names starting with `-' 5182bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $my_directory_path in 5192bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -*) my_directory_path="./$my_directory_path" ;; 5202bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 5212bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 5222bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # While some portion of DIR does not yet exist... 5232bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian while test ! -d "$my_directory_path"; do 5242bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # ...make a list in topmost first order. Use a colon delimited 5252bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # list incase some portion of path contains whitespace. 5262bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian my_dir_list="$my_directory_path:$my_dir_list" 5272bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 5282bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # If the last portion added has no slash in it, the list is done 5292bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $my_directory_path in */*) ;; *) break ;; esac 5302bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 5312bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # ...otherwise throw away the child directory and loop 5322bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian my_directory_path=`$ECHO "$my_directory_path" | $SED -e "$dirname"` 5332bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 5342bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian my_dir_list=`$ECHO "$my_dir_list" | $SED 's,:*$,,'` 5352bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 5362bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian save_mkdir_p_IFS="$IFS"; IFS=':' 5372bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for my_dir in $my_dir_list; do 5382bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian IFS="$save_mkdir_p_IFS" 5392bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # mkdir can fail with a `File exist' error if two processes 5402bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # try to create one of the directories concurrently. Don't 5412bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # stop in that case! 5422bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $MKDIR "$my_dir" 2>/dev/null || : 5432bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 5442bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian IFS="$save_mkdir_p_IFS" 5452bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 5462bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Bail out if we (or some other process) failed to create a directory. 5472bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test -d "$my_directory_path" || \ 5482bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_fatal_error "Failed to create \`$1'" 5492bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 5502bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 5512bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 5522bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 5532bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_mktempdir [string] 5542bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Make a temporary directory that won't clash with other running 5552bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# libtool processes, and avoids race conditions if possible. If 5562bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# given, STRING is the basename for that directory. 5572bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_mktempdir () 5582bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 5592bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian my_template="${TMPDIR-/tmp}/${1-$progname}" 5602bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 5612bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$opt_dry_run" = ":"; then 5622bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Return a directory name, but don't create it in dry-run mode 5632bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian my_tmpdir="${my_template}-$$" 5642bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 5652bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 5662bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # If mktemp works, use that first and foremost 5672bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` 5682bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 5692bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test ! -d "$my_tmpdir"; then 5702bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Failing that, at least try and use $RANDOM to avoid a race 5712bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian my_tmpdir="${my_template}-${RANDOM-0}$$" 5722bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 5732bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian save_mktempdir_umask=`umask` 5742bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian umask 0077 5752bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $MKDIR "$my_tmpdir" 5762bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian umask $save_mktempdir_umask 5772bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 5782bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 5792bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # If we're not in dry-run mode, bomb out on failure 5802bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test -d "$my_tmpdir" || \ 5812bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_fatal_error "cannot create temporary directory \`$my_tmpdir'" 5822bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 5832bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 5842bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $ECHO "$my_tmpdir" 5852bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 5862bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 5872bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 5882bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_quote_for_eval arg 5892bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Aesthetically quote ARG to be evaled later. 5902bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT 5912bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# is double-quoted, suitable for a subsequent eval, whereas 5922bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters 5932bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# which are still active within double quotes backslashified. 5942bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_quote_for_eval () 5952bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 5962bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $1 in 5972bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *[\\\`\"\$]*) 5982bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_quote_for_eval_unquoted_result=`$ECHO "$1" | $SED "$sed_quote_subst"` ;; 5992bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) 6002bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_quote_for_eval_unquoted_result="$1" ;; 6012bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 6022bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 6032bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $func_quote_for_eval_unquoted_result in 6042bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Double-quote args containing shell metacharacters to delay 6052bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # word splitting, command substitution and and variable 6062bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # expansion for a subsequent eval. 6072bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Many Bourne shells cannot handle close brackets correctly 6082bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # in scan sets, so we specify it separately. 6092bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 6102bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\"" 6112bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 6122bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) 6132bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_quote_for_eval_result="$func_quote_for_eval_unquoted_result" 6142bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 6152bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 6162bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 6172bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 6182bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_quote_for_expand arg 6192bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Aesthetically quote ARG to be evaled later; same as above, 6202bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# but do not quote variable references. 6212bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_quote_for_expand () 6222bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 6232bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $1 in 6242bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *[\\\`\"]*) 6252bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian my_arg=`$ECHO "$1" | $SED \ 6262bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -e "$double_quote_subst" -e "$sed_double_backslash"` ;; 6272bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) 6282bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian my_arg="$1" ;; 6292bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 6302bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 6312bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $my_arg in 6322bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Double-quote args containing shell metacharacters to delay 6332bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # word splitting and command substitution for a subsequent eval. 6342bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Many Bourne shells cannot handle close brackets correctly 6352bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # in scan sets, so we specify it separately. 6362bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 6372bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian my_arg="\"$my_arg\"" 6382bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 6392bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 6402bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 6412bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_quote_for_expand_result="$my_arg" 6422bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 6432bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 6442bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 6452bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_show_eval cmd [fail_exp] 6462bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Unless opt_silent is true, then output CMD. Then, if opt_dryrun is 6472bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP 6482bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# is given, then evaluate it. 6492bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_show_eval () 6502bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 6512bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian my_cmd="$1" 6522bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian my_fail_exp="${2-:}" 6532bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 6542bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ${opt_silent-false} || { 6552bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_quote_for_expand "$my_cmd" 6562bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval "func_echo $func_quote_for_expand_result" 6572bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian } 6582bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 6592bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if ${opt_dry_run-false}; then :; else 6602bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval "$my_cmd" 6612bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian my_status=$? 6622bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$my_status" -eq 0; then :; else 6632bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval "(exit $my_status); $my_fail_exp" 6642bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 6652bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 6662bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 6672bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 6682bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 6692bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_show_eval_locale cmd [fail_exp] 6702bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Unless opt_silent is true, then output CMD. Then, if opt_dryrun is 6712bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP 6722bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# is given, then evaluate it. Use the saved locale for evaluation. 6732bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_show_eval_locale () 6742bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 6752bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian my_cmd="$1" 6762bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian my_fail_exp="${2-:}" 6772bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 6782bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ${opt_silent-false} || { 6792bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_quote_for_expand "$my_cmd" 6802bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval "func_echo $func_quote_for_expand_result" 6812bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian } 6822bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 6832bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if ${opt_dry_run-false}; then :; else 6842bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval "$lt_user_locale 6852bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $my_cmd" 6862bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian my_status=$? 6872bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval "$lt_safe_locale" 6882bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$my_status" -eq 0; then :; else 6892bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval "(exit $my_status); $my_fail_exp" 6902bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 6912bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 6922bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 6932bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 6942bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_tr_sh 6952bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Turn $1 into a string suitable for a shell variable name. 6962bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Result is stored in $func_tr_sh_result. All characters 6972bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# not in the set a-zA-Z0-9_ are replaced with '_'. Further, 6982bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# if $1 begins with a digit, a '_' is prepended as well. 6992bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_tr_sh () 7002bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 7012bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $1 in 7022bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian [0-9]* | *[!a-zA-Z0-9_]*) 7032bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_tr_sh_result=`$ECHO "$1" | $SED 's/^\([0-9]\)/_\1/; s/[^a-zA-Z0-9_]/_/g'` 7042bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 7052bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian * ) 7062bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_tr_sh_result=$1 7072bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 7082bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 7092bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 7102bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 7112bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 7122bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_version 7132bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Echo version message to standard output and exit. 7142bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_version () 7152bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 7162bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $opt_debug 7172bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 7182bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $SED -n '/(C)/!b go 7192bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian :more 7202bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian /\./!{ 7212bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian N 7222bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian s/\n# / / 7232bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian b more 7242bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian } 7252bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian :go 7262bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian /^# '$PROGRAM' (GNU /,/# warranty; / { 7272bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian s/^# // 7282bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian s/^# *$// 7292bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/ 7302bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian p 7312bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian }' < "$progpath" 7322bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian exit $? 7332bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 7342bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 7352bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_usage 7362bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Echo short help message to standard output and exit. 7372bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_usage () 7382bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 7392bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $opt_debug 7402bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 7412bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $SED -n '/^# Usage:/,/^# *.*--help/ { 7422bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian s/^# // 7432bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian s/^# *$// 7442bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian s/\$progname/'$progname'/ 7452bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian p 7462bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian }' < "$progpath" 7472bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo 7482bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $ECHO "run \`$progname --help | more' for full usage" 7492bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian exit $? 7502bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 7512bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 7522bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_help [NOEXIT] 7532bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Echo long help message to standard output and exit, 7542bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# unless 'noexit' is passed as argument. 7552bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_help () 7562bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 7572bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $opt_debug 7582bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 7592bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $SED -n '/^# Usage:/,/# Report bugs to/ { 7602bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian :print 7612bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian s/^# // 7622bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian s/^# *$// 7632bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian s*\$progname*'$progname'* 7642bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian s*\$host*'"$host"'* 7652bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian s*\$SHELL*'"$SHELL"'* 7662bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian s*\$LTCC*'"$LTCC"'* 7672bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian s*\$LTCFLAGS*'"$LTCFLAGS"'* 7682bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian s*\$LD*'"$LD"'* 7692bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian s/\$with_gnu_ld/'"$with_gnu_ld"'/ 7702bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian s/\$automake_version/'"`(${AUTOMAKE-automake} --version) 2>/dev/null |$SED 1q`"'/ 7712bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian s/\$autoconf_version/'"`(${AUTOCONF-autoconf} --version) 2>/dev/null |$SED 1q`"'/ 7722bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian p 7732bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian d 7742bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian } 7752bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian /^# .* home page:/b print 7762bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian /^# General help using/b print 7772bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ' < "$progpath" 7782bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ret=$? 7792bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -z "$1"; then 7802bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian exit $ret 7812bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 7822bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 7832bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 7842bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_missing_arg argname 7852bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Echo program name prefixed message to standard error and set global 7862bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# exit_cmd. 7872bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_missing_arg () 7882bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 7892bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $opt_debug 7902bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 7912bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_error "missing argument for $1." 7922bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian exit_cmd=exit 7932bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 7942bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 7952bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 7962bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_split_short_opt shortopt 7972bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Set func_split_short_opt_name and func_split_short_opt_arg shell 7982bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# variables after splitting SHORTOPT after the 2nd character. 7992bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_split_short_opt () 8002bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 8012bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian my_sed_short_opt='1s/^\(..\).*$/\1/;q' 8022bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian my_sed_short_rest='1s/^..\(.*\)$/\1/;q' 8032bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 8042bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_split_short_opt_name=`$ECHO "$1" | $SED "$my_sed_short_opt"` 8052bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_split_short_opt_arg=`$ECHO "$1" | $SED "$my_sed_short_rest"` 8062bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} # func_split_short_opt may be replaced by extended shell implementation 8072bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 8082bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 8092bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_split_long_opt longopt 8102bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Set func_split_long_opt_name and func_split_long_opt_arg shell 8112bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# variables after splitting LONGOPT at the `=' sign. 8122bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_split_long_opt () 8132bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 8142bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian my_sed_long_opt='1s/^\(--[^=]*\)=.*/\1/;q' 8152bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian my_sed_long_arg='1s/^--[^=]*=//' 8162bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 8172bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_split_long_opt_name=`$ECHO "$1" | $SED "$my_sed_long_opt"` 8182bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_split_long_opt_arg=`$ECHO "$1" | $SED "$my_sed_long_arg"` 8192bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} # func_split_long_opt may be replaced by extended shell implementation 8202bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 8212bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianexit_cmd=: 8222bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 8232bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 8242bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 8252bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 8262bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 8272bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianmagic="%%%MAGIC variable%%%" 8282bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianmagic_exe="%%%MAGIC EXE variable%%%" 8292bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 8302bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Global variables. 8312bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramaniannonopt= 8322bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianpreserve_args= 8332bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianlo2o="s/\\.lo\$/.${objext}/" 8342bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramaniano2lo="s/\\.${objext}\$/.lo/" 8352bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianextracted_archives= 8362bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianextracted_serial=0 8372bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 8382bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# If this variable is set in any of the actions, the command in it 8392bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# will be execed at the end. This prevents here-documents from being 8402bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# left over by shells. 8412bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianexec_cmd= 8422bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 8432bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_append var value 8442bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Append VALUE to the end of shell variable VAR. 8452bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_append () 8462bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 8472bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval "${1}=\$${1}\${2}" 8482bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} # func_append may be replaced by extended shell implementation 8492bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 8502bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_append_quoted var value 8512bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Quote VALUE and append to the end of shell variable VAR, separated 8522bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# by a space. 8532bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_append_quoted () 8542bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 8552bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_quote_for_eval "${2}" 8562bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval "${1}=\$${1}\\ \$func_quote_for_eval_result" 8572bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} # func_append_quoted may be replaced by extended shell implementation 8582bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 8592bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 8602bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_arith arithmetic-term... 8612bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_arith () 8622bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 8632bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_arith_result=`expr "${@}"` 8642bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} # func_arith may be replaced by extended shell implementation 8652bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 8662bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 8672bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_len string 8682bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# STRING may not start with a hyphen. 8692bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_len () 8702bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 8712bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_len_result=`expr "${1}" : ".*" 2>/dev/null || echo $max_cmd_len` 8722bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} # func_len may be replaced by extended shell implementation 8732bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 8742bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 8752bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_lo2o object 8762bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_lo2o () 8772bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 8782bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"` 8792bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} # func_lo2o may be replaced by extended shell implementation 8802bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 8812bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 8822bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_xform libobj-or-source 8832bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_xform () 8842bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 8852bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'` 8862bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} # func_xform may be replaced by extended shell implementation 8872bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 8882bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 8892bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_fatal_configuration arg... 8902bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Echo program name prefixed message to standard error, followed by 8912bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# a configuration failure hint, and exit. 8922bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_fatal_configuration () 8932bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 8942bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_error ${1+"$@"} 8952bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_error "See the $PACKAGE documentation for more information." 8962bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_fatal_error "Fatal configuration error." 8972bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 8982bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 8992bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 9002bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_config 9012bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Display the configuration for all the tags in this script. 9022bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_config () 9032bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 9042bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian re_begincf='^# ### BEGIN LIBTOOL' 9052bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian re_endcf='^# ### END LIBTOOL' 9062bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 9072bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Default configuration. 9082bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath" 9092bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 9102bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Now print the configurations for the tags. 9112bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for tagname in $taglist; do 9122bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath" 9132bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 9142bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 9152bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian exit $? 9162bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 9172bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 9182bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_features 9192bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Display the features supported by this script. 9202bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_features () 9212bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 9222bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo "host: $host" 9232bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$build_libtool_libs" = yes; then 9242bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo "enable shared libraries" 9252bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 9262bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo "disable shared libraries" 9272bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 9282bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$build_old_libs" = yes; then 9292bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo "enable static libraries" 9302bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 9312bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo "disable static libraries" 9322bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 9332bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 9342bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian exit $? 9352bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 9362bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 9372bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_enable_tag tagname 9382bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Verify that TAGNAME is valid, and either flag an error and exit, or 9392bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# enable the TAGNAME tag. We also add TAGNAME to the global $taglist 9402bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# variable here. 9412bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_enable_tag () 9422bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 9432bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Global variable: 9442bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian tagname="$1" 9452bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 9462bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$" 9472bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$" 9482bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian sed_extractcf="/$re_begincf/,/$re_endcf/p" 9492bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 9502bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Validate tagname. 9512bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $tagname in 9522bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *[!-_A-Za-z0-9,/]*) 9532bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_fatal_error "invalid tag name: $tagname" 9542bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 9552bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 9562bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 9572bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Don't test for the "default" C tag, as we know it's 9582bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # there but not specially marked. 9592bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $tagname in 9602bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian CC) ;; 9612bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) 9622bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then 9632bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian taglist="$taglist $tagname" 9642bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 9652bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Evaluate the configuration. Be careful to quote the path 9662bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # and the sed script, to avoid splitting on whitespace, but 9672bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # also don't use non-portable quotes within backquotes within 9682bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # quotes we have to do it in 2 steps: 9692bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"` 9702bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval "$extractedcf" 9712bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 9722bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_error "ignoring unknown tag $tagname" 9732bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 9742bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 9752bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 9762bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 9772bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 9782bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_check_version_match 9792bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Ensure that we are using m4 macros, and libtool script from the same 9802bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# release of libtool. 9812bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_check_version_match () 9822bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 9832bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$package_revision" != "$macro_revision"; then 9842bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$VERSION" != "$macro_version"; then 9852bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -z "$macro_version"; then 9862bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian cat >&2 <<_LT_EOF 9872bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian$progname: Version mismatch error. This is $PACKAGE $VERSION, but the 9882bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian$progname: definition of this LT_INIT comes from an older release. 9892bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION 9902bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian$progname: and run autoconf again. 9912bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian_LT_EOF 9922bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 9932bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian cat >&2 <<_LT_EOF 9942bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian$progname: Version mismatch error. This is $PACKAGE $VERSION, but the 9952bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian$progname: definition of this LT_INIT comes from $PACKAGE $macro_version. 9962bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION 9972bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian$progname: and run autoconf again. 9982bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian_LT_EOF 9992bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 10002bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 10012bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian cat >&2 <<_LT_EOF 10022bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian$progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, 10032bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian$progname: but the definition of this LT_INIT comes from revision $macro_revision. 10042bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian$progname: You should recreate aclocal.m4 with macros from revision $package_revision 10052bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian$progname: of $PACKAGE $VERSION and run autoconf again. 10062bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian_LT_EOF 10072bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 10082bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 10092bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian exit $EXIT_MISMATCH 10102bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 10112bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 10122bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 10132bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 10142bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Shorthand for --mode=foo, only valid as the first argument 10152bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramaniancase $1 in 10162bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianclean|clea|cle|cl) 10172bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian shift; set dummy --mode clean ${1+"$@"}; shift 10182bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 10192bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramaniancompile|compil|compi|comp|com|co|c) 10202bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian shift; set dummy --mode compile ${1+"$@"}; shift 10212bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 10222bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianexecute|execut|execu|exec|exe|ex|e) 10232bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian shift; set dummy --mode execute ${1+"$@"}; shift 10242bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 10252bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfinish|finis|fini|fin|fi|f) 10262bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian shift; set dummy --mode finish ${1+"$@"}; shift 10272bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 10282bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianinstall|instal|insta|inst|ins|in|i) 10292bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian shift; set dummy --mode install ${1+"$@"}; shift 10302bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 10312bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianlink|lin|li|l) 10322bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian shift; set dummy --mode link ${1+"$@"}; shift 10332bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 10342bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianuninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) 10352bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian shift; set dummy --mode uninstall ${1+"$@"}; shift 10362bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 10372bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianesac 10382bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 10392bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 10402bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 10412bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Option defaults: 10422bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianopt_debug=: 10432bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianopt_dry_run=false 10442bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianopt_config=false 10452bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianopt_preserve_dup_deps=false 10462bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianopt_features=false 10472bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianopt_finish=false 10482bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianopt_help=false 10492bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianopt_help_all=false 10502bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianopt_silent=: 10512bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianopt_warning=: 10522bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianopt_verbose=: 10532bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianopt_silent=false 10542bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianopt_verbose=false 10552bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 10562bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 10572bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Parse options once, thoroughly. This comes as soon as possible in the 10582bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# script to make things like `--version' happen as quickly as we can. 10592bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 10602bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # this just eases exit handling 10612bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian while test $# -gt 0; do 10622bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian opt="$1" 10632bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian shift 10642bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $opt in 10652bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian --debug|-x) opt_debug='set -x' 10662bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_echo "enabling shell trace mode" 10672bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $opt_debug 10682bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 10692bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian --dry-run|--dryrun|-n) 10702bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian opt_dry_run=: 10712bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 10722bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian --config) 10732bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian opt_config=: 10742bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_config 10752bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 10762bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian --dlopen|-dlopen) 10772bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian optarg="$1" 10782bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian opt_dlopen="${opt_dlopen+$opt_dlopen 10792bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian}$optarg" 10802bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian shift 10812bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 10822bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian --preserve-dup-deps) 10832bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian opt_preserve_dup_deps=: 10842bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 10852bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian --features) 10862bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian opt_features=: 10872bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_features 10882bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 10892bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian --finish) 10902bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian opt_finish=: 10912bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianset dummy --mode finish ${1+"$@"}; shift 10922bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 10932bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian --help) 10942bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian opt_help=: 10952bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 10962bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian --help-all) 10972bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian opt_help_all=: 10982bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianopt_help=': help-all' 10992bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 11002bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian --mode) 11012bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test $# = 0 && func_missing_arg $opt && break 11022bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian optarg="$1" 11032bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian opt_mode="$optarg" 11042bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramaniancase $optarg in 11052bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Valid mode arguments: 11062bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian clean|compile|execute|finish|install|link|relink|uninstall) ;; 11072bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 11082bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Catch anything else as an error 11092bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) func_error "invalid argument for $opt" 11102bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian exit_cmd=exit 11112bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian break 11122bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 11132bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianesac 11142bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian shift 11152bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 11162bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian --no-silent|--no-quiet) 11172bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian opt_silent=false 11182bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_append preserve_args " $opt" 11192bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 11202bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian --no-warning|--no-warn) 11212bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian opt_warning=false 11222bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_append preserve_args " $opt" 11232bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 11242bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian --no-verbose) 11252bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian opt_verbose=false 11262bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_append preserve_args " $opt" 11272bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 11282bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian --silent|--quiet) 11292bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian opt_silent=: 11302bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_append preserve_args " $opt" 11312bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian opt_verbose=false 11322bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 11332bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian --verbose|-v) 11342bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian opt_verbose=: 11352bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_append preserve_args " $opt" 11362bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianopt_silent=false 11372bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 11382bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian --tag) 11392bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test $# = 0 && func_missing_arg $opt && break 11402bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian optarg="$1" 11412bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian opt_tag="$optarg" 11422bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_append preserve_args " $opt $optarg" 11432bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_enable_tag "$optarg" 11442bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian shift 11452bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 11462bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 11472bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -\?|-h) func_usage ;; 11482bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian --help) func_help ;; 11492bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian --version) func_version ;; 11502bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 11512bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Separate optargs to long options: 11522bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian --*=*) 11532bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_split_long_opt "$opt" 11542bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian set dummy "$func_split_long_opt_name" "$func_split_long_opt_arg" ${1+"$@"} 11552bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian shift 11562bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 11572bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 11582bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Separate non-argument short options: 11592bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -\?*|-h*|-n*|-v*) 11602bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_split_short_opt "$opt" 11612bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian set dummy "$func_split_short_opt_name" "-$func_split_short_opt_arg" ${1+"$@"} 11622bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian shift 11632bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 11642bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 11652bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian --) break ;; 11662bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -*) func_fatal_help "unrecognized option \`$opt'" ;; 11672bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) set dummy "$opt" ${1+"$@"}; shift; break ;; 11682bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 11692bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 11702bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 11712bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Validate options: 11722bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 11732bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # save first non-option argument 11742bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$#" -gt 0; then 11752bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian nonopt="$opt" 11762bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian shift 11772bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 11782bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 11792bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # preserve --debug 11802bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test "$opt_debug" = : || func_append preserve_args " --debug" 11812bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 11822bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $host in 11832bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *cygwin* | *mingw* | *pw32* | *cegcc*) 11842bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # don't eliminate duplications in $postdeps and $predeps 11852bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian opt_duplicate_compiler_generated_deps=: 11862bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 11872bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) 11882bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps 11892bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 11902bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 11912bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 11922bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $opt_help || { 11932bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Sanity checks first: 11942bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_check_version_match 11952bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 11962bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then 11972bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_fatal_configuration "not configured to build any kind of library" 11982bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 11992bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 12002bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Darwin sucks 12012bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval std_shrext=\"$shrext_cmds\" 12022bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 12032bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Only execute mode is allowed to have -dlopen flags. 12042bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$opt_dlopen" && test "$opt_mode" != execute; then 12052bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_error "unrecognized option \`-dlopen'" 12062bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $ECHO "$help" 1>&2 12072bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian exit $EXIT_FAILURE 12082bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 12092bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 12102bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Change the help message to a mode-specific one. 12112bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian generic_help="$help" 12122bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian help="Try \`$progname --help --mode=$opt_mode' for more information." 12132bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian } 12142bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 12152bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 12162bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Bail if the options were screwed 12172bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $exit_cmd $EXIT_FAILURE 12182bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 12192bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 12202bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 12212bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 12222bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 12232bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian## ----------- ## 12242bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian## Main. ## 12252bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian## ----------- ## 12262bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 12272bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_lalib_p file 12282bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# True iff FILE is a libtool `.la' library or `.lo' object file. 12292bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# This function is only a basic sanity check; it will hardly flush out 12302bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# determined imposters. 12312bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_lalib_p () 12322bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 12332bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test -f "$1" && 12342bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $SED -e 4q "$1" 2>/dev/null \ 12352bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1 12362bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 12372bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 12382bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_lalib_unsafe_p file 12392bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# True iff FILE is a libtool `.la' library or `.lo' object file. 12402bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# This function implements the same check as func_lalib_p without 12412bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# resorting to external programs. To this end, it redirects stdin and 12422bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# closes it afterwards, without saving the original file descriptor. 12432bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# As a safety measure, use it only where a negative result would be 12442bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# fatal anyway. Works if `file' does not exist. 12452bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_lalib_unsafe_p () 12462bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 12472bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian lalib_p=no 12482bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then 12492bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for lalib_p_l in 1 2 3 4 12502bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian do 12512bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian read lalib_p_line 12522bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case "$lalib_p_line" in 12532bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;; 12542bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 12552bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 12562bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian exec 0<&5 5<&- 12572bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 12582bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test "$lalib_p" = yes 12592bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 12602bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 12612bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_ltwrapper_script_p file 12622bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# True iff FILE is a libtool wrapper script 12632bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# This function is only a basic sanity check; it will hardly flush out 12642bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# determined imposters. 12652bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_ltwrapper_script_p () 12662bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 12672bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_lalib_p "$1" 12682bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 12692bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 12702bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_ltwrapper_executable_p file 12712bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# True iff FILE is a libtool wrapper executable 12722bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# This function is only a basic sanity check; it will hardly flush out 12732bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# determined imposters. 12742bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_ltwrapper_executable_p () 12752bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 12762bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_ltwrapper_exec_suffix= 12772bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $1 in 12782bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *.exe) ;; 12792bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) func_ltwrapper_exec_suffix=.exe ;; 12802bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 12812bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1 12822bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 12832bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 12842bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_ltwrapper_scriptname file 12852bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Assumes file is an ltwrapper_executable 12862bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# uses $file to determine the appropriate filename for a 12872bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# temporary ltwrapper_script. 12882bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_ltwrapper_scriptname () 12892bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 12902bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_dirname_and_basename "$1" "" "." 12912bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_stripname '' '.exe' "$func_basename_result" 12922bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper" 12932bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 12942bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 12952bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_ltwrapper_p file 12962bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# True iff FILE is a libtool wrapper script or wrapper executable 12972bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# This function is only a basic sanity check; it will hardly flush out 12982bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# determined imposters. 12992bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_ltwrapper_p () 13002bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 13012bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1" 13022bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 13032bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 13042bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 13052bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_execute_cmds commands fail_cmd 13062bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Execute tilde-delimited COMMANDS. 13072bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# If FAIL_CMD is given, eval that upon failure. 13082bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# FAIL_CMD may read-access the current command in variable CMD! 13092bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_execute_cmds () 13102bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 13112bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $opt_debug 13122bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian save_ifs=$IFS; IFS='~' 13132bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for cmd in $1; do 13142bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian IFS=$save_ifs 13152bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval cmd=\"$cmd\" 13162bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_show_eval "$cmd" "${2-:}" 13172bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 13182bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian IFS=$save_ifs 13192bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 13202bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 13212bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 13222bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_source file 13232bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Source FILE, adding directory component if necessary. 13242bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Note that it is not necessary on cygwin/mingw to append a dot to 13252bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# FILE even if both FILE and FILE.exe exist: automatic-append-.exe 13262bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# behavior happens only for exec(3), not for open(2)! Also, sourcing 13272bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# `FILE.' does not work on cygwin managed mounts. 13282bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_source () 13292bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 13302bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $opt_debug 13312bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $1 in 13322bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian */* | *\\*) . "$1" ;; 13332bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) . "./$1" ;; 13342bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 13352bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 13362bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 13372bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 13382bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_resolve_sysroot PATH 13392bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Replace a leading = in PATH with a sysroot. Store the result into 13402bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_resolve_sysroot_result 13412bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_resolve_sysroot () 13422bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 13432bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_resolve_sysroot_result=$1 13442bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $func_resolve_sysroot_result in 13452bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian =*) 13462bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_stripname '=' '' "$func_resolve_sysroot_result" 13472bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_resolve_sysroot_result=$lt_sysroot$func_stripname_result 13482bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 13492bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 13502bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 13512bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 13522bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_replace_sysroot PATH 13532bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# If PATH begins with the sysroot, replace it with = and 13542bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# store the result into func_replace_sysroot_result. 13552bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_replace_sysroot () 13562bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 13572bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case "$lt_sysroot:$1" in 13582bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ?*:"$lt_sysroot"*) 13592bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_stripname "$lt_sysroot" '' "$1" 13602bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_replace_sysroot_result="=$func_stripname_result" 13612bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 13622bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) 13632bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Including no sysroot. 13642bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_replace_sysroot_result=$1 13652bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 13662bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 13672bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 13682bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 13692bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_infer_tag arg 13702bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Infer tagged configuration to use if any are available and 13712bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# if one wasn't chosen via the "--tag" command line option. 13722bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Only attempt this if the compiler in the base compile 13732bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# command doesn't match the default compiler. 13742bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# arg is usually of the form 'gcc ...' 13752bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_infer_tag () 13762bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 13772bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $opt_debug 13782bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$available_tags" && test -z "$tagname"; then 13792bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian CC_quoted= 13802bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for arg in $CC; do 13812bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append_quoted CC_quoted "$arg" 13822bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 13832bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian CC_expanded=`func_echo_all $CC` 13842bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian CC_quoted_expanded=`func_echo_all $CC_quoted` 13852bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $@ in 13862bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Blanks in the command may have been stripped by the calling shell, 13872bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # but not from the CC environment variable when configure was run. 13882bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ 13892bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;; 13902bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Blanks at the start of $base_compile will cause this to fail 13912bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # if we don't check for them as well. 13922bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) 13932bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for z in $available_tags; do 13942bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then 13952bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Evaluate the configuration. 13962bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" 13972bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian CC_quoted= 13982bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for arg in $CC; do 13992bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Double-quote args containing other shell metacharacters. 14002bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append_quoted CC_quoted "$arg" 14012bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 14022bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian CC_expanded=`func_echo_all $CC` 14032bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian CC_quoted_expanded=`func_echo_all $CC_quoted` 14042bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case "$@ " in 14052bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ 14062bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) 14072bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # The compiler in the base compile command matches 14082bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # the one in the tagged configuration. 14092bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Assume this is the tagged configuration we want. 14102bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian tagname=$z 14112bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian break 14122bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 14132bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 14142bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 14152bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 14162bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # If $tagname still isn't set, then no tagged configuration 14172bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # was found and let the user know that the "--tag" command 14182bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # line option must be used. 14192bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -z "$tagname"; then 14202bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_echo "unable to infer tagged configuration" 14212bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_fatal_error "specify a tag with \`--tag'" 14222bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# else 14232bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_verbose "using $tagname tagged configuration" 14242bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 14252bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 14262bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 14272bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 14282bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 14292bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 14302bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 14312bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 14322bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_write_libtool_object output_name pic_name nonpic_name 14332bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Create a libtool object file (analogous to a ".la" file), 14342bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# but don't create it if we're doing a dry run. 14352bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_write_libtool_object () 14362bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 14372bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian write_libobj=${1} 14382bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$build_libtool_libs" = yes; then 14392bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian write_lobj=\'${2}\' 14402bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 14412bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian write_lobj=none 14422bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 14432bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 14442bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$build_old_libs" = yes; then 14452bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian write_oldobj=\'${3}\' 14462bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 14472bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian write_oldobj=none 14482bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 14492bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 14502bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $opt_dry_run || { 14512bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian cat >${write_libobj}T <<EOF 14522bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# $write_libobj - a libtool object file 14532bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION 14542bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# 14552bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Please DO NOT delete this file! 14562bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# It is necessary for linking the library. 14572bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 14582bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Name of the PIC object. 14592bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianpic_object=$write_lobj 14602bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 14612bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Name of the non-PIC object 14622bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramaniannon_pic_object=$write_oldobj 14632bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 14642bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianEOF 14652bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $MV "${write_libobj}T" "${write_libobj}" 14662bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian } 14672bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 14682bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 14692bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 14702bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian################################################## 14712bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# FILE NAME AND PATH CONVERSION HELPER FUNCTIONS # 14722bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian################################################## 14732bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 14742bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_convert_core_file_wine_to_w32 ARG 14752bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Helper function used by file name conversion functions when $build is *nix, 14762bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# and $host is mingw, cygwin, or some other w32 environment. Relies on a 14772bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# correctly configured wine environment available, with the winepath program 14782bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# in $build's $PATH. 14792bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# 14802bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# ARG is the $build file name to be converted to w32 format. 14812bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Result is available in $func_convert_core_file_wine_to_w32_result, and will 14822bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# be empty on error (or when ARG is empty) 14832bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_convert_core_file_wine_to_w32 () 14842bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 14852bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $opt_debug 14862bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_convert_core_file_wine_to_w32_result="$1" 14872bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$1"; then 14882bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Unfortunately, winepath does not exit with a non-zero error code, so we 14892bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # are forced to check the contents of stdout. On the other hand, if the 14902bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # command is not found, the shell will set an exit code of 127 and print 14912bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # *an error message* to stdout. So we must check for both error code of 14922bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # zero AND non-empty stdout, which explains the odd construction: 14932bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_convert_core_file_wine_to_w32_tmp=`winepath -w "$1" 2>/dev/null` 14942bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$?" -eq 0 && test -n "${func_convert_core_file_wine_to_w32_tmp}"; then 14952bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" | 14962bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $SED -e "$lt_sed_naive_backslashify"` 14972bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 14982bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_convert_core_file_wine_to_w32_result= 14992bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 15002bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 15012bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 15022bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# end: func_convert_core_file_wine_to_w32 15032bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 15042bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 15052bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_convert_core_path_wine_to_w32 ARG 15062bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Helper function used by path conversion functions when $build is *nix, and 15072bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# $host is mingw, cygwin, or some other w32 environment. Relies on a correctly 15082bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# configured wine environment available, with the winepath program in $build's 15092bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# $PATH. Assumes ARG has no leading or trailing path separator characters. 15102bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# 15112bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# ARG is path to be converted from $build format to win32. 15122bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Result is available in $func_convert_core_path_wine_to_w32_result. 15132bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Unconvertible file (directory) names in ARG are skipped; if no directory names 15142bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# are convertible, then the result may be empty. 15152bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_convert_core_path_wine_to_w32 () 15162bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 15172bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $opt_debug 15182bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # unfortunately, winepath doesn't convert paths, only file names 15192bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_convert_core_path_wine_to_w32_result="" 15202bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$1"; then 15212bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian oldIFS=$IFS 15222bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian IFS=: 15232bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for func_convert_core_path_wine_to_w32_f in $1; do 15242bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian IFS=$oldIFS 15252bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f" 15262bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$func_convert_core_file_wine_to_w32_result" ; then 15272bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -z "$func_convert_core_path_wine_to_w32_result"; then 15282bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_convert_core_path_wine_to_w32_result="$func_convert_core_file_wine_to_w32_result" 15292bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 15302bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result" 15312bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 15322bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 15332bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 15342bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian IFS=$oldIFS 15352bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 15362bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 15372bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# end: func_convert_core_path_wine_to_w32 15382bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 15392bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 15402bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_cygpath ARGS... 15412bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Wrapper around calling the cygpath program via LT_CYGPATH. This is used when 15422bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2) 15432bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or 15442bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# (2), returns the Cygwin file name or path in func_cygpath_result (input 15452bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# file name or path is assumed to be in w32 format, as previously converted 15462bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# from $build's *nix or MSYS format). In case (3), returns the w32 file name 15472bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# or path in func_cygpath_result (input file name or path is assumed to be in 15482bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Cygwin format). Returns an empty string on error. 15492bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# 15502bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# ARGS are passed to cygpath, with the last one being the file name or path to 15512bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# be converted. 15522bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# 15532bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH 15542bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# environment variable; do not put it in $PATH. 15552bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_cygpath () 15562bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 15572bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $opt_debug 15582bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then 15592bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null` 15602bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$?" -ne 0; then 15612bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # on failure, ensure result is empty 15622bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_cygpath_result= 15632bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 15642bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 15652bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_cygpath_result= 15662bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_error "LT_CYGPATH is empty or specifies non-existent file: \`$LT_CYGPATH'" 15672bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 15682bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 15692bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian#end: func_cygpath 15702bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 15712bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 15722bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_convert_core_msys_to_w32 ARG 15732bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Convert file name or path ARG from MSYS format to w32 format. Return 15742bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# result in func_convert_core_msys_to_w32_result. 15752bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_convert_core_msys_to_w32 () 15762bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 15772bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $opt_debug 15782bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # awkward: cmd appends spaces to result 15792bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null | 15802bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"` 15812bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 15822bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian#end: func_convert_core_msys_to_w32 15832bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 15842bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 15852bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_convert_file_check ARG1 ARG2 15862bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Verify that ARG1 (a file name in $build format) was converted to $host 15872bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# format in ARG2. Otherwise, emit an error message, but continue (resetting 15882bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_to_host_file_result to ARG1). 15892bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_convert_file_check () 15902bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 15912bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $opt_debug 15922bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -z "$2" && test -n "$1" ; then 15932bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_error "Could not determine host file name corresponding to" 15942bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_error " \`$1'" 15952bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_error "Continuing, but uninstalled executables may not work." 15962bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Fallback: 15972bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_to_host_file_result="$1" 15982bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 15992bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 16002bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# end func_convert_file_check 16012bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 16022bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 16032bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH 16042bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Verify that FROM_PATH (a path in $build format) was converted to $host 16052bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# format in TO_PATH. Otherwise, emit an error message, but continue, resetting 16062bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_to_host_file_result to a simplistic fallback value (see below). 16072bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_convert_path_check () 16082bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 16092bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $opt_debug 16102bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -z "$4" && test -n "$3"; then 16112bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_error "Could not determine the host path corresponding to" 16122bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_error " \`$3'" 16132bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_error "Continuing, but uninstalled executables may not work." 16142bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Fallback. This is a deliberately simplistic "conversion" and 16152bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # should not be "improved". See libtool.info. 16162bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "x$1" != "x$2"; then 16172bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian lt_replace_pathsep_chars="s|$1|$2|g" 16182bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_to_host_path_result=`echo "$3" | 16192bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $SED -e "$lt_replace_pathsep_chars"` 16202bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 16212bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_to_host_path_result="$3" 16222bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 16232bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 16242bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 16252bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# end func_convert_path_check 16262bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 16272bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 16282bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG 16292bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT 16302bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# and appending REPL if ORIG matches BACKPAT. 16312bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_convert_path_front_back_pathsep () 16322bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 16332bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $opt_debug 16342bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $4 in 16352bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $1 ) func_to_host_path_result="$3$func_to_host_path_result" 16362bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 16372bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 16382bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $4 in 16392bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $2 ) func_append func_to_host_path_result "$3" 16402bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 16412bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 16422bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 16432bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# end func_convert_path_front_back_pathsep 16442bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 16452bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 16462bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian################################################## 16472bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# $build to $host FILE NAME CONVERSION FUNCTIONS # 16482bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian################################################## 16492bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# invoked via `$to_host_file_cmd ARG' 16502bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# 16512bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# In each case, ARG is the path to be converted from $build to $host format. 16522bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Result will be available in $func_to_host_file_result. 16532bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 16542bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 16552bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_to_host_file ARG 16562bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Converts the file name ARG from $build format to $host format. Return result 16572bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# in func_to_host_file_result. 16582bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_to_host_file () 16592bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 16602bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $opt_debug 16612bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $to_host_file_cmd "$1" 16622bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 16632bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# end func_to_host_file 16642bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 16652bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 16662bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_to_tool_file ARG LAZY 16672bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# converts the file name ARG from $build format to toolchain format. Return 16682bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# result in func_to_tool_file_result. If the conversion in use is listed 16692bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# in (the comma separated) LAZY, no conversion takes place. 16702bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_to_tool_file () 16712bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 16722bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $opt_debug 16732bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case ,$2, in 16742bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *,"$to_tool_file_cmd",*) 16752bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_to_tool_file_result=$1 16762bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 16772bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) 16782bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $to_tool_file_cmd "$1" 16792bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_to_tool_file_result=$func_to_host_file_result 16802bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 16812bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 16822bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 16832bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# end func_to_tool_file 16842bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 16852bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 16862bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_convert_file_noop ARG 16872bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Copy ARG to func_to_host_file_result. 16882bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_convert_file_noop () 16892bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 16902bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_to_host_file_result="$1" 16912bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 16922bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# end func_convert_file_noop 16932bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 16942bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 16952bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_convert_file_msys_to_w32 ARG 16962bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic 16972bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# conversion to w32 is not available inside the cwrapper. Returns result in 16982bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_to_host_file_result. 16992bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_convert_file_msys_to_w32 () 17002bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 17012bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $opt_debug 17022bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_to_host_file_result="$1" 17032bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$1"; then 17042bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_convert_core_msys_to_w32 "$1" 17052bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_to_host_file_result="$func_convert_core_msys_to_w32_result" 17062bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 17072bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_convert_file_check "$1" "$func_to_host_file_result" 17082bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 17092bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# end func_convert_file_msys_to_w32 17102bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 17112bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 17122bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_convert_file_cygwin_to_w32 ARG 17132bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Convert file name ARG from Cygwin to w32 format. Returns result in 17142bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_to_host_file_result. 17152bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_convert_file_cygwin_to_w32 () 17162bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 17172bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $opt_debug 17182bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_to_host_file_result="$1" 17192bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$1"; then 17202bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # because $build is cygwin, we call "the" cygpath in $PATH; no need to use 17212bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # LT_CYGPATH in this case. 17222bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_to_host_file_result=`cygpath -m "$1"` 17232bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 17242bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_convert_file_check "$1" "$func_to_host_file_result" 17252bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 17262bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# end func_convert_file_cygwin_to_w32 17272bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 17282bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 17292bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_convert_file_nix_to_w32 ARG 17302bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Convert file name ARG from *nix to w32 format. Requires a wine environment 17312bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# and a working winepath. Returns result in func_to_host_file_result. 17322bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_convert_file_nix_to_w32 () 17332bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 17342bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $opt_debug 17352bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_to_host_file_result="$1" 17362bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$1"; then 17372bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_convert_core_file_wine_to_w32 "$1" 17382bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_to_host_file_result="$func_convert_core_file_wine_to_w32_result" 17392bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 17402bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_convert_file_check "$1" "$func_to_host_file_result" 17412bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 17422bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# end func_convert_file_nix_to_w32 17432bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 17442bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 17452bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_convert_file_msys_to_cygwin ARG 17462bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Convert file name ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. 17472bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Returns result in func_to_host_file_result. 17482bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_convert_file_msys_to_cygwin () 17492bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 17502bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $opt_debug 17512bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_to_host_file_result="$1" 17522bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$1"; then 17532bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_convert_core_msys_to_w32 "$1" 17542bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_cygpath -u "$func_convert_core_msys_to_w32_result" 17552bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_to_host_file_result="$func_cygpath_result" 17562bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 17572bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_convert_file_check "$1" "$func_to_host_file_result" 17582bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 17592bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# end func_convert_file_msys_to_cygwin 17602bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 17612bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 17622bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_convert_file_nix_to_cygwin ARG 17632bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Convert file name ARG from *nix to Cygwin format. Requires Cygwin installed 17642bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# in a wine environment, working winepath, and LT_CYGPATH set. Returns result 17652bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# in func_to_host_file_result. 17662bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_convert_file_nix_to_cygwin () 17672bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 17682bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $opt_debug 17692bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_to_host_file_result="$1" 17702bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$1"; then 17712bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # convert from *nix to w32, then use cygpath to convert from w32 to cygwin. 17722bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_convert_core_file_wine_to_w32 "$1" 17732bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_cygpath -u "$func_convert_core_file_wine_to_w32_result" 17742bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_to_host_file_result="$func_cygpath_result" 17752bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 17762bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_convert_file_check "$1" "$func_to_host_file_result" 17772bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 17782bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# end func_convert_file_nix_to_cygwin 17792bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 17802bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 17812bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian############################################# 17822bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# $build to $host PATH CONVERSION FUNCTIONS # 17832bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian############################################# 17842bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# invoked via `$to_host_path_cmd ARG' 17852bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# 17862bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# In each case, ARG is the path to be converted from $build to $host format. 17872bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# The result will be available in $func_to_host_path_result. 17882bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# 17892bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Path separators are also converted from $build format to $host format. If 17902bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# ARG begins or ends with a path separator character, it is preserved (but 17912bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# converted to $host format) on output. 17922bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# 17932bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# All path conversion functions are named using the following convention: 17942bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# file name conversion function : func_convert_file_X_to_Y () 17952bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# path conversion function : func_convert_path_X_to_Y () 17962bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# where, for any given $build/$host combination the 'X_to_Y' value is the 17972bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# same. If conversion functions are added for new $build/$host combinations, 17982bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# the two new functions must follow this pattern, or func_init_to_host_path_cmd 17992bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# will break. 18002bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 18012bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 18022bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_init_to_host_path_cmd 18032bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Ensures that function "pointer" variable $to_host_path_cmd is set to the 18042bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# appropriate value, based on the value of $to_host_file_cmd. 18052bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianto_host_path_cmd= 18062bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_init_to_host_path_cmd () 18072bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 18082bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $opt_debug 18092bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -z "$to_host_path_cmd"; then 18102bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_stripname 'func_convert_file_' '' "$to_host_file_cmd" 18112bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian to_host_path_cmd="func_convert_path_${func_stripname_result}" 18122bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 18132bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 18142bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 18152bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 18162bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_to_host_path ARG 18172bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Converts the path ARG from $build format to $host format. Return result 18182bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# in func_to_host_path_result. 18192bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_to_host_path () 18202bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 18212bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $opt_debug 18222bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_init_to_host_path_cmd 18232bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $to_host_path_cmd "$1" 18242bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 18252bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# end func_to_host_path 18262bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 18272bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 18282bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_convert_path_noop ARG 18292bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Copy ARG to func_to_host_path_result. 18302bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_convert_path_noop () 18312bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 18322bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_to_host_path_result="$1" 18332bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 18342bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# end func_convert_path_noop 18352bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 18362bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 18372bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_convert_path_msys_to_w32 ARG 18382bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic 18392bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# conversion to w32 is not available inside the cwrapper. Returns result in 18402bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_to_host_path_result. 18412bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_convert_path_msys_to_w32 () 18422bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 18432bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $opt_debug 18442bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_to_host_path_result="$1" 18452bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$1"; then 18462bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Remove leading and trailing path separator characters from ARG. MSYS 18472bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # behavior is inconsistent here; cygpath turns them into '.;' and ';.'; 18482bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # and winepath ignores them completely. 18492bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_stripname : : "$1" 18502bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_to_host_path_tmp1=$func_stripname_result 18512bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" 18522bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_to_host_path_result="$func_convert_core_msys_to_w32_result" 18532bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_convert_path_check : ";" \ 18542bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian "$func_to_host_path_tmp1" "$func_to_host_path_result" 18552bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" 18562bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 18572bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 18582bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# end func_convert_path_msys_to_w32 18592bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 18602bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 18612bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_convert_path_cygwin_to_w32 ARG 18622bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Convert path ARG from Cygwin to w32 format. Returns result in 18632bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_to_host_file_result. 18642bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_convert_path_cygwin_to_w32 () 18652bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 18662bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $opt_debug 18672bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_to_host_path_result="$1" 18682bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$1"; then 18692bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # See func_convert_path_msys_to_w32: 18702bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_stripname : : "$1" 18712bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_to_host_path_tmp1=$func_stripname_result 18722bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"` 18732bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_convert_path_check : ";" \ 18742bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian "$func_to_host_path_tmp1" "$func_to_host_path_result" 18752bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" 18762bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 18772bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 18782bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# end func_convert_path_cygwin_to_w32 18792bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 18802bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 18812bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_convert_path_nix_to_w32 ARG 18822bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Convert path ARG from *nix to w32 format. Requires a wine environment and 18832bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# a working winepath. Returns result in func_to_host_file_result. 18842bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_convert_path_nix_to_w32 () 18852bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 18862bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $opt_debug 18872bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_to_host_path_result="$1" 18882bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$1"; then 18892bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # See func_convert_path_msys_to_w32: 18902bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_stripname : : "$1" 18912bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_to_host_path_tmp1=$func_stripname_result 18922bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" 18932bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_to_host_path_result="$func_convert_core_path_wine_to_w32_result" 18942bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_convert_path_check : ";" \ 18952bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian "$func_to_host_path_tmp1" "$func_to_host_path_result" 18962bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" 18972bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 18982bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 18992bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# end func_convert_path_nix_to_w32 19002bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 19012bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 19022bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_convert_path_msys_to_cygwin ARG 19032bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Convert path ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. 19042bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Returns result in func_to_host_file_result. 19052bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_convert_path_msys_to_cygwin () 19062bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 19072bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $opt_debug 19082bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_to_host_path_result="$1" 19092bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$1"; then 19102bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # See func_convert_path_msys_to_w32: 19112bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_stripname : : "$1" 19122bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_to_host_path_tmp1=$func_stripname_result 19132bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" 19142bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_cygpath -u -p "$func_convert_core_msys_to_w32_result" 19152bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_to_host_path_result="$func_cygpath_result" 19162bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_convert_path_check : : \ 19172bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian "$func_to_host_path_tmp1" "$func_to_host_path_result" 19182bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_convert_path_front_back_pathsep ":*" "*:" : "$1" 19192bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 19202bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 19212bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# end func_convert_path_msys_to_cygwin 19222bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 19232bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 19242bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_convert_path_nix_to_cygwin ARG 19252bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Convert path ARG from *nix to Cygwin format. Requires Cygwin installed in a 19262bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# a wine environment, working winepath, and LT_CYGPATH set. Returns result in 19272bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_to_host_file_result. 19282bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_convert_path_nix_to_cygwin () 19292bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 19302bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $opt_debug 19312bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_to_host_path_result="$1" 19322bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$1"; then 19332bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Remove leading and trailing path separator characters from 19342bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # ARG. msys behavior is inconsistent here, cygpath turns them 19352bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # into '.;' and ';.', and winepath ignores them completely. 19362bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_stripname : : "$1" 19372bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_to_host_path_tmp1=$func_stripname_result 19382bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" 19392bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result" 19402bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_to_host_path_result="$func_cygpath_result" 19412bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_convert_path_check : : \ 19422bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian "$func_to_host_path_tmp1" "$func_to_host_path_result" 19432bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_convert_path_front_back_pathsep ":*" "*:" : "$1" 19442bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 19452bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 19462bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# end func_convert_path_nix_to_cygwin 19472bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 19482bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 19492bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_mode_compile arg... 19502bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_mode_compile () 19512bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 19522bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $opt_debug 19532bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Get the compilation command and the source file. 19542bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian base_compile= 19552bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian srcfile="$nonopt" # always keep a non-empty value in "srcfile" 19562bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian suppress_opt=yes 19572bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian suppress_output= 19582bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian arg_mode=normal 19592bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian libobj= 19602bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian later= 19612bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian pie_flag= 19622bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 19632bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for arg 19642bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian do 19652bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $arg_mode in 19662bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian arg ) 19672bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # do not "continue". Instead, add this to base_compile 19682bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian lastarg="$arg" 19692bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian arg_mode=normal 19702bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 19712bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 19722bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian target ) 19732bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian libobj="$arg" 19742bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian arg_mode=normal 19752bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian continue 19762bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 19772bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 19782bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian normal ) 19792bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Accept any command-line options. 19802bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $arg in 19812bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -o) 19822bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test -n "$libobj" && \ 19832bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_fatal_error "you cannot specify \`-o' more than once" 19842bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian arg_mode=target 19852bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian continue 19862bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 19872bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 19882bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -pie | -fpie | -fPIE) 19892bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append pie_flag " $arg" 19902bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian continue 19912bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 19922bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 19932bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -shared | -static | -prefer-pic | -prefer-non-pic) 19942bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append later " $arg" 19952bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian continue 19962bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 19972bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 19982bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -no-suppress) 19992bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian suppress_opt=no 20002bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian continue 20012bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 20022bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 20032bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -Xcompiler) 20042bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian arg_mode=arg # the next one goes into the "base_compile" arg list 20052bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian continue # The current "srcfile" will either be retained or 20062bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; # replaced later. I would guess that would be a bug. 20072bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 20082bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -Wc,*) 20092bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_stripname '-Wc,' '' "$arg" 20102bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian args=$func_stripname_result 20112bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian lastarg= 20122bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian save_ifs="$IFS"; IFS=',' 20132bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for arg in $args; do 20142bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian IFS="$save_ifs" 20152bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append_quoted lastarg "$arg" 20162bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 20172bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian IFS="$save_ifs" 20182bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_stripname ' ' '' "$lastarg" 20192bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian lastarg=$func_stripname_result 20202bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 20212bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Add the arguments to base_compile. 20222bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append base_compile " $lastarg" 20232bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian continue 20242bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 20252bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 20262bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) 20272bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Accept the current argument as the source file. 20282bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # The previous "srcfile" becomes the current argument. 20292bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # 20302bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian lastarg="$srcfile" 20312bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian srcfile="$arg" 20322bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 20332bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac # case $arg 20342bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 20352bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac # case $arg_mode 20362bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 20372bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Aesthetically quote the previous argument. 20382bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append_quoted base_compile "$lastarg" 20392bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done # for arg 20402bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 20412bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $arg_mode in 20422bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian arg) 20432bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_fatal_error "you must specify an argument for -Xcompile" 20442bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 20452bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian target) 20462bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_fatal_error "you must specify a target with \`-o'" 20472bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 20482bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) 20492bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Get the name of the library object. 20502bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test -z "$libobj" && { 20512bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_basename "$srcfile" 20522bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian libobj="$func_basename_result" 20532bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian } 20542bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 20552bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 20562bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 20572bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Recognize several different file suffixes. 20582bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # If the user specifies -o file.o, it is replaced with file.lo 20592bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $libobj in 20602bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *.[cCFSifmso] | \ 20612bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *.ada | *.adb | *.ads | *.asm | \ 20622bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \ 20632bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *.[fF][09]? | *.for | *.java | *.go | *.obj | *.sx | *.cu | *.cup) 20642bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_xform "$libobj" 20652bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian libobj=$func_xform_result 20662bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 20672bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 20682bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 20692bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $libobj in 20702bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;; 20712bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) 20722bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_fatal_error "cannot determine name of library object from \`$libobj'" 20732bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 20742bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 20752bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 20762bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_infer_tag $base_compile 20772bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 20782bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for arg in $later; do 20792bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $arg in 20802bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -shared) 20812bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test "$build_libtool_libs" != yes && \ 20822bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_fatal_configuration "can not build a shared library" 20832bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian build_old_libs=no 20842bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian continue 20852bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 20862bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 20872bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -static) 20882bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian build_libtool_libs=no 20892bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian build_old_libs=yes 20902bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian continue 20912bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 20922bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 20932bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -prefer-pic) 20942bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian pic_mode=yes 20952bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian continue 20962bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 20972bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 20982bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -prefer-non-pic) 20992bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian pic_mode=no 21002bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian continue 21012bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 21022bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 21032bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 21042bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 21052bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_quote_for_eval "$libobj" 21062bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test "X$libobj" != "X$func_quote_for_eval_result" \ 21072bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \ 21082bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian && func_warning "libobj name \`$libobj' may not contain shell special characters." 21092bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_dirname_and_basename "$obj" "/" "" 21102bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian objname="$func_basename_result" 21112bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian xdir="$func_dirname_result" 21122bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian lobj=${xdir}$objdir/$objname 21132bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 21142bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test -z "$base_compile" && \ 21152bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_fatal_help "you must specify a compilation command" 21162bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 21172bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Delete any leftover library objects. 21182bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$build_old_libs" = yes; then 21192bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian removelist="$obj $lobj $libobj ${libobj}T" 21202bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 21212bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian removelist="$lobj $libobj ${libobj}T" 21222bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 21232bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 21242bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # On Cygwin there's no "real" PIC flag so we must build both object types 21252bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $host_os in 21262bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian cygwin* | mingw* | pw32* | os2* | cegcc*) 21272bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian pic_mode=default 21282bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 21292bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 21302bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then 21312bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # non-PIC code in shared libraries is not supported 21322bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian pic_mode=default 21332bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 21342bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 21352bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Calculate the filename of the output object if compiler does 21362bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # not support -o with -c 21372bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$compiler_c_o" = no; then 21382bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.${objext} 21392bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian lockfile="$output_obj.lock" 21402bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 21412bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian output_obj= 21422bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian need_locks=no 21432bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian lockfile= 21442bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 21452bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 21462bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Lock this critical section if it is needed 21472bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # We use this script file to make the link, it avoids creating a new file 21482bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$need_locks" = yes; then 21492bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do 21502bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_echo "Waiting for $lockfile to be removed" 21512bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian sleep 2 21522bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 21532bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian elif test "$need_locks" = warn; then 21542bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -f "$lockfile"; then 21552bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $ECHO "\ 21562bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian*** ERROR, $lockfile exists and contains: 21572bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian`cat $lockfile 2>/dev/null` 21582bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 21592bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianThis indicates that another process is trying to use the same 21602bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramaniantemporary object file, and libtool could not work around it because 21612bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianyour compiler does not support \`-c' and \`-o' together. If you 21622bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianrepeat this compilation, it may succeed, by chance, but you had better 21632bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianavoid parallel builds (make -j) in this platform, or get a better 21642bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramaniancompiler." 21652bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 21662bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $opt_dry_run || $RM $removelist 21672bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian exit $EXIT_FAILURE 21682bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 21692bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append removelist " $output_obj" 21702bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $ECHO "$srcfile" > "$lockfile" 21712bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 21722bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 21732bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $opt_dry_run || $RM $removelist 21742bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append removelist " $lockfile" 21752bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 21762bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 21772bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_to_tool_file "$srcfile" func_convert_file_msys_to_w32 21782bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian srcfile=$func_to_tool_file_result 21792bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_quote_for_eval "$srcfile" 21802bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian qsrcfile=$func_quote_for_eval_result 21812bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 21822bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Only build a PIC object if we are building libtool libraries. 21832bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$build_libtool_libs" = yes; then 21842bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Without this assignment, base_compile gets emptied. 21852bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fbsd_hideous_sh_bug=$base_compile 21862bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 21872bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$pic_mode" != no; then 21882bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian command="$base_compile $qsrcfile $pic_flag" 21892bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 21902bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Don't build PIC code 21912bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian command="$base_compile $qsrcfile" 21922bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 21932bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 21942bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_mkdir_p "$xdir$objdir" 21952bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 21962bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -z "$output_obj"; then 21972bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Place PIC objects in $objdir 21982bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append command " -o $lobj" 21992bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 22002bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 22012bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_show_eval_locale "$command" \ 22022bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE' 22032bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 22042bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$need_locks" = warn && 22052bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then 22062bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $ECHO "\ 22072bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian*** ERROR, $lockfile contains: 22082bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian`cat $lockfile 2>/dev/null` 22092bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 22102bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianbut it should contain: 22112bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian$srcfile 22122bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 22132bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianThis indicates that another process is trying to use the same 22142bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramaniantemporary object file, and libtool could not work around it because 22152bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianyour compiler does not support \`-c' and \`-o' together. If you 22162bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianrepeat this compilation, it may succeed, by chance, but you had better 22172bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianavoid parallel builds (make -j) in this platform, or get a better 22182bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramaniancompiler." 22192bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 22202bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $opt_dry_run || $RM $removelist 22212bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian exit $EXIT_FAILURE 22222bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 22232bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 22242bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Just move the object if needed, then go on to compile the next one 22252bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then 22262bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_show_eval '$MV "$output_obj" "$lobj"' \ 22272bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 'error=$?; $opt_dry_run || $RM $removelist; exit $error' 22282bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 22292bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 22302bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Allow error messages only from the first compilation. 22312bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$suppress_opt" = yes; then 22322bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian suppress_output=' >/dev/null 2>&1' 22332bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 22342bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 22352bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 22362bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Only build a position-dependent object if we build old libraries. 22372bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$build_old_libs" = yes; then 22382bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$pic_mode" != yes; then 22392bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Don't build PIC code 22402bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian command="$base_compile $qsrcfile$pie_flag" 22412bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 22422bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian command="$base_compile $qsrcfile $pic_flag" 22432bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 22442bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$compiler_c_o" = yes; then 22452bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append command " -o $obj" 22462bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 22472bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 22482bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Suppress compiler output if we already did a PIC compilation. 22492bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append command "$suppress_output" 22502bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_show_eval_locale "$command" \ 22512bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 22522bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 22532bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$need_locks" = warn && 22542bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then 22552bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $ECHO "\ 22562bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian*** ERROR, $lockfile contains: 22572bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian`cat $lockfile 2>/dev/null` 22582bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 22592bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianbut it should contain: 22602bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian$srcfile 22612bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 22622bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianThis indicates that another process is trying to use the same 22632bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramaniantemporary object file, and libtool could not work around it because 22642bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianyour compiler does not support \`-c' and \`-o' together. If you 22652bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianrepeat this compilation, it may succeed, by chance, but you had better 22662bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianavoid parallel builds (make -j) in this platform, or get a better 22672bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramaniancompiler." 22682bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 22692bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $opt_dry_run || $RM $removelist 22702bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian exit $EXIT_FAILURE 22712bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 22722bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 22732bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Just move the object if needed 22742bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then 22752bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_show_eval '$MV "$output_obj" "$obj"' \ 22762bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 'error=$?; $opt_dry_run || $RM $removelist; exit $error' 22772bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 22782bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 22792bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 22802bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $opt_dry_run || { 22812bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_write_libtool_object "$libobj" "$objdir/$objname" "$objname" 22822bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 22832bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Unlock the critical section if it was locked 22842bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$need_locks" != no; then 22852bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian removelist=$lockfile 22862bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $RM "$lockfile" 22872bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 22882bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian } 22892bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 22902bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian exit $EXIT_SUCCESS 22912bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 22922bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 22932bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian$opt_help || { 22942bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test "$opt_mode" = compile && func_mode_compile ${1+"$@"} 22952bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 22962bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 22972bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_mode_help () 22982bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 22992bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # We need to display help for each of the modes. 23002bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $opt_mode in 23012bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian "") 23022bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Generic help is extracted from the usage comments 23032bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # at the start of this file. 23042bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_help 23052bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 23062bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 23072bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian clean) 23082bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $ECHO \ 23092bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian"Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE... 23102bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 23112bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianRemove files from the build directory. 23122bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 23132bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianRM is the name of the program to use to delete files associated with each FILE 23142bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed 23152bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianto RM. 23162bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 23172bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianIf FILE is a libtool library, object or program, all the files associated 23182bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianwith it are deleted. Otherwise, only FILE itself is deleted using RM." 23192bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 23202bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 23212bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian compile) 23222bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $ECHO \ 23232bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian"Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE 23242bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 23252bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianCompile a source file into a libtool library object. 23262bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 23272bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianThis mode accepts the following additional options: 23282bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 23292bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -o OUTPUT-FILE set the output file name to OUTPUT-FILE 23302bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -no-suppress do not suppress compiler output for multiple passes 23312bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -prefer-pic try to build PIC objects only 23322bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -prefer-non-pic try to build non-PIC objects only 23332bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -shared do not build a \`.o' file suitable for static linking 23342bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -static only build a \`.o' file suitable for static linking 23352bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -Wc,FLAG pass FLAG directly to the compiler 23362bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 23372bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianCOMPILE-COMMAND is a command to be used in creating a \`standard' object file 23382bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfrom the given SOURCEFILE. 23392bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 23402bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianThe output file name is determined by removing the directory component from 23412bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianSOURCEFILE, then substituting the C source code suffix \`.c' with the 23422bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianlibrary object suffix, \`.lo'." 23432bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 23442bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 23452bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian execute) 23462bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $ECHO \ 23472bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian"Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]... 23482bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 23492bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianAutomatically set library path, then run a program. 23502bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 23512bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianThis mode accepts the following additional options: 23522bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 23532bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -dlopen FILE add the directory containing FILE to the library path 23542bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 23552bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianThis mode sets the library path environment variable according to \`-dlopen' 23562bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianflags. 23572bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 23582bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianIf any of the ARGS are libtool executable wrappers, then they are translated 23592bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianinto their corresponding uninstalled binary, and any of their required library 23602bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramaniandirectories are added to the library path. 23612bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 23622bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianThen, COMMAND is executed, with ARGS as arguments." 23632bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 23642bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 23652bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian finish) 23662bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $ECHO \ 23672bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian"Usage: $progname [OPTION]... --mode=finish [LIBDIR]... 23682bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 23692bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianComplete the installation of libtool libraries. 23702bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 23712bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianEach LIBDIR is a directory that contains libtool libraries. 23722bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 23732bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianThe commands that this mode executes may require superuser privileges. Use 23742bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianthe \`--dry-run' option if you just want to see what would be executed." 23752bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 23762bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 23772bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian install) 23782bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $ECHO \ 23792bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian"Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND... 23802bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 23812bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianInstall executables or libraries. 23822bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 23832bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianINSTALL-COMMAND is the installation command. The first component should be 23842bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianeither the \`install' or \`cp' program. 23852bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 23862bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianThe following components of INSTALL-COMMAND are treated specially: 23872bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 23882bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -inst-prefix-dir PREFIX-DIR Use PREFIX-DIR as a staging area for installation 23892bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 23902bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianThe rest of the components are interpreted as arguments to that command (only 23912bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianBSD-compatible install options are recognized)." 23922bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 23932bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 23942bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian link) 23952bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $ECHO \ 23962bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian"Usage: $progname [OPTION]... --mode=link LINK-COMMAND... 23972bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 23982bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianLink object files or libraries together to form another library, or to 23992bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramaniancreate an executable program. 24002bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 24012bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianLINK-COMMAND is a command using the C compiler that you would use to create 24022bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramaniana program from several object files. 24032bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 24042bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianThe following components of LINK-COMMAND are treated specially: 24052bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 24062bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -all-static do not do any dynamic linking at all 24072bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -avoid-version do not add a version suffix if possible 24082bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -bindir BINDIR specify path to binaries directory (for systems where 24092bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian libraries must be found in the PATH setting at runtime) 24102bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime 24112bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols 24122bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) 24132bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -export-symbols SYMFILE 24142bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian try to export only the symbols listed in SYMFILE 24152bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -export-symbols-regex REGEX 24162bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian try to export only the symbols matching REGEX 24172bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -LLIBDIR search LIBDIR for required installed libraries 24182bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -lNAME OUTPUT-FILE requires the installed library libNAME 24192bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -module build a library that can dlopened 24202bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -no-fast-install disable the fast-install mode 24212bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -no-install link a not-installable executable 24222bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -no-undefined declare that a library does not refer to external symbols 24232bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -o OUTPUT-FILE create OUTPUT-FILE from the specified objects 24242bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -objectlist FILE Use a list of object files found in FILE to specify objects 24252bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -precious-files-regex REGEX 24262bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian don't remove output files matching REGEX 24272bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -release RELEASE specify package release information 24282bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -rpath LIBDIR the created library will eventually be installed in LIBDIR 24292bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries 24302bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -shared only do dynamic linking of libtool libraries 24312bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -shrext SUFFIX override the standard shared library file extension 24322bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -static do not do any dynamic linking of uninstalled libtool libraries 24332bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -static-libtool-libs 24342bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian do not do any dynamic linking of libtool libraries 24352bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -version-info CURRENT[:REVISION[:AGE]] 24362bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian specify library version info [each variable defaults to 0] 24372bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -weak LIBNAME declare that the target provides the LIBNAME interface 24382bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -Wc,FLAG 24392bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -Xcompiler FLAG pass linker-specific FLAG directly to the compiler 24402bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -Wl,FLAG 24412bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -Xlinker FLAG pass linker-specific FLAG directly to the linker 24422bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -XCClinker FLAG pass link-specific FLAG to the compiler driver (CC) 24432bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 24442bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianAll other options (arguments beginning with \`-') are ignored. 24452bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 24462bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianEvery other argument is treated as a filename. Files ending in \`.la' are 24472bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramaniantreated as uninstalled libtool libraries, other files are standard or library 24482bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianobject files. 24492bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 24502bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianIf the OUTPUT-FILE ends in \`.la', then a libtool library is created, 24512bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianonly library objects (\`.lo' files) may be specified, and \`-rpath' is 24522bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianrequired, except when creating a convenience library. 24532bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 24542bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianIf OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created 24552bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianusing \`ar' and \`ranlib', or on Windows using \`lib'. 24562bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 24572bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianIf OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file 24582bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianis created, otherwise an executable program is created." 24592bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 24602bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 24612bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian uninstall) 24622bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $ECHO \ 24632bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian"Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... 24642bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 24652bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianRemove libraries from an installation directory. 24662bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 24672bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianRM is the name of the program to use to delete files associated with each FILE 24682bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed 24692bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianto RM. 24702bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 24712bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianIf FILE is a libtool library, all the files associated with it are deleted. 24722bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianOtherwise, only FILE itself is deleted using RM." 24732bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 24742bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 24752bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) 24762bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_fatal_help "invalid operation mode \`$opt_mode'" 24772bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 24782bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 24792bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 24802bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo 24812bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $ECHO "Try \`$progname --help' for more information about other modes." 24822bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 24832bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 24842bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Now that we've collected a possible --mode arg, show help if necessary 24852bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianif $opt_help; then 24862bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$opt_help" = :; then 24872bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_mode_help 24882bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 24892bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian { 24902bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_help noexit 24912bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for opt_mode in compile link execute install finish uninstall clean; do 24922bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_mode_help 24932bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 24942bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian } | sed -n '1p; 2,$s/^Usage:/ or: /p' 24952bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian { 24962bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_help noexit 24972bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for opt_mode in compile link execute install finish uninstall clean; do 24982bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo 24992bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_mode_help 25002bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 25012bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian } | 25022bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian sed '1d 25032bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian /^When reporting/,/^Report/{ 25042bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian H 25052bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian d 25062bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian } 25072bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $x 25082bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian /information about other modes/d 25092bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian /more detailed .*MODE/d 25102bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/' 25112bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 25122bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian exit $? 25132bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfi 25142bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 25152bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 25162bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_mode_execute arg... 25172bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_mode_execute () 25182bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 25192bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $opt_debug 25202bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # The first argument is the command name. 25212bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian cmd="$nonopt" 25222bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test -z "$cmd" && \ 25232bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_fatal_help "you must specify a COMMAND" 25242bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 25252bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Handle -dlopen flags immediately. 25262bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for file in $opt_dlopen; do 25272bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test -f "$file" \ 25282bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian || func_fatal_help "\`$file' is not a file" 25292bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 25302bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian dir= 25312bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $file in 25322bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *.la) 25332bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_resolve_sysroot "$file" 25342bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian file=$func_resolve_sysroot_result 25352bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 25362bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Check to see that this really is a libtool archive. 25372bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_lalib_unsafe_p "$file" \ 25382bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian || func_fatal_help "\`$lib' is not a valid libtool archive" 25392bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 25402bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Read the libtool library. 25412bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian dlname= 25422bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian library_names= 25432bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_source "$file" 25442bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 25452bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Skip this library if it cannot be dlopened. 25462bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -z "$dlname"; then 25472bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Warn if it was a shared library. 25482bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test -n "$library_names" && \ 25492bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_warning "\`$file' was not linked with \`-export-dynamic'" 25502bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian continue 25512bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 25522bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 25532bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_dirname "$file" "" "." 25542bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian dir="$func_dirname_result" 25552bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 25562bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -f "$dir/$objdir/$dlname"; then 25572bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append dir "/$objdir" 25582bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 25592bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test ! -f "$dir/$dlname"; then 25602bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 25612bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 25622bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 25632bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 25642bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 25652bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *.lo) 25662bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Just add the directory containing the .lo file. 25672bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_dirname "$file" "" "." 25682bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian dir="$func_dirname_result" 25692bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 25702bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 25712bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) 25722bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_warning "\`-dlopen' is ignored for non-libtool libraries and objects" 25732bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian continue 25742bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 25752bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 25762bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 25772bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Get the absolute pathname. 25782bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian absdir=`cd "$dir" && pwd` 25792bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test -n "$absdir" && dir="$absdir" 25802bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 25812bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Now add the directory to shlibpath_var. 25822bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if eval "test -z \"\$$shlibpath_var\""; then 25832bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval "$shlibpath_var=\"\$dir\"" 25842bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 25852bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" 25862bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 25872bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 25882bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 25892bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # This variable tells wrapper scripts just to set shlibpath_var 25902bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # rather than running their programs. 25912bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian libtool_execute_magic="$magic" 25922bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 25932bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Check if any of the arguments is a wrapper script. 25942bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian args= 25952bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for file 25962bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian do 25972bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $file in 25982bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -* | *.la | *.lo ) ;; 25992bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) 26002bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Do a test to see if this is really a libtool program. 26012bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if func_ltwrapper_script_p "$file"; then 26022bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_source "$file" 26032bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Transform arg to wrapped name. 26042bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian file="$progdir/$program" 26052bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian elif func_ltwrapper_executable_p "$file"; then 26062bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_ltwrapper_scriptname "$file" 26072bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_source "$func_ltwrapper_scriptname_result" 26082bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Transform arg to wrapped name. 26092bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian file="$progdir/$program" 26102bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 26112bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 26122bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 26132bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Quote arguments (to preserve shell metacharacters). 26142bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append_quoted args "$file" 26152bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 26162bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 26172bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "X$opt_dry_run" = Xfalse; then 26182bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$shlibpath_var"; then 26192bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Export the shlibpath_var. 26202bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval "export $shlibpath_var" 26212bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 26222bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 26232bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Restore saved environment variables 26242bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES 26252bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian do 26262bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval "if test \"\${save_$lt_var+set}\" = set; then 26272bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $lt_var=\$save_$lt_var; export $lt_var 26282bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 26292bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $lt_unset $lt_var 26302bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi" 26312bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 26322bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 26332bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Now prepare to actually exec the command. 26342bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian exec_cmd="\$cmd$args" 26352bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 26362bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Display what would be done. 26372bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$shlibpath_var"; then 26382bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\"" 26392bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo "export $shlibpath_var" 26402bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 26412bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $ECHO "$cmd$args" 26422bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian exit $EXIT_SUCCESS 26432bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 26442bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 26452bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 26462bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramaniantest "$opt_mode" = execute && func_mode_execute ${1+"$@"} 26472bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 26482bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 26492bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_mode_finish arg... 26502bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_mode_finish () 26512bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 26522bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $opt_debug 26532bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian libs= 26542bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian libdirs= 26552bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian admincmds= 26562bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 26572bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for opt in "$nonopt" ${1+"$@"} 26582bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian do 26592bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -d "$opt"; then 26602bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append libdirs " $opt" 26612bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 26622bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian elif test -f "$opt"; then 26632bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if func_lalib_unsafe_p "$opt"; then 26642bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append libs " $opt" 26652bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 26662bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_warning "\`$opt' is not a valid libtool archive" 26672bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 26682bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 26692bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 26702bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_fatal_error "invalid argument \`$opt'" 26712bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 26722bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 26732bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 26742bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$libs"; then 26752bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$lt_sysroot"; then 26762bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"` 26772bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;" 26782bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 26792bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian sysroot_cmd= 26802bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 26812bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 26822bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Remove sysroot references 26832bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if $opt_dry_run; then 26842bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for lib in $libs; do 26852bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo "removing references to $lt_sysroot and \`=' prefixes from $lib" 26862bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 26872bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 26882bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian tmpdir=`func_mktempdir` 26892bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for lib in $libs; do 26902bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian sed -e "${sysroot_cmd} s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \ 26912bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian > $tmpdir/tmp-la 26922bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian mv -f $tmpdir/tmp-la $lib 26932bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 26942bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ${RM}r "$tmpdir" 26952bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 26962bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 26972bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 26982bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then 26992bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for libdir in $libdirs; do 27002bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$finish_cmds"; then 27012bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Do each command in the finish commands. 27022bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_execute_cmds "$finish_cmds" 'admincmds="$admincmds 27032bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian'"$cmd"'"' 27042bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 27052bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$finish_eval"; then 27062bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Do the single finish_eval. 27072bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval cmds=\"$finish_eval\" 27082bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $opt_dry_run || eval "$cmds" || func_append admincmds " 27092bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $cmds" 27102bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 27112bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 27122bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 27132bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 27142bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Exit here if they wanted silent mode. 27152bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $opt_silent && exit $EXIT_SUCCESS 27162bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 27172bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then 27182bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo "----------------------------------------------------------------------" 27192bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo "Libraries have been installed in:" 27202bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for libdir in $libdirs; do 27212bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $ECHO " $libdir" 27222bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 27232bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo 27242bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo "If you ever happen to want to link against installed libraries" 27252bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo "in a given directory, LIBDIR, you must either use libtool, and" 27262bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo "specify the full pathname of the library, or use the \`-LLIBDIR'" 27272bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo "flag during linking and do at least one of the following:" 27282bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$shlibpath_var"; then 27292bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo " - add LIBDIR to the \`$shlibpath_var' environment variable" 27302bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo " during execution" 27312bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 27322bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$runpath_var"; then 27332bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo " - add LIBDIR to the \`$runpath_var' environment variable" 27342bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo " during linking" 27352bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 27362bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$hardcode_libdir_flag_spec"; then 27372bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian libdir=LIBDIR 27382bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval flag=\"$hardcode_libdir_flag_spec\" 27392bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 27402bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $ECHO " - use the \`$flag' linker flag" 27412bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 27422bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$admincmds"; then 27432bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $ECHO " - have your system administrator run these commands:$admincmds" 27442bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 27452bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -f /etc/ld.so.conf; then 27462bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" 27472bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 27482bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo 27492bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 27502bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo "See any operating system documentation about shared libraries for" 27512bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $host in 27522bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian solaris2.[6789]|solaris2.1[0-9]) 27532bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo "more information, such as the ld(1), crle(1) and ld.so(8) manual" 27542bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo "pages." 27552bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 27562bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) 27572bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo "more information, such as the ld(1) and ld.so(8) manual pages." 27582bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 27592bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 27602bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo "----------------------------------------------------------------------" 27612bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 27622bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian exit $EXIT_SUCCESS 27632bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 27642bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 27652bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramaniantest "$opt_mode" = finish && func_mode_finish ${1+"$@"} 27662bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 27672bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 27682bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_mode_install arg... 27692bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_mode_install () 27702bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 27712bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $opt_debug 27722bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # There may be an optional sh(1) argument at the beginning of 27732bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # install_prog (especially on Windows NT). 27742bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || 27752bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Allow the use of GNU shtool's install command. 27762bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $nonopt in *shtool*) :;; *) false;; esac; then 27772bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Aesthetically quote it. 27782bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_quote_for_eval "$nonopt" 27792bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian install_prog="$func_quote_for_eval_result " 27802bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian arg=$1 27812bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian shift 27822bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 27832bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian install_prog= 27842bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian arg=$nonopt 27852bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 27862bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 27872bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # The real first argument should be the name of the installation program. 27882bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Aesthetically quote it. 27892bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_quote_for_eval "$arg" 27902bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append install_prog "$func_quote_for_eval_result" 27912bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian install_shared_prog=$install_prog 27922bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case " $install_prog " in 27932bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *[\\\ /]cp\ *) install_cp=: ;; 27942bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) install_cp=false ;; 27952bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 27962bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 27972bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # We need to accept at least all the BSD install flags. 27982bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian dest= 27992bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian files= 28002bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian opts= 28012bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian prev= 28022bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian install_type= 28032bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian isdir=no 28042bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian stripme= 28052bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian no_mode=: 28062bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for arg 28072bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian do 28082bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian arg2= 28092bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$dest"; then 28102bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append files " $dest" 28112bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian dest=$arg 28122bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian continue 28132bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 28142bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 28152bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $arg in 28162bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -d) isdir=yes ;; 28172bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -f) 28182bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if $install_cp; then :; else 28192bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian prev=$arg 28202bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 28212bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 28222bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -g | -m | -o) 28232bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian prev=$arg 28242bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 28252bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -s) 28262bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian stripme=" -s" 28272bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian continue 28282bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 28292bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -*) 28302bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 28312bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) 28322bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # If the previous option needed an argument, then skip it. 28332bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$prev"; then 28342bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "x$prev" = x-m && test -n "$install_override_mode"; then 28352bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian arg2=$install_override_mode 28362bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian no_mode=false 28372bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 28382bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian prev= 28392bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 28402bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian dest=$arg 28412bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian continue 28422bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 28432bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 28442bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 28452bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 28462bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Aesthetically quote the argument. 28472bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_quote_for_eval "$arg" 28482bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append install_prog " $func_quote_for_eval_result" 28492bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$arg2"; then 28502bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_quote_for_eval "$arg2" 28512bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 28522bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append install_shared_prog " $func_quote_for_eval_result" 28532bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 28542bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 28552bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test -z "$install_prog" && \ 28562bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_fatal_help "you must specify an install program" 28572bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 28582bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test -n "$prev" && \ 28592bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_fatal_help "the \`$prev' option requires an argument" 28602bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 28612bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$install_override_mode" && $no_mode; then 28622bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if $install_cp; then :; else 28632bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_quote_for_eval "$install_override_mode" 28642bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append install_shared_prog " -m $func_quote_for_eval_result" 28652bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 28662bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 28672bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 28682bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -z "$files"; then 28692bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -z "$dest"; then 28702bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_fatal_help "no file or destination specified" 28712bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 28722bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_fatal_help "you must specify a destination" 28732bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 28742bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 28752bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 28762bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Strip any trailing slash from the destination. 28772bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_stripname '' '/' "$dest" 28782bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian dest=$func_stripname_result 28792bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 28802bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Check to see that the destination is a directory. 28812bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test -d "$dest" && isdir=yes 28822bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$isdir" = yes; then 28832bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian destdir="$dest" 28842bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian destname= 28852bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 28862bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_dirname_and_basename "$dest" "" "." 28872bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian destdir="$func_dirname_result" 28882bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian destname="$func_basename_result" 28892bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 28902bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Not a directory, so check to see that there is only one file specified. 28912bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian set dummy $files; shift 28922bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test "$#" -gt 1 && \ 28932bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_fatal_help "\`$dest' is not a directory" 28942bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 28952bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $destdir in 28962bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian [\\/]* | [A-Za-z]:[\\/]*) ;; 28972bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) 28982bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for file in $files; do 28992bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $file in 29002bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *.lo) ;; 29012bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) 29022bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_fatal_help "\`$destdir' must be an absolute directory name" 29032bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 29042bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 29052bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 29062bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 29072bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 29082bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 29092bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # This variable tells wrapper scripts just to set variables rather 29102bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # than running their programs. 29112bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian libtool_install_magic="$magic" 29122bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 29132bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian staticlibs= 29142bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian future_libdirs= 29152bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian current_libdirs= 29162bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for file in $files; do 29172bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 29182bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Do each installation. 29192bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $file in 29202bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *.$libext) 29212bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Do the static libraries later. 29222bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append staticlibs " $file" 29232bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 29242bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 29252bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *.la) 29262bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_resolve_sysroot "$file" 29272bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian file=$func_resolve_sysroot_result 29282bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 29292bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Check to see that this really is a libtool archive. 29302bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_lalib_unsafe_p "$file" \ 29312bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian || func_fatal_help "\`$file' is not a valid libtool archive" 29322bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 29332bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian library_names= 29342bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian old_library= 29352bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian relink_command= 29362bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_source "$file" 29372bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 29382bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Add the libdir to current_libdirs if it is the destination. 29392bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "X$destdir" = "X$libdir"; then 29402bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case "$current_libdirs " in 29412bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *" $libdir "*) ;; 29422bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) func_append current_libdirs " $libdir" ;; 29432bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 29442bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 29452bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Note the libdir as a future libdir. 29462bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case "$future_libdirs " in 29472bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *" $libdir "*) ;; 29482bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) func_append future_libdirs " $libdir" ;; 29492bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 29502bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 29512bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 29522bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_dirname "$file" "/" "" 29532bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian dir="$func_dirname_result" 29542bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append dir "$objdir" 29552bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 29562bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$relink_command"; then 29572bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Determine the prefix the user has applied to our future dir. 29582bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"` 29592bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 29602bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Don't allow the user to place us outside of our expected 29612bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # location b/c this prevents finding dependent libraries that 29622bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # are installed to the same prefix. 29632bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # At present, this check doesn't affect windows .dll's that 29642bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # are installed into $libdir/../bin (currently, that works fine) 29652bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # but it's something to keep an eye on. 29662bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test "$inst_prefix_dir" = "$destdir" && \ 29672bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir" 29682bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 29692bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$inst_prefix_dir"; then 29702bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Stick the inst_prefix_dir data into the link command. 29712bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` 29722bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 29732bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"` 29742bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 29752bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 29762bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_warning "relinking \`$file'" 29772bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_show_eval "$relink_command" \ 29782bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"' 29792bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 29802bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 29812bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # See the names of the shared library. 29822bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian set dummy $library_names; shift 29832bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$1"; then 29842bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian realname="$1" 29852bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian shift 29862bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 29872bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian srcname="$realname" 29882bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test -n "$relink_command" && srcname="$realname"T 29892bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 29902bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Install the shared library and build the symlinks. 29912bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \ 29922bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 'exit $?' 29932bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian tstripme="$stripme" 29942bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $host_os in 29952bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian cygwin* | mingw* | pw32* | cegcc*) 29962bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $realname in 29972bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *.dll.a) 29982bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian tstripme="" 29992bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 30002bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 30012bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 30022bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 30032bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$tstripme" && test -n "$striplib"; then 30042bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_show_eval "$striplib $destdir/$realname" 'exit $?' 30052bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 30062bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 30072bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$#" -gt 0; then 30082bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Delete the old symlinks, and create new ones. 30092bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Try `ln -sf' first, because the `ln' binary might depend on 30102bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # the symlink we replace! Solaris /bin/ln does not understand -f, 30112bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # so we also need to try rm && ln -s. 30122bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for linkname 30132bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian do 30142bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test "$linkname" != "$realname" \ 30152bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })" 30162bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 30172bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 30182bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 30192bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Do each command in the postinstall commands. 30202bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian lib="$destdir/$realname" 30212bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_execute_cmds "$postinstall_cmds" 'exit $?' 30222bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 30232bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 30242bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Install the pseudo-library for information purposes. 30252bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_basename "$file" 30262bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian name="$func_basename_result" 30272bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian instname="$dir/$name"i 30282bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' 30292bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 30302bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Maybe install the static library, too. 30312bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test -n "$old_library" && func_append staticlibs " $dir/$old_library" 30322bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 30332bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 30342bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *.lo) 30352bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Install (i.e. copy) a libtool object. 30362bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 30372bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Figure out destination file name, if it wasn't already specified. 30382bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$destname"; then 30392bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian destfile="$destdir/$destname" 30402bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 30412bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_basename "$file" 30422bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian destfile="$func_basename_result" 30432bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian destfile="$destdir/$destfile" 30442bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 30452bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 30462bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Deduce the name of the destination old-style object file. 30472bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $destfile in 30482bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *.lo) 30492bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_lo2o "$destfile" 30502bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian staticdest=$func_lo2o_result 30512bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 30522bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *.$objext) 30532bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian staticdest="$destfile" 30542bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian destfile= 30552bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 30562bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) 30572bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_fatal_help "cannot copy a libtool object to \`$destfile'" 30582bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 30592bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 30602bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 30612bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Install the libtool object if requested. 30622bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test -n "$destfile" && \ 30632bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_show_eval "$install_prog $file $destfile" 'exit $?' 30642bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 30652bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Install the old object if enabled. 30662bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$build_old_libs" = yes; then 30672bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Deduce the name of the old-style object file. 30682bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_lo2o "$file" 30692bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian staticobj=$func_lo2o_result 30702bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?' 30712bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 30722bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian exit $EXIT_SUCCESS 30732bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 30742bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 30752bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) 30762bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Figure out destination file name, if it wasn't already specified. 30772bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$destname"; then 30782bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian destfile="$destdir/$destname" 30792bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 30802bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_basename "$file" 30812bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian destfile="$func_basename_result" 30822bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian destfile="$destdir/$destfile" 30832bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 30842bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 30852bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # If the file is missing, and there is a .exe on the end, strip it 30862bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # because it is most likely a libtool script we actually want to 30872bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # install 30882bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian stripped_ext="" 30892bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $file in 30902bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *.exe) 30912bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test ! -f "$file"; then 30922bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_stripname '' '.exe' "$file" 30932bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian file=$func_stripname_result 30942bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian stripped_ext=".exe" 30952bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 30962bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 30972bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 30982bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 30992bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Do a test to see if this is really a libtool program. 31002bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $host in 31012bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *cygwin* | *mingw*) 31022bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if func_ltwrapper_executable_p "$file"; then 31032bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_ltwrapper_scriptname "$file" 31042bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian wrapper=$func_ltwrapper_scriptname_result 31052bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 31062bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_stripname '' '.exe' "$file" 31072bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian wrapper=$func_stripname_result 31082bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 31092bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 31102bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) 31112bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian wrapper=$file 31122bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 31132bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 31142bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if func_ltwrapper_script_p "$wrapper"; then 31152bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian notinst_deplibs= 31162bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian relink_command= 31172bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 31182bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_source "$wrapper" 31192bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 31202bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Check the variables that should have been set. 31212bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test -z "$generated_by_libtool_version" && \ 31222bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_fatal_error "invalid libtool wrapper script \`$wrapper'" 31232bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 31242bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian finalize=yes 31252bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for lib in $notinst_deplibs; do 31262bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Check to see that each library is installed. 31272bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian libdir= 31282bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -f "$lib"; then 31292bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_source "$lib" 31302bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 31312bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian libfile="$libdir/"`$ECHO "$lib" | $SED 's%^.*/%%g'` ### testsuite: skip nested quoting test 31322bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$libdir" && test ! -f "$libfile"; then 31332bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_warning "\`$lib' has not been installed in \`$libdir'" 31342bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian finalize=no 31352bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 31362bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 31372bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 31382bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian relink_command= 31392bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_source "$wrapper" 31402bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 31412bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian outputname= 31422bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$fast_install" = no && test -n "$relink_command"; then 31432bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $opt_dry_run || { 31442bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$finalize" = yes; then 31452bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian tmpdir=`func_mktempdir` 31462bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_basename "$file$stripped_ext" 31472bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian file="$func_basename_result" 31482bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian outputname="$tmpdir/$file" 31492bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Replace the output file specification. 31502bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'` 31512bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 31522bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $opt_silent || { 31532bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_quote_for_expand "$relink_command" 31542bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval "func_echo $func_quote_for_expand_result" 31552bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian } 31562bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if eval "$relink_command"; then : 31572bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 31582bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_error "error: relink \`$file' with the above command before installing it" 31592bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $opt_dry_run || ${RM}r "$tmpdir" 31602bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian continue 31612bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 31622bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian file="$outputname" 31632bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 31642bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_warning "cannot relink \`$file'" 31652bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 31662bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian } 31672bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 31682bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Install the binary that we compiled earlier. 31692bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"` 31702bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 31712bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 31722bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 31732bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # remove .exe since cygwin /usr/bin/install will append another 31742bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # one anyway 31752bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $install_prog,$host in 31762bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian */usr/bin/install*,*cygwin*) 31772bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $file:$destfile in 31782bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *.exe:*.exe) 31792bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # this is ok 31802bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 31812bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *.exe:*) 31822bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian destfile=$destfile.exe 31832bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 31842bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *:*.exe) 31852bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_stripname '' '.exe' "$destfile" 31862bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian destfile=$func_stripname_result 31872bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 31882bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 31892bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 31902bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 31912bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?' 31922bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $opt_dry_run || if test -n "$outputname"; then 31932bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ${RM}r "$tmpdir" 31942bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 31952bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 31962bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 31972bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 31982bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 31992bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for file in $staticlibs; do 32002bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_basename "$file" 32012bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian name="$func_basename_result" 32022bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 32032bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Set up the ranlib parameters. 32042bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian oldlib="$destdir/$name" 32052bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 32062bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian tool_oldlib=$func_to_tool_file_result 32072bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 32082bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_show_eval "$install_prog \$file \$oldlib" 'exit $?' 32092bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 32102bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$stripme" && test -n "$old_striplib"; then 32112bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_show_eval "$old_striplib $tool_oldlib" 'exit $?' 32122bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 32132bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 32142bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Do each command in the postinstall commands. 32152bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_execute_cmds "$old_postinstall_cmds" 'exit $?' 32162bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 32172bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 32182bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test -n "$future_libdirs" && \ 32192bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_warning "remember to run \`$progname --finish$future_libdirs'" 32202bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 32212bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$current_libdirs"; then 32222bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Maybe just do a dry run. 32232bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $opt_dry_run && current_libdirs=" -n$current_libdirs" 32242bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' 32252bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 32262bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian exit $EXIT_SUCCESS 32272bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 32282bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 32292bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 32302bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramaniantest "$opt_mode" = install && func_mode_install ${1+"$@"} 32312bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 32322bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 32332bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_generate_dlsyms outputname originator pic_p 32342bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Extract symbols from dlprefiles and create ${outputname}S.o with 32352bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# a dlpreopen symbol table. 32362bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_generate_dlsyms () 32372bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 32382bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $opt_debug 32392bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian my_outputname="$1" 32402bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian my_originator="$2" 32412bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian my_pic_p="${3-no}" 32422bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'` 32432bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian my_dlsyms= 32442bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 32452bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then 32462bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$NM" && test -n "$global_symbol_pipe"; then 32472bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian my_dlsyms="${my_outputname}S.c" 32482bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 32492bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_error "not configured to extract global symbols from dlpreopened files" 32502bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 32512bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 32522bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 32532bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$my_dlsyms"; then 32542bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $my_dlsyms in 32552bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian "") ;; 32562bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *.c) 32572bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Discover the nlist of each of the dlfiles. 32582bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian nlist="$output_objdir/${my_outputname}.nm" 32592bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 32602bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_show_eval "$RM $nlist ${nlist}S ${nlist}T" 32612bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 32622bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Parse the name list into a source file. 32632bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_verbose "creating $output_objdir/$my_dlsyms" 32642bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 32652bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\ 32662bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian/* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */ 32672bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian/* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */ 32682bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 32692bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian#ifdef __cplusplus 32702bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianextern \"C\" { 32712bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian#endif 32722bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 32732bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian#if defined(__GNUC__) && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4)) 32742bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian#pragma GCC diagnostic ignored \"-Wstrict-prototypes\" 32752bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian#endif 32762bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 32772bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ 32782bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) 32792bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian/* DATA imports from DLLs on WIN32 con't be const, because runtime 32802bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian relocations are performed -- see ld's documentation on pseudo-relocs. */ 32812bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# define LT_DLSYM_CONST 32822bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian#elif defined(__osf__) 32832bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian/* This system does not cope well with relocations in const data. */ 32842bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# define LT_DLSYM_CONST 32852bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian#else 32862bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# define LT_DLSYM_CONST const 32872bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian#endif 32882bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 32892bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian/* External symbol declarations for the compiler. */\ 32902bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian" 32912bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 32922bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$dlself" = yes; then 32932bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_verbose "generating symbol list for \`$output'" 32942bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 32952bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist" 32962bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 32972bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Add our own program objects to the symbol list. 32982bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP` 32992bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for progfile in $progfiles; do 33002bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_to_tool_file "$progfile" func_convert_file_msys_to_w32 33012bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_verbose "extracting global C symbols from \`$func_to_tool_file_result'" 33022bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'" 33032bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 33042bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 33052bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$exclude_expsyms"; then 33062bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $opt_dry_run || { 33072bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' 33082bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval '$MV "$nlist"T "$nlist"' 33092bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian } 33102bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 33112bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 33122bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$export_symbols_regex"; then 33132bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $opt_dry_run || { 33142bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' 33152bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval '$MV "$nlist"T "$nlist"' 33162bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian } 33172bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 33182bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 33192bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Prepare the list of exported symbols 33202bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -z "$export_symbols"; then 33212bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian export_symbols="$output_objdir/$outputname.exp" 33222bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $opt_dry_run || { 33232bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $RM $export_symbols 33242bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' 33252bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $host in 33262bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *cygwin* | *mingw* | *cegcc* ) 33272bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' 33282bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' 33292bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 33302bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 33312bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian } 33322bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 33332bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $opt_dry_run || { 33342bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' 33352bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' 33362bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval '$MV "$nlist"T "$nlist"' 33372bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $host in 33382bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *cygwin* | *mingw* | *cegcc* ) 33392bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' 33402bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' 33412bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 33422bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 33432bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian } 33442bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 33452bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 33462bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 33472bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for dlprefile in $dlprefiles; do 33482bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_verbose "extracting global C symbols from \`$dlprefile'" 33492bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_basename "$dlprefile" 33502bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian name="$func_basename_result" 33512bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $host in 33522bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *cygwin* | *mingw* | *cegcc* ) 33532bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # if an import library, we need to obtain dlname 33542bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if func_win32_import_lib_p "$dlprefile"; then 33552bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_tr_sh "$dlprefile" 33562bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval "curr_lafile=\$libfile_$func_tr_sh_result" 33572bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian dlprefile_dlbasename="" 33582bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then 33592bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Use subshell, to avoid clobbering current variable values 33602bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"` 33612bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$dlprefile_dlname" ; then 33622bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_basename "$dlprefile_dlname" 33632bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian dlprefile_dlbasename="$func_basename_result" 33642bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 33652bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # no lafile. user explicitly requested -dlpreopen <import library>. 33662bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $sharedlib_from_linklib_cmd "$dlprefile" 33672bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian dlprefile_dlbasename=$sharedlib_from_linklib_result 33682bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 33692bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 33702bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $opt_dry_run || { 33712bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$dlprefile_dlbasename" ; then 33722bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"' 33732bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 33742bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_warning "Could not compute DLL name from $name" 33752bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval '$ECHO ": $name " >> "$nlist"' 33762bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 33772bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 33782bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe | 33792bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'" 33802bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian } 33812bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else # not an import lib 33822bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $opt_dry_run || { 33832bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval '$ECHO ": $name " >> "$nlist"' 33842bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 33852bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" 33862bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian } 33872bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 33882bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 33892bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) 33902bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $opt_dry_run || { 33912bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval '$ECHO ": $name " >> "$nlist"' 33922bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 33932bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" 33942bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian } 33952bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 33962bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 33972bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 33982bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 33992bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $opt_dry_run || { 34002bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Make sure we have at least an empty file. 34012bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test -f "$nlist" || : > "$nlist" 34022bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 34032bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$exclude_expsyms"; then 34042bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T 34052bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $MV "$nlist"T "$nlist" 34062bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 34072bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 34082bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Try sorting and uniquifying the output. 34092bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if $GREP -v "^: " < "$nlist" | 34102bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if sort -k 3 </dev/null >/dev/null 2>&1; then 34112bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian sort -k 3 34122bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 34132bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian sort +2 34142bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi | 34152bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian uniq > "$nlist"S; then 34162bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian : 34172bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 34182bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $GREP -v "^: " < "$nlist" > "$nlist"S 34192bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 34202bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 34212bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -f "$nlist"S; then 34222bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"' 34232bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 34242bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo '/* NONE */' >> "$output_objdir/$my_dlsyms" 34252bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 34262bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 34272bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo >> "$output_objdir/$my_dlsyms" "\ 34282bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 34292bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian/* The mapping between symbol names and symbols. */ 34302bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramaniantypedef struct { 34312bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian const char *name; 34322bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian void *address; 34332bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} lt_dlsymlist; 34342bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianextern LT_DLSYM_CONST lt_dlsymlist 34352bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianlt_${my_prefix}_LTX_preloaded_symbols[]; 34362bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianLT_DLSYM_CONST lt_dlsymlist 34372bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianlt_${my_prefix}_LTX_preloaded_symbols[] = 34382bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{\ 34392bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian { \"$my_originator\", (void *) 0 }," 34402bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 34412bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $need_lib_prefix in 34422bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian no) 34432bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms" 34442bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 34452bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) 34462bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms" 34472bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 34482bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 34492bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo >> "$output_objdir/$my_dlsyms" "\ 34502bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian {0, (void *) 0} 34512bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian}; 34522bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 34532bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian/* This works around a problem in FreeBSD linker */ 34542bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian#ifdef FREEBSD_WORKAROUND 34552bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianstatic const void *lt_preloaded_setup() { 34562bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian return lt_${my_prefix}_LTX_preloaded_symbols; 34572bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 34582bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian#endif 34592bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 34602bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian#ifdef __cplusplus 34612bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 34622bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian#endif\ 34632bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian" 34642bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian } # !$opt_dry_run 34652bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 34662bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian pic_flag_for_symtable= 34672bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case "$compile_command " in 34682bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *" -static "*) ;; 34692bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) 34702bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $host in 34712bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # compiling the symbol table file with pic_flag works around 34722bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # a FreeBSD bug that causes programs to crash when -lm is 34732bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # linked before any other PIC object. But we must not use 34742bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # pic_flag when linking with -static. The problem exists in 34752bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. 34762bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *-*-freebsd2.*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) 34772bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;; 34782bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *-*-hpux*) 34792bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian pic_flag_for_symtable=" $pic_flag" ;; 34802bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) 34812bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "X$my_pic_p" != Xno; then 34822bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian pic_flag_for_symtable=" $pic_flag" 34832bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 34842bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 34852bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 34862bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 34872bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 34882bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian symtab_cflags= 34892bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for arg in $LTCFLAGS; do 34902bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $arg in 34912bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -pie | -fpie | -fPIE) ;; 34922bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) func_append symtab_cflags " $arg" ;; 34932bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 34942bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 34952bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 34962bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Now compile the dynamic symbol file. 34972bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?' 34982bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 34992bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Clean up the generated files. 35002bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"' 35012bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 35022bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Transform the symbol file into the correct name. 35032bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian symfileobj="$output_objdir/${my_outputname}S.$objext" 35042bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $host in 35052bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *cygwin* | *mingw* | *cegcc* ) 35062bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -f "$output_objdir/$my_outputname.def"; then 35072bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` 35082bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` 35092bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 35102bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` 35112bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` 35122bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 35132bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 35142bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) 35152bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` 35162bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` 35172bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 35182bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 35192bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 35202bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) 35212bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_fatal_error "unknown suffix for \`$my_dlsyms'" 35222bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 35232bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 35242bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 35252bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # We keep going just in case the user didn't refer to 35262bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # lt_preloaded_symbols. The linker will fail if global_symbol_pipe 35272bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # really was required. 35282bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 35292bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Nullify the symbol file. 35302bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"` 35312bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"` 35322bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 35332bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 35342bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 35352bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_win32_libid arg 35362bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# return the library type of file 'arg' 35372bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# 35382bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Need a lot of goo to handle *both* DLLs and import libs 35392bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Has to be a shell function in order to 'eat' the argument 35402bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# that is supplied when $file_magic_command is called. 35412bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Despite the name, also deal with 64 bit binaries. 35422bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_win32_libid () 35432bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 35442bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $opt_debug 35452bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian win32_libid_type="unknown" 35462bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian win32_fileres=`file -L $1 2>/dev/null` 35472bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $win32_fileres in 35482bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *ar\ archive\ import\ library*) # definitely import 35492bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian win32_libid_type="x86 archive import" 35502bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 35512bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *ar\ archive*) # could be an import, or static 35522bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD. 35532bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | 35542bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then 35552bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_to_tool_file "$1" func_convert_file_msys_to_w32 35562bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" | 35572bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $SED -n -e ' 35582bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 1,100{ 35592bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian / I /{ 35602bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian s,.*,import, 35612bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian p 35622bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian q 35632bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian } 35642bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian }'` 35652bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $win32_nmres in 35662bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian import*) win32_libid_type="x86 archive import";; 35672bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) win32_libid_type="x86 archive static";; 35682bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 35692bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 35702bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 35712bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *DLL*) 35722bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian win32_libid_type="x86 DLL" 35732bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 35742bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *executable*) # but shell scripts are "executable" too... 35752bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $win32_fileres in 35762bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *MS\ Windows\ PE\ Intel*) 35772bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian win32_libid_type="x86 DLL" 35782bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 35792bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 35802bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 35812bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 35822bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $ECHO "$win32_libid_type" 35832bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 35842bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 35852bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_cygming_dll_for_implib ARG 35862bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# 35872bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Platform-specific function to extract the 35882bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# name of the DLL associated with the specified 35892bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# import library ARG. 35902bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Invoked by eval'ing the libtool variable 35912bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# $sharedlib_from_linklib_cmd 35922bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Result is available in the variable 35932bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# $sharedlib_from_linklib_result 35942bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_cygming_dll_for_implib () 35952bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 35962bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $opt_debug 35972bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"` 35982bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 35992bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 36002bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs 36012bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# 36022bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# The is the core of a fallback implementation of a 36032bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# platform-specific function to extract the name of the 36042bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# DLL associated with the specified import library LIBNAME. 36052bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# 36062bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# SECTION_NAME is either .idata$6 or .idata$7, depending 36072bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# on the platform and compiler that created the implib. 36082bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# 36092bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Echos the name of the DLL associated with the 36102bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# specified import library. 36112bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_cygming_dll_for_implib_fallback_core () 36122bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 36132bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $opt_debug 36142bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"` 36152bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $OBJDUMP -s --section "$1" "$2" 2>/dev/null | 36162bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $SED '/^Contents of section '"$match_literal"':/{ 36172bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Place marker at beginning of archive member dllname section 36182bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian s/.*/====MARK====/ 36192bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian p 36202bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian d 36212bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian } 36222bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # These lines can sometimes be longer than 43 characters, but 36232bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # are always uninteresting 36242bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian /:[ ]*file format pe[i]\{,1\}-/d 36252bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian /^In archive [^:]*:/d 36262bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Ensure marker is printed 36272bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian /^====MARK====/p 36282bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Remove all lines with less than 43 characters 36292bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian /^.\{43\}/!d 36302bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # From remaining lines, remove first 43 characters 36312bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian s/^.\{43\}//' | 36322bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $SED -n ' 36332bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Join marker and all lines until next marker into a single line 36342bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian /^====MARK====/ b para 36352bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian H 36362bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $ b para 36372bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian b 36382bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian :para 36392bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian x 36402bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian s/\n//g 36412bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Remove the marker 36422bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian s/^====MARK====// 36432bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Remove trailing dots and whitespace 36442bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian s/[\. \t]*$// 36452bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Print 36462bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian /./p' | 36472bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # we now have a list, one entry per line, of the stringified 36482bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # contents of the appropriate section of all members of the 36492bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # archive which possess that section. Heuristic: eliminate 36502bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # all those which have a first or second character that is 36512bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # a '.' (that is, objdump's representation of an unprintable 36522bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # character.) This should work for all archives with less than 36532bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # 0x302f exports -- but will fail for DLLs whose name actually 36542bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # begins with a literal '.' or a single character followed by 36552bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # a '.'. 36562bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # 36572bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Of those that remain, print the first one. 36582bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $SED -e '/^\./d;/^.\./d;q' 36592bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 36602bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 36612bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_cygming_gnu_implib_p ARG 36622bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# This predicate returns with zero status (TRUE) if 36632bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# ARG is a GNU/binutils-style import library. Returns 36642bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# with nonzero status (FALSE) otherwise. 36652bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_cygming_gnu_implib_p () 36662bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 36672bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $opt_debug 36682bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_to_tool_file "$1" func_convert_file_msys_to_w32 36692bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'` 36702bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test -n "$func_cygming_gnu_implib_tmp" 36712bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 36722bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 36732bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_cygming_ms_implib_p ARG 36742bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# This predicate returns with zero status (TRUE) if 36752bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# ARG is an MS-style import library. Returns 36762bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# with nonzero status (FALSE) otherwise. 36772bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_cygming_ms_implib_p () 36782bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 36792bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $opt_debug 36802bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_to_tool_file "$1" func_convert_file_msys_to_w32 36812bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'` 36822bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test -n "$func_cygming_ms_implib_tmp" 36832bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 36842bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 36852bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_cygming_dll_for_implib_fallback ARG 36862bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Platform-specific function to extract the 36872bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# name of the DLL associated with the specified 36882bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# import library ARG. 36892bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# 36902bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# This fallback implementation is for use when $DLLTOOL 36912bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# does not support the --identify-strict option. 36922bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Invoked by eval'ing the libtool variable 36932bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# $sharedlib_from_linklib_cmd 36942bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Result is available in the variable 36952bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# $sharedlib_from_linklib_result 36962bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_cygming_dll_for_implib_fallback () 36972bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 36982bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $opt_debug 36992bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if func_cygming_gnu_implib_p "$1" ; then 37002bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # binutils import library 37012bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"` 37022bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian elif func_cygming_ms_implib_p "$1" ; then 37032bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # ms-generated import library 37042bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"` 37052bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 37062bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # unknown 37072bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian sharedlib_from_linklib_result="" 37082bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 37092bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 37102bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 37112bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 37122bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_extract_an_archive dir oldlib 37132bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_extract_an_archive () 37142bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 37152bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $opt_debug 37162bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian f_ex_an_ar_dir="$1"; shift 37172bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian f_ex_an_ar_oldlib="$1" 37182bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$lock_old_archive_extraction" = yes; then 37192bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian lockfile=$f_ex_an_ar_oldlib.lock 37202bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do 37212bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_echo "Waiting for $lockfile to be removed" 37222bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian sleep 2 37232bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 37242bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 37252bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \ 37262bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 'stat=$?; rm -f "$lockfile"; exit $stat' 37272bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$lock_old_archive_extraction" = yes; then 37282bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $opt_dry_run || rm -f "$lockfile" 37292bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 37302bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then 37312bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian : 37322bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 37332bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" 37342bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 37352bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 37362bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 37372bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 37382bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_extract_archives gentop oldlib ... 37392bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_extract_archives () 37402bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 37412bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $opt_debug 37422bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian my_gentop="$1"; shift 37432bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian my_oldlibs=${1+"$@"} 37442bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian my_oldobjs="" 37452bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian my_xlib="" 37462bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian my_xabs="" 37472bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian my_xdir="" 37482bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 37492bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for my_xlib in $my_oldlibs; do 37502bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Extract the objects. 37512bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $my_xlib in 37522bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; 37532bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) my_xabs=`pwd`"/$my_xlib" ;; 37542bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 37552bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_basename "$my_xlib" 37562bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian my_xlib="$func_basename_result" 37572bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian my_xlib_u=$my_xlib 37582bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian while :; do 37592bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case " $extracted_archives " in 37602bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *" $my_xlib_u "*) 37612bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_arith $extracted_serial + 1 37622bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian extracted_serial=$func_arith_result 37632bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian my_xlib_u=lt$extracted_serial-$my_xlib ;; 37642bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) break ;; 37652bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 37662bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 37672bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian extracted_archives="$extracted_archives $my_xlib_u" 37682bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian my_xdir="$my_gentop/$my_xlib_u" 37692bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 37702bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_mkdir_p "$my_xdir" 37712bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 37722bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $host in 37732bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *-darwin*) 37742bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_verbose "Extracting $my_xabs" 37752bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Do not bother doing anything if just a dry run 37762bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $opt_dry_run || { 37772bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian darwin_orig_dir=`pwd` 37782bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian cd $my_xdir || exit $? 37792bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian darwin_archive=$my_xabs 37802bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian darwin_curdir=`pwd` 37812bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian darwin_base_archive=`basename "$darwin_archive"` 37822bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true` 37832bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$darwin_arches"; then 37842bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'` 37852bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian darwin_arch= 37862bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_verbose "$darwin_base_archive has multiple architectures $darwin_arches" 37872bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for darwin_arch in $darwin_arches ; do 37882bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_mkdir_p "unfat-$$/${darwin_base_archive}-${darwin_arch}" 37892bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $LIPO -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" 37902bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" 37912bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_extract_an_archive "`pwd`" "${darwin_base_archive}" 37922bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian cd "$darwin_curdir" 37932bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" 37942bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done # $darwin_arches 37952bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ## Okay now we've a bunch of thin objects, gotta fatten them up :) 37962bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u` 37972bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian darwin_file= 37982bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian darwin_files= 37992bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for darwin_file in $darwin_filelist; do 38002bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP` 38012bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $LIPO -create -output "$darwin_file" $darwin_files 38022bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done # $darwin_filelist 38032bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $RM -rf unfat-$$ 38042bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian cd "$darwin_orig_dir" 38052bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 38062bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian cd $darwin_orig_dir 38072bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_extract_an_archive "$my_xdir" "$my_xabs" 38082bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi # $darwin_arches 38092bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian } # !$opt_dry_run 38102bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 38112bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) 38122bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_extract_an_archive "$my_xdir" "$my_xabs" 38132bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 38142bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 38152bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP` 38162bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 38172bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 38182bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_extract_archives_result="$my_oldobjs" 38192bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 38202bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 38212bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 38222bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_emit_wrapper [arg=no] 38232bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# 38242bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Emit a libtool wrapper script on stdout. 38252bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Don't directly open a file because we may want to 38262bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# incorporate the script contents within a cygwin/mingw 38272bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# wrapper executable. Must ONLY be called from within 38282bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_mode_link because it depends on a number of variables 38292bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# set therein. 38302bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# 38312bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR 38322bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# variable will take. If 'yes', then the emitted script 38332bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# will assume that the directory in which it is stored is 38342bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# the $objdir directory. This is a cygwin/mingw-specific 38352bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# behavior. 38362bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_emit_wrapper () 38372bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 38382bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_emit_wrapper_arg1=${1-no} 38392bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 38402bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $ECHO "\ 38412bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian#! $SHELL 38422bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 38432bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# $output - temporary wrapper script for $objdir/$outputname 38442bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION 38452bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# 38462bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# The $output program cannot be directly executed until all the libtool 38472bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# libraries that it depends on are installed. 38482bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# 38492bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# This wrapper script should never be moved out of the build directory. 38502bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# If it is, it will not operate correctly. 38512bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 38522bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Sed substitution that helps us do robust quoting. It backslashifies 38532bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# metacharacters that are still active within double-quoted strings. 38542bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramaniansed_quote_subst='$sed_quote_subst' 38552bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 38562bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Be Bourne compatible 38572bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianif test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then 38582bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian emulate sh 38592bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian NULLCMD=: 38602bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which 38612bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # is contrary to our usage. Disable this feature. 38622bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian alias -g '\${1+\"\$@\"}'='\"\$@\"' 38632bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian setopt NO_GLOB_SUBST 38642bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianelse 38652bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac 38662bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfi 38672bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianBIN_SH=xpg4; export BIN_SH # for Tru64 38682bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianDUALCASE=1; export DUALCASE # for MKS sh 38692bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 38702bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# The HP-UX ksh and POSIX shell print the target directory to stdout 38712bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# if CDPATH is set. 38722bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian(unset CDPATH) >/dev/null 2>&1 && unset CDPATH 38732bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 38742bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianrelink_command=\"$relink_command\" 38752bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 38762bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# This environment variable determines our operation mode. 38772bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianif test \"\$libtool_install_magic\" = \"$magic\"; then 38782bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # install mode needs the following variables: 38792bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian generated_by_libtool_version='$macro_version' 38802bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian notinst_deplibs='$notinst_deplibs' 38812bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianelse 38822bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # When we are sourced in execute mode, \$file and \$ECHO are already set. 38832bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test \"\$libtool_execute_magic\" != \"$magic\"; then 38842bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian file=\"\$0\"" 38852bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 38862bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"` 38872bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $ECHO "\ 38882bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 38892bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# A function that is used when there is no print builtin or printf. 38902bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_fallback_echo () 38912bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 38922bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval 'cat <<_LTECHO_EOF 38932bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian\$1 38942bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian_LTECHO_EOF' 38952bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 38962bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ECHO=\"$qECHO\" 38972bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 38982bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 38992bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Very basic option parsing. These options are (a) specific to 39002bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# the libtool wrapper, (b) are identical between the wrapper 39012bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# /script/ and the wrapper /executable/ which is used only on 39022bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# windows platforms, and (c) all begin with the string "--lt-" 39032bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# (application programs are unlikely to have options which match 39042bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# this pattern). 39052bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# 39062bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# There are only two supported options: --lt-debug and 39072bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# --lt-dump-script. There is, deliberately, no --lt-help. 39082bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# 39092bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# The first argument to this parsing function should be the 39102bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# script's $0 value, followed by "$@". 39112bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianlt_option_debug= 39122bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_parse_lt_options () 39132bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 39142bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian lt_script_arg0=\$0 39152bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian shift 39162bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for lt_opt 39172bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian do 39182bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case \"\$lt_opt\" in 39192bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian --lt-debug) lt_option_debug=1 ;; 39202bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian --lt-dump-script) 39212bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\` 39222bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=. 39232bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\` 39242bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian cat \"\$lt_dump_D/\$lt_dump_F\" 39252bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian exit 0 39262bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 39272bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian --lt-*) 39282bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2 39292bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian exit 1 39302bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 39312bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 39322bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 39332bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 39342bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Print the debug banner immediately: 39352bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n \"\$lt_option_debug\"; then 39362bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo \"${outputname}:${output}:\${LINENO}: libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\" 1>&2 39372bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 39382bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 39392bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 39402bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Used when --lt-debug. Prints its arguments to stdout 39412bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# (redirection is the responsibility of the caller) 39422bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_lt_dump_args () 39432bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 39442bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian lt_dump_args_N=1; 39452bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for lt_arg 39462bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian do 39472bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[\$lt_dump_args_N]: \$lt_arg\" 39482bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian lt_dump_args_N=\`expr \$lt_dump_args_N + 1\` 39492bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 39502bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 39512bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 39522bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Core function for launching the target application 39532bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_exec_program_core () 39542bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 39552bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian" 39562bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $host in 39572bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Backslashes separate directories on plain windows 39582bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *-*-mingw | *-*-os2* | *-cegcc*) 39592bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $ECHO "\ 39602bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n \"\$lt_option_debug\"; then 39612bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir\\\\\$program\" 1>&2 39622bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_lt_dump_args \${1+\"\$@\"} 1>&2 39632bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 39642bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} 39652bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian" 39662bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 39672bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 39682bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) 39692bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $ECHO "\ 39702bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n \"\$lt_option_debug\"; then 39712bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir/\$program\" 1>&2 39722bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_lt_dump_args \${1+\"\$@\"} 1>&2 39732bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 39742bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian exec \"\$progdir/\$program\" \${1+\"\$@\"} 39752bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian" 39762bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 39772bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 39782bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $ECHO "\ 39792bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 39802bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian exit 1 39812bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 39822bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 39832bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# A function to encapsulate launching the target application 39842bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Strips options in the --lt-* namespace from \$@ and 39852bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# launches target application with the remaining arguments. 39862bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_exec_program () 39872bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 39882bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case \" \$* \" in 39892bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *\\ --lt-*) 39902bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for lt_wr_arg 39912bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian do 39922bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case \$lt_wr_arg in 39932bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian --lt-*) ;; 39942bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) set x \"\$@\" \"\$lt_wr_arg\"; shift;; 39952bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 39962bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian shift 39972bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done ;; 39982bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 39992bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_exec_program_core \${1+\"\$@\"} 40002bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 40012bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 40022bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Parse options 40032bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_parse_lt_options \"\$0\" \${1+\"\$@\"} 40042bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 40052bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Find the directory that this script lives in. 40062bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\` 40072bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test \"x\$thisdir\" = \"x\$file\" && thisdir=. 40082bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 40092bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Follow symbolic links until we get to the real thisdir. 40102bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\` 40112bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian while test -n \"\$file\"; do 40122bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\` 40132bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 40142bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # If there was a directory component, then change thisdir. 40152bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test \"x\$destdir\" != \"x\$file\"; then 40162bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case \"\$destdir\" in 40172bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; 40182bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) thisdir=\"\$thisdir/\$destdir\" ;; 40192bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 40202bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 40212bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 40222bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\` 40232bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\` 40242bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 40252bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 40262bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Usually 'no', except on cygwin/mingw when embedded into 40272bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # the cwrapper. 40282bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1 40292bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then 40302bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # special case for '.' 40312bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test \"\$thisdir\" = \".\"; then 40322bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian thisdir=\`pwd\` 40332bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 40342bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # remove .libs from thisdir 40352bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case \"\$thisdir\" in 40362bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;; 40372bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $objdir ) thisdir=. ;; 40382bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 40392bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 40402bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 40412bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Try to get the absolute directory name. 40422bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian absdir=\`cd \"\$thisdir\" && pwd\` 40432bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test -n \"\$absdir\" && thisdir=\"\$absdir\" 40442bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian" 40452bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 40462bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$fast_install" = yes; then 40472bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $ECHO "\ 40482bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian program=lt-'$outputname'$exeext 40492bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian progdir=\"\$thisdir/$objdir\" 40502bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 40512bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test ! -f \"\$progdir/\$program\" || 40522bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ 40532bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test \"X\$file\" != \"X\$progdir/\$program\"; }; then 40542bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 40552bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian file=\"\$\$-\$program\" 40562bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 40572bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test ! -d \"\$progdir\"; then 40582bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $MKDIR \"\$progdir\" 40592bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 40602bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $RM \"\$progdir/\$file\" 40612bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi" 40622bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 40632bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $ECHO "\ 40642bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 40652bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # relink executable if necessary 40662bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n \"\$relink_command\"; then 40672bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if relink_command_output=\`eval \$relink_command 2>&1\`; then : 40682bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 40692bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $ECHO \"\$relink_command_output\" >&2 40702bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $RM \"\$progdir/\$file\" 40712bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian exit 1 40722bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 40732bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 40742bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 40752bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || 40762bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian { $RM \"\$progdir/\$program\"; 40772bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; } 40782bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $RM \"\$progdir/\$file\" 40792bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi" 40802bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 40812bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $ECHO "\ 40822bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian program='$outputname' 40832bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian progdir=\"\$thisdir/$objdir\" 40842bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian" 40852bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 40862bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 40872bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $ECHO "\ 40882bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 40892bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -f \"\$progdir/\$program\"; then" 40902bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 40912bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # fixup the dll searchpath if we need to. 40922bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # 40932bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Fix the DLL searchpath if we need to. Do this before prepending 40942bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # to shlibpath, because on Windows, both are PATH and uninstalled 40952bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # libraries must come first. 40962bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$dllsearchpath"; then 40972bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $ECHO "\ 40982bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Add the dll search path components to the executable PATH 40992bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian PATH=$dllsearchpath:\$PATH 41002bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian" 41012bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 41022bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 41032bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Export our shlibpath_var if we have one. 41042bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then 41052bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $ECHO "\ 41062bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Add our own library path to $shlibpath_var 41072bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" 41082bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 41092bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Some systems cannot cope with colon-terminated $shlibpath_var 41102bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # The second colon is a workaround for a bug in BeOS R4 sed 41112bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\` 41122bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 41132bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian export $shlibpath_var 41142bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian" 41152bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 41162bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 41172bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $ECHO "\ 41182bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test \"\$libtool_execute_magic\" != \"$magic\"; then 41192bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Run the actual program with our arguments. 41202bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_exec_program \${1+\"\$@\"} 41212bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 41222bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 41232bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # The program doesn't exist. 41242bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 41252bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian \$ECHO \"This script is just a wrapper for \$program.\" 1>&2 41262bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2 41272bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian exit 1 41282bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 41292bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfi\ 41302bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian" 41312bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 41322bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 41332bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 41342bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_emit_cwrapperexe_src 41352bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# emit the source code for a wrapper executable on stdout 41362bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Must ONLY be called from within func_mode_link because 41372bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# it depends on a number of variable set therein. 41382bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_emit_cwrapperexe_src () 41392bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 41402bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian cat <<EOF 41412bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 41422bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian/* $cwrappersource - temporary wrapper executable for $objdir/$outputname 41432bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION 41442bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 41452bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian The $output program cannot be directly executed until all the libtool 41462bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian libraries that it depends on are installed. 41472bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 41482bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian This wrapper executable should never be moved out of the build directory. 41492bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian If it is, it will not operate correctly. 41502bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian*/ 41512bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianEOF 41522bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian cat <<"EOF" 41532bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian#ifdef _MSC_VER 41542bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# define _CRT_SECURE_NO_DEPRECATE 1 41552bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian#endif 41562bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian#include <stdio.h> 41572bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian#include <stdlib.h> 41582bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian#ifdef _MSC_VER 41592bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# include <direct.h> 41602bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# include <process.h> 41612bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# include <io.h> 41622bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian#else 41632bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# include <unistd.h> 41642bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# include <stdint.h> 41652bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# ifdef __CYGWIN__ 41662bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# include <io.h> 41672bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# endif 41682bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian#endif 41692bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian#include <malloc.h> 41702bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian#include <stdarg.h> 41712bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian#include <assert.h> 41722bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian#include <string.h> 41732bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian#include <ctype.h> 41742bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian#include <errno.h> 41752bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian#include <fcntl.h> 41762bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian#include <sys/stat.h> 41772bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 41782bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian/* declarations of non-ANSI functions */ 41792bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian#if defined(__MINGW32__) 41802bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# ifdef __STRICT_ANSI__ 41812bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianint _putenv (const char *); 41822bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# endif 41832bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian#elif defined(__CYGWIN__) 41842bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# ifdef __STRICT_ANSI__ 41852bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianchar *realpath (const char *, char *); 41862bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianint putenv (char *); 41872bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianint setenv (const char *, const char *, int); 41882bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# endif 41892bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian/* #elif defined (other platforms) ... */ 41902bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian#endif 41912bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 41922bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian/* portability defines, excluding path handling macros */ 41932bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian#if defined(_MSC_VER) 41942bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# define setmode _setmode 41952bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# define stat _stat 41962bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# define chmod _chmod 41972bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# define getcwd _getcwd 41982bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# define putenv _putenv 41992bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# define S_IXUSR _S_IEXEC 42002bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# ifndef _INTPTR_T_DEFINED 42012bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# define _INTPTR_T_DEFINED 42022bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# define intptr_t int 42032bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# endif 42042bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian#elif defined(__MINGW32__) 42052bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# define setmode _setmode 42062bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# define stat _stat 42072bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# define chmod _chmod 42082bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# define getcwd _getcwd 42092bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# define putenv _putenv 42102bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian#elif defined(__CYGWIN__) 42112bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# define HAVE_SETENV 42122bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# define FOPEN_WB "wb" 42132bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian/* #elif defined (other platforms) ... */ 42142bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian#endif 42152bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 42162bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian#if defined(PATH_MAX) 42172bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# define LT_PATHMAX PATH_MAX 42182bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian#elif defined(MAXPATHLEN) 42192bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# define LT_PATHMAX MAXPATHLEN 42202bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian#else 42212bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# define LT_PATHMAX 1024 42222bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian#endif 42232bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 42242bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian#ifndef S_IXOTH 42252bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# define S_IXOTH 0 42262bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian#endif 42272bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian#ifndef S_IXGRP 42282bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# define S_IXGRP 0 42292bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian#endif 42302bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 42312bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian/* path handling portability macros */ 42322bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian#ifndef DIR_SEPARATOR 42332bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# define DIR_SEPARATOR '/' 42342bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# define PATH_SEPARATOR ':' 42352bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian#endif 42362bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 42372bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ 42382bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian defined (__OS2__) 42392bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# define HAVE_DOS_BASED_FILE_SYSTEM 42402bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# define FOPEN_WB "wb" 42412bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# ifndef DIR_SEPARATOR_2 42422bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# define DIR_SEPARATOR_2 '\\' 42432bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# endif 42442bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# ifndef PATH_SEPARATOR_2 42452bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# define PATH_SEPARATOR_2 ';' 42462bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# endif 42472bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian#endif 42482bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 42492bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian#ifndef DIR_SEPARATOR_2 42502bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) 42512bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian#else /* DIR_SEPARATOR_2 */ 42522bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# define IS_DIR_SEPARATOR(ch) \ 42532bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) 42542bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian#endif /* DIR_SEPARATOR_2 */ 42552bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 42562bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian#ifndef PATH_SEPARATOR_2 42572bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) 42582bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian#else /* PATH_SEPARATOR_2 */ 42592bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) 42602bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian#endif /* PATH_SEPARATOR_2 */ 42612bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 42622bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian#ifndef FOPEN_WB 42632bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# define FOPEN_WB "w" 42642bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian#endif 42652bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian#ifndef _O_BINARY 42662bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# define _O_BINARY 0 42672bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian#endif 42682bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 42692bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian#define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) 42702bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian#define XFREE(stale) do { \ 42712bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if (stale) { free ((void *) stale); stale = 0; } \ 42722bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} while (0) 42732bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 42742bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian#if defined(LT_DEBUGWRAPPER) 42752bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianstatic int lt_debug = 1; 42762bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian#else 42772bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianstatic int lt_debug = 0; 42782bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian#endif 42792bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 42802bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianconst char *program_name = "libtool-wrapper"; /* in case xstrdup fails */ 42812bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 42822bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianvoid *xmalloc (size_t num); 42832bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianchar *xstrdup (const char *string); 42842bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianconst char *base_name (const char *name); 42852bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianchar *find_executable (const char *wrapper); 42862bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianchar *chase_symlinks (const char *pathspec); 42872bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianint make_executable (const char *path); 42882bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianint check_executable (const char *path); 42892bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianchar *strendzap (char *str, const char *pat); 42902bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianvoid lt_debugprintf (const char *file, int line, const char *fmt, ...); 42912bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianvoid lt_fatal (const char *file, int line, const char *message, ...); 42922bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianstatic const char *nonnull (const char *s); 42932bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianstatic const char *nonempty (const char *s); 42942bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianvoid lt_setenv (const char *name, const char *value); 42952bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianchar *lt_extend_str (const char *orig_value, const char *add, int to_end); 42962bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianvoid lt_update_exe_path (const char *name, const char *value); 42972bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianvoid lt_update_lib_path (const char *name, const char *value); 42982bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianchar **prepare_spawn (char **argv); 42992bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianvoid lt_dump_script (FILE *f); 43002bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianEOF 43012bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 43022bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian cat <<EOF 43032bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianvolatile const char * MAGIC_EXE = "$magic_exe"; 43042bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianconst char * LIB_PATH_VARNAME = "$shlibpath_var"; 43052bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianEOF 43062bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 43072bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then 43082bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_to_host_path "$temp_rpath" 43092bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian cat <<EOF 43102bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianconst char * LIB_PATH_VALUE = "$func_to_host_path_result"; 43112bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianEOF 43122bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 43132bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian cat <<"EOF" 43142bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianconst char * LIB_PATH_VALUE = ""; 43152bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianEOF 43162bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 43172bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 43182bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$dllsearchpath"; then 43192bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_to_host_path "$dllsearchpath:" 43202bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian cat <<EOF 43212bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianconst char * EXE_PATH_VARNAME = "PATH"; 43222bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianconst char * EXE_PATH_VALUE = "$func_to_host_path_result"; 43232bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianEOF 43242bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 43252bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian cat <<"EOF" 43262bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianconst char * EXE_PATH_VARNAME = ""; 43272bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianconst char * EXE_PATH_VALUE = ""; 43282bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianEOF 43292bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 43302bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 43312bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$fast_install" = yes; then 43322bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian cat <<EOF 43332bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianconst char * TARGET_PROGRAM_NAME = "lt-$outputname"; /* hopefully, no .exe */ 43342bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianEOF 43352bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 43362bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian cat <<EOF 43372bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianconst char * TARGET_PROGRAM_NAME = "$outputname"; /* hopefully, no .exe */ 43382bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianEOF 43392bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 43402bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 43412bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 43422bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian cat <<"EOF" 43432bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 43442bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian#define LTWRAPPER_OPTION_PREFIX "--lt-" 43452bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 43462bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianstatic const char *ltwrapper_option_prefix = LTWRAPPER_OPTION_PREFIX; 43472bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianstatic const char *dumpscript_opt = LTWRAPPER_OPTION_PREFIX "dump-script"; 43482bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianstatic const char *debug_opt = LTWRAPPER_OPTION_PREFIX "debug"; 43492bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 43502bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianint 43512bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianmain (int argc, char *argv[]) 43522bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 43532bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian char **newargz; 43542bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian int newargc; 43552bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian char *tmp_pathspec; 43562bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian char *actual_cwrapper_path; 43572bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian char *actual_cwrapper_name; 43582bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian char *target_name; 43592bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian char *lt_argv_zero; 43602bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian intptr_t rval = 127; 43612bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 43622bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian int i; 43632bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 43642bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian program_name = (char *) xstrdup (base_name (argv[0])); 43652bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian newargz = XMALLOC (char *, argc + 1); 43662bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 43672bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian /* very simple arg parsing; don't want to rely on getopt 43682bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian * also, copy all non cwrapper options to newargz, except 43692bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian * argz[0], which is handled differently 43702bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian */ 43712bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian newargc=0; 43722bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for (i = 1; i < argc; i++) 43732bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian { 43742bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if (strcmp (argv[i], dumpscript_opt) == 0) 43752bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian { 43762bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianEOF 43772bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case "$host" in 43782bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *mingw* | *cygwin* ) 43792bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # make stdout use "unix" line endings 43802bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo " setmode(1,_O_BINARY);" 43812bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 43822bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 43832bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 43842bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian cat <<"EOF" 43852bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian lt_dump_script (stdout); 43862bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian return 0; 43872bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian } 43882bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if (strcmp (argv[i], debug_opt) == 0) 43892bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian { 43902bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian lt_debug = 1; 43912bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian continue; 43922bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian } 43932bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if (strcmp (argv[i], ltwrapper_option_prefix) == 0) 43942bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian { 43952bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX 43962bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian namespace, but it is not one of the ones we know about and 43972bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian have already dealt with, above (inluding dump-script), then 43982bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian report an error. Otherwise, targets might begin to believe 43992bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian they are allowed to use options in the LTWRAPPER_OPTION_PREFIX 44002bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian namespace. The first time any user complains about this, we'll 44012bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian need to make LTWRAPPER_OPTION_PREFIX a configure-time option 44022bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian or a configure.ac-settable value. 44032bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian */ 44042bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian lt_fatal (__FILE__, __LINE__, 44052bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian "unrecognized %s option: '%s'", 44062bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ltwrapper_option_prefix, argv[i]); 44072bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian } 44082bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian /* otherwise ... */ 44092bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian newargz[++newargc] = xstrdup (argv[i]); 44102bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian } 44112bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian newargz[++newargc] = NULL; 44122bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 44132bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianEOF 44142bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian cat <<EOF 44152bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian /* The GNU banner must be the first non-error debug message */ 44162bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian lt_debugprintf (__FILE__, __LINE__, "libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\n"); 44172bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianEOF 44182bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian cat <<"EOF" 44192bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian lt_debugprintf (__FILE__, __LINE__, "(main) argv[0]: %s\n", argv[0]); 44202bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian lt_debugprintf (__FILE__, __LINE__, "(main) program_name: %s\n", program_name); 44212bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 44222bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian tmp_pathspec = find_executable (argv[0]); 44232bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if (tmp_pathspec == NULL) 44242bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian lt_fatal (__FILE__, __LINE__, "couldn't find %s", argv[0]); 44252bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian lt_debugprintf (__FILE__, __LINE__, 44262bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian "(main) found exe (before symlink chase) at: %s\n", 44272bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian tmp_pathspec); 44282bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 44292bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian actual_cwrapper_path = chase_symlinks (tmp_pathspec); 44302bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian lt_debugprintf (__FILE__, __LINE__, 44312bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian "(main) found exe (after symlink chase) at: %s\n", 44322bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian actual_cwrapper_path); 44332bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian XFREE (tmp_pathspec); 44342bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 44352bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian actual_cwrapper_name = xstrdup (base_name (actual_cwrapper_path)); 44362bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian strendzap (actual_cwrapper_path, actual_cwrapper_name); 44372bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 44382bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian /* wrapper name transforms */ 44392bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian strendzap (actual_cwrapper_name, ".exe"); 44402bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian tmp_pathspec = lt_extend_str (actual_cwrapper_name, ".exe", 1); 44412bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian XFREE (actual_cwrapper_name); 44422bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian actual_cwrapper_name = tmp_pathspec; 44432bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian tmp_pathspec = 0; 44442bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 44452bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian /* target_name transforms -- use actual target program name; might have lt- prefix */ 44462bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian target_name = xstrdup (base_name (TARGET_PROGRAM_NAME)); 44472bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian strendzap (target_name, ".exe"); 44482bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian tmp_pathspec = lt_extend_str (target_name, ".exe", 1); 44492bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian XFREE (target_name); 44502bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian target_name = tmp_pathspec; 44512bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian tmp_pathspec = 0; 44522bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 44532bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian lt_debugprintf (__FILE__, __LINE__, 44542bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian "(main) libtool target name: %s\n", 44552bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian target_name); 44562bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianEOF 44572bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 44582bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian cat <<EOF 44592bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian newargz[0] = 44602bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian XMALLOC (char, (strlen (actual_cwrapper_path) + 44612bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian strlen ("$objdir") + 1 + strlen (actual_cwrapper_name) + 1)); 44622bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian strcpy (newargz[0], actual_cwrapper_path); 44632bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian strcat (newargz[0], "$objdir"); 44642bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian strcat (newargz[0], "/"); 44652bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianEOF 44662bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 44672bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian cat <<"EOF" 44682bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian /* stop here, and copy so we don't have to do this twice */ 44692bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian tmp_pathspec = xstrdup (newargz[0]); 44702bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 44712bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian /* do NOT want the lt- prefix here, so use actual_cwrapper_name */ 44722bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian strcat (newargz[0], actual_cwrapper_name); 44732bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 44742bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian /* DO want the lt- prefix here if it exists, so use target_name */ 44752bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian lt_argv_zero = lt_extend_str (tmp_pathspec, target_name, 1); 44762bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian XFREE (tmp_pathspec); 44772bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian tmp_pathspec = NULL; 44782bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianEOF 44792bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 44802bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $host_os in 44812bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian mingw*) 44822bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian cat <<"EOF" 44832bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian { 44842bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian char* p; 44852bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian while ((p = strchr (newargz[0], '\\')) != NULL) 44862bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian { 44872bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *p = '/'; 44882bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian } 44892bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian while ((p = strchr (lt_argv_zero, '\\')) != NULL) 44902bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian { 44912bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *p = '/'; 44922bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian } 44932bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian } 44942bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianEOF 44952bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 44962bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 44972bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 44982bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian cat <<"EOF" 44992bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian XFREE (target_name); 45002bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian XFREE (actual_cwrapper_path); 45012bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian XFREE (actual_cwrapper_name); 45022bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 45032bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian lt_setenv ("BIN_SH", "xpg4"); /* for Tru64 */ 45042bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian lt_setenv ("DUALCASE", "1"); /* for MSK sh */ 45052bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian /* Update the DLL searchpath. EXE_PATH_VALUE ($dllsearchpath) must 45062bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian be prepended before (that is, appear after) LIB_PATH_VALUE ($temp_rpath) 45072bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian because on Windows, both *_VARNAMEs are PATH but uninstalled 45082bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian libraries must come first. */ 45092bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian lt_update_exe_path (EXE_PATH_VARNAME, EXE_PATH_VALUE); 45102bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE); 45112bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 45122bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian lt_debugprintf (__FILE__, __LINE__, "(main) lt_argv_zero: %s\n", 45132bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian nonnull (lt_argv_zero)); 45142bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for (i = 0; i < newargc; i++) 45152bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian { 45162bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian lt_debugprintf (__FILE__, __LINE__, "(main) newargz[%d]: %s\n", 45172bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian i, nonnull (newargz[i])); 45182bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian } 45192bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 45202bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianEOF 45212bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 45222bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $host_os in 45232bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian mingw*) 45242bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian cat <<"EOF" 45252bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian /* execv doesn't actually work on mingw as expected on unix */ 45262bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian newargz = prepare_spawn (newargz); 45272bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian rval = _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz); 45282bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if (rval == -1) 45292bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian { 45302bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian /* failed to start process */ 45312bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian lt_debugprintf (__FILE__, __LINE__, 45322bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian "(main) failed to launch target \"%s\": %s\n", 45332bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian lt_argv_zero, nonnull (strerror (errno))); 45342bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian return 127; 45352bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian } 45362bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian return rval; 45372bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianEOF 45382bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 45392bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) 45402bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian cat <<"EOF" 45412bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian execv (lt_argv_zero, newargz); 45422bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian return rval; /* =127, but avoids unused variable warning */ 45432bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianEOF 45442bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 45452bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 45462bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 45472bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian cat <<"EOF" 45482bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 45492bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 45502bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianvoid * 45512bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianxmalloc (size_t num) 45522bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 45532bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian void *p = (void *) malloc (num); 45542bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if (!p) 45552bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian lt_fatal (__FILE__, __LINE__, "memory exhausted"); 45562bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 45572bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian return p; 45582bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 45592bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 45602bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianchar * 45612bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianxstrdup (const char *string) 45622bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 45632bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian return string ? strcpy ((char *) xmalloc (strlen (string) + 1), 45642bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian string) : NULL; 45652bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 45662bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 45672bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianconst char * 45682bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianbase_name (const char *name) 45692bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 45702bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian const char *base; 45712bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 45722bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian#if defined (HAVE_DOS_BASED_FILE_SYSTEM) 45732bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian /* Skip over the disk name in MSDOS pathnames. */ 45742bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if (isalpha ((unsigned char) name[0]) && name[1] == ':') 45752bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian name += 2; 45762bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian#endif 45772bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 45782bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for (base = name; *name; name++) 45792bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if (IS_DIR_SEPARATOR (*name)) 45802bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian base = name + 1; 45812bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian return base; 45822bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 45832bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 45842bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianint 45852bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramaniancheck_executable (const char *path) 45862bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 45872bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian struct stat st; 45882bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 45892bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian lt_debugprintf (__FILE__, __LINE__, "(check_executable): %s\n", 45902bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian nonempty (path)); 45912bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if ((!path) || (!*path)) 45922bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian return 0; 45932bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 45942bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if ((stat (path, &st) >= 0) 45952bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH))) 45962bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian return 1; 45972bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 45982bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian return 0; 45992bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 46002bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 46012bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianint 46022bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianmake_executable (const char *path) 46032bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 46042bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian int rval = 0; 46052bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian struct stat st; 46062bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 46072bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n", 46082bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian nonempty (path)); 46092bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if ((!path) || (!*path)) 46102bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian return 0; 46112bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 46122bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if (stat (path, &st) >= 0) 46132bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian { 46142bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR); 46152bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian } 46162bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian return rval; 46172bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 46182bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 46192bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian/* Searches for the full path of the wrapper. Returns 46202bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian newly allocated full path name if found, NULL otherwise 46212bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian Does not chase symlinks, even on platforms that support them. 46222bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian*/ 46232bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianchar * 46242bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfind_executable (const char *wrapper) 46252bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 46262bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian int has_slash = 0; 46272bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian const char *p; 46282bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian const char *p_next; 46292bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian /* static buffer for getcwd */ 46302bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian char tmp[LT_PATHMAX + 1]; 46312bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian int tmp_len; 46322bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian char *concat_name; 46332bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 46342bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n", 46352bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian nonempty (wrapper)); 46362bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 46372bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if ((wrapper == NULL) || (*wrapper == '\0')) 46382bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian return NULL; 46392bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 46402bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian /* Absolute path? */ 46412bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian#if defined (HAVE_DOS_BASED_FILE_SYSTEM) 46422bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':') 46432bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian { 46442bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian concat_name = xstrdup (wrapper); 46452bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if (check_executable (concat_name)) 46462bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian return concat_name; 46472bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian XFREE (concat_name); 46482bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian } 46492bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 46502bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian { 46512bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian#endif 46522bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if (IS_DIR_SEPARATOR (wrapper[0])) 46532bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian { 46542bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian concat_name = xstrdup (wrapper); 46552bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if (check_executable (concat_name)) 46562bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian return concat_name; 46572bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian XFREE (concat_name); 46582bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian } 46592bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian#if defined (HAVE_DOS_BASED_FILE_SYSTEM) 46602bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian } 46612bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian#endif 46622bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 46632bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for (p = wrapper; *p; p++) 46642bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if (*p == '/') 46652bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian { 46662bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian has_slash = 1; 46672bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian break; 46682bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian } 46692bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if (!has_slash) 46702bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian { 46712bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian /* no slashes; search PATH */ 46722bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian const char *path = getenv ("PATH"); 46732bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if (path != NULL) 46742bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian { 46752bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for (p = path; *p; p = p_next) 46762bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian { 46772bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian const char *q; 46782bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian size_t p_len; 46792bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for (q = p; *q; q++) 46802bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if (IS_PATH_SEPARATOR (*q)) 46812bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian break; 46822bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian p_len = q - p; 46832bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian p_next = (*q == '\0' ? q : q + 1); 46842bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if (p_len == 0) 46852bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian { 46862bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian /* empty path: current directory */ 46872bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if (getcwd (tmp, LT_PATHMAX) == NULL) 46882bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", 46892bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian nonnull (strerror (errno))); 46902bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian tmp_len = strlen (tmp); 46912bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian concat_name = 46922bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); 46932bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian memcpy (concat_name, tmp, tmp_len); 46942bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian concat_name[tmp_len] = '/'; 46952bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian strcpy (concat_name + tmp_len + 1, wrapper); 46962bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian } 46972bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 46982bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian { 46992bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian concat_name = 47002bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian XMALLOC (char, p_len + 1 + strlen (wrapper) + 1); 47012bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian memcpy (concat_name, p, p_len); 47022bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian concat_name[p_len] = '/'; 47032bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian strcpy (concat_name + p_len + 1, wrapper); 47042bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian } 47052bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if (check_executable (concat_name)) 47062bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian return concat_name; 47072bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian XFREE (concat_name); 47082bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian } 47092bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian } 47102bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian /* not found in PATH; assume curdir */ 47112bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian } 47122bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian /* Relative path | not found in path: prepend cwd */ 47132bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if (getcwd (tmp, LT_PATHMAX) == NULL) 47142bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", 47152bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian nonnull (strerror (errno))); 47162bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian tmp_len = strlen (tmp); 47172bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); 47182bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian memcpy (concat_name, tmp, tmp_len); 47192bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian concat_name[tmp_len] = '/'; 47202bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian strcpy (concat_name + tmp_len + 1, wrapper); 47212bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 47222bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if (check_executable (concat_name)) 47232bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian return concat_name; 47242bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian XFREE (concat_name); 47252bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian return NULL; 47262bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 47272bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 47282bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianchar * 47292bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianchase_symlinks (const char *pathspec) 47302bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 47312bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian#ifndef S_ISLNK 47322bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian return xstrdup (pathspec); 47332bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian#else 47342bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian char buf[LT_PATHMAX]; 47352bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian struct stat s; 47362bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian char *tmp_pathspec = xstrdup (pathspec); 47372bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian char *p; 47382bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian int has_symlinks = 0; 47392bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian while (strlen (tmp_pathspec) && !has_symlinks) 47402bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian { 47412bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian lt_debugprintf (__FILE__, __LINE__, 47422bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian "checking path component for symlinks: %s\n", 47432bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian tmp_pathspec); 47442bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if (lstat (tmp_pathspec, &s) == 0) 47452bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian { 47462bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if (S_ISLNK (s.st_mode) != 0) 47472bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian { 47482bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian has_symlinks = 1; 47492bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian break; 47502bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian } 47512bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 47522bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian /* search backwards for last DIR_SEPARATOR */ 47532bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian p = tmp_pathspec + strlen (tmp_pathspec) - 1; 47542bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) 47552bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian p--; 47562bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) 47572bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian { 47582bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian /* no more DIR_SEPARATORS left */ 47592bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian break; 47602bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian } 47612bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *p = '\0'; 47622bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian } 47632bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 47642bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian { 47652bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian lt_fatal (__FILE__, __LINE__, 47662bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian "error accessing file \"%s\": %s", 47672bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian tmp_pathspec, nonnull (strerror (errno))); 47682bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian } 47692bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian } 47702bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian XFREE (tmp_pathspec); 47712bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 47722bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if (!has_symlinks) 47732bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian { 47742bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian return xstrdup (pathspec); 47752bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian } 47762bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 47772bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian tmp_pathspec = realpath (pathspec, buf); 47782bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if (tmp_pathspec == 0) 47792bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian { 47802bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian lt_fatal (__FILE__, __LINE__, 47812bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian "could not follow symlinks for %s", pathspec); 47822bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian } 47832bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian return xstrdup (tmp_pathspec); 47842bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian#endif 47852bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 47862bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 47872bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianchar * 47882bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianstrendzap (char *str, const char *pat) 47892bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 47902bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian size_t len, patlen; 47912bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 47922bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian assert (str != NULL); 47932bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian assert (pat != NULL); 47942bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 47952bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian len = strlen (str); 47962bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian patlen = strlen (pat); 47972bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 47982bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if (patlen <= len) 47992bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian { 48002bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian str += len - patlen; 48012bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if (strcmp (str, pat) == 0) 48022bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *str = '\0'; 48032bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian } 48042bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian return str; 48052bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 48062bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 48072bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianvoid 48082bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianlt_debugprintf (const char *file, int line, const char *fmt, ...) 48092bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 48102bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian va_list args; 48112bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if (lt_debug) 48122bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian { 48132bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line); 48142bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian va_start (args, fmt); 48152bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian (void) vfprintf (stderr, fmt, args); 48162bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian va_end (args); 48172bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian } 48182bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 48192bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 48202bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianstatic void 48212bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianlt_error_core (int exit_status, const char *file, 48222bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian int line, const char *mode, 48232bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian const char *message, va_list ap) 48242bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 48252bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode); 48262bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian vfprintf (stderr, message, ap); 48272bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fprintf (stderr, ".\n"); 48282bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 48292bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if (exit_status >= 0) 48302bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian exit (exit_status); 48312bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 48322bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 48332bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianvoid 48342bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianlt_fatal (const char *file, int line, const char *message, ...) 48352bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 48362bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian va_list ap; 48372bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian va_start (ap, message); 48382bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap); 48392bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian va_end (ap); 48402bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 48412bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 48422bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianstatic const char * 48432bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramaniannonnull (const char *s) 48442bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 48452bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian return s ? s : "(null)"; 48462bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 48472bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 48482bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianstatic const char * 48492bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramaniannonempty (const char *s) 48502bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 48512bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian return (s && !*s) ? "(empty)" : nonnull (s); 48522bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 48532bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 48542bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianvoid 48552bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianlt_setenv (const char *name, const char *value) 48562bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 48572bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian lt_debugprintf (__FILE__, __LINE__, 48582bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian "(lt_setenv) setting '%s' to '%s'\n", 48592bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian nonnull (name), nonnull (value)); 48602bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian { 48612bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian#ifdef HAVE_SETENV 48622bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian /* always make a copy, for consistency with !HAVE_SETENV */ 48632bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian char *str = xstrdup (value); 48642bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian setenv (name, str, 1); 48652bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian#else 48662bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian int len = strlen (name) + 1 + strlen (value) + 1; 48672bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian char *str = XMALLOC (char, len); 48682bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian sprintf (str, "%s=%s", name, value); 48692bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if (putenv (str) != EXIT_SUCCESS) 48702bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian { 48712bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian XFREE (str); 48722bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian } 48732bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian#endif 48742bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian } 48752bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 48762bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 48772bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianchar * 48782bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianlt_extend_str (const char *orig_value, const char *add, int to_end) 48792bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 48802bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian char *new_value; 48812bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if (orig_value && *orig_value) 48822bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian { 48832bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian int orig_value_len = strlen (orig_value); 48842bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian int add_len = strlen (add); 48852bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian new_value = XMALLOC (char, add_len + orig_value_len + 1); 48862bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if (to_end) 48872bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian { 48882bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian strcpy (new_value, orig_value); 48892bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian strcpy (new_value + orig_value_len, add); 48902bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian } 48912bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 48922bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian { 48932bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian strcpy (new_value, add); 48942bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian strcpy (new_value + add_len, orig_value); 48952bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian } 48962bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian } 48972bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 48982bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian { 48992bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian new_value = xstrdup (add); 49002bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian } 49012bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian return new_value; 49022bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 49032bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 49042bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianvoid 49052bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianlt_update_exe_path (const char *name, const char *value) 49062bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 49072bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian lt_debugprintf (__FILE__, __LINE__, 49082bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian "(lt_update_exe_path) modifying '%s' by prepending '%s'\n", 49092bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian nonnull (name), nonnull (value)); 49102bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 49112bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if (name && *name && value && *value) 49122bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian { 49132bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian char *new_value = lt_extend_str (getenv (name), value, 0); 49142bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian /* some systems can't cope with a ':'-terminated path #' */ 49152bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian int len = strlen (new_value); 49162bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian while (((len = strlen (new_value)) > 0) && IS_PATH_SEPARATOR (new_value[len-1])) 49172bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian { 49182bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian new_value[len-1] = '\0'; 49192bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian } 49202bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian lt_setenv (name, new_value); 49212bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian XFREE (new_value); 49222bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian } 49232bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 49242bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 49252bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianvoid 49262bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianlt_update_lib_path (const char *name, const char *value) 49272bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 49282bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian lt_debugprintf (__FILE__, __LINE__, 49292bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian "(lt_update_lib_path) modifying '%s' by prepending '%s'\n", 49302bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian nonnull (name), nonnull (value)); 49312bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 49322bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if (name && *name && value && *value) 49332bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian { 49342bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian char *new_value = lt_extend_str (getenv (name), value, 0); 49352bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian lt_setenv (name, new_value); 49362bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian XFREE (new_value); 49372bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian } 49382bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 49392bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 49402bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianEOF 49412bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $host_os in 49422bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian mingw*) 49432bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian cat <<"EOF" 49442bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 49452bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian/* Prepares an argument vector before calling spawn(). 49462bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian Note that spawn() does not by itself call the command interpreter 49472bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") : 49482bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); 49492bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian GetVersionEx(&v); 49502bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian v.dwPlatformId == VER_PLATFORM_WIN32_NT; 49512bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian }) ? "cmd.exe" : "command.com"). 49522bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian Instead it simply concatenates the arguments, separated by ' ', and calls 49532bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian CreateProcess(). We must quote the arguments since Win32 CreateProcess() 49542bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a 49552bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian special way: 49562bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian - Space and tab are interpreted as delimiters. They are not treated as 49572bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian delimiters if they are surrounded by double quotes: "...". 49582bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian - Unescaped double quotes are removed from the input. Their only effect is 49592bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian that within double quotes, space and tab are treated like normal 49602bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian characters. 49612bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian - Backslashes not followed by double quotes are not special. 49622bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian - But 2*n+1 backslashes followed by a double quote become 49632bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian n backslashes followed by a double quote (n >= 0): 49642bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian \" -> " 49652bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian \\\" -> \" 49662bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian \\\\\" -> \\" 49672bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian */ 49682bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian#define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" 49692bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian#define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" 49702bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianchar ** 49712bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianprepare_spawn (char **argv) 49722bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 49732bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian size_t argc; 49742bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian char **new_argv; 49752bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian size_t i; 49762bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 49772bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian /* Count number of arguments. */ 49782bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for (argc = 0; argv[argc] != NULL; argc++) 49792bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ; 49802bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 49812bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian /* Allocate new argument vector. */ 49822bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian new_argv = XMALLOC (char *, argc + 1); 49832bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 49842bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian /* Put quoted arguments into the new argument vector. */ 49852bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for (i = 0; i < argc; i++) 49862bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian { 49872bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian const char *string = argv[i]; 49882bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 49892bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if (string[0] == '\0') 49902bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian new_argv[i] = xstrdup ("\"\""); 49912bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL) 49922bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian { 49932bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL); 49942bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian size_t length; 49952bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian unsigned int backslashes; 49962bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian const char *s; 49972bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian char *quoted_string; 49982bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian char *p; 49992bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 50002bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian length = 0; 50012bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian backslashes = 0; 50022bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if (quote_around) 50032bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian length++; 50042bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for (s = string; *s != '\0'; s++) 50052bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian { 50062bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian char c = *s; 50072bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if (c == '"') 50082bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian length += backslashes + 1; 50092bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian length++; 50102bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if (c == '\\') 50112bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian backslashes++; 50122bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 50132bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian backslashes = 0; 50142bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian } 50152bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if (quote_around) 50162bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian length += backslashes + 1; 50172bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 50182bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian quoted_string = XMALLOC (char, length + 1); 50192bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 50202bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian p = quoted_string; 50212bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian backslashes = 0; 50222bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if (quote_around) 50232bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *p++ = '"'; 50242bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for (s = string; *s != '\0'; s++) 50252bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian { 50262bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian char c = *s; 50272bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if (c == '"') 50282bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian { 50292bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian unsigned int j; 50302bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for (j = backslashes + 1; j > 0; j--) 50312bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *p++ = '\\'; 50322bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian } 50332bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *p++ = c; 50342bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if (c == '\\') 50352bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian backslashes++; 50362bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 50372bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian backslashes = 0; 50382bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian } 50392bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if (quote_around) 50402bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian { 50412bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian unsigned int j; 50422bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for (j = backslashes; j > 0; j--) 50432bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *p++ = '\\'; 50442bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *p++ = '"'; 50452bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian } 50462bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *p = '\0'; 50472bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 50482bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian new_argv[i] = quoted_string; 50492bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian } 50502bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 50512bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian new_argv[i] = (char *) string; 50522bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian } 50532bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian new_argv[argc] = NULL; 50542bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 50552bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian return new_argv; 50562bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 50572bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianEOF 50582bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 50592bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 50602bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 50612bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian cat <<"EOF" 50622bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianvoid lt_dump_script (FILE* f) 50632bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 50642bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianEOF 50652bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_emit_wrapper yes | 50662bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $SED -n -e ' 50672bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanians/^\(.\{79\}\)\(..*\)/\1\ 50682bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian\2/ 50692bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianh 50702bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanians/\([\\"]\)/\\\1/g 50712bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanians/$/\\n/ 50722bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanians/\([^\n]*\).*/ fputs ("\1", f);/p 50732bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramaniang 50742bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianD' 50752bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian cat <<"EOF" 50762bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 50772bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianEOF 50782bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 50792bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# end: func_emit_cwrapperexe_src 50802bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 50812bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_win32_import_lib_p ARG 50822bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# True if ARG is an import lib, as indicated by $file_magic_cmd 50832bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_win32_import_lib_p () 50842bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 50852bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $opt_debug 50862bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in 50872bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *import*) : ;; 50882bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) false ;; 50892bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 50902bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 50912bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 50922bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_mode_link arg... 50932bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_mode_link () 50942bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 50952bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $opt_debug 50962bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $host in 50972bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) 50982bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # It is impossible to link a dll without this setting, and 50992bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # we shouldn't force the makefile maintainer to figure out 51002bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # which system we are compiling for in order to pass an extra 51012bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # flag for every libtool invocation. 51022bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # allow_undefined=no 51032bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 51042bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # FIXME: Unfortunately, there are problems with the above when trying 51052bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # to make a dll which has undefined symbols, in which case not 51062bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # even a static library is built. For now, we need to specify 51072bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # -no-undefined on the libtool link line when we can be certain 51082bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # that all symbols are satisfied, otherwise we get a static library. 51092bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian allow_undefined=yes 51102bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 51112bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) 51122bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian allow_undefined=yes 51132bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 51142bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 51152bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian libtool_args=$nonopt 51162bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian base_compile="$nonopt $@" 51172bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian compile_command=$nonopt 51182bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian finalize_command=$nonopt 51192bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 51202bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian compile_rpath= 51212bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian finalize_rpath= 51222bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian compile_shlibpath= 51232bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian finalize_shlibpath= 51242bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian convenience= 51252bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian old_convenience= 51262bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian deplibs= 51272bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian old_deplibs= 51282bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian compiler_flags= 51292bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian linker_flags= 51302bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian dllsearchpath= 51312bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian lib_search_path=`pwd` 51322bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian inst_prefix_dir= 51332bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian new_inherited_linker_flags= 51342bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 51352bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian avoid_version=no 51362bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian bindir= 51372bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian dlfiles= 51382bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian dlprefiles= 51392bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian dlself=no 51402bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian export_dynamic=no 51412bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian export_symbols= 51422bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian export_symbols_regex= 51432bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian generated= 51442bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian libobjs= 51452bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ltlibs= 51462bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian module=no 51472bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian no_install=no 51482bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian objs= 51492bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian non_pic_objects= 51502bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian precious_files_regex= 51512bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian prefer_static_libs=no 51522bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian preload=no 51532bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian prev= 51542bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian prevarg= 51552bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian release= 51562bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian rpath= 51572bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian xrpath= 51582bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian perm_rpath= 51592bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian temp_rpath= 51602bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian thread_safe=no 51612bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian vinfo= 51622bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian vinfo_number=no 51632bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian weak_libs= 51642bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian single_module="${wl}-single_module" 51652bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_infer_tag $base_compile 51662bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 51672bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # We need to know -static, to get the right output filenames. 51682bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for arg 51692bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian do 51702bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $arg in 51712bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -shared) 51722bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test "$build_libtool_libs" != yes && \ 51732bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_fatal_configuration "can not build a shared library" 51742bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian build_old_libs=no 51752bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian break 51762bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 51772bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -all-static | -static | -static-libtool-libs) 51782bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $arg in 51792bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -all-static) 51802bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then 51812bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_warning "complete static linking is impossible in this configuration" 51822bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 51832bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$link_static_flag"; then 51842bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian dlopen_self=$dlopen_self_static 51852bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 51862bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian prefer_static_libs=yes 51872bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 51882bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -static) 51892bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -z "$pic_flag" && test -n "$link_static_flag"; then 51902bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian dlopen_self=$dlopen_self_static 51912bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 51922bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian prefer_static_libs=built 51932bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 51942bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -static-libtool-libs) 51952bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -z "$pic_flag" && test -n "$link_static_flag"; then 51962bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian dlopen_self=$dlopen_self_static 51972bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 51982bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian prefer_static_libs=yes 51992bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 52002bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 52012bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian build_libtool_libs=no 52022bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian build_old_libs=yes 52032bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian break 52042bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 52052bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 52062bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 52072bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 52082bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # See if our shared archives depend on static archives. 52092bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test -n "$old_archive_from_new_cmds" && build_old_libs=yes 52102bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 52112bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Go through the arguments, transforming them on the way. 52122bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian while test "$#" -gt 0; do 52132bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian arg="$1" 52142bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian shift 52152bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_quote_for_eval "$arg" 52162bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian qarg=$func_quote_for_eval_unquoted_result 52172bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append libtool_args " $func_quote_for_eval_result" 52182bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 52192bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # If the previous option needs an argument, assign it. 52202bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$prev"; then 52212bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $prev in 52222bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian output) 52232bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append compile_command " @OUTPUT@" 52242bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append finalize_command " @OUTPUT@" 52252bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 52262bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 52272bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 52282bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $prev in 52292bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian bindir) 52302bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian bindir="$arg" 52312bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian prev= 52322bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian continue 52332bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 52342bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian dlfiles|dlprefiles) 52352bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$preload" = no; then 52362bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Add the symbol object into the linking commands. 52372bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append compile_command " @SYMFILE@" 52382bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append finalize_command " @SYMFILE@" 52392bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian preload=yes 52402bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 52412bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $arg in 52422bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *.la | *.lo) ;; # We handle these cases below. 52432bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian force) 52442bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$dlself" = no; then 52452bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian dlself=needless 52462bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian export_dynamic=yes 52472bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 52482bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian prev= 52492bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian continue 52502bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 52512bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian self) 52522bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$prev" = dlprefiles; then 52532bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian dlself=yes 52542bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then 52552bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian dlself=yes 52562bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 52572bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian dlself=needless 52582bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian export_dynamic=yes 52592bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 52602bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian prev= 52612bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian continue 52622bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 52632bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) 52642bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$prev" = dlfiles; then 52652bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append dlfiles " $arg" 52662bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 52672bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append dlprefiles " $arg" 52682bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 52692bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian prev= 52702bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian continue 52712bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 52722bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 52732bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 52742bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian expsyms) 52752bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian export_symbols="$arg" 52762bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test -f "$arg" \ 52772bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian || func_fatal_error "symbol file \`$arg' does not exist" 52782bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian prev= 52792bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian continue 52802bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 52812bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian expsyms_regex) 52822bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian export_symbols_regex="$arg" 52832bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian prev= 52842bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian continue 52852bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 52862bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian framework) 52872bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $host in 52882bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *-*-darwin*) 52892bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case "$deplibs " in 52902bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *" $qarg.ltframework "*) ;; 52912bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) func_append deplibs " $qarg.ltframework" # this is fixed later 52922bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 52932bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 52942bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 52952bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 52962bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian prev= 52972bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian continue 52982bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 52992bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian inst_prefix) 53002bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian inst_prefix_dir="$arg" 53012bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian prev= 53022bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian continue 53032bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 53042bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian objectlist) 53052bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -f "$arg"; then 53062bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian save_arg=$arg 53072bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian moreargs= 53082bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for fil in `cat "$save_arg"` 53092bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian do 53102bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_append moreargs " $fil" 53112bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian arg=$fil 53122bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # A libtool-controlled object. 53132bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 53142bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Check to see that this really is a libtool object. 53152bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if func_lalib_unsafe_p "$arg"; then 53162bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian pic_object= 53172bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian non_pic_object= 53182bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 53192bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Read the .lo file 53202bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_source "$arg" 53212bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 53222bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -z "$pic_object" || 53232bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test -z "$non_pic_object" || 53242bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test "$pic_object" = none && 53252bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test "$non_pic_object" = none; then 53262bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_fatal_error "cannot find name of object for \`$arg'" 53272bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 53282bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 53292bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Extract subdirectory from the argument. 53302bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_dirname "$arg" "/" "" 53312bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian xdir="$func_dirname_result" 53322bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 53332bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$pic_object" != none; then 53342bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Prepend the subdirectory the object is found in. 53352bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian pic_object="$xdir$pic_object" 53362bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 53372bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$prev" = dlfiles; then 53382bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then 53392bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append dlfiles " $pic_object" 53402bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian prev= 53412bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian continue 53422bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 53432bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # If libtool objects are unsupported, then we need to preload. 53442bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian prev=dlprefiles 53452bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 53462bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 53472bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 53482bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # CHECK ME: I think I busted this. -Ossama 53492bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$prev" = dlprefiles; then 53502bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Preload the old-style object. 53512bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append dlprefiles " $pic_object" 53522bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian prev= 53532bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 53542bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 53552bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # A PIC object. 53562bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append libobjs " $pic_object" 53572bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian arg="$pic_object" 53582bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 53592bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 53602bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Non-PIC object. 53612bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$non_pic_object" != none; then 53622bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Prepend the subdirectory the object is found in. 53632bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian non_pic_object="$xdir$non_pic_object" 53642bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 53652bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # A standard non-PIC object 53662bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append non_pic_objects " $non_pic_object" 53672bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -z "$pic_object" || test "$pic_object" = none ; then 53682bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian arg="$non_pic_object" 53692bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 53702bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 53712bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # If the PIC object exists, use it instead. 53722bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # $xdir was prepended to $pic_object above. 53732bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian non_pic_object="$pic_object" 53742bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append non_pic_objects " $non_pic_object" 53752bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 53762bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 53772bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Only an error if not doing a dry-run. 53782bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if $opt_dry_run; then 53792bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Extract subdirectory from the argument. 53802bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_dirname "$arg" "/" "" 53812bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian xdir="$func_dirname_result" 53822bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 53832bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_lo2o "$arg" 53842bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian pic_object=$xdir$objdir/$func_lo2o_result 53852bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian non_pic_object=$xdir$func_lo2o_result 53862bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append libobjs " $pic_object" 53872bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append non_pic_objects " $non_pic_object" 53882bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 53892bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_fatal_error "\`$arg' is not a valid libtool object" 53902bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 53912bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 53922bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 53932bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 53942bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_fatal_error "link input file \`$arg' does not exist" 53952bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 53962bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian arg=$save_arg 53972bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian prev= 53982bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian continue 53992bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 54002bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian precious_regex) 54012bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian precious_files_regex="$arg" 54022bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian prev= 54032bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian continue 54042bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 54052bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian release) 54062bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian release="-$arg" 54072bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian prev= 54082bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian continue 54092bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 54102bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian rpath | xrpath) 54112bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # We need an absolute path. 54122bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $arg in 54132bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian [\\/]* | [A-Za-z]:[\\/]*) ;; 54142bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) 54152bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_fatal_error "only absolute run-paths are allowed" 54162bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 54172bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 54182bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$prev" = rpath; then 54192bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case "$rpath " in 54202bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *" $arg "*) ;; 54212bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) func_append rpath " $arg" ;; 54222bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 54232bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 54242bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case "$xrpath " in 54252bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *" $arg "*) ;; 54262bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) func_append xrpath " $arg" ;; 54272bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 54282bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 54292bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian prev= 54302bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian continue 54312bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 54322bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian shrext) 54332bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian shrext_cmds="$arg" 54342bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian prev= 54352bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian continue 54362bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 54372bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian weak) 54382bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append weak_libs " $arg" 54392bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian prev= 54402bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian continue 54412bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 54422bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian xcclinker) 54432bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append linker_flags " $qarg" 54442bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append compiler_flags " $qarg" 54452bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian prev= 54462bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append compile_command " $qarg" 54472bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append finalize_command " $qarg" 54482bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian continue 54492bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 54502bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian xcompiler) 54512bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append compiler_flags " $qarg" 54522bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian prev= 54532bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append compile_command " $qarg" 54542bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append finalize_command " $qarg" 54552bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian continue 54562bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 54572bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian xlinker) 54582bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append linker_flags " $qarg" 54592bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append compiler_flags " $wl$qarg" 54602bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian prev= 54612bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append compile_command " $wl$qarg" 54622bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append finalize_command " $wl$qarg" 54632bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian continue 54642bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 54652bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) 54662bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval "$prev=\"\$arg\"" 54672bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian prev= 54682bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian continue 54692bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 54702bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 54712bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi # test -n "$prev" 54722bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 54732bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian prevarg="$arg" 54742bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 54752bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $arg in 54762bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -all-static) 54772bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$link_static_flag"; then 54782bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # See comment for -static flag below, for more details. 54792bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append compile_command " $link_static_flag" 54802bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append finalize_command " $link_static_flag" 54812bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 54822bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian continue 54832bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 54842bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 54852bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -allow-undefined) 54862bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # FIXME: remove this flag sometime in the future. 54872bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_fatal_error "\`-allow-undefined' must not be used because it is the default" 54882bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 54892bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 54902bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -avoid-version) 54912bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian avoid_version=yes 54922bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian continue 54932bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 54942bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 54952bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -bindir) 54962bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian prev=bindir 54972bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian continue 54982bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 54992bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 55002bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -dlopen) 55012bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian prev=dlfiles 55022bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian continue 55032bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 55042bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 55052bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -dlpreopen) 55062bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian prev=dlprefiles 55072bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian continue 55082bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 55092bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 55102bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -export-dynamic) 55112bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian export_dynamic=yes 55122bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian continue 55132bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 55142bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 55152bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -export-symbols | -export-symbols-regex) 55162bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$export_symbols" || test -n "$export_symbols_regex"; then 55172bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_fatal_error "more than one -exported-symbols argument is not allowed" 55182bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 55192bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "X$arg" = "X-export-symbols"; then 55202bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian prev=expsyms 55212bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 55222bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian prev=expsyms_regex 55232bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 55242bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian continue 55252bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 55262bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 55272bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -framework) 55282bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian prev=framework 55292bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian continue 55302bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 55312bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 55322bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -inst-prefix-dir) 55332bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian prev=inst_prefix 55342bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian continue 55352bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 55362bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 55372bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* 55382bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # so, if we see these flags be careful not to treat them like -L 55392bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -L[A-Z][A-Z]*:*) 55402bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $with_gcc/$host in 55412bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian no/*-*-irix* | /*-*-irix*) 55422bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append compile_command " $arg" 55432bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append finalize_command " $arg" 55442bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 55452bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 55462bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian continue 55472bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 55482bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 55492bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -L*) 55502bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_stripname "-L" '' "$arg" 55512bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -z "$func_stripname_result"; then 55522bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$#" -gt 0; then 55532bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_fatal_error "require no space between \`-L' and \`$1'" 55542bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 55552bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_fatal_error "need path for \`-L' option" 55562bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 55572bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 55582bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_resolve_sysroot "$func_stripname_result" 55592bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian dir=$func_resolve_sysroot_result 55602bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # We need an absolute path. 55612bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $dir in 55622bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian [\\/]* | [A-Za-z]:[\\/]*) ;; 55632bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) 55642bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian absdir=`cd "$dir" && pwd` 55652bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test -z "$absdir" && \ 55662bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_fatal_error "cannot determine absolute directory name of \`$dir'" 55672bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian dir="$absdir" 55682bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 55692bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 55702bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case "$deplibs " in 55712bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *" -L$dir "* | *" $arg "*) 55722bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Will only happen for absolute or sysroot arguments 55732bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 55742bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) 55752bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Preserve sysroot, but never include relative directories 55762bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $dir in 55772bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;; 55782bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) func_append deplibs " -L$dir" ;; 55792bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 55802bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append lib_search_path " $dir" 55812bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 55822bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 55832bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $host in 55842bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) 55852bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'` 55862bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case :$dllsearchpath: in 55872bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *":$dir:"*) ;; 55882bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ::) dllsearchpath=$dir;; 55892bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) func_append dllsearchpath ":$dir";; 55902bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 55912bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case :$dllsearchpath: in 55922bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *":$testbindir:"*) ;; 55932bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ::) dllsearchpath=$testbindir;; 55942bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) func_append dllsearchpath ":$testbindir";; 55952bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 55962bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 55972bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 55982bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian continue 55992bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 56002bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 56012bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -l*) 56022bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then 56032bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $host in 56042bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*) 56052bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # These systems don't actually have a C or math library (as such) 56062bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian continue 56072bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 56082bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *-*-os2*) 56092bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # These systems don't actually have a C library (as such) 56102bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test "X$arg" = "X-lc" && continue 56112bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 56122bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) 56132bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Do not include libc due to us having libc/libc_r. 56142bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test "X$arg" = "X-lc" && continue 56152bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 56162bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *-*-rhapsody* | *-*-darwin1.[012]) 56172bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Rhapsody C and math libraries are in the System framework 56182bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append deplibs " System.ltframework" 56192bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian continue 56202bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 56212bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *-*-sco3.2v5* | *-*-sco5v6*) 56222bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Causes problems with __ctype 56232bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test "X$arg" = "X-lc" && continue 56242bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 56252bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) 56262bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Compiler inserts libc in the correct place for threads to work 56272bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test "X$arg" = "X-lc" && continue 56282bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 56292bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 56302bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian elif test "X$arg" = "X-lc_r"; then 56312bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $host in 56322bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) 56332bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Do not include libc_r directly, use -pthread flag. 56342bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian continue 56352bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 56362bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 56372bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 56382bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append deplibs " $arg" 56392bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian continue 56402bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 56412bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 56422bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -module) 56432bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian module=yes 56442bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian continue 56452bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 56462bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 56472bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Tru64 UNIX uses -model [arg] to determine the layout of C++ 56482bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # classes, name mangling, and exception handling. 56492bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Darwin uses the -arch flag to determine output architecture. 56502bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -model|-arch|-isysroot|--sysroot) 56512bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append compiler_flags " $arg" 56522bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append compile_command " $arg" 56532bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append finalize_command " $arg" 56542bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian prev=xcompiler 56552bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian continue 56562bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 56572bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 56582bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ 56592bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) 56602bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append compiler_flags " $arg" 56612bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append compile_command " $arg" 56622bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append finalize_command " $arg" 56632bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case "$new_inherited_linker_flags " in 56642bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *" $arg "*) ;; 56652bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian * ) func_append new_inherited_linker_flags " $arg" ;; 56662bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 56672bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian continue 56682bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 56692bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 56702bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -multi_module) 56712bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian single_module="${wl}-multi_module" 56722bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian continue 56732bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 56742bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 56752bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -no-fast-install) 56762bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fast_install=no 56772bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian continue 56782bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 56792bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 56802bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -no-install) 56812bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $host in 56822bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*) 56832bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # The PATH hackery in wrapper scripts is required on Windows 56842bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # and Darwin in order for the loader to find any dlls it needs. 56852bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_warning "\`-no-install' is ignored for $host" 56862bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_warning "assuming \`-no-fast-install' instead" 56872bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fast_install=no 56882bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 56892bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) no_install=yes ;; 56902bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 56912bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian continue 56922bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 56932bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 56942bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -no-undefined) 56952bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian allow_undefined=no 56962bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian continue 56972bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 56982bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 56992bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -objectlist) 57002bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian prev=objectlist 57012bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian continue 57022bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 57032bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 57042bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -o) prev=output ;; 57052bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 57062bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -precious-files-regex) 57072bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian prev=precious_regex 57082bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian continue 57092bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 57102bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 57112bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -release) 57122bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian prev=release 57132bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian continue 57142bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 57152bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 57162bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -rpath) 57172bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian prev=rpath 57182bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian continue 57192bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 57202bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 57212bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -R) 57222bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian prev=xrpath 57232bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian continue 57242bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 57252bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 57262bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -R*) 57272bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_stripname '-R' '' "$arg" 57282bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian dir=$func_stripname_result 57292bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # We need an absolute path. 57302bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $dir in 57312bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian [\\/]* | [A-Za-z]:[\\/]*) ;; 57322bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian =*) 57332bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_stripname '=' '' "$dir" 57342bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian dir=$lt_sysroot$func_stripname_result 57352bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 57362bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) 57372bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_fatal_error "only absolute run-paths are allowed" 57382bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 57392bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 57402bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case "$xrpath " in 57412bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *" $dir "*) ;; 57422bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) func_append xrpath " $dir" ;; 57432bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 57442bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian continue 57452bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 57462bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 57472bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -shared) 57482bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # The effects of -shared are defined in a previous loop. 57492bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian continue 57502bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 57512bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 57522bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -shrext) 57532bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian prev=shrext 57542bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian continue 57552bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 57562bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 57572bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -static | -static-libtool-libs) 57582bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # The effects of -static are defined in a previous loop. 57592bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # We used to do the same as -all-static on platforms that 57602bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # didn't have a PIC flag, but the assumption that the effects 57612bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # would be equivalent was wrong. It would break on at least 57622bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Digital Unix and AIX. 57632bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian continue 57642bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 57652bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 57662bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -thread-safe) 57672bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian thread_safe=yes 57682bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian continue 57692bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 57702bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 57712bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -version-info) 57722bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian prev=vinfo 57732bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian continue 57742bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 57752bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 57762bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -version-number) 57772bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian prev=vinfo 57782bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian vinfo_number=yes 57792bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian continue 57802bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 57812bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 57822bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -weak) 57832bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian prev=weak 57842bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian continue 57852bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 57862bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 57872bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -Wc,*) 57882bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_stripname '-Wc,' '' "$arg" 57892bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian args=$func_stripname_result 57902bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian arg= 57912bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian save_ifs="$IFS"; IFS=',' 57922bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for flag in $args; do 57932bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian IFS="$save_ifs" 57942bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_quote_for_eval "$flag" 57952bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append arg " $func_quote_for_eval_result" 57962bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append compiler_flags " $func_quote_for_eval_result" 57972bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 57982bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian IFS="$save_ifs" 57992bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_stripname ' ' '' "$arg" 58002bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian arg=$func_stripname_result 58012bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 58022bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 58032bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -Wl,*) 58042bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_stripname '-Wl,' '' "$arg" 58052bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian args=$func_stripname_result 58062bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian arg= 58072bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian save_ifs="$IFS"; IFS=',' 58082bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for flag in $args; do 58092bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian IFS="$save_ifs" 58102bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_quote_for_eval "$flag" 58112bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append arg " $wl$func_quote_for_eval_result" 58122bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append compiler_flags " $wl$func_quote_for_eval_result" 58132bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append linker_flags " $func_quote_for_eval_result" 58142bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 58152bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian IFS="$save_ifs" 58162bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_stripname ' ' '' "$arg" 58172bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian arg=$func_stripname_result 58182bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 58192bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 58202bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -Xcompiler) 58212bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian prev=xcompiler 58222bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian continue 58232bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 58242bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 58252bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -Xlinker) 58262bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian prev=xlinker 58272bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian continue 58282bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 58292bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 58302bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -XCClinker) 58312bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian prev=xcclinker 58322bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian continue 58332bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 58342bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 58352bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # -msg_* for osf cc 58362bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -msg_*) 58372bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_quote_for_eval "$arg" 58382bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian arg="$func_quote_for_eval_result" 58392bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 58402bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 58412bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Flags to be passed through unchanged, with rationale: 58422bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # -64, -mips[0-9] enable 64-bit mode for the SGI compiler 58432bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # -r[0-9][0-9]* specify processor for the SGI compiler 58442bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler 58452bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # +DA*, +DD* enable 64-bit mode for the HP compiler 58462bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # -q* compiler args for the IBM compiler 58472bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # -m*, -t[45]*, -txscale* architecture-specific flags for GCC 58482bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # -F/path path to uninstalled frameworks, gcc on darwin 58492bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # -p, -pg, --coverage, -fprofile-* profiling flags for GCC 58502bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # @file GCC response files 58512bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # -tp=* Portland pgcc target processor selection 58522bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # --sysroot=* for sysroot support 58532bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # -O*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization 58542bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ 58552bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \ 58562bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -O*|-flto*|-fwhopr*|-fuse-linker-plugin) 58572bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_quote_for_eval "$arg" 58582bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian arg="$func_quote_for_eval_result" 58592bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append compile_command " $arg" 58602bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append finalize_command " $arg" 58612bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append compiler_flags " $arg" 58622bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian continue 58632bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 58642bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 58652bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Some other compiler flag. 58662bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -* | +*) 58672bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_quote_for_eval "$arg" 58682bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian arg="$func_quote_for_eval_result" 58692bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 58702bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 58712bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *.$objext) 58722bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # A standard object. 58732bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append objs " $arg" 58742bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 58752bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 58762bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *.lo) 58772bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # A libtool-controlled object. 58782bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 58792bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Check to see that this really is a libtool object. 58802bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if func_lalib_unsafe_p "$arg"; then 58812bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian pic_object= 58822bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian non_pic_object= 58832bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 58842bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Read the .lo file 58852bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_source "$arg" 58862bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 58872bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -z "$pic_object" || 58882bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test -z "$non_pic_object" || 58892bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test "$pic_object" = none && 58902bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test "$non_pic_object" = none; then 58912bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_fatal_error "cannot find name of object for \`$arg'" 58922bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 58932bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 58942bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Extract subdirectory from the argument. 58952bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_dirname "$arg" "/" "" 58962bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian xdir="$func_dirname_result" 58972bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 58982bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$pic_object" != none; then 58992bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Prepend the subdirectory the object is found in. 59002bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian pic_object="$xdir$pic_object" 59012bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 59022bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$prev" = dlfiles; then 59032bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then 59042bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append dlfiles " $pic_object" 59052bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian prev= 59062bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian continue 59072bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 59082bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # If libtool objects are unsupported, then we need to preload. 59092bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian prev=dlprefiles 59102bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 59112bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 59122bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 59132bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # CHECK ME: I think I busted this. -Ossama 59142bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$prev" = dlprefiles; then 59152bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Preload the old-style object. 59162bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append dlprefiles " $pic_object" 59172bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian prev= 59182bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 59192bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 59202bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # A PIC object. 59212bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append libobjs " $pic_object" 59222bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian arg="$pic_object" 59232bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 59242bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 59252bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Non-PIC object. 59262bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$non_pic_object" != none; then 59272bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Prepend the subdirectory the object is found in. 59282bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian non_pic_object="$xdir$non_pic_object" 59292bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 59302bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # A standard non-PIC object 59312bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append non_pic_objects " $non_pic_object" 59322bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -z "$pic_object" || test "$pic_object" = none ; then 59332bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian arg="$non_pic_object" 59342bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 59352bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 59362bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # If the PIC object exists, use it instead. 59372bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # $xdir was prepended to $pic_object above. 59382bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian non_pic_object="$pic_object" 59392bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append non_pic_objects " $non_pic_object" 59402bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 59412bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 59422bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Only an error if not doing a dry-run. 59432bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if $opt_dry_run; then 59442bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Extract subdirectory from the argument. 59452bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_dirname "$arg" "/" "" 59462bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian xdir="$func_dirname_result" 59472bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 59482bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_lo2o "$arg" 59492bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian pic_object=$xdir$objdir/$func_lo2o_result 59502bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian non_pic_object=$xdir$func_lo2o_result 59512bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append libobjs " $pic_object" 59522bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append non_pic_objects " $non_pic_object" 59532bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 59542bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_fatal_error "\`$arg' is not a valid libtool object" 59552bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 59562bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 59572bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 59582bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 59592bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *.$libext) 59602bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # An archive. 59612bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append deplibs " $arg" 59622bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append old_deplibs " $arg" 59632bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian continue 59642bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 59652bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 59662bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *.la) 59672bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # A libtool-controlled library. 59682bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 59692bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_resolve_sysroot "$arg" 59702bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$prev" = dlfiles; then 59712bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # This library was specified with -dlopen. 59722bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append dlfiles " $func_resolve_sysroot_result" 59732bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian prev= 59742bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian elif test "$prev" = dlprefiles; then 59752bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # The library was specified with -dlpreopen. 59762bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append dlprefiles " $func_resolve_sysroot_result" 59772bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian prev= 59782bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 59792bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append deplibs " $func_resolve_sysroot_result" 59802bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 59812bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian continue 59822bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 59832bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 59842bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Some other compiler argument. 59852bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) 59862bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Unknown arguments in both finalize_command and compile_command need 59872bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # to be aesthetically quoted because they are evaled later. 59882bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_quote_for_eval "$arg" 59892bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian arg="$func_quote_for_eval_result" 59902bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 59912bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac # arg 59922bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 59932bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Now actually substitute the argument into the commands. 59942bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$arg"; then 59952bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append compile_command " $arg" 59962bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append finalize_command " $arg" 59972bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 59982bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done # argument parsing loop 59992bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 60002bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test -n "$prev" && \ 60012bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_fatal_help "the \`$prevarg' option requires an argument" 60022bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 60032bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then 60042bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval arg=\"$export_dynamic_flag_spec\" 60052bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append compile_command " $arg" 60062bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append finalize_command " $arg" 60072bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 60082bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 60092bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian oldlibs= 60102bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # calculate the name of the file, without its directory 60112bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_basename "$output" 60122bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian outputname="$func_basename_result" 60132bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian libobjs_save="$libobjs" 60142bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 60152bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$shlibpath_var"; then 60162bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # get the directories listed in $shlibpath_var 60172bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval shlib_search_path=\`\$ECHO \"\${$shlibpath_var}\" \| \$SED \'s/:/ /g\'\` 60182bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 60192bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian shlib_search_path= 60202bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 60212bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval sys_lib_search_path=\"$sys_lib_search_path_spec\" 60222bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" 60232bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 60242bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_dirname "$output" "/" "" 60252bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian output_objdir="$func_dirname_result$objdir" 60262bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_to_tool_file "$output_objdir/" 60272bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian tool_output_objdir=$func_to_tool_file_result 60282bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Create the object directory. 60292bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_mkdir_p "$output_objdir" 60302bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 60312bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Determine the type of output 60322bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $output in 60332bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian "") 60342bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_fatal_help "you must specify an output file" 60352bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 60362bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *.$libext) linkmode=oldlib ;; 60372bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *.lo | *.$objext) linkmode=obj ;; 60382bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *.la) linkmode=lib ;; 60392bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) linkmode=prog ;; # Anything else should be a program. 60402bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 60412bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 60422bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian specialdeplibs= 60432bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 60442bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian libs= 60452bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Find all interdependent deplibs by searching for libraries 60462bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # that are linked more than once (e.g. -la -lb -la) 60472bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for deplib in $deplibs; do 60482bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if $opt_preserve_dup_deps ; then 60492bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case "$libs " in 60502bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *" $deplib "*) func_append specialdeplibs " $deplib" ;; 60512bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 60522bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 60532bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append libs " $deplib" 60542bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 60552bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 60562bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$linkmode" = lib; then 60572bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian libs="$predeps $libs $compiler_lib_search_path $postdeps" 60582bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 60592bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Compute libraries that are listed more than once in $predeps 60602bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # $postdeps and mark them as special (i.e., whose duplicates are 60612bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # not to be eliminated). 60622bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian pre_post_deps= 60632bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if $opt_duplicate_compiler_generated_deps; then 60642bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for pre_post_dep in $predeps $postdeps; do 60652bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case "$pre_post_deps " in 60662bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;; 60672bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 60682bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append pre_post_deps " $pre_post_dep" 60692bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 60702bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 60712bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian pre_post_deps= 60722bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 60732bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 60742bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian deplibs= 60752bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian newdependency_libs= 60762bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian newlib_search_path= 60772bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian need_relink=no # whether we're linking any uninstalled libtool libraries 60782bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian notinst_deplibs= # not-installed libtool libraries 60792bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian notinst_path= # paths that contain not-installed libtool libraries 60802bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 60812bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $linkmode in 60822bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian lib) 60832bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian passes="conv dlpreopen link" 60842bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for file in $dlfiles $dlprefiles; do 60852bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $file in 60862bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *.la) ;; 60872bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) 60882bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_fatal_help "libraries can \`-dlopen' only libtool libraries: $file" 60892bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 60902bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 60912bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 60922bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 60932bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian prog) 60942bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian compile_deplibs= 60952bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian finalize_deplibs= 60962bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian alldeplibs=no 60972bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian newdlfiles= 60982bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian newdlprefiles= 60992bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian passes="conv scan dlopen dlpreopen link" 61002bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 61012bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) passes="conv" 61022bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 61032bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 61042bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 61052bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for pass in $passes; do 61062bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # The preopen pass in lib mode reverses $deplibs; put it back here 61072bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # so that -L comes before libs that need it for instance... 61082bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$linkmode,$pass" = "lib,link"; then 61092bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ## FIXME: Find the place where the list is rebuilt in the wrong 61102bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ## order, and fix it there properly 61112bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian tmp_deplibs= 61122bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for deplib in $deplibs; do 61132bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian tmp_deplibs="$deplib $tmp_deplibs" 61142bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 61152bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian deplibs="$tmp_deplibs" 61162bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 61172bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 61182bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$linkmode,$pass" = "lib,link" || 61192bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test "$linkmode,$pass" = "prog,scan"; then 61202bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian libs="$deplibs" 61212bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian deplibs= 61222bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 61232bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$linkmode" = prog; then 61242bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $pass in 61252bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian dlopen) libs="$dlfiles" ;; 61262bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian dlpreopen) libs="$dlprefiles" ;; 61272bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian link) libs="$deplibs %DEPLIBS% $dependency_libs" ;; 61282bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 61292bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 61302bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$linkmode,$pass" = "lib,dlpreopen"; then 61312bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Collect and forward deplibs of preopened libtool libs 61322bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for lib in $dlprefiles; do 61332bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Ignore non-libtool-libs 61342bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian dependency_libs= 61352bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_resolve_sysroot "$lib" 61362bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $lib in 61372bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *.la) func_source "$func_resolve_sysroot_result" ;; 61382bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 61392bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 61402bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Collect preopened libtool deplibs, except any this library 61412bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # has declared as weak libs 61422bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for deplib in $dependency_libs; do 61432bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_basename "$deplib" 61442bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian deplib_base=$func_basename_result 61452bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case " $weak_libs " in 61462bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *" $deplib_base "*) ;; 61472bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) func_append deplibs " $deplib" ;; 61482bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 61492bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 61502bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 61512bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian libs="$dlprefiles" 61522bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 61532bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$pass" = dlopen; then 61542bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Collect dlpreopened libraries 61552bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian save_deplibs="$deplibs" 61562bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian deplibs= 61572bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 61582bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 61592bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for deplib in $libs; do 61602bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian lib= 61612bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian found=no 61622bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $deplib in 61632bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ 61642bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) 61652bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$linkmode,$pass" = "prog,link"; then 61662bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian compile_deplibs="$deplib $compile_deplibs" 61672bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian finalize_deplibs="$deplib $finalize_deplibs" 61682bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 61692bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append compiler_flags " $deplib" 61702bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$linkmode" = lib ; then 61712bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case "$new_inherited_linker_flags " in 61722bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *" $deplib "*) ;; 61732bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian * ) func_append new_inherited_linker_flags " $deplib" ;; 61742bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 61752bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 61762bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 61772bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian continue 61782bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 61792bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -l*) 61802bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$linkmode" != lib && test "$linkmode" != prog; then 61812bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_warning "\`-l' is ignored for archives/objects" 61822bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian continue 61832bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 61842bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_stripname '-l' '' "$deplib" 61852bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian name=$func_stripname_result 61862bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$linkmode" = lib; then 61872bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path" 61882bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 61892bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path" 61902bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 61912bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for searchdir in $searchdirs; do 61922bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for search_ext in .la $std_shrext .so .a; do 61932bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Search the libtool library 61942bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian lib="$searchdir/lib${name}${search_ext}" 61952bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -f "$lib"; then 61962bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$search_ext" = ".la"; then 61972bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian found=yes 61982bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 61992bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian found=no 62002bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 62012bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian break 2 62022bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 62032bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 62042bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 62052bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$found" != yes; then 62062bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # deplib doesn't seem to be a libtool library 62072bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$linkmode,$pass" = "prog,link"; then 62082bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian compile_deplibs="$deplib $compile_deplibs" 62092bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian finalize_deplibs="$deplib $finalize_deplibs" 62102bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 62112bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian deplibs="$deplib $deplibs" 62122bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" 62132bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 62142bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian continue 62152bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else # deplib is a libtool library 62162bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, 62172bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # We need to do some special things here, and not later. 62182bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then 62192bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case " $predeps $postdeps " in 62202bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *" $deplib "*) 62212bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if func_lalib_p "$lib"; then 62222bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian library_names= 62232bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian old_library= 62242bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_source "$lib" 62252bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for l in $old_library $library_names; do 62262bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ll="$l" 62272bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 62282bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "X$ll" = "X$old_library" ; then # only static version available 62292bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian found=no 62302bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_dirname "$lib" "" "." 62312bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ladir="$func_dirname_result" 62322bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian lib=$ladir/$old_library 62332bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$linkmode,$pass" = "prog,link"; then 62342bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian compile_deplibs="$deplib $compile_deplibs" 62352bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian finalize_deplibs="$deplib $finalize_deplibs" 62362bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 62372bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian deplibs="$deplib $deplibs" 62382bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" 62392bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 62402bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian continue 62412bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 62422bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 62432bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 62442bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) ;; 62452bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 62462bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 62472bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 62482bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; # -l 62492bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *.ltframework) 62502bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$linkmode,$pass" = "prog,link"; then 62512bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian compile_deplibs="$deplib $compile_deplibs" 62522bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian finalize_deplibs="$deplib $finalize_deplibs" 62532bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 62542bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian deplibs="$deplib $deplibs" 62552bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$linkmode" = lib ; then 62562bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case "$new_inherited_linker_flags " in 62572bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *" $deplib "*) ;; 62582bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian * ) func_append new_inherited_linker_flags " $deplib" ;; 62592bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 62602bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 62612bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 62622bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian continue 62632bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 62642bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -L*) 62652bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $linkmode in 62662bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian lib) 62672bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian deplibs="$deplib $deplibs" 62682bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test "$pass" = conv && continue 62692bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian newdependency_libs="$deplib $newdependency_libs" 62702bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_stripname '-L' '' "$deplib" 62712bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_resolve_sysroot "$func_stripname_result" 62722bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append newlib_search_path " $func_resolve_sysroot_result" 62732bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 62742bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian prog) 62752bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$pass" = conv; then 62762bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian deplibs="$deplib $deplibs" 62772bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian continue 62782bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 62792bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$pass" = scan; then 62802bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian deplibs="$deplib $deplibs" 62812bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 62822bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian compile_deplibs="$deplib $compile_deplibs" 62832bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian finalize_deplibs="$deplib $finalize_deplibs" 62842bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 62852bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_stripname '-L' '' "$deplib" 62862bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_resolve_sysroot "$func_stripname_result" 62872bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append newlib_search_path " $func_resolve_sysroot_result" 62882bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 62892bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) 62902bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_warning "\`-L' is ignored for archives/objects" 62912bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 62922bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac # linkmode 62932bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian continue 62942bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; # -L 62952bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -R*) 62962bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$pass" = link; then 62972bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_stripname '-R' '' "$deplib" 62982bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_resolve_sysroot "$func_stripname_result" 62992bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian dir=$func_resolve_sysroot_result 63002bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Make sure the xrpath contains only unique directories. 63012bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case "$xrpath " in 63022bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *" $dir "*) ;; 63032bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) func_append xrpath " $dir" ;; 63042bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 63052bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 63062bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian deplibs="$deplib $deplibs" 63072bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian continue 63082bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 63092bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *.la) 63102bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_resolve_sysroot "$deplib" 63112bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian lib=$func_resolve_sysroot_result 63122bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 63132bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *.$libext) 63142bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$pass" = conv; then 63152bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian deplibs="$deplib $deplibs" 63162bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian continue 63172bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 63182bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $linkmode in 63192bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian lib) 63202bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Linking convenience modules into shared libraries is allowed, 63212bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # but linking other static libraries is non-portable. 63222bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case " $dlpreconveniencelibs " in 63232bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *" $deplib "*) ;; 63242bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) 63252bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian valid_a_lib=no 63262bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $deplibs_check_method in 63272bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian match_pattern*) 63282bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian set dummy $deplibs_check_method; shift 63292bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` 63302bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \ 63312bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian | $EGREP "$match_pattern_regex" > /dev/null; then 63322bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian valid_a_lib=yes 63332bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 63342bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 63352bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian pass_all) 63362bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian valid_a_lib=yes 63372bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 63382bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 63392bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$valid_a_lib" != yes; then 63402bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo 63412bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $ECHO "*** Warning: Trying to link with static lib archive $deplib." 63422bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo "*** I have the capability to make that library automatically link in when" 63432bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo "*** you link to this library. But I can only do this if you have a" 63442bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo "*** shared version of the library, which you do not appear to have" 63452bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo "*** because the file extensions .$libext of this argument makes me believe" 63462bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo "*** that it is just a static archive that I should not use here." 63472bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 63482bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo 63492bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $ECHO "*** Warning: Linking the shared library $output against the" 63502bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $ECHO "*** static library $deplib is not portable!" 63512bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian deplibs="$deplib $deplibs" 63522bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 63532bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 63542bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 63552bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian continue 63562bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 63572bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian prog) 63582bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$pass" != link; then 63592bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian deplibs="$deplib $deplibs" 63602bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 63612bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian compile_deplibs="$deplib $compile_deplibs" 63622bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian finalize_deplibs="$deplib $finalize_deplibs" 63632bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 63642bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian continue 63652bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 63662bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac # linkmode 63672bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; # *.$libext 63682bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *.lo | *.$objext) 63692bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$pass" = conv; then 63702bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian deplibs="$deplib $deplibs" 63712bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian elif test "$linkmode" = prog; then 63722bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then 63732bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # If there is no dlopen support or we're linking statically, 63742bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # we need to preload. 63752bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append newdlprefiles " $deplib" 63762bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian compile_deplibs="$deplib $compile_deplibs" 63772bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian finalize_deplibs="$deplib $finalize_deplibs" 63782bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 63792bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append newdlfiles " $deplib" 63802bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 63812bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 63822bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian continue 63832bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 63842bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian %DEPLIBS%) 63852bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian alldeplibs=yes 63862bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian continue 63872bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 63882bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac # case $deplib 63892bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 63902bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$found" = yes || test -f "$lib"; then : 63912bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 63922bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'" 63932bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 63942bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 63952bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Check to see that this really is a libtool archive. 63962bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_lalib_unsafe_p "$lib" \ 63972bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian || func_fatal_error "\`$lib' is not a valid libtool archive" 63982bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 63992bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_dirname "$lib" "" "." 64002bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ladir="$func_dirname_result" 64012bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 64022bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian dlname= 64032bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian dlopen= 64042bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian dlpreopen= 64052bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian libdir= 64062bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian library_names= 64072bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian old_library= 64082bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian inherited_linker_flags= 64092bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # If the library was installed with an old release of libtool, 64102bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # it will not redefine variables installed, or shouldnotlink 64112bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian installed=yes 64122bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian shouldnotlink=no 64132bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian avoidtemprpath= 64142bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 64152bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 64162bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Read the .la file 64172bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_source "$lib" 64182bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 64192bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Convert "-framework foo" to "foo.ltframework" 64202bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$inherited_linker_flags"; then 64212bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'` 64222bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do 64232bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case " $new_inherited_linker_flags " in 64242bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *" $tmp_inherited_linker_flag "*) ;; 64252bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";; 64262bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 64272bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 64282bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 64292bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` 64302bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$linkmode,$pass" = "lib,link" || 64312bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test "$linkmode,$pass" = "prog,scan" || 64322bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian { test "$linkmode" != prog && test "$linkmode" != lib; }; then 64332bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test -n "$dlopen" && func_append dlfiles " $dlopen" 64342bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen" 64352bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 64362bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 64372bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$pass" = conv; then 64382bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Only check for convenience libraries 64392bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian deplibs="$lib $deplibs" 64402bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -z "$libdir"; then 64412bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -z "$old_library"; then 64422bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_fatal_error "cannot find name of link library for \`$lib'" 64432bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 64442bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # It is a libtool convenience library, so add in its objects. 64452bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append convenience " $ladir/$objdir/$old_library" 64462bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append old_convenience " $ladir/$objdir/$old_library" 64472bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian elif test "$linkmode" != prog && test "$linkmode" != lib; then 64482bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_fatal_error "\`$lib' is not a convenience library" 64492bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 64502bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian tmp_libs= 64512bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for deplib in $dependency_libs; do 64522bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian deplibs="$deplib $deplibs" 64532bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if $opt_preserve_dup_deps ; then 64542bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case "$tmp_libs " in 64552bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *" $deplib "*) func_append specialdeplibs " $deplib" ;; 64562bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 64572bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 64582bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append tmp_libs " $deplib" 64592bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 64602bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian continue 64612bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi # $pass = conv 64622bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 64632bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 64642bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Get the name of the library we link against. 64652bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian linklib= 64662bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$old_library" && 64672bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian { test "$prefer_static_libs" = yes || 64682bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test "$prefer_static_libs,$installed" = "built,no"; }; then 64692bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian linklib=$old_library 64702bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 64712bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for l in $old_library $library_names; do 64722bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian linklib="$l" 64732bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 64742bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 64752bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -z "$linklib"; then 64762bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_fatal_error "cannot find name of link library for \`$lib'" 64772bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 64782bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 64792bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # This library was specified with -dlopen. 64802bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$pass" = dlopen; then 64812bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -z "$libdir"; then 64822bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_fatal_error "cannot -dlopen a convenience library: \`$lib'" 64832bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 64842bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -z "$dlname" || 64852bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test "$dlopen_support" != yes || 64862bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test "$build_libtool_libs" = no; then 64872bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # If there is no dlname, no dlopen support or we're linking 64882bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # statically, we need to preload. We also need to preload any 64892bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # dependent libraries so libltdl's deplib preloader doesn't 64902bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # bomb out in the load deplibs phase. 64912bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append dlprefiles " $lib $dependency_libs" 64922bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 64932bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append newdlfiles " $lib" 64942bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 64952bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian continue 64962bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi # $pass = dlopen 64972bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 64982bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # We need an absolute path. 64992bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $ladir in 65002bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; 65012bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) 65022bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian abs_ladir=`cd "$ladir" && pwd` 65032bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -z "$abs_ladir"; then 65042bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_warning "cannot determine absolute directory name of \`$ladir'" 65052bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_warning "passing it literally to the linker, although it might fail" 65062bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian abs_ladir="$ladir" 65072bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 65082bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 65092bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 65102bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_basename "$lib" 65112bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian laname="$func_basename_result" 65122bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 65132bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Find the relevant object directory and library name. 65142bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "X$installed" = Xyes; then 65152bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then 65162bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_warning "library \`$lib' was moved." 65172bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian dir="$ladir" 65182bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian absdir="$abs_ladir" 65192bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian libdir="$abs_ladir" 65202bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 65212bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian dir="$lt_sysroot$libdir" 65222bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian absdir="$lt_sysroot$libdir" 65232bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 65242bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes 65252bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 65262bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then 65272bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian dir="$ladir" 65282bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian absdir="$abs_ladir" 65292bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Remove this search path later 65302bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append notinst_path " $abs_ladir" 65312bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 65322bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian dir="$ladir/$objdir" 65332bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian absdir="$abs_ladir/$objdir" 65342bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Remove this search path later 65352bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append notinst_path " $abs_ladir" 65362bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 65372bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi # $installed = yes 65382bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_stripname 'lib' '.la' "$laname" 65392bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian name=$func_stripname_result 65402bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 65412bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # This library was specified with -dlpreopen. 65422bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$pass" = dlpreopen; then 65432bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -z "$libdir" && test "$linkmode" = prog; then 65442bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'" 65452bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 65462bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case "$host" in 65472bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # special handling for platforms with PE-DLLs. 65482bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *cygwin* | *mingw* | *cegcc* ) 65492bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Linker will automatically link against shared library if both 65502bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # static and shared are present. Therefore, ensure we extract 65512bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # symbols from the import library if a shared library is present 65522bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # (otherwise, the dlopen module name will be incorrect). We do 65532bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # this by putting the import library name into $newdlprefiles. 65542bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # We recover the dlopen module name by 'saving' the la file 65552bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # name in a special purpose variable, and (later) extracting the 65562bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # dlname from the la file. 65572bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$dlname"; then 65582bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_tr_sh "$dir/$linklib" 65592bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname" 65602bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append newdlprefiles " $dir/$linklib" 65612bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 65622bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append newdlprefiles " $dir/$old_library" 65632bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Keep a list of preopened convenience libraries to check 65642bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # that they are being used correctly in the link pass. 65652bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test -z "$libdir" && \ 65662bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append dlpreconveniencelibs " $dir/$old_library" 65672bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 65682bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 65692bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian * ) 65702bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Prefer using a static library (so that no silly _DYNAMIC symbols 65712bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # are required to link). 65722bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$old_library"; then 65732bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append newdlprefiles " $dir/$old_library" 65742bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Keep a list of preopened convenience libraries to check 65752bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # that they are being used correctly in the link pass. 65762bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test -z "$libdir" && \ 65772bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append dlpreconveniencelibs " $dir/$old_library" 65782bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Otherwise, use the dlname, so that lt_dlopen finds it. 65792bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian elif test -n "$dlname"; then 65802bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append newdlprefiles " $dir/$dlname" 65812bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 65822bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append newdlprefiles " $dir/$linklib" 65832bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 65842bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 65852bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 65862bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi # $pass = dlpreopen 65872bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 65882bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -z "$libdir"; then 65892bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Link the convenience library 65902bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$linkmode" = lib; then 65912bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian deplibs="$dir/$old_library $deplibs" 65922bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian elif test "$linkmode,$pass" = "prog,link"; then 65932bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian compile_deplibs="$dir/$old_library $compile_deplibs" 65942bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian finalize_deplibs="$dir/$old_library $finalize_deplibs" 65952bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 65962bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian deplibs="$lib $deplibs" # used for prog,scan pass 65972bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 65982bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian continue 65992bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 66002bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 66012bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 66022bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$linkmode" = prog && test "$pass" != link; then 66032bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append newlib_search_path " $ladir" 66042bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian deplibs="$lib $deplibs" 66052bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 66062bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian linkalldeplibs=no 66072bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$link_all_deplibs" != no || test -z "$library_names" || 66082bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test "$build_libtool_libs" = no; then 66092bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian linkalldeplibs=yes 66102bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 66112bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 66122bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian tmp_libs= 66132bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for deplib in $dependency_libs; do 66142bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $deplib in 66152bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -L*) func_stripname '-L' '' "$deplib" 66162bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_resolve_sysroot "$func_stripname_result" 66172bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append newlib_search_path " $func_resolve_sysroot_result" 66182bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 66192bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 66202bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Need to link against all dependency_libs? 66212bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$linkalldeplibs" = yes; then 66222bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian deplibs="$deplib $deplibs" 66232bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 66242bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Need to hardcode shared library paths 66252bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # or/and link against static libraries 66262bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian newdependency_libs="$deplib $newdependency_libs" 66272bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 66282bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if $opt_preserve_dup_deps ; then 66292bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case "$tmp_libs " in 66302bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *" $deplib "*) func_append specialdeplibs " $deplib" ;; 66312bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 66322bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 66332bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append tmp_libs " $deplib" 66342bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done # for deplib 66352bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian continue 66362bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi # $linkmode = prog... 66372bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 66382bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$linkmode,$pass" = "prog,link"; then 66392bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$library_names" && 66402bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian { { test "$prefer_static_libs" = no || 66412bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test "$prefer_static_libs,$installed" = "built,yes"; } || 66422bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test -z "$old_library"; }; then 66432bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # We need to hardcode the library path 66442bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then 66452bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Make sure the rpath contains only unique directories. 66462bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case "$temp_rpath:" in 66472bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *"$absdir:"*) ;; 66482bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) func_append temp_rpath "$absdir:" ;; 66492bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 66502bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 66512bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 66522bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Hardcode the library path. 66532bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Skip directories that are in the system default run-time 66542bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # search path. 66552bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case " $sys_lib_dlsearch_path " in 66562bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *" $absdir "*) ;; 66572bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) 66582bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case "$compile_rpath " in 66592bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *" $absdir "*) ;; 66602bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) func_append compile_rpath " $absdir" ;; 66612bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 66622bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 66632bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 66642bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case " $sys_lib_dlsearch_path " in 66652bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *" $libdir "*) ;; 66662bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) 66672bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case "$finalize_rpath " in 66682bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *" $libdir "*) ;; 66692bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) func_append finalize_rpath " $libdir" ;; 66702bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 66712bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 66722bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 66732bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi # $linkmode,$pass = prog,link... 66742bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 66752bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$alldeplibs" = yes && 66762bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian { test "$deplibs_check_method" = pass_all || 66772bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian { test "$build_libtool_libs" = yes && 66782bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test -n "$library_names"; }; }; then 66792bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # We only need to search for static libraries 66802bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian continue 66812bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 66822bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 66832bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 66842bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian link_static=no # Whether the deplib will be linked statically 66852bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian use_static_libs=$prefer_static_libs 66862bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$use_static_libs" = built && test "$installed" = yes; then 66872bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian use_static_libs=no 66882bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 66892bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$library_names" && 66902bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian { test "$use_static_libs" = no || test -z "$old_library"; }; then 66912bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $host in 66922bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *cygwin* | *mingw* | *cegcc*) 66932bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # No point in relinking DLLs because paths are not encoded 66942bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append notinst_deplibs " $lib" 66952bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian need_relink=no 66962bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 66972bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) 66982bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$installed" = no; then 66992bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append notinst_deplibs " $lib" 67002bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian need_relink=yes 67012bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 67022bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 67032bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 67042bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # This is a shared library 67052bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 67062bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Warn about portability, can't link against -module's on some 67072bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # systems (darwin). Don't bleat about dlopened modules though! 67082bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian dlopenmodule="" 67092bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for dlpremoduletest in $dlprefiles; do 67102bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "X$dlpremoduletest" = "X$lib"; then 67112bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian dlopenmodule="$dlpremoduletest" 67122bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian break 67132bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 67142bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 67152bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then 67162bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo 67172bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$linkmode" = prog; then 67182bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $ECHO "*** Warning: Linking the executable $output against the loadable module" 67192bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 67202bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $ECHO "*** Warning: Linking the shared library $output against the loadable module" 67212bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 67222bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $ECHO "*** $linklib is not portable!" 67232bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 67242bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$linkmode" = lib && 67252bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test "$hardcode_into_libs" = yes; then 67262bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Hardcode the library path. 67272bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Skip directories that are in the system default run-time 67282bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # search path. 67292bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case " $sys_lib_dlsearch_path " in 67302bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *" $absdir "*) ;; 67312bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) 67322bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case "$compile_rpath " in 67332bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *" $absdir "*) ;; 67342bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) func_append compile_rpath " $absdir" ;; 67352bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 67362bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 67372bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 67382bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case " $sys_lib_dlsearch_path " in 67392bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *" $libdir "*) ;; 67402bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) 67412bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case "$finalize_rpath " in 67422bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *" $libdir "*) ;; 67432bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) func_append finalize_rpath " $libdir" ;; 67442bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 67452bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 67462bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 67472bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 67482bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 67492bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$old_archive_from_expsyms_cmds"; then 67502bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # figure out the soname 67512bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian set dummy $library_names 67522bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian shift 67532bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian realname="$1" 67542bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian shift 67552bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian libname=`eval "\\$ECHO \"$libname_spec\""` 67562bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # use dlname if we got it. it's perfectly good, no? 67572bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$dlname"; then 67582bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian soname="$dlname" 67592bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian elif test -n "$soname_spec"; then 67602bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # bleh windows 67612bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $host in 67622bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *cygwin* | mingw* | *cegcc*) 67632bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_arith $current - $age 67642bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian major=$func_arith_result 67652bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian versuffix="-$major" 67662bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 67672bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 67682bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval soname=\"$soname_spec\" 67692bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 67702bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian soname="$realname" 67712bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 67722bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 67732bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Make a new name for the extract_expsyms_cmds to use 67742bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian soroot="$soname" 67752bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_basename "$soroot" 67762bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian soname="$func_basename_result" 67772bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_stripname 'lib' '.dll' "$soname" 67782bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian newlib=libimp-$func_stripname_result.a 67792bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 67802bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # If the library has no export list, then create one now 67812bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -f "$output_objdir/$soname-def"; then : 67822bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 67832bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_verbose "extracting exported symbol list from \`$soname'" 67842bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_execute_cmds "$extract_expsyms_cmds" 'exit $?' 67852bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 67862bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 67872bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Create $newlib 67882bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -f "$output_objdir/$newlib"; then :; else 67892bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_verbose "generating import library for \`$soname'" 67902bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?' 67912bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 67922bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # make sure the library variables are pointing to the new library 67932bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian dir=$output_objdir 67942bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian linklib=$newlib 67952bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi # test -n "$old_archive_from_expsyms_cmds" 67962bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 67972bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$linkmode" = prog || test "$opt_mode" != relink; then 67982bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian add_shlibpath= 67992bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian add_dir= 68002bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian add= 68012bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian lib_linked=yes 68022bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $hardcode_action in 68032bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian immediate | unsupported) 68042bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$hardcode_direct" = no; then 68052bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian add="$dir/$linklib" 68062bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $host in 68072bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;; 68082bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *-*-sysv4*uw2*) add_dir="-L$dir" ;; 68092bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ 68102bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *-*-unixware7*) add_dir="-L$dir" ;; 68112bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *-*-darwin* ) 68122bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # if the lib is a (non-dlopened) module then we can not 68132bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # link against it, someone is ignoring the earlier warnings 68142bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if /usr/bin/file -L $add 2> /dev/null | 68152bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $GREP ": [^:]* bundle" >/dev/null ; then 68162bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "X$dlopenmodule" != "X$lib"; then 68172bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $ECHO "*** Warning: lib $linklib is a module, not a shared library" 68182bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -z "$old_library" ; then 68192bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo 68202bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo "*** And there doesn't seem to be a static archive available" 68212bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo "*** The link will probably fail, sorry" 68222bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 68232bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian add="$dir/$old_library" 68242bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 68252bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian elif test -n "$old_library"; then 68262bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian add="$dir/$old_library" 68272bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 68282bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 68292bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 68302bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian elif test "$hardcode_minus_L" = no; then 68312bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $host in 68322bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *-*-sunos*) add_shlibpath="$dir" ;; 68332bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 68342bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian add_dir="-L$dir" 68352bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian add="-l$name" 68362bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian elif test "$hardcode_shlibpath_var" = no; then 68372bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian add_shlibpath="$dir" 68382bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian add="-l$name" 68392bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 68402bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian lib_linked=no 68412bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 68422bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 68432bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian relink) 68442bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$hardcode_direct" = yes && 68452bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test "$hardcode_direct_absolute" = no; then 68462bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian add="$dir/$linklib" 68472bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian elif test "$hardcode_minus_L" = yes; then 68482bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian add_dir="-L$absdir" 68492bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Try looking first in the location we're being installed to. 68502bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$inst_prefix_dir"; then 68512bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $libdir in 68522bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian [\\/]*) 68532bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append add_dir " -L$inst_prefix_dir$libdir" 68542bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 68552bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 68562bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 68572bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian add="-l$name" 68582bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian elif test "$hardcode_shlibpath_var" = yes; then 68592bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian add_shlibpath="$dir" 68602bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian add="-l$name" 68612bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 68622bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian lib_linked=no 68632bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 68642bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 68652bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) lib_linked=no ;; 68662bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 68672bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 68682bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$lib_linked" != yes; then 68692bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_fatal_configuration "unsupported hardcode properties" 68702bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 68712bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 68722bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$add_shlibpath"; then 68732bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case :$compile_shlibpath: in 68742bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *":$add_shlibpath:"*) ;; 68752bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) func_append compile_shlibpath "$add_shlibpath:" ;; 68762bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 68772bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 68782bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$linkmode" = prog; then 68792bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" 68802bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test -n "$add" && compile_deplibs="$add $compile_deplibs" 68812bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 68822bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test -n "$add_dir" && deplibs="$add_dir $deplibs" 68832bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test -n "$add" && deplibs="$add $deplibs" 68842bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$hardcode_direct" != yes && 68852bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test "$hardcode_minus_L" != yes && 68862bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test "$hardcode_shlibpath_var" = yes; then 68872bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case :$finalize_shlibpath: in 68882bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *":$libdir:"*) ;; 68892bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) func_append finalize_shlibpath "$libdir:" ;; 68902bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 68912bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 68922bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 68932bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 68942bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 68952bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$linkmode" = prog || test "$opt_mode" = relink; then 68962bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian add_shlibpath= 68972bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian add_dir= 68982bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian add= 68992bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Finalize command for both is simple: just hardcode it. 69002bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$hardcode_direct" = yes && 69012bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test "$hardcode_direct_absolute" = no; then 69022bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian add="$libdir/$linklib" 69032bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian elif test "$hardcode_minus_L" = yes; then 69042bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian add_dir="-L$libdir" 69052bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian add="-l$name" 69062bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian elif test "$hardcode_shlibpath_var" = yes; then 69072bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case :$finalize_shlibpath: in 69082bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *":$libdir:"*) ;; 69092bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) func_append finalize_shlibpath "$libdir:" ;; 69102bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 69112bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian add="-l$name" 69122bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian elif test "$hardcode_automatic" = yes; then 69132bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$inst_prefix_dir" && 69142bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test -f "$inst_prefix_dir$libdir/$linklib" ; then 69152bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian add="$inst_prefix_dir$libdir/$linklib" 69162bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 69172bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian add="$libdir/$linklib" 69182bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 69192bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 69202bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # We cannot seem to hardcode it, guess we'll fake it. 69212bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian add_dir="-L$libdir" 69222bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Try looking first in the location we're being installed to. 69232bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$inst_prefix_dir"; then 69242bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $libdir in 69252bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian [\\/]*) 69262bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append add_dir " -L$inst_prefix_dir$libdir" 69272bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 69282bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 69292bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 69302bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian add="-l$name" 69312bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 69322bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 69332bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$linkmode" = prog; then 69342bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" 69352bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test -n "$add" && finalize_deplibs="$add $finalize_deplibs" 69362bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 69372bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test -n "$add_dir" && deplibs="$add_dir $deplibs" 69382bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test -n "$add" && deplibs="$add $deplibs" 69392bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 69402bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 69412bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian elif test "$linkmode" = prog; then 69422bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Here we assume that one of hardcode_direct or hardcode_minus_L 69432bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # is not unsupported. This is valid on all known static and 69442bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # shared platforms. 69452bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$hardcode_direct" != unsupported; then 69462bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test -n "$old_library" && linklib="$old_library" 69472bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian compile_deplibs="$dir/$linklib $compile_deplibs" 69482bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian finalize_deplibs="$dir/$linklib $finalize_deplibs" 69492bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 69502bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian compile_deplibs="-l$name -L$dir $compile_deplibs" 69512bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian finalize_deplibs="-l$name -L$dir $finalize_deplibs" 69522bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 69532bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian elif test "$build_libtool_libs" = yes; then 69542bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Not a shared library 69552bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$deplibs_check_method" != pass_all; then 69562bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # We're trying link a shared library against a static one 69572bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # but the system doesn't support it. 69582bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 69592bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Just print a warning and add the library to dependency_libs so 69602bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # that the program can be linked against the static library. 69612bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo 69622bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $ECHO "*** Warning: This system can not link to static lib archive $lib." 69632bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo "*** I have the capability to make that library automatically link in when" 69642bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo "*** you link to this library. But I can only do this if you have a" 69652bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo "*** shared version of the library, which you do not appear to have." 69662bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$module" = yes; then 69672bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo "*** But as you try to build a module library, libtool will still create " 69682bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo "*** a static module, that should work as long as the dlopening application" 69692bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo "*** is linked with the -dlopen flag to resolve symbols at runtime." 69702bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -z "$global_symbol_pipe"; then 69712bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo 69722bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo "*** However, this would only work if libtool was able to extract symbol" 69732bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo "*** lists from a program, using \`nm' or equivalent, but libtool could" 69742bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo "*** not find such a program. So, this module is probably useless." 69752bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo "*** \`nm' from GNU binutils and a full rebuild may help." 69762bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 69772bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$build_old_libs" = no; then 69782bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian build_libtool_libs=module 69792bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian build_old_libs=yes 69802bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 69812bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian build_libtool_libs=no 69822bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 69832bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 69842bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 69852bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian deplibs="$dir/$old_library $deplibs" 69862bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian link_static=yes 69872bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 69882bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi # link shared/static library? 69892bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 69902bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$linkmode" = lib; then 69912bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$dependency_libs" && 69922bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian { test "$hardcode_into_libs" != yes || 69932bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test "$build_old_libs" = yes || 69942bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test "$link_static" = yes; }; then 69952bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Extract -R from dependency_libs 69962bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian temp_deplibs= 69972bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for libdir in $dependency_libs; do 69982bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $libdir in 69992bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -R*) func_stripname '-R' '' "$libdir" 70002bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian temp_xrpath=$func_stripname_result 70012bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case " $xrpath " in 70022bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *" $temp_xrpath "*) ;; 70032bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) func_append xrpath " $temp_xrpath";; 70042bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac;; 70052bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) func_append temp_deplibs " $libdir";; 70062bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 70072bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 70082bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian dependency_libs="$temp_deplibs" 70092bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 70102bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 70112bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append newlib_search_path " $absdir" 70122bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Link against this library 70132bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" 70142bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # ... and its dependency_libs 70152bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian tmp_libs= 70162bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for deplib in $dependency_libs; do 70172bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian newdependency_libs="$deplib $newdependency_libs" 70182bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $deplib in 70192bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -L*) func_stripname '-L' '' "$deplib" 70202bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_resolve_sysroot "$func_stripname_result";; 70212bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) func_resolve_sysroot "$deplib" ;; 70222bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 70232bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if $opt_preserve_dup_deps ; then 70242bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case "$tmp_libs " in 70252bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *" $func_resolve_sysroot_result "*) 70262bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append specialdeplibs " $func_resolve_sysroot_result" ;; 70272bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 70282bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 70292bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append tmp_libs " $func_resolve_sysroot_result" 70302bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 70312bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 70322bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$link_all_deplibs" != no; then 70332bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Add the search paths of all dependency libraries 70342bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for deplib in $dependency_libs; do 70352bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian path= 70362bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $deplib in 70372bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -L*) path="$deplib" ;; 70382bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *.la) 70392bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_resolve_sysroot "$deplib" 70402bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian deplib=$func_resolve_sysroot_result 70412bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_dirname "$deplib" "" "." 70422bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian dir=$func_dirname_result 70432bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # We need an absolute path. 70442bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $dir in 70452bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; 70462bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) 70472bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian absdir=`cd "$dir" && pwd` 70482bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -z "$absdir"; then 70492bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_warning "cannot determine absolute directory name of \`$dir'" 70502bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian absdir="$dir" 70512bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 70522bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 70532bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 70542bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if $GREP "^installed=no" $deplib > /dev/null; then 70552bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $host in 70562bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *-*-darwin*) 70572bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian depdepl= 70582bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` 70592bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$deplibrary_names" ; then 70602bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for tmp in $deplibrary_names ; do 70612bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian depdepl=$tmp 70622bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 70632bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -f "$absdir/$objdir/$depdepl" ; then 70642bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian depdepl="$absdir/$objdir/$depdepl" 70652bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` 70662bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -z "$darwin_install_name"; then 70672bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian darwin_install_name=`${OTOOL64} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` 70682bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 70692bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append compiler_flags " ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}" 70702bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append linker_flags " -dylib_file ${darwin_install_name}:${depdepl}" 70712bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian path= 70722bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 70732bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 70742bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 70752bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) 70762bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian path="-L$absdir/$objdir" 70772bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 70782bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 70792bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 70802bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` 70812bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test -z "$libdir" && \ 70822bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_fatal_error "\`$deplib' is not a valid libtool archive" 70832bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test "$absdir" != "$libdir" && \ 70842bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_warning "\`$deplib' seems to be moved" 70852bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 70862bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian path="-L$absdir" 70872bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 70882bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 70892bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 70902bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case " $deplibs " in 70912bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *" $path "*) ;; 70922bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) deplibs="$path $deplibs" ;; 70932bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 70942bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 70952bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi # link_all_deplibs != no 70962bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi # linkmode = lib 70972bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done # for deplib in $libs 70982bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$pass" = link; then 70992bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$linkmode" = "prog"; then 71002bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian compile_deplibs="$new_inherited_linker_flags $compile_deplibs" 71012bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" 71022bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 71032bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` 71042bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 71052bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 71062bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian dependency_libs="$newdependency_libs" 71072bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$pass" = dlpreopen; then 71082bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Link the dlpreopened libraries before other libraries 71092bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for deplib in $save_deplibs; do 71102bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian deplibs="$deplib $deplibs" 71112bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 71122bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 71132bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$pass" != dlopen; then 71142bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$pass" != conv; then 71152bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Make sure lib_search_path contains only unique directories. 71162bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian lib_search_path= 71172bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for dir in $newlib_search_path; do 71182bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case "$lib_search_path " in 71192bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *" $dir "*) ;; 71202bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) func_append lib_search_path " $dir" ;; 71212bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 71222bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 71232bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian newlib_search_path= 71242bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 71252bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 71262bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$linkmode,$pass" != "prog,link"; then 71272bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian vars="deplibs" 71282bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 71292bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian vars="compile_deplibs finalize_deplibs" 71302bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 71312bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for var in $vars dependency_libs; do 71322bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Add libraries to $var in reverse order 71332bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval tmp_libs=\"\$$var\" 71342bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian new_libs= 71352bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for deplib in $tmp_libs; do 71362bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # FIXME: Pedantically, this is the right thing to do, so 71372bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # that some nasty dependency loop isn't accidentally 71382bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # broken: 71392bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian #new_libs="$deplib $new_libs" 71402bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Pragmatically, this seems to cause very few problems in 71412bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # practice: 71422bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $deplib in 71432bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -L*) new_libs="$deplib $new_libs" ;; 71442bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -R*) ;; 71452bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) 71462bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # And here is the reason: when a library appears more 71472bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # than once as an explicit dependence of a library, or 71482bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # is implicitly linked in more than once by the 71492bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # compiler, it is considered special, and multiple 71502bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # occurrences thereof are not removed. Compare this 71512bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # with having the same library being listed as a 71522bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # dependency of multiple other libraries: in this case, 71532bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # we know (pedantically, we assume) the library does not 71542bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # need to be listed more than once, so we keep only the 71552bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # last copy. This is not always right, but it is rare 71562bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # enough that we require users that really mean to play 71572bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # such unportable linking tricks to link the library 71582bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # using -Wl,-lname, so that libtool does not consider it 71592bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # for duplicate removal. 71602bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case " $specialdeplibs " in 71612bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *" $deplib "*) new_libs="$deplib $new_libs" ;; 71622bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) 71632bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case " $new_libs " in 71642bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *" $deplib "*) ;; 71652bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) new_libs="$deplib $new_libs" ;; 71662bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 71672bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 71682bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 71692bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 71702bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 71712bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 71722bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian tmp_libs= 71732bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for deplib in $new_libs; do 71742bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $deplib in 71752bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -L*) 71762bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case " $tmp_libs " in 71772bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *" $deplib "*) ;; 71782bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) func_append tmp_libs " $deplib" ;; 71792bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 71802bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 71812bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) func_append tmp_libs " $deplib" ;; 71822bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 71832bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 71842bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval $var=\"$tmp_libs\" 71852bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done # for var 71862bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 71872bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Last step: remove runtime libs from dependency_libs 71882bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # (they stay in deplibs) 71892bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian tmp_libs= 71902bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for i in $dependency_libs ; do 71912bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case " $predeps $postdeps $compiler_lib_search_path " in 71922bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *" $i "*) 71932bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian i="" 71942bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 71952bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 71962bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$i" ; then 71972bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append tmp_libs " $i" 71982bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 71992bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 72002bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian dependency_libs=$tmp_libs 72012bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done # for pass 72022bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$linkmode" = prog; then 72032bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian dlfiles="$newdlfiles" 72042bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 72052bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$linkmode" = prog || test "$linkmode" = lib; then 72062bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian dlprefiles="$newdlprefiles" 72072bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 72082bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 72092bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $linkmode in 72102bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian oldlib) 72112bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then 72122bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_warning "\`-dlopen' is ignored for archives" 72132bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 72142bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 72152bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case " $deplibs" in 72162bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *\ -l* | *\ -L*) 72172bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_warning "\`-l' and \`-L' are ignored for archives" ;; 72182bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 72192bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 72202bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test -n "$rpath" && \ 72212bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_warning "\`-rpath' is ignored for archives" 72222bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 72232bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test -n "$xrpath" && \ 72242bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_warning "\`-R' is ignored for archives" 72252bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 72262bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test -n "$vinfo" && \ 72272bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_warning "\`-version-info/-version-number' is ignored for archives" 72282bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 72292bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test -n "$release" && \ 72302bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_warning "\`-release' is ignored for archives" 72312bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 72322bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test -n "$export_symbols$export_symbols_regex" && \ 72332bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_warning "\`-export-symbols' is ignored for archives" 72342bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 72352bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Now set the variables for building old libraries. 72362bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian build_libtool_libs=no 72372bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian oldlibs="$output" 72382bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append objs "$old_deplibs" 72392bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 72402bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 72412bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian lib) 72422bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Make sure we only generate libraries of the form `libNAME.la'. 72432bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $outputname in 72442bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian lib*) 72452bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_stripname 'lib' '.la' "$outputname" 72462bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian name=$func_stripname_result 72472bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval shared_ext=\"$shrext_cmds\" 72482bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval libname=\"$libname_spec\" 72492bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 72502bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) 72512bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test "$module" = no && \ 72522bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_fatal_help "libtool library \`$output' must begin with \`lib'" 72532bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 72542bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$need_lib_prefix" != no; then 72552bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Add the "lib" prefix for modules if required 72562bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_stripname '' '.la' "$outputname" 72572bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian name=$func_stripname_result 72582bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval shared_ext=\"$shrext_cmds\" 72592bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval libname=\"$libname_spec\" 72602bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 72612bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_stripname '' '.la' "$outputname" 72622bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian libname=$func_stripname_result 72632bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 72642bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 72652bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 72662bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 72672bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$objs"; then 72682bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$deplibs_check_method" != pass_all; then 72692bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 72702bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 72712bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo 72722bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $ECHO "*** Warning: Linking the shared library $output against the non-libtool" 72732bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $ECHO "*** objects $objs is not portable!" 72742bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append libobjs " $objs" 72752bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 72762bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 72772bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 72782bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test "$dlself" != no && \ 72792bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_warning "\`-dlopen self' is ignored for libtool libraries" 72802bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 72812bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian set dummy $rpath 72822bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian shift 72832bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test "$#" -gt 1 && \ 72842bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_warning "ignoring multiple \`-rpath's for a libtool library" 72852bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 72862bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian install_libdir="$1" 72872bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 72882bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian oldlibs= 72892bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -z "$rpath"; then 72902bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$build_libtool_libs" = yes; then 72912bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Building a libtool convenience library. 72922bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Some compilers have problems with a `.al' extension so 72932bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # convenience libraries should have the same extension an 72942bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # archive normally would. 72952bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian oldlibs="$output_objdir/$libname.$libext $oldlibs" 72962bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian build_libtool_libs=convenience 72972bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian build_old_libs=yes 72982bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 72992bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 73002bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test -n "$vinfo" && \ 73012bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_warning "\`-version-info/-version-number' is ignored for convenience libraries" 73022bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 73032bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test -n "$release" && \ 73042bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_warning "\`-release' is ignored for convenience libraries" 73052bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 73062bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 73072bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Parse the version information argument. 73082bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian save_ifs="$IFS"; IFS=':' 73092bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian set dummy $vinfo 0 0 0 73102bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian shift 73112bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian IFS="$save_ifs" 73122bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 73132bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test -n "$7" && \ 73142bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_fatal_help "too many parameters to \`-version-info'" 73152bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 73162bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # convert absolute version numbers to libtool ages 73172bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # this retains compatibility with .la files and attempts 73182bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # to make the code below a bit more comprehensible 73192bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 73202bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $vinfo_number in 73212bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian yes) 73222bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian number_major="$1" 73232bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian number_minor="$2" 73242bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian number_revision="$3" 73252bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # 73262bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # There are really only two kinds -- those that 73272bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # use the current revision as the major version 73282bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # and those that subtract age and use age as 73292bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # a minor version. But, then there is irix 73302bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # which has an extra 1 added just for fun 73312bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # 73322bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $version_type in 73332bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # correct linux to gnu/linux during the next big refactor 73342bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian darwin|linux|osf|windows|none) 73352bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_arith $number_major + $number_minor 73362bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian current=$func_arith_result 73372bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian age="$number_minor" 73382bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian revision="$number_revision" 73392bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 73402bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian freebsd-aout|freebsd-elf|qnx|sunos) 73412bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian current="$number_major" 73422bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian revision="$number_minor" 73432bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian age="0" 73442bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 73452bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian irix|nonstopux) 73462bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_arith $number_major + $number_minor 73472bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian current=$func_arith_result 73482bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian age="$number_minor" 73492bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian revision="$number_minor" 73502bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian lt_irix_increment=no 73512bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 73522bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 73532bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 73542bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian no) 73552bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian current="$1" 73562bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian revision="$2" 73572bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian age="$3" 73582bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 73592bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 73602bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 73612bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Check that each of the things are valid numbers. 73622bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $current in 73632bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 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]) ;; 73642bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) 73652bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_error "CURRENT \`$current' must be a nonnegative integer" 73662bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_fatal_error "\`$vinfo' is not valid version information" 73672bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 73682bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 73692bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 73702bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $revision in 73712bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 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]) ;; 73722bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) 73732bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_error "REVISION \`$revision' must be a nonnegative integer" 73742bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_fatal_error "\`$vinfo' is not valid version information" 73752bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 73762bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 73772bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 73782bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $age in 73792bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 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]) ;; 73802bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) 73812bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_error "AGE \`$age' must be a nonnegative integer" 73822bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_fatal_error "\`$vinfo' is not valid version information" 73832bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 73842bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 73852bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 73862bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$age" -gt "$current"; then 73872bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_error "AGE \`$age' is greater than the current interface number \`$current'" 73882bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_fatal_error "\`$vinfo' is not valid version information" 73892bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 73902bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 73912bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Calculate the version variables. 73922bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian major= 73932bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian versuffix= 73942bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian verstring= 73952bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $version_type in 73962bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian none) ;; 73972bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 73982bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian darwin) 73992bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Like Linux, but with the current version available in 74002bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # verstring for coding it into the library header 74012bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_arith $current - $age 74022bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian major=.$func_arith_result 74032bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian versuffix="$major.$age.$revision" 74042bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Darwin ld doesn't like 0 for these options... 74052bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_arith $current + 1 74062bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian minor_current=$func_arith_result 74072bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" 74082bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" 74092bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 74102bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 74112bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian freebsd-aout) 74122bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian major=".$current" 74132bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian versuffix=".$current.$revision"; 74142bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 74152bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 74162bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian freebsd-elf) 74172bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian major=".$current" 74182bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian versuffix=".$current" 74192bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 74202bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 74212bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian irix | nonstopux) 74222bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "X$lt_irix_increment" = "Xno"; then 74232bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_arith $current - $age 74242bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 74252bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_arith $current - $age + 1 74262bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 74272bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian major=$func_arith_result 74282bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 74292bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $version_type in 74302bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian nonstopux) verstring_prefix=nonstopux ;; 74312bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) verstring_prefix=sgi ;; 74322bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 74332bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian verstring="$verstring_prefix$major.$revision" 74342bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 74352bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Add in all the interfaces that we are compatible with. 74362bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian loop=$revision 74372bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian while test "$loop" -ne 0; do 74382bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_arith $revision - $loop 74392bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian iface=$func_arith_result 74402bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_arith $loop - 1 74412bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian loop=$func_arith_result 74422bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian verstring="$verstring_prefix$major.$iface:$verstring" 74432bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 74442bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 74452bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Before this point, $major must not contain `.'. 74462bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian major=.$major 74472bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian versuffix="$major.$revision" 74482bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 74492bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 74502bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian linux) # correct to gnu/linux during the next big refactor 74512bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_arith $current - $age 74522bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian major=.$func_arith_result 74532bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian versuffix="$major.$age.$revision" 74542bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 74552bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 74562bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian osf) 74572bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_arith $current - $age 74582bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian major=.$func_arith_result 74592bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian versuffix=".$current.$age.$revision" 74602bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian verstring="$current.$age.$revision" 74612bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 74622bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Add in all the interfaces that we are compatible with. 74632bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian loop=$age 74642bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian while test "$loop" -ne 0; do 74652bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_arith $current - $loop 74662bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian iface=$func_arith_result 74672bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_arith $loop - 1 74682bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian loop=$func_arith_result 74692bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian verstring="$verstring:${iface}.0" 74702bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 74712bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 74722bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Make executables depend on our current version. 74732bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append verstring ":${current}.0" 74742bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 74752bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 74762bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian qnx) 74772bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian major=".$current" 74782bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian versuffix=".$current" 74792bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 74802bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 74812bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian sunos) 74822bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian major=".$current" 74832bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian versuffix=".$current.$revision" 74842bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 74852bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 74862bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian windows) 74872bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Use '-' rather than '.', since we only want one 74882bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # extension on DOS 8.3 filesystems. 74892bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_arith $current - $age 74902bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian major=$func_arith_result 74912bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian versuffix="-$major" 74922bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 74932bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 74942bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) 74952bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_fatal_configuration "unknown library version type \`$version_type'" 74962bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 74972bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 74982bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 74992bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Clear the version info if we defaulted, and they specified a release. 75002bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -z "$vinfo" && test -n "$release"; then 75012bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian major= 75022bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $version_type in 75032bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian darwin) 75042bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # we can't check for "0.0" in archive_cmds due to quoting 75052bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # problems, so we reset it completely 75062bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian verstring= 75072bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 75082bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) 75092bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian verstring="0.0" 75102bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 75112bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 75122bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$need_version" = no; then 75132bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian versuffix= 75142bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 75152bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian versuffix=".0.0" 75162bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 75172bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 75182bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 75192bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Remove version info from name if versioning should be avoided 75202bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$avoid_version" = yes && test "$need_version" = no; then 75212bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian major= 75222bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian versuffix= 75232bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian verstring="" 75242bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 75252bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 75262bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Check to see if the archive will have undefined symbols. 75272bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$allow_undefined" = yes; then 75282bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$allow_undefined_flag" = unsupported; then 75292bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_warning "undefined symbols not allowed in $host shared libraries" 75302bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian build_libtool_libs=no 75312bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian build_old_libs=yes 75322bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 75332bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 75342bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Don't allow undefined symbols. 75352bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian allow_undefined_flag="$no_undefined_flag" 75362bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 75372bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 75382bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 75392bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 75402bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_generate_dlsyms "$libname" "$libname" "yes" 75412bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append libobjs " $symfileobj" 75422bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test "X$libobjs" = "X " && libobjs= 75432bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 75442bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$opt_mode" != relink; then 75452bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Remove our outputs, but don't remove object files since they 75462bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # may have been created when compiling PIC objects. 75472bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian removelist= 75482bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian tempremovelist=`$ECHO "$output_objdir/*"` 75492bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for p in $tempremovelist; do 75502bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $p in 75512bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *.$objext | *.gcno) 75522bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 75532bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) 75542bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "X$precious_files_regex" != "X"; then 75552bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 75562bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian then 75572bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian continue 75582bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 75592bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 75602bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append removelist " $p" 75612bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 75622bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) ;; 75632bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 75642bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 75652bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test -n "$removelist" && \ 75662bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_show_eval "${RM}r \$removelist" 75672bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 75682bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 75692bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Now set the variables for building old libraries. 75702bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then 75712bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append oldlibs " $output_objdir/$libname.$libext" 75722bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 75732bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Transform .lo files to .o files. 75742bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; $lo2o" | $NL2SP` 75752bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 75762bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 75772bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Eliminate all temporary directories. 75782bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian #for path in $notinst_path; do 75792bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"` 75802bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"` 75812bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"` 75822bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian #done 75832bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 75842bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$xrpath"; then 75852bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # If the user specified any rpath flags, then add them. 75862bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian temp_xrpath= 75872bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for libdir in $xrpath; do 75882bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_replace_sysroot "$libdir" 75892bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append temp_xrpath " -R$func_replace_sysroot_result" 75902bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case "$finalize_rpath " in 75912bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *" $libdir "*) ;; 75922bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) func_append finalize_rpath " $libdir" ;; 75932bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 75942bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 75952bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then 75962bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian dependency_libs="$temp_xrpath $dependency_libs" 75972bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 75982bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 75992bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 76002bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Make sure dlfiles contains only unique files that won't be dlpreopened 76012bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian old_dlfiles="$dlfiles" 76022bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian dlfiles= 76032bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for lib in $old_dlfiles; do 76042bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case " $dlprefiles $dlfiles " in 76052bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *" $lib "*) ;; 76062bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) func_append dlfiles " $lib" ;; 76072bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 76082bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 76092bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 76102bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Make sure dlprefiles contains only unique files 76112bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian old_dlprefiles="$dlprefiles" 76122bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian dlprefiles= 76132bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for lib in $old_dlprefiles; do 76142bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case "$dlprefiles " in 76152bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *" $lib "*) ;; 76162bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) func_append dlprefiles " $lib" ;; 76172bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 76182bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 76192bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 76202bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$build_libtool_libs" = yes; then 76212bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$rpath"; then 76222bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $host in 76232bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*) 76242bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # these systems don't actually have a c library (as such)! 76252bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 76262bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *-*-rhapsody* | *-*-darwin1.[012]) 76272bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Rhapsody C library is in the System framework 76282bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append deplibs " System.ltframework" 76292bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 76302bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *-*-netbsd*) 76312bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Don't link with libc until the a.out ld.so is fixed. 76322bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 76332bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) 76342bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Do not include libc due to us having libc/libc_r. 76352bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 76362bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *-*-sco3.2v5* | *-*-sco5v6*) 76372bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Causes problems with __ctype 76382bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 76392bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) 76402bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Compiler inserts libc in the correct place for threads to work 76412bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 76422bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) 76432bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Add libc to deplibs on all other systems if necessary. 76442bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$build_libtool_need_lc" = "yes"; then 76452bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append deplibs " -lc" 76462bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 76472bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 76482bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 76492bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 76502bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 76512bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Transform deplibs into only deplibs that can be linked in shared. 76522bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian name_save=$name 76532bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian libname_save=$libname 76542bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian release_save=$release 76552bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian versuffix_save=$versuffix 76562bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian major_save=$major 76572bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # I'm not sure if I'm treating the release correctly. I think 76582bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # release should show up in the -l (ie -lgmp5) so we don't want to 76592bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # add it in twice. Is that correct? 76602bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian release="" 76612bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian versuffix="" 76622bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian major="" 76632bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian newdeplibs= 76642bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian droppeddeps=no 76652bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $deplibs_check_method in 76662bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian pass_all) 76672bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Don't check for shared/static. Everything works. 76682bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # This might be a little naive. We might want to check 76692bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # whether the library exists or not. But this is on 76702bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # osf3 & osf4 and I'm not really sure... Just 76712bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # implementing what was already the behavior. 76722bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian newdeplibs=$deplibs 76732bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 76742bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test_compile) 76752bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # This code stresses the "libraries are programs" paradigm to its 76762bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # limits. Maybe even breaks it. We compile a program, linking it 76772bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # against the deplibs as a proxy for the library. Then we can check 76782bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # whether they linked in statically or dynamically with ldd. 76792bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $opt_dry_run || $RM conftest.c 76802bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian cat > conftest.c <<EOF 76812bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian int main() { return 0; } 76822bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianEOF 76832bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $opt_dry_run || $RM conftest 76842bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if $LTCC $LTCFLAGS -o conftest conftest.c $deplibs; then 76852bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ldd_output=`ldd conftest` 76862bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for i in $deplibs; do 76872bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $i in 76882bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -l*) 76892bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_stripname -l '' "$i" 76902bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian name=$func_stripname_result 76912bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then 76922bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case " $predeps $postdeps " in 76932bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *" $i "*) 76942bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append newdeplibs " $i" 76952bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian i="" 76962bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 76972bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 76982bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 76992bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$i" ; then 77002bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian libname=`eval "\\$ECHO \"$libname_spec\""` 77012bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian deplib_matches=`eval "\\$ECHO \"$library_names_spec\""` 77022bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian set dummy $deplib_matches; shift 77032bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian deplib_match=$1 77042bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then 77052bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append newdeplibs " $i" 77062bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 77072bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian droppeddeps=yes 77082bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo 77092bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $ECHO "*** Warning: dynamic linker does not accept needed library $i." 77102bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo "*** I have the capability to make that library automatically link in when" 77112bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo "*** you link to this library. But I can only do this if you have a" 77122bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo "*** shared version of the library, which I believe you do not have" 77132bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo "*** because a test_compile did reveal that the linker did not use it for" 77142bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo "*** its dynamic dependency list that programs get resolved with at runtime." 77152bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 77162bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 77172bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 77182bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) 77192bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append newdeplibs " $i" 77202bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 77212bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 77222bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 77232bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 77242bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Error occurred in the first compile. Let's try to salvage 77252bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # the situation: Compile a separate program for each library. 77262bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for i in $deplibs; do 77272bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $i in 77282bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -l*) 77292bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_stripname -l '' "$i" 77302bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian name=$func_stripname_result 77312bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $opt_dry_run || $RM conftest 77322bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if $LTCC $LTCFLAGS -o conftest conftest.c $i; then 77332bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ldd_output=`ldd conftest` 77342bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then 77352bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case " $predeps $postdeps " in 77362bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *" $i "*) 77372bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append newdeplibs " $i" 77382bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian i="" 77392bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 77402bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 77412bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 77422bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$i" ; then 77432bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian libname=`eval "\\$ECHO \"$libname_spec\""` 77442bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian deplib_matches=`eval "\\$ECHO \"$library_names_spec\""` 77452bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian set dummy $deplib_matches; shift 77462bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian deplib_match=$1 77472bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then 77482bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append newdeplibs " $i" 77492bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 77502bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian droppeddeps=yes 77512bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo 77522bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $ECHO "*** Warning: dynamic linker does not accept needed library $i." 77532bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo "*** I have the capability to make that library automatically link in when" 77542bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo "*** you link to this library. But I can only do this if you have a" 77552bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo "*** shared version of the library, which you do not appear to have" 77562bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo "*** because a test_compile did reveal that the linker did not use this one" 77572bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo "*** as a dynamic dependency that programs can get resolved with at runtime." 77582bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 77592bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 77602bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 77612bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian droppeddeps=yes 77622bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo 77632bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $ECHO "*** Warning! Library $i is needed by this library but I was not able to" 77642bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo "*** make it link in! You will probably need to install it or some" 77652bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo "*** library that it depends on before this library will be fully" 77662bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo "*** functional. Installing it before continuing would be even better." 77672bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 77682bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 77692bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) 77702bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append newdeplibs " $i" 77712bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 77722bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 77732bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 77742bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 77752bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 77762bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian file_magic*) 77772bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian set dummy $deplibs_check_method; shift 77782bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian file_magic_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` 77792bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for a_deplib in $deplibs; do 77802bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $a_deplib in 77812bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -l*) 77822bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_stripname -l '' "$a_deplib" 77832bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian name=$func_stripname_result 77842bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then 77852bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case " $predeps $postdeps " in 77862bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *" $a_deplib "*) 77872bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append newdeplibs " $a_deplib" 77882bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian a_deplib="" 77892bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 77902bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 77912bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 77922bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$a_deplib" ; then 77932bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian libname=`eval "\\$ECHO \"$libname_spec\""` 77942bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$file_magic_glob"; then 77952bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian libnameglob=`func_echo_all "$libname" | $SED -e $file_magic_glob` 77962bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 77972bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian libnameglob=$libname 77982bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 77992bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test "$want_nocaseglob" = yes && nocaseglob=`shopt -p nocaseglob` 78002bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do 78012bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$want_nocaseglob" = yes; then 78022bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian shopt -s nocaseglob 78032bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null` 78042bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $nocaseglob 78052bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 78062bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null` 78072bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 78082bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for potent_lib in $potential_libs; do 78092bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Follow soft links. 78102bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if ls -lLd "$potent_lib" 2>/dev/null | 78112bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $GREP " -> " >/dev/null; then 78122bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian continue 78132bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 78142bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # The statement above tries to avoid entering an 78152bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # endless loop below, in case of cyclic links. 78162bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # We might still enter an endless loop, since a link 78172bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # loop can be closed while we follow links, 78182bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # but so what? 78192bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian potlib="$potent_lib" 78202bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian while test -h "$potlib" 2>/dev/null; do 78212bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` 78222bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $potliblink in 78232bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; 78242bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) potlib=`$ECHO "$potlib" | $SED 's,[^/]*$,,'`"$potliblink";; 78252bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 78262bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 78272bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | 78282bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $SED -e 10q | 78292bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $EGREP "$file_magic_regex" > /dev/null; then 78302bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append newdeplibs " $a_deplib" 78312bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian a_deplib="" 78322bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian break 2 78332bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 78342bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 78352bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 78362bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 78372bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$a_deplib" ; then 78382bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian droppeddeps=yes 78392bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo 78402bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $ECHO "*** Warning: linker path does not have real file for library $a_deplib." 78412bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo "*** I have the capability to make that library automatically link in when" 78422bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo "*** you link to this library. But I can only do this if you have a" 78432bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo "*** shared version of the library, which you do not appear to have" 78442bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo "*** because I did check the linker path looking for a file starting" 78452bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -z "$potlib" ; then 78462bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $ECHO "*** with $libname but no candidates were found. (...for file magic test)" 78472bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 78482bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $ECHO "*** with $libname and none of the candidates passed a file format test" 78492bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $ECHO "*** using a file magic. Last file checked: $potlib" 78502bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 78512bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 78522bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 78532bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) 78542bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Add a -L argument. 78552bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append newdeplibs " $a_deplib" 78562bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 78572bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 78582bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done # Gone through all deplibs. 78592bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 78602bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian match_pattern*) 78612bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian set dummy $deplibs_check_method; shift 78622bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` 78632bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for a_deplib in $deplibs; do 78642bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $a_deplib in 78652bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -l*) 78662bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_stripname -l '' "$a_deplib" 78672bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian name=$func_stripname_result 78682bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then 78692bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case " $predeps $postdeps " in 78702bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *" $a_deplib "*) 78712bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append newdeplibs " $a_deplib" 78722bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian a_deplib="" 78732bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 78742bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 78752bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 78762bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$a_deplib" ; then 78772bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian libname=`eval "\\$ECHO \"$libname_spec\""` 78782bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do 78792bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian potential_libs=`ls $i/$libname[.-]* 2>/dev/null` 78802bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for potent_lib in $potential_libs; do 78812bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian potlib="$potent_lib" # see symlink-check above in file_magic test 78822bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \ 78832bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $EGREP "$match_pattern_regex" > /dev/null; then 78842bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append newdeplibs " $a_deplib" 78852bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian a_deplib="" 78862bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian break 2 78872bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 78882bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 78892bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 78902bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 78912bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$a_deplib" ; then 78922bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian droppeddeps=yes 78932bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo 78942bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $ECHO "*** Warning: linker path does not have real file for library $a_deplib." 78952bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo "*** I have the capability to make that library automatically link in when" 78962bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo "*** you link to this library. But I can only do this if you have a" 78972bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo "*** shared version of the library, which you do not appear to have" 78982bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo "*** because I did check the linker path looking for a file starting" 78992bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -z "$potlib" ; then 79002bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)" 79012bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 79022bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $ECHO "*** with $libname and none of the candidates passed a file format test" 79032bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $ECHO "*** using a regex pattern. Last file checked: $potlib" 79042bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 79052bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 79062bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 79072bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) 79082bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Add a -L argument. 79092bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append newdeplibs " $a_deplib" 79102bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 79112bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 79122bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done # Gone through all deplibs. 79132bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 79142bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian none | unknown | *) 79152bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian newdeplibs="" 79162bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'` 79172bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then 79182bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for i in $predeps $postdeps ; do 79192bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # can't use Xsed below, because $i might contain '/' 79202bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s,$i,,"` 79212bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 79222bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 79232bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $tmp_deplibs in 79242bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *[!\ \ ]*) 79252bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo 79262bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "X$deplibs_check_method" = "Xnone"; then 79272bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo "*** Warning: inter-library dependencies are not supported in this platform." 79282bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 79292bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo "*** Warning: inter-library dependencies are not known to be supported." 79302bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 79312bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo "*** All declared inter-library dependencies are being dropped." 79322bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian droppeddeps=yes 79332bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 79342bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 79352bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 79362bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 79372bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian versuffix=$versuffix_save 79382bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian major=$major_save 79392bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian release=$release_save 79402bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian libname=$libname_save 79412bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian name=$name_save 79422bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 79432bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $host in 79442bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *-*-rhapsody* | *-*-darwin1.[012]) 79452bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # On Rhapsody replace the C library with the System framework 79462bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'` 79472bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 79482bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 79492bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 79502bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$droppeddeps" = yes; then 79512bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$module" = yes; then 79522bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo 79532bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo "*** Warning: libtool could not satisfy all declared inter-library" 79542bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $ECHO "*** dependencies of module $libname. Therefore, libtool will create" 79552bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo "*** a static module, that should work as long as the dlopening" 79562bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo "*** application is linked with the -dlopen flag." 79572bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -z "$global_symbol_pipe"; then 79582bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo 79592bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo "*** However, this would only work if libtool was able to extract symbol" 79602bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo "*** lists from a program, using \`nm' or equivalent, but libtool could" 79612bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo "*** not find such a program. So, this module is probably useless." 79622bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo "*** \`nm' from GNU binutils and a full rebuild may help." 79632bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 79642bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$build_old_libs" = no; then 79652bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian oldlibs="$output_objdir/$libname.$libext" 79662bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian build_libtool_libs=module 79672bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian build_old_libs=yes 79682bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 79692bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian build_libtool_libs=no 79702bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 79712bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 79722bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo "*** The inter-library dependencies that have been dropped here will be" 79732bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo "*** automatically added whenever a program is linked with this library" 79742bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo "*** or is declared to -dlopen it." 79752bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 79762bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$allow_undefined" = no; then 79772bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo 79782bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo "*** Since this library must not contain undefined symbols," 79792bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo "*** because either the platform does not support them or" 79802bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo "*** it was explicitly requested with -no-undefined," 79812bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo "*** libtool will only create a static version of it." 79822bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$build_old_libs" = no; then 79832bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian oldlibs="$output_objdir/$libname.$libext" 79842bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian build_libtool_libs=module 79852bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian build_old_libs=yes 79862bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 79872bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian build_libtool_libs=no 79882bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 79892bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 79902bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 79912bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 79922bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Done checking deplibs! 79932bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian deplibs=$newdeplibs 79942bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 79952bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Time to change all our "foo.ltframework" stuff back to "-framework foo" 79962bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $host in 79972bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *-*-darwin*) 79982bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` 79992bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` 80002bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` 80012bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 80022bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 80032bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 80042bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # move library search paths that coincide with paths to not yet 80052bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # installed libraries to the beginning of the library search list 80062bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian new_libs= 80072bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for path in $notinst_path; do 80082bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case " $new_libs " in 80092bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *" -L$path/$objdir "*) ;; 80102bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) 80112bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case " $deplibs " in 80122bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *" -L$path/$objdir "*) 80132bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append new_libs " -L$path/$objdir" ;; 80142bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 80152bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 80162bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 80172bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 80182bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for deplib in $deplibs; do 80192bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $deplib in 80202bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -L*) 80212bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case " $new_libs " in 80222bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *" $deplib "*) ;; 80232bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) func_append new_libs " $deplib" ;; 80242bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 80252bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 80262bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) func_append new_libs " $deplib" ;; 80272bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 80282bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 80292bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian deplibs="$new_libs" 80302bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 80312bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # All the library-specific variables (install_libdir is set above). 80322bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian library_names= 80332bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian old_library= 80342bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian dlname= 80352bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 80362bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Test again, we may have decided not to build it any more 80372bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$build_libtool_libs" = yes; then 80382bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Remove ${wl} instances when linking with ld. 80392bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # FIXME: should test the right _cmds variable. 80402bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $archive_cmds in 80412bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *\$LD\ *) wl= ;; 80422bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 80432bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$hardcode_into_libs" = yes; then 80442bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Hardcode the library paths 80452bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian hardcode_libdirs= 80462bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian dep_rpath= 80472bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian rpath="$finalize_rpath" 80482bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test "$opt_mode" != relink && rpath="$compile_rpath$rpath" 80492bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for libdir in $rpath; do 80502bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$hardcode_libdir_flag_spec"; then 80512bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$hardcode_libdir_separator"; then 80522bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_replace_sysroot "$libdir" 80532bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian libdir=$func_replace_sysroot_result 80542bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -z "$hardcode_libdirs"; then 80552bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian hardcode_libdirs="$libdir" 80562bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 80572bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Just accumulate the unique libdirs. 80582bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in 80592bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) 80602bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 80612bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) 80622bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" 80632bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 80642bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 80652bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 80662bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 80672bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval flag=\"$hardcode_libdir_flag_spec\" 80682bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append dep_rpath " $flag" 80692bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 80702bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian elif test -n "$runpath_var"; then 80712bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case "$perm_rpath " in 80722bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *" $libdir "*) ;; 80732bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) func_append perm_rpath " $libdir" ;; 80742bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 80752bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 80762bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 80772bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Substitute the hardcoded libdirs into the rpath. 80782bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$hardcode_libdir_separator" && 80792bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test -n "$hardcode_libdirs"; then 80802bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian libdir="$hardcode_libdirs" 80812bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval "dep_rpath=\"$hardcode_libdir_flag_spec\"" 80822bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 80832bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$runpath_var" && test -n "$perm_rpath"; then 80842bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # We should set the runpath_var. 80852bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian rpath= 80862bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for dir in $perm_rpath; do 80872bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append rpath "$dir:" 80882bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 80892bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" 80902bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 80912bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" 80922bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 80932bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 80942bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian shlibpath="$finalize_shlibpath" 80952bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test "$opt_mode" != relink && shlibpath="$compile_shlibpath$shlibpath" 80962bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$shlibpath"; then 80972bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" 80982bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 80992bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 81002bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Get the real and link names of the library. 81012bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval shared_ext=\"$shrext_cmds\" 81022bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval library_names=\"$library_names_spec\" 81032bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian set dummy $library_names 81042bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian shift 81052bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian realname="$1" 81062bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian shift 81072bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 81082bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$soname_spec"; then 81092bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval soname=\"$soname_spec\" 81102bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 81112bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian soname="$realname" 81122bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 81132bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -z "$dlname"; then 81142bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian dlname=$soname 81152bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 81162bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 81172bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian lib="$output_objdir/$realname" 81182bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian linknames= 81192bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for link 81202bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian do 81212bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append linknames " $link" 81222bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 81232bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 81242bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Use standard objects if they are pic 81252bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP` 81262bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test "X$libobjs" = "X " && libobjs= 81272bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 81282bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian delfiles= 81292bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$export_symbols" && test -n "$include_expsyms"; then 81302bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" 81312bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian export_symbols="$output_objdir/$libname.uexp" 81322bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append delfiles " $export_symbols" 81332bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 81342bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 81352bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian orig_export_symbols= 81362bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $host_os in 81372bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian cygwin* | mingw* | cegcc*) 81382bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$export_symbols" && test -z "$export_symbols_regex"; then 81392bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # exporting using user supplied symfile 81402bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "x`$SED 1q $export_symbols`" != xEXPORTS; then 81412bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # and it's NOT already a .def file. Must figure out 81422bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # which of the given symbols are data symbols and tag 81432bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # them as such. So, trigger use of export_symbols_cmds. 81442bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # export_symbols gets reassigned inside the "prepare 81452bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # the list of exported symbols" if statement, so the 81462bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # include_expsyms logic still works. 81472bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian orig_export_symbols="$export_symbols" 81482bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian export_symbols= 81492bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian always_export_symbols=yes 81502bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 81512bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 81522bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 81532bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 81542bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 81552bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Prepare the list of exported symbols 81562bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -z "$export_symbols"; then 81572bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then 81582bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_verbose "generating symbol list for \`$libname.la'" 81592bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian export_symbols="$output_objdir/$libname.exp" 81602bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $opt_dry_run || $RM $export_symbols 81612bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian cmds=$export_symbols_cmds 81622bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian save_ifs="$IFS"; IFS='~' 81632bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for cmd1 in $cmds; do 81642bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian IFS="$save_ifs" 81652bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Take the normal branch if the nm_file_list_spec branch 81662bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # doesn't work or if tool conversion is not needed. 81672bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $nm_file_list_spec~$to_tool_file_cmd in 81682bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*) 81692bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian try_normal_branch=yes 81702bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval cmd=\"$cmd1\" 81712bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_len " $cmd" 81722bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian len=$func_len_result 81732bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 81742bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) 81752bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian try_normal_branch=no 81762bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 81772bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 81782bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$try_normal_branch" = yes \ 81792bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian && { test "$len" -lt "$max_cmd_len" \ 81802bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian || test "$max_cmd_len" -le -1; } 81812bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian then 81822bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_show_eval "$cmd" 'exit $?' 81832bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian skipped_export=false 81842bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian elif test -n "$nm_file_list_spec"; then 81852bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_basename "$output" 81862bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian output_la=$func_basename_result 81872bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian save_libobjs=$libobjs 81882bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian save_output=$output 81892bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian output=${output_objdir}/${output_la}.nm 81902bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_to_tool_file "$output" 81912bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian libobjs=$nm_file_list_spec$func_to_tool_file_result 81922bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append delfiles " $output" 81932bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_verbose "creating $NM input file list: $output" 81942bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for obj in $save_libobjs; do 81952bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_to_tool_file "$obj" 81962bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $ECHO "$func_to_tool_file_result" 81972bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done > "$output" 81982bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval cmd=\"$cmd1\" 81992bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_show_eval "$cmd" 'exit $?' 82002bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian output=$save_output 82012bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian libobjs=$save_libobjs 82022bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian skipped_export=false 82032bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 82042bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # The command line is too long to execute in one step. 82052bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_verbose "using reloadable object file for export list..." 82062bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian skipped_export=: 82072bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Break out early, otherwise skipped_export may be 82082bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # set to false by a later but shorter cmd. 82092bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian break 82102bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 82112bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 82122bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian IFS="$save_ifs" 82132bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then 82142bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' 82152bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_show_eval '$MV "${export_symbols}T" "$export_symbols"' 82162bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 82172bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 82182bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 82192bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 82202bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$export_symbols" && test -n "$include_expsyms"; then 82212bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian tmp_export_symbols="$export_symbols" 82222bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" 82232bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' 82242bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 82252bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 82262bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then 82272bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # The given exports_symbols file has to be filtered, so filter it. 82282bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" 82292bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # FIXME: $output_objdir/$libname.filter potentially contains lots of 82302bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # 's' commands which not all seds can handle. GNU sed should be fine 82312bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # though. Also, the filter scales superlinearly with the number of 82322bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # global variables. join(1) would be nice here, but unfortunately 82332bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # isn't a blessed tool. 82342bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter 82352bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append delfiles " $export_symbols $output_objdir/$libname.filter" 82362bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian export_symbols=$output_objdir/$libname.def 82372bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols 82382bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 82392bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 82402bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian tmp_deplibs= 82412bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for test_deplib in $deplibs; do 82422bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case " $convenience " in 82432bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *" $test_deplib "*) ;; 82442bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) 82452bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append tmp_deplibs " $test_deplib" 82462bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 82472bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 82482bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 82492bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian deplibs="$tmp_deplibs" 82502bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 82512bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$convenience"; then 82522bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$whole_archive_flag_spec" && 82532bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test "$compiler_needs_object" = yes && 82542bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test -z "$libobjs"; then 82552bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # extract the archives, so we have objects to list. 82562bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # TODO: could optimize this to just extract one archive. 82572bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian whole_archive_flag_spec= 82582bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 82592bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$whole_archive_flag_spec"; then 82602bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian save_libobjs=$libobjs 82612bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval libobjs=\"\$libobjs $whole_archive_flag_spec\" 82622bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test "X$libobjs" = "X " && libobjs= 82632bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 82642bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian gentop="$output_objdir/${outputname}x" 82652bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append generated " $gentop" 82662bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 82672bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_extract_archives $gentop $convenience 82682bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append libobjs " $func_extract_archives_result" 82692bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test "X$libobjs" = "X " && libobjs= 82702bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 82712bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 82722bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 82732bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then 82742bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval flag=\"$thread_safe_flag_spec\" 82752bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append linker_flags " $flag" 82762bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 82772bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 82782bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Make a backup of the uninstalled library when relinking 82792bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$opt_mode" = relink; then 82802bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? 82812bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 82822bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 82832bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Do each of the archive commands. 82842bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$module" = yes && test -n "$module_cmds" ; then 82852bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then 82862bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval test_cmds=\"$module_expsym_cmds\" 82872bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian cmds=$module_expsym_cmds 82882bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 82892bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval test_cmds=\"$module_cmds\" 82902bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian cmds=$module_cmds 82912bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 82922bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 82932bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then 82942bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval test_cmds=\"$archive_expsym_cmds\" 82952bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian cmds=$archive_expsym_cmds 82962bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 82972bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval test_cmds=\"$archive_cmds\" 82982bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian cmds=$archive_cmds 82992bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 83002bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 83012bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 83022bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "X$skipped_export" != "X:" && 83032bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_len " $test_cmds" && 83042bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian len=$func_len_result && 83052bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then 83062bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian : 83072bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 83082bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # The command line is too long to link in one step, link piecewise 83092bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # or, if using GNU ld and skipped_export is not :, use a linker 83102bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # script. 83112bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 83122bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Save the value of $output and $libobjs because we want to 83132bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # use them later. If we have whole_archive_flag_spec, we 83142bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # want to use save_libobjs as it was before 83152bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # whole_archive_flag_spec was expanded, because we can't 83162bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # assume the linker understands whole_archive_flag_spec. 83172bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # This may have to be revisited, in case too many 83182bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # convenience libraries get linked in and end up exceeding 83192bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # the spec. 83202bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then 83212bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian save_libobjs=$libobjs 83222bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 83232bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian save_output=$output 83242bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_basename "$output" 83252bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian output_la=$func_basename_result 83262bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 83272bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Clear the reloadable object creation command queue and 83282bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # initialize k to one. 83292bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test_cmds= 83302bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian concat_cmds= 83312bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian objlist= 83322bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian last_robj= 83332bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian k=1 83342bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 83352bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then 83362bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian output=${output_objdir}/${output_la}.lnkscript 83372bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_verbose "creating GNU ld script: $output" 83382bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo 'INPUT (' > $output 83392bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for obj in $save_libobjs 83402bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian do 83412bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_to_tool_file "$obj" 83422bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $ECHO "$func_to_tool_file_result" >> $output 83432bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 83442bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo ')' >> $output 83452bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append delfiles " $output" 83462bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_to_tool_file "$output" 83472bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian output=$func_to_tool_file_result 83482bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then 83492bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian output=${output_objdir}/${output_la}.lnk 83502bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_verbose "creating linker input file list: $output" 83512bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian : > $output 83522bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian set x $save_libobjs 83532bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian shift 83542bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian firstobj= 83552bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$compiler_needs_object" = yes; then 83562bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian firstobj="$1 " 83572bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian shift 83582bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 83592bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for obj 83602bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian do 83612bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_to_tool_file "$obj" 83622bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $ECHO "$func_to_tool_file_result" >> $output 83632bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 83642bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append delfiles " $output" 83652bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_to_tool_file "$output" 83662bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian output=$firstobj\"$file_list_spec$func_to_tool_file_result\" 83672bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 83682bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$save_libobjs"; then 83692bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_verbose "creating reloadable object files..." 83702bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian output=$output_objdir/$output_la-${k}.$objext 83712bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval test_cmds=\"$reload_cmds\" 83722bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_len " $test_cmds" 83732bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian len0=$func_len_result 83742bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian len=$len0 83752bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 83762bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Loop over the list of objects to be linked. 83772bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for obj in $save_libobjs 83782bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian do 83792bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_len " $obj" 83802bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_arith $len + $func_len_result 83812bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian len=$func_arith_result 83822bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "X$objlist" = X || 83832bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test "$len" -lt "$max_cmd_len"; then 83842bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append objlist " $obj" 83852bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 83862bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # The command $test_cmds is almost too long, add a 83872bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # command to the queue. 83882bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$k" -eq 1 ; then 83892bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # The first file doesn't have a previous command to add. 83902bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian reload_objs=$objlist 83912bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval concat_cmds=\"$reload_cmds\" 83922bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 83932bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # All subsequent reloadable object files will link in 83942bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # the last one created. 83952bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian reload_objs="$objlist $last_robj" 83962bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\" 83972bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 83982bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian last_robj=$output_objdir/$output_la-${k}.$objext 83992bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_arith $k + 1 84002bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian k=$func_arith_result 84012bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian output=$output_objdir/$output_la-${k}.$objext 84022bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian objlist=" $obj" 84032bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_len " $last_robj" 84042bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_arith $len0 + $func_len_result 84052bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian len=$func_arith_result 84062bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 84072bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 84082bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Handle the remaining objects by creating one last 84092bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # reloadable object file. All subsequent reloadable object 84102bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # files will link in the last one created. 84112bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test -z "$concat_cmds" || concat_cmds=$concat_cmds~ 84122bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian reload_objs="$objlist $last_robj" 84132bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval concat_cmds=\"\${concat_cmds}$reload_cmds\" 84142bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$last_robj"; then 84152bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\" 84162bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 84172bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append delfiles " $output" 84182bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 84192bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 84202bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian output= 84212bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 84222bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 84232bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if ${skipped_export-false}; then 84242bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_verbose "generating symbol list for \`$libname.la'" 84252bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian export_symbols="$output_objdir/$libname.exp" 84262bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $opt_dry_run || $RM $export_symbols 84272bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian libobjs=$output 84282bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Append the command to create the export file. 84292bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test -z "$concat_cmds" || concat_cmds=$concat_cmds~ 84302bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\" 84312bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$last_robj"; then 84322bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" 84332bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 84342bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 84352bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 84362bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test -n "$save_libobjs" && 84372bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_verbose "creating a temporary reloadable object file: $output" 84382bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 84392bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Loop through the commands generated above and execute them. 84402bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian save_ifs="$IFS"; IFS='~' 84412bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for cmd in $concat_cmds; do 84422bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian IFS="$save_ifs" 84432bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $opt_silent || { 84442bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_quote_for_expand "$cmd" 84452bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval "func_echo $func_quote_for_expand_result" 84462bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian } 84472bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $opt_dry_run || eval "$cmd" || { 84482bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian lt_exit=$? 84492bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 84502bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Restore the uninstalled library and exit 84512bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$opt_mode" = relink; then 84522bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ( cd "$output_objdir" && \ 84532bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $RM "${realname}T" && \ 84542bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $MV "${realname}U" "$realname" ) 84552bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 84562bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 84572bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian exit $lt_exit 84582bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian } 84592bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 84602bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian IFS="$save_ifs" 84612bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 84622bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$export_symbols_regex" && ${skipped_export-false}; then 84632bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' 84642bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_show_eval '$MV "${export_symbols}T" "$export_symbols"' 84652bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 84662bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 84672bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 84682bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if ${skipped_export-false}; then 84692bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$export_symbols" && test -n "$include_expsyms"; then 84702bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian tmp_export_symbols="$export_symbols" 84712bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" 84722bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' 84732bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 84742bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 84752bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$orig_export_symbols"; then 84762bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # The given exports_symbols file has to be filtered, so filter it. 84772bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" 84782bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # FIXME: $output_objdir/$libname.filter potentially contains lots of 84792bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # 's' commands which not all seds can handle. GNU sed should be fine 84802bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # though. Also, the filter scales superlinearly with the number of 84812bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # global variables. join(1) would be nice here, but unfortunately 84822bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # isn't a blessed tool. 84832bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter 84842bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append delfiles " $export_symbols $output_objdir/$libname.filter" 84852bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian export_symbols=$output_objdir/$libname.def 84862bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols 84872bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 84882bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 84892bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 84902bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian libobjs=$output 84912bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Restore the value of output. 84922bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian output=$save_output 84932bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 84942bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then 84952bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval libobjs=\"\$libobjs $whole_archive_flag_spec\" 84962bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test "X$libobjs" = "X " && libobjs= 84972bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 84982bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Expand the library linking commands again to reset the 84992bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # value of $libobjs for piecewise linking. 85002bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 85012bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Do each of the archive commands. 85022bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$module" = yes && test -n "$module_cmds" ; then 85032bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then 85042bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian cmds=$module_expsym_cmds 85052bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 85062bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian cmds=$module_cmds 85072bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 85082bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 85092bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then 85102bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian cmds=$archive_expsym_cmds 85112bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 85122bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian cmds=$archive_cmds 85132bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 85142bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 85152bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 85162bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 85172bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$delfiles"; then 85182bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Append the command to remove temporary files to $cmds. 85192bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval cmds=\"\$cmds~\$RM $delfiles\" 85202bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 85212bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 85222bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Add any objects from preloaded convenience libraries 85232bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$dlprefiles"; then 85242bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian gentop="$output_objdir/${outputname}x" 85252bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append generated " $gentop" 85262bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 85272bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_extract_archives $gentop $dlprefiles 85282bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append libobjs " $func_extract_archives_result" 85292bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test "X$libobjs" = "X " && libobjs= 85302bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 85312bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 85322bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian save_ifs="$IFS"; IFS='~' 85332bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for cmd in $cmds; do 85342bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian IFS="$save_ifs" 85352bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval cmd=\"$cmd\" 85362bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $opt_silent || { 85372bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_quote_for_expand "$cmd" 85382bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval "func_echo $func_quote_for_expand_result" 85392bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian } 85402bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $opt_dry_run || eval "$cmd" || { 85412bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian lt_exit=$? 85422bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 85432bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Restore the uninstalled library and exit 85442bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$opt_mode" = relink; then 85452bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ( cd "$output_objdir" && \ 85462bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $RM "${realname}T" && \ 85472bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $MV "${realname}U" "$realname" ) 85482bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 85492bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 85502bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian exit $lt_exit 85512bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian } 85522bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 85532bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian IFS="$save_ifs" 85542bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 85552bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Restore the uninstalled library and exit 85562bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$opt_mode" = relink; then 85572bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? 85582bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 85592bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$convenience"; then 85602bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -z "$whole_archive_flag_spec"; then 85612bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_show_eval '${RM}r "$gentop"' 85622bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 85632bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 85642bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 85652bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian exit $EXIT_SUCCESS 85662bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 85672bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 85682bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Create links to the real library. 85692bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for linkname in $linknames; do 85702bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$realname" != "$linkname"; then 85712bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?' 85722bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 85732bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 85742bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 85752bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # If -module or -export-dynamic was specified, set the dlname. 85762bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$module" = yes || test "$export_dynamic" = yes; then 85772bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # On all known operating systems, these are identical. 85782bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian dlname="$soname" 85792bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 85802bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 85812bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 85822bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 85832bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian obj) 85842bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then 85852bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_warning "\`-dlopen' is ignored for objects" 85862bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 85872bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 85882bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case " $deplibs" in 85892bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *\ -l* | *\ -L*) 85902bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_warning "\`-l' and \`-L' are ignored for objects" ;; 85912bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 85922bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 85932bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test -n "$rpath" && \ 85942bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_warning "\`-rpath' is ignored for objects" 85952bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 85962bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test -n "$xrpath" && \ 85972bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_warning "\`-R' is ignored for objects" 85982bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 85992bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test -n "$vinfo" && \ 86002bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_warning "\`-version-info' is ignored for objects" 86012bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 86022bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test -n "$release" && \ 86032bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_warning "\`-release' is ignored for objects" 86042bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 86052bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $output in 86062bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *.lo) 86072bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test -n "$objs$old_deplibs" && \ 86082bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_fatal_error "cannot build library object \`$output' from non-libtool objects" 86092bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 86102bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian libobj=$output 86112bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_lo2o "$libobj" 86122bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian obj=$func_lo2o_result 86132bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 86142bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) 86152bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian libobj= 86162bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian obj="$output" 86172bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 86182bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 86192bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 86202bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Delete the old objects. 86212bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $opt_dry_run || $RM $obj $libobj 86222bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 86232bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Objects from convenience libraries. This assumes 86242bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # single-version convenience libraries. Whenever we create 86252bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # different ones for PIC/non-PIC, this we'll have to duplicate 86262bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # the extraction. 86272bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian reload_conv_objs= 86282bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian gentop= 86292bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # reload_cmds runs $LD directly, so let us get rid of 86302bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # -Wl from whole_archive_flag_spec and hope we can get by with 86312bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # turning comma into space.. 86322bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian wl= 86332bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 86342bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$convenience"; then 86352bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$whole_archive_flag_spec"; then 86362bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" 86372bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian reload_conv_objs=$reload_objs\ `$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'` 86382bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 86392bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian gentop="$output_objdir/${obj}x" 86402bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append generated " $gentop" 86412bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 86422bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_extract_archives $gentop $convenience 86432bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian reload_conv_objs="$reload_objs $func_extract_archives_result" 86442bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 86452bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 86462bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 86472bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # If we're not building shared, we need to use non_pic_objs 86482bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test "$build_libtool_libs" != yes && libobjs="$non_pic_objects" 86492bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 86502bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Create the old-style object. 86512bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian reload_objs="$objs$old_deplibs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; /\.lib$/d; $lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test 86522bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 86532bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian output="$obj" 86542bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_execute_cmds "$reload_cmds" 'exit $?' 86552bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 86562bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Exit if we aren't doing a library object file. 86572bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -z "$libobj"; then 86582bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$gentop"; then 86592bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_show_eval '${RM}r "$gentop"' 86602bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 86612bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 86622bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian exit $EXIT_SUCCESS 86632bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 86642bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 86652bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$build_libtool_libs" != yes; then 86662bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$gentop"; then 86672bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_show_eval '${RM}r "$gentop"' 86682bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 86692bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 86702bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Create an invalid libtool object if no PIC, so that we don't 86712bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # accidentally link it into a program. 86722bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # $show "echo timestamp > $libobj" 86732bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # $opt_dry_run || eval "echo timestamp > $libobj" || exit $? 86742bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian exit $EXIT_SUCCESS 86752bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 86762bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 86772bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$pic_flag" || test "$pic_mode" != default; then 86782bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Only do commands if we really have different PIC objects. 86792bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian reload_objs="$libobjs $reload_conv_objs" 86802bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian output="$libobj" 86812bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_execute_cmds "$reload_cmds" 'exit $?' 86822bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 86832bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 86842bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$gentop"; then 86852bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_show_eval '${RM}r "$gentop"' 86862bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 86872bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 86882bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian exit $EXIT_SUCCESS 86892bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 86902bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 86912bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian prog) 86922bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $host in 86932bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *cygwin*) func_stripname '' '.exe' "$output" 86942bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian output=$func_stripname_result.exe;; 86952bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 86962bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test -n "$vinfo" && \ 86972bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_warning "\`-version-info' is ignored for programs" 86982bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 86992bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test -n "$release" && \ 87002bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_warning "\`-release' is ignored for programs" 87012bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 87022bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test "$preload" = yes \ 87032bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian && test "$dlopen_support" = unknown \ 87042bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian && test "$dlopen_self" = unknown \ 87052bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian && test "$dlopen_self_static" = unknown && \ 87062bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support." 87072bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 87082bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $host in 87092bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *-*-rhapsody* | *-*-darwin1.[012]) 87102bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # On Rhapsody replace the C library is the System framework 87112bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'` 87122bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'` 87132bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 87142bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 87152bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 87162bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $host in 87172bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *-*-darwin*) 87182bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Don't allow lazy linking, it breaks C++ global constructors 87192bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # But is supposedly fixed on 10.4 or later (yay!). 87202bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$tagname" = CXX ; then 87212bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case ${MACOSX_DEPLOYMENT_TARGET-10.0} in 87222bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 10.[0123]) 87232bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append compile_command " ${wl}-bind_at_load" 87242bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append finalize_command " ${wl}-bind_at_load" 87252bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 87262bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 87272bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 87282bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Time to change all our "foo.ltframework" stuff back to "-framework foo" 87292bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` 87302bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` 87312bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 87322bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 87332bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 87342bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 87352bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # move library search paths that coincide with paths to not yet 87362bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # installed libraries to the beginning of the library search list 87372bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian new_libs= 87382bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for path in $notinst_path; do 87392bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case " $new_libs " in 87402bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *" -L$path/$objdir "*) ;; 87412bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) 87422bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case " $compile_deplibs " in 87432bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *" -L$path/$objdir "*) 87442bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append new_libs " -L$path/$objdir" ;; 87452bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 87462bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 87472bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 87482bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 87492bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for deplib in $compile_deplibs; do 87502bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $deplib in 87512bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -L*) 87522bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case " $new_libs " in 87532bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *" $deplib "*) ;; 87542bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) func_append new_libs " $deplib" ;; 87552bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 87562bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 87572bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) func_append new_libs " $deplib" ;; 87582bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 87592bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 87602bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian compile_deplibs="$new_libs" 87612bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 87622bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 87632bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append compile_command " $compile_deplibs" 87642bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append finalize_command " $finalize_deplibs" 87652bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 87662bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$rpath$xrpath"; then 87672bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # If the user specified any rpath flags, then add them. 87682bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for libdir in $rpath $xrpath; do 87692bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # This is the magic to use -rpath. 87702bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case "$finalize_rpath " in 87712bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *" $libdir "*) ;; 87722bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) func_append finalize_rpath " $libdir" ;; 87732bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 87742bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 87752bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 87762bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 87772bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Now hardcode the library paths 87782bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian rpath= 87792bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian hardcode_libdirs= 87802bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for libdir in $compile_rpath $finalize_rpath; do 87812bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$hardcode_libdir_flag_spec"; then 87822bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$hardcode_libdir_separator"; then 87832bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -z "$hardcode_libdirs"; then 87842bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian hardcode_libdirs="$libdir" 87852bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 87862bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Just accumulate the unique libdirs. 87872bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in 87882bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) 87892bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 87902bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) 87912bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" 87922bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 87932bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 87942bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 87952bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 87962bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval flag=\"$hardcode_libdir_flag_spec\" 87972bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append rpath " $flag" 87982bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 87992bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian elif test -n "$runpath_var"; then 88002bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case "$perm_rpath " in 88012bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *" $libdir "*) ;; 88022bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) func_append perm_rpath " $libdir" ;; 88032bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 88042bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 88052bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $host in 88062bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) 88072bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'` 88082bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case :$dllsearchpath: in 88092bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *":$libdir:"*) ;; 88102bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ::) dllsearchpath=$libdir;; 88112bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) func_append dllsearchpath ":$libdir";; 88122bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 88132bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case :$dllsearchpath: in 88142bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *":$testbindir:"*) ;; 88152bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ::) dllsearchpath=$testbindir;; 88162bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) func_append dllsearchpath ":$testbindir";; 88172bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 88182bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 88192bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 88202bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 88212bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Substitute the hardcoded libdirs into the rpath. 88222bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$hardcode_libdir_separator" && 88232bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test -n "$hardcode_libdirs"; then 88242bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian libdir="$hardcode_libdirs" 88252bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval rpath=\" $hardcode_libdir_flag_spec\" 88262bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 88272bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian compile_rpath="$rpath" 88282bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 88292bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian rpath= 88302bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian hardcode_libdirs= 88312bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for libdir in $finalize_rpath; do 88322bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$hardcode_libdir_flag_spec"; then 88332bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$hardcode_libdir_separator"; then 88342bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -z "$hardcode_libdirs"; then 88352bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian hardcode_libdirs="$libdir" 88362bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 88372bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Just accumulate the unique libdirs. 88382bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in 88392bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) 88402bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 88412bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) 88422bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" 88432bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 88442bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 88452bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 88462bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 88472bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval flag=\"$hardcode_libdir_flag_spec\" 88482bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append rpath " $flag" 88492bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 88502bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian elif test -n "$runpath_var"; then 88512bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case "$finalize_perm_rpath " in 88522bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *" $libdir "*) ;; 88532bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) func_append finalize_perm_rpath " $libdir" ;; 88542bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 88552bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 88562bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 88572bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Substitute the hardcoded libdirs into the rpath. 88582bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$hardcode_libdir_separator" && 88592bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test -n "$hardcode_libdirs"; then 88602bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian libdir="$hardcode_libdirs" 88612bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval rpath=\" $hardcode_libdir_flag_spec\" 88622bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 88632bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian finalize_rpath="$rpath" 88642bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 88652bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$libobjs" && test "$build_old_libs" = yes; then 88662bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Transform all the library objects into standard objects. 88672bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP` 88682bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP` 88692bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 88702bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 88712bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_generate_dlsyms "$outputname" "@PROGRAM@" "no" 88722bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 88732bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # template prelinking step 88742bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$prelink_cmds"; then 88752bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_execute_cmds "$prelink_cmds" 'exit $?' 88762bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 88772bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 88782bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian wrappers_required=yes 88792bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $host in 88802bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *cegcc* | *mingw32ce*) 88812bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway. 88822bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian wrappers_required=no 88832bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 88842bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *cygwin* | *mingw* ) 88852bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$build_libtool_libs" != yes; then 88862bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian wrappers_required=no 88872bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 88882bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 88892bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) 88902bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$need_relink" = no || test "$build_libtool_libs" != yes; then 88912bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian wrappers_required=no 88922bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 88932bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 88942bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 88952bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$wrappers_required" = no; then 88962bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Replace the output file specification. 88972bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'` 88982bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian link_command="$compile_command$compile_rpath" 88992bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 89002bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # We have no uninstalled library dependencies, so finalize right now. 89012bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian exit_status=0 89022bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_show_eval "$link_command" 'exit_status=$?' 89032bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 89042bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$postlink_cmds"; then 89052bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_to_tool_file "$output" 89062bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` 89072bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_execute_cmds "$postlink_cmds" 'exit $?' 89082bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 89092bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 89102bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Delete the generated files. 89112bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -f "$output_objdir/${outputname}S.${objext}"; then 89122bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"' 89132bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 89142bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 89152bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian exit $exit_status 89162bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 89172bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 89182bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$compile_shlibpath$finalize_shlibpath"; then 89192bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" 89202bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 89212bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$finalize_shlibpath"; then 89222bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" 89232bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 89242bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 89252bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian compile_var= 89262bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian finalize_var= 89272bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$runpath_var"; then 89282bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$perm_rpath"; then 89292bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # We should set the runpath_var. 89302bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian rpath= 89312bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for dir in $perm_rpath; do 89322bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append rpath "$dir:" 89332bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 89342bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian compile_var="$runpath_var=\"$rpath\$$runpath_var\" " 89352bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 89362bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$finalize_perm_rpath"; then 89372bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # We should set the runpath_var. 89382bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian rpath= 89392bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for dir in $finalize_perm_rpath; do 89402bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append rpath "$dir:" 89412bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 89422bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " 89432bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 89442bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 89452bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 89462bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$no_install" = yes; then 89472bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # We don't need to create a wrapper script. 89482bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian link_command="$compile_var$compile_command$compile_rpath" 89492bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Replace the output file specification. 89502bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'` 89512bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Delete the old output file. 89522bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $opt_dry_run || $RM $output 89532bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Link the executable and exit 89542bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_show_eval "$link_command" 'exit $?' 89552bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 89562bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$postlink_cmds"; then 89572bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_to_tool_file "$output" 89582bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` 89592bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_execute_cmds "$postlink_cmds" 'exit $?' 89602bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 89612bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 89622bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian exit $EXIT_SUCCESS 89632bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 89642bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 89652bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$hardcode_action" = relink; then 89662bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Fast installation is not supported 89672bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian link_command="$compile_var$compile_command$compile_rpath" 89682bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian relink_command="$finalize_var$finalize_command$finalize_rpath" 89692bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 89702bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_warning "this platform does not like uninstalled shared libraries" 89712bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_warning "\`$output' will be relinked during installation" 89722bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 89732bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$fast_install" != no; then 89742bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian link_command="$finalize_var$compile_command$finalize_rpath" 89752bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$fast_install" = yes; then 89762bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'` 89772bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 89782bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # fast_install is set to needless 89792bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian relink_command= 89802bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 89812bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 89822bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian link_command="$compile_var$compile_command$compile_rpath" 89832bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian relink_command="$finalize_var$finalize_command$finalize_rpath" 89842bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 89852bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 89862bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 89872bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Replace the output file specification. 89882bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` 89892bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 89902bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Delete the old output files. 89912bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname 89922bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 89932bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_show_eval "$link_command" 'exit $?' 89942bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 89952bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$postlink_cmds"; then 89962bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_to_tool_file "$output_objdir/$outputname" 89972bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` 89982bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_execute_cmds "$postlink_cmds" 'exit $?' 89992bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 90002bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 90012bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Now create the wrapper script. 90022bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_verbose "creating $output" 90032bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 90042bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Quote the relink command for shipping. 90052bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$relink_command"; then 90062bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Preserve any variables that may affect compiler behavior 90072bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for var in $variables_saved_for_relink; do 90082bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if eval test -z \"\${$var+set}\"; then 90092bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" 90102bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian elif eval var_value=\$$var; test -z "$var_value"; then 90112bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian relink_command="$var=; export $var; $relink_command" 90122bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 90132bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_quote_for_eval "$var_value" 90142bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" 90152bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 90162bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 90172bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian relink_command="(cd `pwd`; $relink_command)" 90182bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` 90192bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 90202bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 90212bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Only actually do things if not in dry run mode. 90222bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $opt_dry_run || { 90232bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # win32 will think the script is a binary if it has 90242bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # a .exe suffix, so we strip it off here. 90252bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $output in 90262bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *.exe) func_stripname '' '.exe' "$output" 90272bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian output=$func_stripname_result ;; 90282bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 90292bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # test for cygwin because mv fails w/o .exe extensions 90302bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $host in 90312bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *cygwin*) 90322bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian exeext=.exe 90332bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_stripname '' '.exe' "$outputname" 90342bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian outputname=$func_stripname_result ;; 90352bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) exeext= ;; 90362bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 90372bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $host in 90382bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *cygwin* | *mingw* ) 90392bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_dirname_and_basename "$output" "" "." 90402bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian output_name=$func_basename_result 90412bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian output_path=$func_dirname_result 90422bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian cwrappersource="$output_path/$objdir/lt-$output_name.c" 90432bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian cwrapper="$output_path/$output_name.exe" 90442bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $RM $cwrappersource $cwrapper 90452bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 90462bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 90472bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_emit_cwrapperexe_src > $cwrappersource 90482bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 90492bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # The wrapper executable is built using the $host compiler, 90502bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # because it contains $host paths and files. If cross- 90512bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # compiling, it, like the target executable, must be 90522bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # executed on the $host or under an emulation environment. 90532bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $opt_dry_run || { 90542bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $LTCC $LTCFLAGS -o $cwrapper $cwrappersource 90552bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $STRIP $cwrapper 90562bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian } 90572bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 90582bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Now, create the wrapper script for func_source use: 90592bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_ltwrapper_scriptname $cwrapper 90602bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $RM $func_ltwrapper_scriptname_result 90612bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15 90622bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $opt_dry_run || { 90632bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # note: this script will not be executed, so do not chmod. 90642bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "x$build" = "x$host" ; then 90652bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result 90662bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 90672bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_emit_wrapper no > $func_ltwrapper_scriptname_result 90682bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 90692bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian } 90702bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 90712bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian * ) 90722bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $RM $output 90732bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian trap "$RM $output; exit $EXIT_FAILURE" 1 2 15 90742bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 90752bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_emit_wrapper no > $output 90762bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian chmod +x $output 90772bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 90782bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 90792bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian } 90802bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian exit $EXIT_SUCCESS 90812bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 90822bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 90832bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 90842bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # See if we need to build an old-fashioned archive. 90852bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for oldlib in $oldlibs; do 90862bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 90872bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$build_libtool_libs" = convenience; then 90882bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian oldobjs="$libobjs_save $symfileobj" 90892bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian addlibs="$convenience" 90902bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian build_libtool_libs=no 90912bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 90922bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$build_libtool_libs" = module; then 90932bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian oldobjs="$libobjs_save" 90942bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian build_libtool_libs=no 90952bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 90962bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian oldobjs="$old_deplibs $non_pic_objects" 90972bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$preload" = yes && test -f "$symfileobj"; then 90982bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append oldobjs " $symfileobj" 90992bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 91002bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 91012bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian addlibs="$old_convenience" 91022bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 91032bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 91042bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$addlibs"; then 91052bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian gentop="$output_objdir/${outputname}x" 91062bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append generated " $gentop" 91072bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 91082bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_extract_archives $gentop $addlibs 91092bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append oldobjs " $func_extract_archives_result" 91102bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 91112bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 91122bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Do each command in the archive commands. 91132bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then 91142bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian cmds=$old_archive_from_new_cmds 91152bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 91162bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 91172bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Add any objects from preloaded convenience libraries 91182bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$dlprefiles"; then 91192bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian gentop="$output_objdir/${outputname}x" 91202bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append generated " $gentop" 91212bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 91222bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_extract_archives $gentop $dlprefiles 91232bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append oldobjs " $func_extract_archives_result" 91242bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 91252bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 91262bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # POSIX demands no paths to be encoded in archives. We have 91272bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # to avoid creating archives with duplicate basenames if we 91282bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # might have to extract them afterwards, e.g., when creating a 91292bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # static archive out of a convenience library, or when linking 91302bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # the entirety of a libtool archive into another (currently 91312bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # not supported by libtool). 91322bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if (for obj in $oldobjs 91332bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian do 91342bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_basename "$obj" 91352bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $ECHO "$func_basename_result" 91362bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done | sort | sort -uc >/dev/null 2>&1); then 91372bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian : 91382bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 91392bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo "copying selected object files to avoid basename conflicts..." 91402bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian gentop="$output_objdir/${outputname}x" 91412bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append generated " $gentop" 91422bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_mkdir_p "$gentop" 91432bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian save_oldobjs=$oldobjs 91442bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian oldobjs= 91452bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian counter=1 91462bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for obj in $save_oldobjs 91472bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian do 91482bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_basename "$obj" 91492bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian objbase="$func_basename_result" 91502bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case " $oldobjs " in 91512bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian " ") oldobjs=$obj ;; 91522bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *[\ /]"$objbase "*) 91532bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian while :; do 91542bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Make sure we don't pick an alternate name that also 91552bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # overlaps. 91562bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian newobj=lt$counter-$objbase 91572bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_arith $counter + 1 91582bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian counter=$func_arith_result 91592bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case " $oldobjs " in 91602bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *[\ /]"$newobj "*) ;; 91612bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) if test ! -f "$gentop/$newobj"; then break; fi ;; 91622bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 91632bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 91642bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" 91652bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append oldobjs " $gentop/$newobj" 91662bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 91672bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) func_append oldobjs " $obj" ;; 91682bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 91692bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 91702bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 91712bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 91722bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian tool_oldlib=$func_to_tool_file_result 91732bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval cmds=\"$old_archive_cmds\" 91742bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 91752bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_len " $cmds" 91762bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian len=$func_len_result 91772bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then 91782bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian cmds=$old_archive_cmds 91792bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian elif test -n "$archiver_list_spec"; then 91802bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_verbose "using command file archive linking..." 91812bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for obj in $oldobjs 91822bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian do 91832bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_to_tool_file "$obj" 91842bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $ECHO "$func_to_tool_file_result" 91852bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done > $output_objdir/$libname.libcmd 91862bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_to_tool_file "$output_objdir/$libname.libcmd" 91872bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian oldobjs=" $archiver_list_spec$func_to_tool_file_result" 91882bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian cmds=$old_archive_cmds 91892bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 91902bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # the command line is too long to link in one step, link in parts 91912bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_verbose "using piecewise archive linking..." 91922bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian save_RANLIB=$RANLIB 91932bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian RANLIB=: 91942bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian objlist= 91952bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian concat_cmds= 91962bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian save_oldobjs=$oldobjs 91972bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian oldobjs= 91982bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Is there a better way of finding the last object in the list? 91992bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for obj in $save_oldobjs 92002bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian do 92012bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian last_oldobj=$obj 92022bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 92032bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval test_cmds=\"$old_archive_cmds\" 92042bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_len " $test_cmds" 92052bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian len0=$func_len_result 92062bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian len=$len0 92072bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for obj in $save_oldobjs 92082bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian do 92092bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_len " $obj" 92102bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_arith $len + $func_len_result 92112bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian len=$func_arith_result 92122bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append objlist " $obj" 92132bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$len" -lt "$max_cmd_len"; then 92142bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian : 92152bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 92162bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # the above command should be used before it gets too long 92172bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian oldobjs=$objlist 92182bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$obj" = "$last_oldobj" ; then 92192bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian RANLIB=$save_RANLIB 92202bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 92212bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test -z "$concat_cmds" || concat_cmds=$concat_cmds~ 92222bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" 92232bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian objlist= 92242bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian len=$len0 92252bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 92262bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 92272bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian RANLIB=$save_RANLIB 92282bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian oldobjs=$objlist 92292bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "X$oldobjs" = "X" ; then 92302bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval cmds=\"\$concat_cmds\" 92312bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 92322bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval cmds=\"\$concat_cmds~\$old_archive_cmds\" 92332bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 92342bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 92352bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 92362bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_execute_cmds "$cmds" 'exit $?' 92372bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 92382bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 92392bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test -n "$generated" && \ 92402bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_show_eval "${RM}r$generated" 92412bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 92422bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Now create the libtool archive. 92432bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $output in 92442bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *.la) 92452bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian old_library= 92462bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test "$build_old_libs" = yes && old_library="$libname.$libext" 92472bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_verbose "creating $output" 92482bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 92492bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Preserve any variables that may affect compiler behavior 92502bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for var in $variables_saved_for_relink; do 92512bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if eval test -z \"\${$var+set}\"; then 92522bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" 92532bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian elif eval var_value=\$$var; test -z "$var_value"; then 92542bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian relink_command="$var=; export $var; $relink_command" 92552bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 92562bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_quote_for_eval "$var_value" 92572bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" 92582bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 92592bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 92602bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Quote the link command for shipping. 92612bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" 92622bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` 92632bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$hardcode_automatic" = yes ; then 92642bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian relink_command= 92652bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 92662bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 92672bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Only create the output if not a dry run. 92682bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $opt_dry_run || { 92692bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for installed in no yes; do 92702bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$installed" = yes; then 92712bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -z "$install_libdir"; then 92722bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian break 92732bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 92742bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian output="$output_objdir/$outputname"i 92752bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Replace all uninstalled libtool libraries with the installed ones 92762bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian newdependency_libs= 92772bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for deplib in $dependency_libs; do 92782bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $deplib in 92792bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *.la) 92802bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_basename "$deplib" 92812bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian name="$func_basename_result" 92822bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_resolve_sysroot "$deplib" 92832bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result` 92842bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test -z "$libdir" && \ 92852bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_fatal_error "\`$deplib' is not a valid libtool archive" 92862bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name" 92872bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 92882bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -L*) 92892bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_stripname -L '' "$deplib" 92902bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_replace_sysroot "$func_stripname_result" 92912bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append newdependency_libs " -L$func_replace_sysroot_result" 92922bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 92932bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -R*) 92942bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_stripname -R '' "$deplib" 92952bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_replace_sysroot "$func_stripname_result" 92962bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append newdependency_libs " -R$func_replace_sysroot_result" 92972bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 92982bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) func_append newdependency_libs " $deplib" ;; 92992bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 93002bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 93012bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian dependency_libs="$newdependency_libs" 93022bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian newdlfiles= 93032bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 93042bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for lib in $dlfiles; do 93052bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $lib in 93062bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *.la) 93072bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_basename "$lib" 93082bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian name="$func_basename_result" 93092bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` 93102bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test -z "$libdir" && \ 93112bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_fatal_error "\`$lib' is not a valid libtool archive" 93122bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name" 93132bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 93142bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) func_append newdlfiles " $lib" ;; 93152bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 93162bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 93172bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian dlfiles="$newdlfiles" 93182bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian newdlprefiles= 93192bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for lib in $dlprefiles; do 93202bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $lib in 93212bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *.la) 93222bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Only pass preopened files to the pseudo-archive (for 93232bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # eventual linking with the app. that links it) if we 93242bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # didn't already link the preopened objects directly into 93252bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # the library: 93262bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_basename "$lib" 93272bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian name="$func_basename_result" 93282bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` 93292bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test -z "$libdir" && \ 93302bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_fatal_error "\`$lib' is not a valid libtool archive" 93312bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name" 93322bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 93332bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 93342bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 93352bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian dlprefiles="$newdlprefiles" 93362bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 93372bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian newdlfiles= 93382bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for lib in $dlfiles; do 93392bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $lib in 93402bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; 93412bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) abs=`pwd`"/$lib" ;; 93422bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 93432bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append newdlfiles " $abs" 93442bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 93452bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian dlfiles="$newdlfiles" 93462bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian newdlprefiles= 93472bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for lib in $dlprefiles; do 93482bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $lib in 93492bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; 93502bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) abs=`pwd`"/$lib" ;; 93512bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 93522bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append newdlprefiles " $abs" 93532bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 93542bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian dlprefiles="$newdlprefiles" 93552bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 93562bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $RM $output 93572bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # place dlname in correct position for cygwin 93582bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # In fact, it would be nice if we could use this code for all target 93592bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # systems that can't hard-code library paths into their executables 93602bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # and that have no shared library path variable independent of PATH, 93612bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # but it turns out we can't easily determine that from inspecting 93622bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # libtool variables, so we have to hard-code the OSs to which it 93632bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # applies here; at the moment, that means platforms that use the PE 93642bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # object format with DLL files. See the long comment at the top of 93652bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # tests/bindir.at for full details. 93662bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian tdlname=$dlname 93672bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $host,$output,$installed,$module,$dlname in 93682bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) 93692bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # If a -bindir argument was supplied, place the dll there. 93702bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "x$bindir" != x ; 93712bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian then 93722bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_relative_path "$install_libdir" "$bindir" 93732bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian tdlname=$func_relative_path_result$dlname 93742bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 93752bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Otherwise fall back on heuristic. 93762bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian tdlname=../bin/$dlname 93772bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 93782bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 93792bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 93802bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $ECHO > $output "\ 93812bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# $outputname - a libtool library file 93822bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION 93832bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# 93842bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Please DO NOT delete this file! 93852bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# It is necessary for linking the library. 93862bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 93872bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# The name that we can dlopen(3). 93882bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramaniandlname='$tdlname' 93892bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 93902bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Names of this library. 93912bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianlibrary_names='$library_names' 93922bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 93932bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# The name of the static archive. 93942bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianold_library='$old_library' 93952bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 93962bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Linker flags that can not go in dependency_libs. 93972bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianinherited_linker_flags='$new_inherited_linker_flags' 93982bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 93992bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Libraries that this one depends upon. 94002bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramaniandependency_libs='$dependency_libs' 94012bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 94022bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Names of additional weak libraries provided by this library 94032bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianweak_library_names='$weak_libs' 94042bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 94052bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Version information for $libname. 94062bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramaniancurrent=$current 94072bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianage=$age 94082bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianrevision=$revision 94092bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 94102bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Is this an already installed library? 94112bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianinstalled=$installed 94122bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 94132bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Should we warn about portability when linking against -modules? 94142bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianshouldnotlink=$module 94152bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 94162bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Files to dlopen/dlpreopen 94172bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramaniandlopen='$dlfiles' 94182bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramaniandlpreopen='$dlprefiles' 94192bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 94202bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Directory that this library needs to be installed in: 94212bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianlibdir='$install_libdir'" 94222bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$installed" = no && test "$need_relink" = yes; then 94232bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $ECHO >> $output "\ 94242bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianrelink_command=\"$relink_command\"" 94252bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 94262bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 94272bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian } 94282bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 94292bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Do a symbolic link so that the libtool archive can be found in 94302bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # LD_LIBRARY_PATH before the program is installed. 94312bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?' 94322bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 94332bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 94342bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian exit $EXIT_SUCCESS 94352bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 94362bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 94372bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ test "$opt_mode" = link || test "$opt_mode" = relink; } && 94382bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_mode_link ${1+"$@"} 94392bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 94402bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 94412bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# func_mode_uninstall arg... 94422bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfunc_mode_uninstall () 94432bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ 94442bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $opt_debug 94452bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian RM="$nonopt" 94462bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian files= 94472bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian rmforce= 94482bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian exit_status=0 94492bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 94502bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # This variable tells wrapper scripts just to set variables rather 94512bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # than running their programs. 94522bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian libtool_install_magic="$magic" 94532bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 94542bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for arg 94552bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian do 94562bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $arg in 94572bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -f) func_append RM " $arg"; rmforce=yes ;; 94582bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian -*) func_append RM " $arg" ;; 94592bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) func_append files " $arg" ;; 94602bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 94612bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 94622bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 94632bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test -z "$RM" && \ 94642bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_fatal_help "you must specify an RM program" 94652bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 94662bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian rmdirs= 94672bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 94682bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for file in $files; do 94692bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_dirname "$file" "" "." 94702bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian dir="$func_dirname_result" 94712bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "X$dir" = X.; then 94722bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian odir="$objdir" 94732bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 94742bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian odir="$dir/$objdir" 94752bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 94762bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_basename "$file" 94772bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian name="$func_basename_result" 94782bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test "$opt_mode" = uninstall && odir="$dir" 94792bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 94802bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Remember odir for removal later, being careful to avoid duplicates 94812bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$opt_mode" = clean; then 94822bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case " $rmdirs " in 94832bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *" $odir "*) ;; 94842bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) func_append rmdirs " $odir" ;; 94852bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 94862bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 94872bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 94882bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Don't error if the file doesn't exist and rm -f was used. 94892bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if { test -L "$file"; } >/dev/null 2>&1 || 94902bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian { test -h "$file"; } >/dev/null 2>&1 || 94912bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test -f "$file"; then 94922bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian : 94932bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian elif test -d "$file"; then 94942bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian exit_status=1 94952bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian continue 94962bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian elif test "$rmforce" = yes; then 94972bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian continue 94982bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 94992bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 95002bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian rmfiles="$file" 95012bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 95022bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $name in 95032bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *.la) 95042bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Possibly a libtool archive, so verify it. 95052bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if func_lalib_p "$file"; then 95062bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_source $dir/$name 95072bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 95082bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Delete the libtool libraries and symlinks. 95092bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for n in $library_names; do 95102bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append rmfiles " $odir/$n" 95112bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 95122bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test -n "$old_library" && func_append rmfiles " $odir/$old_library" 95132bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 95142bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case "$opt_mode" in 95152bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian clean) 95162bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case " $library_names " in 95172bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *" $dlname "*) ;; 95182bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;; 95192bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 95202bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i" 95212bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 95222bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian uninstall) 95232bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$library_names"; then 95242bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Do each command in the postuninstall commands. 95252bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' 95262bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 95272bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 95282bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$old_library"; then 95292bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Do each command in the old_postuninstall commands. 95302bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' 95312bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 95322bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # FIXME: should reinstall the best remaining shared library. 95332bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 95342bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 95352bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 95362bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 95372bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 95382bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *.lo) 95392bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Possibly a libtool object, so verify it. 95402bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if func_lalib_p "$file"; then 95412bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 95422bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Read the .lo file 95432bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_source $dir/$name 95442bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 95452bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Add PIC object to the list of files to remove. 95462bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$pic_object" && 95472bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test "$pic_object" != none; then 95482bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append rmfiles " $dir/$pic_object" 95492bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 95502bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 95512bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Add non-PIC object to the list of files to remove. 95522bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -n "$non_pic_object" && 95532bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian test "$non_pic_object" != none; then 95542bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append rmfiles " $dir/$non_pic_object" 95552bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 95562bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 95572bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 95582bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 95592bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *) 95602bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$opt_mode" = clean ; then 95612bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian noexename=$name 95622bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian case $file in 95632bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian *.exe) 95642bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_stripname '' '.exe' "$file" 95652bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian file=$func_stripname_result 95662bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_stripname '' '.exe' "$name" 95672bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian noexename=$func_stripname_result 95682bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # $file with .exe has already been added to rmfiles, 95692bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # add $file without .exe 95702bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append rmfiles " $file" 95712bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 95722bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 95732bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Do a test to see if this is a libtool program. 95742bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if func_ltwrapper_p "$file"; then 95752bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if func_ltwrapper_executable_p "$file"; then 95762bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_ltwrapper_scriptname "$file" 95772bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian relink_command= 95782bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_source $func_ltwrapper_scriptname_result 95792bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append rmfiles " $func_ltwrapper_scriptname_result" 95802bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian else 95812bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian relink_command= 95822bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_source $dir/$noexename 95832bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 95842bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 95852bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # note $name still contains .exe if it was in $file originally 95862bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # as does the version of $file that was added into $rmfiles 95872bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append rmfiles " $odir/$name $odir/${name}S.${objext}" 95882bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "$fast_install" = yes && test -n "$relink_command"; then 95892bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append rmfiles " $odir/lt-$name" 95902bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 95912bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test "X$noexename" != "X$name" ; then 95922bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_append rmfiles " $odir/lt-${noexename}.c" 95932bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 95942bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 95952bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 95962bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ;; 95972bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian esac 95982bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_show_eval "$RM $rmfiles" 'exit_status=1' 95992bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 96002bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 96012bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian # Try to remove the ${objdir}s in the directories where we deleted files 96022bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian for dir in $rmdirs; do 96032bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian if test -d "$dir"; then 96042bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_show_eval "rmdir $dir >/dev/null 2>&1" 96052bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 96062bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian done 96072bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 96082bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian exit $exit_status 96092bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 96102bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 96112bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian{ test "$opt_mode" = uninstall || test "$opt_mode" = clean; } && 96122bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_mode_uninstall ${1+"$@"} 96132bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 96142bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramaniantest -z "$opt_mode" && { 96152bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian help="$generic_help" 96162bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_fatal_help "you must specify a MODE" 96172bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian} 96182bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 96192bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramaniantest -z "$exec_cmd" && \ 96202bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian func_fatal_help "invalid operation mode \`$opt_mode'" 96212bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 96222bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianif test -n "$exec_cmd"; then 96232bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian eval exec "$exec_cmd" 96242bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian exit $EXIT_FAILURE 96252bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfi 96262bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 96272bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianexit $exit_status 96282bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 96292bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 96302bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# The TAGs below are defined such that we never get into a situation 96312bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# in which we disable both kinds of libraries. Given conflicting 96322bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# choices, we go for a static library, that is the most portable, 96332bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# since we can't tell whether shared libraries were disabled because 96342bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# the user asked for that or because the platform doesn't support 96352bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# them. This is particularly important on AIX, because we don't 96362bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# support having both static and shared libraries enabled at the same 96372bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# time on that platform, so we default to a shared-only configuration. 96382bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# If a disable-shared tag is given, we'll fallback to a static-only 96392bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# configuration. But we'll never go from static-only to shared-only. 96402bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 96412bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# ### BEGIN LIBTOOL TAG CONFIG: disable-shared 96422bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianbuild_libtool_libs=no 96432bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianbuild_old_libs=yes 96442bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# ### END LIBTOOL TAG CONFIG: disable-shared 96452bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 96462bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# ### BEGIN LIBTOOL TAG CONFIG: disable-static 96472bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianbuild_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` 96482bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# ### END LIBTOOL TAG CONFIG: disable-static 96492bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 96502bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Local Variables: 96512bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# mode:shell-script 96522bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# sh-indentation:2 96532bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# End: 96542bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# vi:sw=2 96552bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 9656