1732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# Generated from ltmain.m4sh. 2732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 3732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# ltmain.sh (GNU libtool) 2.2.6b 4732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996 5732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 6732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, 2007 2008 Free Software Foundation, Inc. 7732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# This is free software; see the source for copying conditions. There is NO 8732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 9732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 10732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# GNU Libtool is free software; you can redistribute it and/or modify 11311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff# it under the terms of the GNU General Public License as published by 12311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff# the Free Software Foundation; either version 2 of the License, or 13311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff# (at your option) any later version. 14311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff# 15732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# As a special exception to the GNU General Public License, 16732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# if you distribute this file as part of a program or library that 17732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# is built using GNU Libtool, you may include this file under the 18732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# same distribution terms that you use for the rest of that program. 19732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# 20732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# GNU Libtool is distributed in the hope that it will be useful, but 21311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff# WITHOUT ANY WARRANTY; without even the implied warranty of 22311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 23311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff# General Public License for more details. 24311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff# 25311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff# You should have received a copy of the GNU General Public License 26732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# along with GNU Libtool; see the file COPYING. If not, a copy 27732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# can be downloaded from http://www.gnu.org/licenses/gpl.html, 28732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# or obtained by writing to the Free Software Foundation, Inc., 29732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 30311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 31732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# Usage: $progname [OPTION]... [MODE-ARG]... 32732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# 33732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# Provide generalized library-building support services. 34732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# 35732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# --config show all configuration variables 36732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# --debug enable verbose shell tracing 37732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# -n, --dry-run display commands without modifying any files 38732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# --features display basic configuration information and exit 39732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# --mode=MODE use operation mode MODE 40732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# --preserve-dup-deps don't remove duplicate dependency libraries 41732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# --quiet, --silent don't print informational messages 42732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# --tag=TAG use configuration variables from tag TAG 43732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# -v, --verbose print informational messages (default) 44732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# --version print version information 45732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# -h, --help print short or long help message 46732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# 47732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# MODE must be one of the following: 48732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# 49732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# clean remove files from the build directory 50732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# compile compile a source file into a libtool object 51732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# execute automatically set library path, then run a program 52732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# finish complete the installation of libtool libraries 53732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# install install libraries or executables 54732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# link create a library or an executable 55732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# uninstall remove libraries from an installed directory 56732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# 57732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# MODE-ARGS vary depending on the MODE. 58732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# Try `$progname --help --mode=MODE' for a more detailed description of MODE. 59732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# 60732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# When reporting a bug, please describe a test case to reproduce it and 61732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# include the following information: 62732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# 63732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# host-triplet: $host 64732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# shell: $SHELL 65732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# compiler: $LTCC 66732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# compiler flags: $LTCFLAGS 67732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# linker: $LD (gnu? $with_gnu_ld) 68732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# $progname: (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1 69732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# automake: $automake_version 70732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# autoconf: $autoconf_version 71732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# 72732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# Report bugs to <bug-libtool@gnu.org>. 73311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 74311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiffPROGRAM=ltmain.sh 75311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiffPACKAGE=libtool 76732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comVERSION="2.2.6b Debian-2.2.6b-2ubuntu1" 77732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comTIMESTAMP="" 78732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.compackage_revision=1.3017 79d18457863096b3685e56f5a8919959f6afbdb121openvcdiff 80732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# Be Bourne compatible 81d18457863096b3685e56f5a8919959f6afbdb121openvcdiffif test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then 82d18457863096b3685e56f5a8919959f6afbdb121openvcdiff emulate sh 83d18457863096b3685e56f5a8919959f6afbdb121openvcdiff NULLCMD=: 84d18457863096b3685e56f5a8919959f6afbdb121openvcdiff # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which 85d18457863096b3685e56f5a8919959f6afbdb121openvcdiff # is contrary to our usage. Disable this feature. 86d18457863096b3685e56f5a8919959f6afbdb121openvcdiff alias -g '${1+"$@"}'='"$@"' 87311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff setopt NO_GLOB_SUBST 88d18457863096b3685e56f5a8919959f6afbdb121openvcdiffelse 89d18457863096b3685e56f5a8919959f6afbdb121openvcdiff case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac 90311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdifffi 91d18457863096b3685e56f5a8919959f6afbdb121openvcdiffBIN_SH=xpg4; export BIN_SH # for Tru64 92d18457863096b3685e56f5a8919959f6afbdb121openvcdiffDUALCASE=1; export DUALCASE # for MKS sh 93311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 94732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# NLS nuisances: We save the old values to restore during execute mode. 95311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff# Only set LANG and LC_ALL to C if already set. 96311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff# These must not be set unconditionally because not all systems understand 97311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff# e.g. LANG=C (notably SCO). 98732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comlt_user_locale= 99732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comlt_safe_locale= 100d18457863096b3685e56f5a8919959f6afbdb121openvcdifffor lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES 101d18457863096b3685e56f5a8919959f6afbdb121openvcdiffdo 102d18457863096b3685e56f5a8919959f6afbdb121openvcdiff eval "if test \"\${$lt_var+set}\" = set; then 103732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com save_$lt_var=\$$lt_var 104732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $lt_var=C 105d18457863096b3685e56f5a8919959f6afbdb121openvcdiff export $lt_var 106732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\" 107732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\" 108d18457863096b3685e56f5a8919959f6afbdb121openvcdiff fi" 109d18457863096b3685e56f5a8919959f6afbdb121openvcdiffdone 110d18457863096b3685e56f5a8919959f6afbdb121openvcdiff 111732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com$lt_unset CDPATH 112732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 113732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 114732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 115732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 116732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 117732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com: ${CP="cp -f"} 118732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com: ${ECHO="echo"} 119732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com: ${EGREP="/bin/grep -E"} 120732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com: ${FGREP="/bin/grep -F"} 121732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com: ${GREP="/bin/grep"} 122732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com: ${LN_S="ln -s"} 123732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com: ${MAKE="make"} 124732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com: ${MKDIR="mkdir"} 125732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com: ${MV="mv -f"} 126732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com: ${RM="rm -f"} 127732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com: ${SED="/bin/sed"} 128732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com: ${SHELL="${CONFIG_SHELL-/bin/sh}"} 129732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com: ${Xsed="$SED -e 1s/^X//"} 130732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 131732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# Global variables: 132732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comEXIT_SUCCESS=0 133732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comEXIT_FAILURE=1 134732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comEXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing. 135732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comEXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake. 136732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 137732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comexit_status=$EXIT_SUCCESS 138311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 139311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff# Make sure IFS has a sensible default 140311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdifflt_nl=' 141311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff' 142311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiffIFS=" $lt_nl" 143311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 144732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comdirname="s,/[^/]*$,," 145732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.combasename="s,^.*/,," 146732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 147732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# func_dirname_and_basename file append nondir_replacement 148732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# perform func_basename and func_dirname in a single function 149732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# call: 150732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# dirname: Compute the dirname of FILE. If nonempty, 151732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# add APPEND to the result, otherwise set result 152732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# to NONDIR_REPLACEMENT. 153732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# value returned in "$func_dirname_result" 154732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# basename: Compute filename of FILE. 155732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# value retuned in "$func_basename_result" 156732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# Implementation must be kept synchronized with func_dirname 157732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# and func_basename. For efficiency, we do not delegate to 158732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# those functions but instead duplicate the functionality here. 159732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comfunc_dirname_and_basename () 160732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com{ 161732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Extract subdirectory from the argument. 162732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"` 163732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "X$func_dirname_result" = "X${1}"; then 164732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_dirname_result="${3}" 165732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 166732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_dirname_result="$func_dirname_result${2}" 167732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 168732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"` 169732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com} 170311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 171732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# Generated shell functions inserted here. 172732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 173732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh 174732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# is ksh but when the shell is invoked as "sh" and the current value of 175732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# the _XPG environment variable is not equal to 1 (one), the special 176732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# positional parameter $0, within a function call, is the name of the 177732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# function. 178732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comprogpath="$0" 179732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 180732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# The name of this program: 181732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# In the unlikely event $progname began with a '-', it would play havoc with 182732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# func_echo (imagine progname=-n), so we prepend ./ in that case: 183732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comfunc_dirname_and_basename "$progpath" 184732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comprogname=$func_basename_result 185732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comcase $progname in 186732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -*) progname=./$progname ;; 187732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comesac 188732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 189732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# Make sure we have an absolute path for reexecution: 190732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comcase $progpath in 191732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com [\\/]*|[A-Za-z]:\\*) ;; 192732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *[\\/]*) 193732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com progdir=$func_dirname_result 194732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com progdir=`cd "$progdir" && pwd` 195732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com progpath="$progdir/$progname" 196732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 197732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) 198732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com save_IFS="$IFS" 199732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com IFS=: 200732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for progdir in $PATH; do 201732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com IFS="$save_IFS" 202732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test -x "$progdir/$progname" && break 203732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done 204732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com IFS="$save_IFS" 205732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test -n "$progdir" || progdir=`pwd` 206732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com progpath="$progdir/$progname" 207732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 208732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comesac 209732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 210732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# Sed substitution that helps us do robust quoting. It backslashifies 211732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# metacharacters that are still active within double-quoted strings. 212732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comXsed="${SED}"' -e 1s/^X//' 213732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comsed_quote_subst='s/\([`"$\\]\)/\\\1/g' 214732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 215732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# Same as above, but do not quote variable references. 216732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comdouble_quote_subst='s/\(["`\\]\)/\\\1/g' 217732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 218732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# Re-`\' parameter expansions in output of double_quote_subst that were 219732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# `\'-ed in input to the same. If an odd number of `\' preceded a '$' 220732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# in input to double_quote_subst, that '$' was protected from expansion. 221732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# Since each input `\' is now two `\'s, look for any number of runs of 222732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# four `\'s followed by two `\'s and then a '$'. `\' that '$'. 223732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.combs='\\' 224732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.combs2='\\\\' 225732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.combs4='\\\\\\\\' 226732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comdollar='\$' 227732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comsed_double_backslash="\ 228732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com s/$bs4/&\\ 229732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com/g 230732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com s/^$bs2$dollar/$bs&/ 231732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g 232732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com s/\n//g" 233732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 234732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# Standard options: 235732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comopt_dry_run=false 236732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comopt_help=false 237732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comopt_quiet=false 238732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comopt_verbose=false 239732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comopt_warning=: 240732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 241732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# func_echo arg... 242732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# Echo program name prefixed message, along with the current mode 243732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# name if it has been set yet. 244732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comfunc_echo () 245732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com{ 246732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "$progname${mode+: }$mode: $*" 247732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com} 248732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 249732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# func_verbose arg... 250732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# Echo program name prefixed message in verbose mode only. 251732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comfunc_verbose () 252732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com{ 253732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $opt_verbose && func_echo ${1+"$@"} 254732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 255732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # A bug in bash halts the script if the last line of a function 256732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # fails when set -e is in force, so we need another command to 257732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # work around that: 258732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com : 259732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com} 260732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 261732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# func_error arg... 262732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# Echo program name prefixed message to standard error. 263732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comfunc_error () 264732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com{ 265732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "$progname${mode+: }$mode: "${1+"$@"} 1>&2 266732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com} 267732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 268732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# func_warning arg... 269732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# Echo program name prefixed warning message to standard error. 270732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comfunc_warning () 271732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com{ 272732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $opt_warning && $ECHO "$progname${mode+: }$mode: warning: "${1+"$@"} 1>&2 273732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 274732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # bash bug again: 275732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com : 276732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com} 277732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 278732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# func_fatal_error arg... 279732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# Echo program name prefixed message to standard error, and exit. 280732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comfunc_fatal_error () 281732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com{ 282732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_error ${1+"$@"} 283732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com exit $EXIT_FAILURE 284732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com} 285732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 286732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# func_fatal_help arg... 287732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# Echo program name prefixed message to standard error, followed by 288732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# a help hint, and exit. 289732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comfunc_fatal_help () 290732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com{ 291732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_error ${1+"$@"} 292732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_fatal_error "$help" 293732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com} 294732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comhelp="Try \`$progname --help' for more information." ## default 295732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 296732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 297732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# func_grep expression filename 298732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# Check whether EXPRESSION matches any line of FILENAME, without output. 299732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comfunc_grep () 300732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com{ 301732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $GREP "$1" "$2" >/dev/null 2>&1 302732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com} 303732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 304732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 305732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# func_mkdir_p directory-path 306732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# Make sure the entire path to DIRECTORY-PATH is available. 307732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comfunc_mkdir_p () 308732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com{ 309732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com my_directory_path="$1" 310732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com my_dir_list= 311732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 312732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then 313732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 314732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Protect directory names starting with `-' 315732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $my_directory_path in 316732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -*) my_directory_path="./$my_directory_path" ;; 317732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 318732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 319732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # While some portion of DIR does not yet exist... 320732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com while test ! -d "$my_directory_path"; do 321732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # ...make a list in topmost first order. Use a colon delimited 322732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # list incase some portion of path contains whitespace. 323732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com my_dir_list="$my_directory_path:$my_dir_list" 324732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 325732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # If the last portion added has no slash in it, the list is done 326732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $my_directory_path in */*) ;; *) break ;; esac 327732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 328732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # ...otherwise throw away the child directory and loop 329732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com my_directory_path=`$ECHO "X$my_directory_path" | $Xsed -e "$dirname"` 330732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done 331732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com my_dir_list=`$ECHO "X$my_dir_list" | $Xsed -e 's,:*$,,'` 332732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 333732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com save_mkdir_p_IFS="$IFS"; IFS=':' 334732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for my_dir in $my_dir_list; do 335732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com IFS="$save_mkdir_p_IFS" 336732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # mkdir can fail with a `File exist' error if two processes 337732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # try to create one of the directories concurrently. Don't 338732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # stop in that case! 339732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $MKDIR "$my_dir" 2>/dev/null || : 340732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done 341732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com IFS="$save_mkdir_p_IFS" 342732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 343732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Bail out if we (or some other process) failed to create a directory. 344732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test -d "$my_directory_path" || \ 345732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_fatal_error "Failed to create \`$1'" 346732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 347732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com} 348311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 349311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 350311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff# func_mktempdir [string] 351311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff# Make a temporary directory that won't clash with other running 352311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff# libtool processes, and avoids race conditions if possible. If 353311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff# given, STRING is the basename for that directory. 354311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdifffunc_mktempdir () 355311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff{ 356311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff my_template="${TMPDIR-/tmp}/${1-$progname}" 357311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 358732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$opt_dry_run" = ":"; then 359311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff # Return a directory name, but don't create it in dry-run mode 360311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff my_tmpdir="${my_template}-$$" 361311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff else 362311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 363311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff # If mktemp works, use that first and foremost 364311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` 365311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 366311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff if test ! -d "$my_tmpdir"; then 367732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Failing that, at least try and use $RANDOM to avoid a race 368732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com my_tmpdir="${my_template}-${RANDOM-0}$$" 369311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 370732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com save_mktempdir_umask=`umask` 371732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com umask 0077 372732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $MKDIR "$my_tmpdir" 373732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com umask $save_mktempdir_umask 374311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff fi 375311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 376311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff # If we're not in dry-run mode, bomb out on failure 377732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test -d "$my_tmpdir" || \ 378732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_fatal_error "cannot create temporary directory \`$my_tmpdir'" 379311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff fi 380311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 381732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "X$my_tmpdir" | $Xsed 382311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff} 383311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 384311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 385732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# func_quote_for_eval arg 386732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# Aesthetically quote ARG to be evaled later. 387732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT 388732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# is double-quoted, suitable for a subsequent eval, whereas 389732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters 390732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# which are still active within double quotes backslashified. 391732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comfunc_quote_for_eval () 392311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff{ 393732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $1 in 394732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *[\\\`\"\$]*) 395732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_quote_for_eval_unquoted_result=`$ECHO "X$1" | $Xsed -e "$sed_quote_subst"` ;; 396732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) 397732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_quote_for_eval_unquoted_result="$1" ;; 398732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 399732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 400732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $func_quote_for_eval_unquoted_result in 401732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Double-quote args containing shell metacharacters to delay 402732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # word splitting, command substitution and and variable 403732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # expansion for a subsequent eval. 404732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Many Bourne shells cannot handle close brackets correctly 405732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # in scan sets, so we specify it separately. 406732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 407732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\"" 408732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 409732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) 410732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_quote_for_eval_result="$func_quote_for_eval_unquoted_result" 411311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff esac 412311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff} 413311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 414311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 415732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# func_quote_for_expand arg 416732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# Aesthetically quote ARG to be evaled later; same as above, 417732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# but do not quote variable references. 418732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comfunc_quote_for_expand () 419311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff{ 420732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $1 in 421732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *[\\\`\"]*) 422732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com my_arg=`$ECHO "X$1" | $Xsed \ 423732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -e "$double_quote_subst" -e "$sed_double_backslash"` ;; 424311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff *) 425732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com my_arg="$1" ;; 426732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 427732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 428732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $my_arg in 429732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Double-quote args containing shell metacharacters to delay 430732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # word splitting and command substitution for a subsequent eval. 431732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Many Bourne shells cannot handle close brackets correctly 432732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # in scan sets, so we specify it separately. 433732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 434732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com my_arg="\"$my_arg\"" 435732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 436732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 437732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 438732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_quote_for_expand_result="$my_arg" 439311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff} 440311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 441311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 442732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# func_show_eval cmd [fail_exp] 443732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# Unless opt_silent is true, then output CMD. Then, if opt_dryrun is 444732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP 445732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# is given, then evaluate it. 446732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comfunc_show_eval () 447311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff{ 448732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com my_cmd="$1" 449732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com my_fail_exp="${2-:}" 450311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 451732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ${opt_silent-false} || { 452732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_quote_for_expand "$my_cmd" 453732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com eval "func_echo $func_quote_for_expand_result" 454732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com } 455732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 456732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if ${opt_dry_run-false}; then :; else 457732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com eval "$my_cmd" 458732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com my_status=$? 459732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$my_status" -eq 0; then :; else 460732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com eval "(exit $my_status); $my_fail_exp" 461732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 462311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff fi 463311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff} 464311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 465732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 466732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# func_show_eval_locale cmd [fail_exp] 467732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# Unless opt_silent is true, then output CMD. Then, if opt_dryrun is 468732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP 469732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# is given, then evaluate it. Use the saved locale for evaluation. 470732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comfunc_show_eval_locale () 471311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff{ 472732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com my_cmd="$1" 473732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com my_fail_exp="${2-:}" 474732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 475732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ${opt_silent-false} || { 476732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_quote_for_expand "$my_cmd" 477732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com eval "func_echo $func_quote_for_expand_result" 478732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com } 479732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 480732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if ${opt_dry_run-false}; then :; else 481732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com eval "$lt_user_locale 482732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $my_cmd" 483732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com my_status=$? 484732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com eval "$lt_safe_locale" 485732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$my_status" -eq 0; then :; else 486732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com eval "(exit $my_status); $my_fail_exp" 487732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 488311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff fi 489732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com} 490311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 491311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 492732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 493732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 494732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 495732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# func_version 496732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# Echo version message to standard output and exit. 497732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comfunc_version () 498732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com{ 499732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $SED -n '/^# '$PROGRAM' (GNU /,/# warranty; / { 500732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com s/^# // 501732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com s/^# *$// 502732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/ 503732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com p 504732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com }' < "$progpath" 505732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com exit $? 506732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com} 507732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 508732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# func_usage 509732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# Echo short help message to standard output and exit. 510732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comfunc_usage () 511732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com{ 512732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $SED -n '/^# Usage:/,/# -h/ { 513732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com s/^# // 514732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com s/^# *$// 515732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com s/\$progname/'$progname'/ 516732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com p 517732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com }' < "$progpath" 518732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO 519732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "run \`$progname --help | more' for full usage" 520732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com exit $? 521732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com} 522732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 523732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# func_help 524732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# Echo long help message to standard output and exit. 525732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comfunc_help () 526732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com{ 527732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $SED -n '/^# Usage:/,/# Report bugs to/ { 528732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com s/^# // 529732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com s/^# *$// 530732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com s*\$progname*'$progname'* 531732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com s*\$host*'"$host"'* 532732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com s*\$SHELL*'"$SHELL"'* 533732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com s*\$LTCC*'"$LTCC"'* 534732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com s*\$LTCFLAGS*'"$LTCFLAGS"'* 535732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com s*\$LD*'"$LD"'* 536732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com s/\$with_gnu_ld/'"$with_gnu_ld"'/ 537732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com s/\$automake_version/'"`(automake --version) 2>/dev/null |$SED 1q`"'/ 538732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com s/\$autoconf_version/'"`(autoconf --version) 2>/dev/null |$SED 1q`"'/ 539732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com p 540732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com }' < "$progpath" 541732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com exit $? 542732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com} 543732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 544732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# func_missing_arg argname 545732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# Echo program name prefixed message to standard error and set global 546732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# exit_cmd. 547732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comfunc_missing_arg () 548732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com{ 549732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_error "missing argument for $1" 550732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com exit_cmd=exit 551311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff} 552311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 553732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comexit_cmd=: 554311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 555311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 556732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 557732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 558732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 559732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# Check that we have a working $ECHO. 560732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comif test "X$1" = X--no-reexec; then 561732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Discard the --no-reexec flag, and continue. 562311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff shift 563732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comelif test "X$1" = X--fallback-echo; then 564732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Avoid inline document here, it may be left over 565732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com : 566732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comelif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t'; then 567732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Yippee, $ECHO works! 568732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com : 569732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comelse 570732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Restart under the correct shell, and then maybe $ECHO will work. 571732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com exec $SHELL "$progpath" --no-reexec ${1+"$@"} 572732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comfi 573311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 574732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comif test "X$1" = X--fallback-echo; then 575732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # used as fallback echo 576732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com shift 577732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com cat <<EOF 578732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com$* 579732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comEOF 580732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com exit $EXIT_SUCCESS 581732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comfi 582311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 583732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.commagic="%%%MAGIC variable%%%" 584732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.commagic_exe="%%%MAGIC EXE variable%%%" 585311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 586732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# Global variables. 587732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# $mode is unset 588732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comnonopt= 589732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comexecute_dlfiles= 590732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.compreserve_args= 591732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comlo2o="s/\\.lo\$/.${objext}/" 592732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.como2lo="s/\\.${objext}\$/.lo/" 593732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comextracted_archives= 594732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comextracted_serial=0 595311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 596732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comopt_dry_run=false 597732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comopt_duplicate_deps=false 598732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comopt_silent=false 599732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comopt_debug=: 600311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 601732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# If this variable is set in any of the actions, the command in it 602732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# will be execed at the end. This prevents here-documents from being 603732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# left over by shells. 604732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comexec_cmd= 605732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 606732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# func_fatal_configuration arg... 607732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# Echo program name prefixed message to standard error, followed by 608732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# a configuration failure hint, and exit. 609732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comfunc_fatal_configuration () 610732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com{ 611732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_error ${1+"$@"} 612732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_error "See the $PACKAGE documentation for more information." 613732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_fatal_error "Fatal configuration error." 614732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com} 615311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 616d18457863096b3685e56f5a8919959f6afbdb121openvcdiff 617732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# func_config 618732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# Display the configuration for all the tags in this script. 619732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comfunc_config () 620732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com{ 621732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com re_begincf='^# ### BEGIN LIBTOOL' 622732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com re_endcf='^# ### END LIBTOOL' 623732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 624732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Default configuration. 625732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath" 626311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 627311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff # Now print the configurations for the tags. 628311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff for tagname in $taglist; do 629732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath" 630311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff done 631311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 632732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com exit $? 633732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com} 634311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 635732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# func_features 636732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# Display the features supported by this script. 637732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comfunc_features () 638732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com{ 639732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "host: $host" 640311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff if test "$build_libtool_libs" = yes; then 641732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "enable shared libraries" 642311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff else 643732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "disable shared libraries" 644311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff fi 645311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff if test "$build_old_libs" = yes; then 646732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "enable static libraries" 647311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff else 648732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "disable static libraries" 649311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff fi 650732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 651311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff exit $? 652732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com} 653311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 654732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# func_enable_tag tagname 655732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# Verify that TAGNAME is valid, and either flag an error and exit, or 656732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# enable the TAGNAME tag. We also add TAGNAME to the global $taglist 657732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# variable here. 658732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comfunc_enable_tag () 659732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com{ 660732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Global variable: 661732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com tagname="$1" 662311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 663732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$" 664732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$" 665732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com sed_extractcf="/$re_begincf/,/$re_endcf/p" 666311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 667732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Validate tagname. 668732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $tagname in 669732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *[!-_A-Za-z0-9,/]*) 670732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_fatal_error "invalid tag name: $tagname" 671732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 672732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 673311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 674732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Don't test for the "default" C tag, as we know it's 675732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # there but not specially marked. 676732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $tagname in 677732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com CC) ;; 678732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) 679732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then 680732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com taglist="$taglist $tagname" 681732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 682732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Evaluate the configuration. Be careful to quote the path 683732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # and the sed script, to avoid splitting on whitespace, but 684732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # also don't use non-portable quotes within backquotes within 685732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # quotes we have to do it in 2 steps: 686732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"` 687732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com eval "$extractedcf" 688732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 689732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_error "ignoring unknown tag $tagname" 690732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 691732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 692732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 693732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com} 694732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 695732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# Parse options once, thoroughly. This comes as soon as possible in 696732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# the script to make things like `libtool --version' happen quickly. 697732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com{ 698311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 699732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Shorthand for --mode=foo, only valid as the first argument 700732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $1 in 701732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com clean|clea|cle|cl) 702732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com shift; set dummy --mode clean ${1+"$@"}; shift 703311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff ;; 704732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com compile|compil|compi|comp|com|co|c) 705732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com shift; set dummy --mode compile ${1+"$@"}; shift 706311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff ;; 707732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com execute|execut|execu|exec|exe|ex|e) 708732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com shift; set dummy --mode execute ${1+"$@"}; shift 709311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff ;; 710732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com finish|finis|fini|fin|fi|f) 711732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com shift; set dummy --mode finish ${1+"$@"}; shift 712311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff ;; 713732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com install|instal|insta|inst|ins|in|i) 714732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com shift; set dummy --mode install ${1+"$@"}; shift 715732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 716732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com link|lin|li|l) 717732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com shift; set dummy --mode link ${1+"$@"}; shift 718732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 719732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) 720732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com shift; set dummy --mode uninstall ${1+"$@"}; shift 721311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff ;; 722311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff esac 723311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 724732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Parse non-mode specific arguments: 725732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com while test "$#" -gt 0; do 726732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com opt="$1" 727732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com shift 728311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 729732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $opt in 730732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com --config) func_config ;; 731311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 732732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com --debug) preserve_args="$preserve_args $opt" 733732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_echo "enabling shell trace mode" 734732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com opt_debug='set -x' 735732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $opt_debug 736732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 737311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 738732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -dlopen) test "$#" -eq 0 && func_missing_arg "$opt" && break 739732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com execute_dlfiles="$execute_dlfiles $1" 740732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com shift 741732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 742311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 743732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com --dry-run | -n) opt_dry_run=: ;; 744732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com --features) func_features ;; 745732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com --finish) mode="finish" ;; 746732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 747732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com --mode) test "$#" -eq 0 && func_missing_arg "$opt" && break 748732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $1 in 749732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Valid mode arguments: 750732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com clean) ;; 751732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com compile) ;; 752732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com execute) ;; 753732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com finish) ;; 754732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com install) ;; 755732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com link) ;; 756732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com relink) ;; 757732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com uninstall) ;; 758732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 759732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Catch anything else as an error 760732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) func_error "invalid argument for $opt" 761732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com exit_cmd=exit 762732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com break 763732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 764732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 765732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 766732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com mode="$1" 767732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com shift 768732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 769732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 770732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com --preserve-dup-deps) 771732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com opt_duplicate_deps=: ;; 772732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 773732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com --quiet|--silent) preserve_args="$preserve_args $opt" 774732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com opt_silent=: 775732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 776732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 777732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com --verbose| -v) preserve_args="$preserve_args $opt" 778732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com opt_silent=false 779732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 780732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 781732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com --tag) test "$#" -eq 0 && func_missing_arg "$opt" && break 782732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com preserve_args="$preserve_args $opt $1" 783732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_enable_tag "$1" # tagname is set here 784732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com shift 785732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 786732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 787732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Separate optargs to long options: 788732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -dlopen=*|--mode=*|--tag=*) 789732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_opt_split "$opt" 790732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com set dummy "$func_opt_split_opt" "$func_opt_split_arg" ${1+"$@"} 791732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com shift 792732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 793732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 794732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -\?|-h) func_usage ;; 795732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com --help) opt_help=: ;; 796732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com --version) func_version ;; 797732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 798732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -*) func_fatal_help "unrecognized option \`$opt'" ;; 799732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 800732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) nonopt="$opt" 801732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com break 802732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 803732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 804732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done 805732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 806732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 807732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $host in 808732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *cygwin* | *mingw* | *pw32* | *cegcc*) 809732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # don't eliminate duplications in $postdeps and $predeps 810732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com opt_duplicate_compiler_generated_deps=: 811311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff ;; 812311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff *) 813732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com opt_duplicate_compiler_generated_deps=$opt_duplicate_deps 814732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 815732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 816311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 817732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Having warned about all mis-specified options, bail out if 818732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # anything was wrong. 819732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $exit_cmd $EXIT_FAILURE 820732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com} 821732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 822732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# func_check_version_match 823732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# Ensure that we are using m4 macros, and libtool script from the same 824732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# release of libtool. 825732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comfunc_check_version_match () 826732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com{ 827732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$package_revision" != "$macro_revision"; then 828732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$VERSION" != "$macro_version"; then 829732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -z "$macro_version"; then 830732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com cat >&2 <<_LT_EOF 831732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com$progname: Version mismatch error. This is $PACKAGE $VERSION, but the 832732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com$progname: definition of this LT_INIT comes from an older release. 833732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION 834732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com$progname: and run autoconf again. 835732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com_LT_EOF 836732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 837732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com cat >&2 <<_LT_EOF 838732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com$progname: Version mismatch error. This is $PACKAGE $VERSION, but the 839732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com$progname: definition of this LT_INIT comes from $PACKAGE $macro_version. 840732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION 841732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com$progname: and run autoconf again. 842732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com_LT_EOF 843311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff fi 844732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 845732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com cat >&2 <<_LT_EOF 846732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com$progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, 847732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com$progname: but the definition of this LT_INIT comes from revision $macro_revision. 848732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com$progname: You should recreate aclocal.m4 with macros from revision $package_revision 849732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com$progname: of $PACKAGE $VERSION and run autoconf again. 850732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com_LT_EOF 851732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 852732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 853732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com exit $EXIT_MISMATCH 854732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 855732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com} 856732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 857732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 858732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com## ----------- ## 859732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com## Main. ## 860732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com## ----------- ## 861732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 862732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com$opt_help || { 863732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Sanity checks first: 864732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_check_version_match 865732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 866732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then 867732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_fatal_configuration "not configured to build any kind of library" 868311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff fi 869311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 870732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test -z "$mode" && func_fatal_error "error: you must specify a MODE." 871732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 872732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 873732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Darwin sucks 874732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com eval std_shrext=\"$shrext_cmds\" 875732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 876732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 877311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff # Only execute mode is allowed to have -dlopen flags. 878311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff if test -n "$execute_dlfiles" && test "$mode" != execute; then 879732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_error "unrecognized option \`-dlopen'" 880732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "$help" 1>&2 881311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff exit $EXIT_FAILURE 882311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff fi 883311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 884311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff # Change the help message to a mode-specific one. 885311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff generic_help="$help" 886732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com help="Try \`$progname --help --mode=$mode' for more information." 887732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com} 888311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 889311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 890732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# func_lalib_p file 891732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# True iff FILE is a libtool `.la' library or `.lo' object file. 892732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# This function is only a basic sanity check; it will hardly flush out 893732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# determined imposters. 894732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comfunc_lalib_p () 895732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com{ 896732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test -f "$1" && 897732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $SED -e 4q "$1" 2>/dev/null \ 898732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1 899732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com} 900311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 901732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# func_lalib_unsafe_p file 902732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# True iff FILE is a libtool `.la' library or `.lo' object file. 903732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# This function implements the same check as func_lalib_p without 904732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# resorting to external programs. To this end, it redirects stdin and 905732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# closes it afterwards, without saving the original file descriptor. 906732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# As a safety measure, use it only where a negative result would be 907732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# fatal anyway. Works if `file' does not exist. 908732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comfunc_lalib_unsafe_p () 909732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com{ 910732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com lalib_p=no 911732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then 912732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for lalib_p_l in 1 2 3 4 913732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com do 914732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com read lalib_p_line 915732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case "$lalib_p_line" in 916732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;; 917732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 918732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done 919732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com exec 0<&5 5<&- 920732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 921732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test "$lalib_p" = yes 922732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com} 923311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 924732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# func_ltwrapper_script_p file 925732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# True iff FILE is a libtool wrapper script 926732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# This function is only a basic sanity check; it will hardly flush out 927732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# determined imposters. 928732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comfunc_ltwrapper_script_p () 929732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com{ 930732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_lalib_p "$1" 931732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com} 932311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 933732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# func_ltwrapper_executable_p file 934732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# True iff FILE is a libtool wrapper executable 935732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# This function is only a basic sanity check; it will hardly flush out 936732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# determined imposters. 937732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comfunc_ltwrapper_executable_p () 938732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com{ 939732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_ltwrapper_exec_suffix= 940732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $1 in 941732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *.exe) ;; 942732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) func_ltwrapper_exec_suffix=.exe ;; 943732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 944732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1 945732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com} 946311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 947732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# func_ltwrapper_scriptname file 948732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# Assumes file is an ltwrapper_executable 949732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# uses $file to determine the appropriate filename for a 950732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# temporary ltwrapper_script. 951732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comfunc_ltwrapper_scriptname () 952732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com{ 953732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_ltwrapper_scriptname_result="" 954732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if func_ltwrapper_executable_p "$1"; then 955732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_dirname_and_basename "$1" "" "." 956732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_stripname '' '.exe' "$func_basename_result" 957732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper" 958732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 959732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com} 960732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 961732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# func_ltwrapper_p file 962732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# True iff FILE is a libtool wrapper script or wrapper executable 963732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# This function is only a basic sanity check; it will hardly flush out 964732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# determined imposters. 965732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comfunc_ltwrapper_p () 966732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com{ 967732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1" 968732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com} 969732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 970732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 971732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# func_execute_cmds commands fail_cmd 972732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# Execute tilde-delimited COMMANDS. 973732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# If FAIL_CMD is given, eval that upon failure. 974732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# FAIL_CMD may read-access the current command in variable CMD! 975732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comfunc_execute_cmds () 976732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com{ 977732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $opt_debug 978732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com save_ifs=$IFS; IFS='~' 979732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for cmd in $1; do 980732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com IFS=$save_ifs 981732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com eval cmd=\"$cmd\" 982732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_show_eval "$cmd" "${2-:}" 983732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done 984732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com IFS=$save_ifs 985732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com} 986732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 987732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 988732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# func_source file 989732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# Source FILE, adding directory component if necessary. 990732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# Note that it is not necessary on cygwin/mingw to append a dot to 991732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# FILE even if both FILE and FILE.exe exist: automatic-append-.exe 992732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# behavior happens only for exec(3), not for open(2)! Also, sourcing 993732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# `FILE.' does not work on cygwin managed mounts. 994732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comfunc_source () 995732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com{ 996732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $opt_debug 997732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $1 in 998732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com */* | *\\*) . "$1" ;; 999732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) . "./$1" ;; 1000732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 1001732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com} 1002732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 1003732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 1004732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# func_infer_tag arg 1005732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# Infer tagged configuration to use if any are available and 1006732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# if one wasn't chosen via the "--tag" command line option. 1007732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# Only attempt this if the compiler in the base compile 1008732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# command doesn't match the default compiler. 1009732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# arg is usually of the form 'gcc ...' 1010732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comfunc_infer_tag () 1011732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com{ 1012732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $opt_debug 1013732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$available_tags" && test -z "$tagname"; then 1014732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com CC_quoted= 1015732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for arg in $CC; do 1016732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_quote_for_eval "$arg" 1017732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com CC_quoted="$CC_quoted $func_quote_for_eval_result" 1018732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done 1019732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $@ in 1020732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Blanks in the command may have been stripped by the calling shell, 1021732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # but not from the CC environment variable when configure was run. 1022732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) ;; 1023732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Blanks at the start of $base_compile will cause this to fail 1024732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # if we don't check for them as well. 1025732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) 1026732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for z in $available_tags; do 1027732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then 1028732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Evaluate the configuration. 1029732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" 1030732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com CC_quoted= 1031732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for arg in $CC; do 1032732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Double-quote args containing other shell metacharacters. 1033732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_quote_for_eval "$arg" 1034732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com CC_quoted="$CC_quoted $func_quote_for_eval_result" 1035732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done 1036732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case "$@ " in 1037732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) 1038732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # The compiler in the base compile command matches 1039732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # the one in the tagged configuration. 1040732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Assume this is the tagged configuration we want. 1041732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com tagname=$z 1042732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com break 1043732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 1044732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 1045732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 1046732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done 1047732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # If $tagname still isn't set, then no tagged configuration 1048732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # was found and let the user know that the "--tag" command 1049732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # line option must be used. 1050732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -z "$tagname"; then 1051732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_echo "unable to infer tagged configuration" 1052732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_fatal_error "specify a tag with \`--tag'" 1053732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# else 1054732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# func_verbose "using $tagname tagged configuration" 1055732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 1056732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 1057732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 1058732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 1059732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com} 1060732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 1061732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 1062732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 1063732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# func_write_libtool_object output_name pic_name nonpic_name 1064732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# Create a libtool object file (analogous to a ".la" file), 1065732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# but don't create it if we're doing a dry run. 1066732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comfunc_write_libtool_object () 1067732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com{ 1068732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com write_libobj=${1} 1069732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$build_libtool_libs" = yes; then 1070732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com write_lobj=\'${2}\' 1071732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 1072732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com write_lobj=none 1073732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 1074732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 1075732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$build_old_libs" = yes; then 1076732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com write_oldobj=\'${3}\' 1077732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 1078732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com write_oldobj=none 1079732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 1080732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 1081732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $opt_dry_run || { 1082732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com cat >${write_libobj}T <<EOF 1083732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# $write_libobj - a libtool object file 1084732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION 1085732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# 1086732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# Please DO NOT delete this file! 1087732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# It is necessary for linking the library. 1088732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 1089732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# Name of the PIC object. 1090732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.compic_object=$write_lobj 1091732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 1092732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# Name of the non-PIC object 1093732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comnon_pic_object=$write_oldobj 1094732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 1095732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comEOF 1096732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $MV "${write_libobj}T" "${write_libobj}" 1097732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com } 1098732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com} 1099732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 1100732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# func_mode_compile arg... 1101732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comfunc_mode_compile () 1102732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com{ 1103732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $opt_debug 1104732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Get the compilation command and the source file. 1105732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com base_compile= 1106732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com srcfile="$nonopt" # always keep a non-empty value in "srcfile" 1107732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com suppress_opt=yes 1108732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com suppress_output= 1109732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com arg_mode=normal 1110732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com libobj= 1111732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com later= 1112732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com pie_flag= 1113732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 1114732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for arg 1115732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com do 1116732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $arg_mode in 1117732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com arg ) 1118732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # do not "continue". Instead, add this to base_compile 1119732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com lastarg="$arg" 1120732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com arg_mode=normal 1121732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 1122732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 1123732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com target ) 1124732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com libobj="$arg" 1125732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com arg_mode=normal 1126732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com continue 1127732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 1128732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 1129732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com normal ) 1130732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Accept any command-line options. 1131732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $arg in 1132732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -o) 1133732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test -n "$libobj" && \ 1134732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_fatal_error "you cannot specify \`-o' more than once" 1135732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com arg_mode=target 1136732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com continue 1137732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 1138732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 1139732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -pie | -fpie | -fPIE) 1140732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com pie_flag="$pie_flag $arg" 1141732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com continue 1142732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 1143732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 1144732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -shared | -static | -prefer-pic | -prefer-non-pic) 1145732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com later="$later $arg" 1146732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com continue 1147732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 1148732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 1149732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -no-suppress) 1150311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff suppress_opt=no 1151311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff continue 1152311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff ;; 1153311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1154311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff -Xcompiler) 1155311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff arg_mode=arg # the next one goes into the "base_compile" arg list 1156311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff continue # The current "srcfile" will either be retained or 1157311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff ;; # replaced later. I would guess that would be a bug. 1158311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1159311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff -Wc,*) 1160732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_stripname '-Wc,' '' "$arg" 1161732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com args=$func_stripname_result 1162311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff lastarg= 1163311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff save_ifs="$IFS"; IFS=',' 1164732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for arg in $args; do 1165311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff IFS="$save_ifs" 1166732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_quote_for_eval "$arg" 1167732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com lastarg="$lastarg $func_quote_for_eval_result" 1168311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff done 1169311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff IFS="$save_ifs" 1170732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_stripname ' ' '' "$lastarg" 1171732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com lastarg=$func_stripname_result 1172311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1173311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff # Add the arguments to base_compile. 1174311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff base_compile="$base_compile $lastarg" 1175311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff continue 1176311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff ;; 1177311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1178732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) 1179311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff # Accept the current argument as the source file. 1180311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff # The previous "srcfile" becomes the current argument. 1181311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff # 1182311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff lastarg="$srcfile" 1183311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff srcfile="$arg" 1184311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff ;; 1185311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff esac # case $arg 1186311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff ;; 1187311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff esac # case $arg_mode 1188311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1189311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff # Aesthetically quote the previous argument. 1190732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_quote_for_eval "$lastarg" 1191732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com base_compile="$base_compile $func_quote_for_eval_result" 1192311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff done # for arg 1193311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1194311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff case $arg_mode in 1195311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff arg) 1196732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_fatal_error "you must specify an argument for -Xcompile" 1197311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff ;; 1198311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff target) 1199732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_fatal_error "you must specify a target with \`-o'" 1200311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff ;; 1201311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff *) 1202311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff # Get the name of the library object. 1203732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test -z "$libobj" && { 1204732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_basename "$srcfile" 1205732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com libobj="$func_basename_result" 1206732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com } 1207311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff ;; 1208311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff esac 1209311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1210311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff # Recognize several different file suffixes. 1211311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff # If the user specifies -o file.o, it is replaced with file.lo 1212311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff case $libobj in 1213732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *.[cCFSifmso] | \ 1214732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *.ada | *.adb | *.ads | *.asm | \ 1215732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \ 1216732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *.[fF][09]? | *.for | *.java | *.obj | *.sx) 1217732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_xform "$libobj" 1218732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com libobj=$func_xform_result 1219732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 1220311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff esac 1221311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1222311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff case $libobj in 1223732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;; 1224311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff *) 1225732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_fatal_error "cannot determine name of library object from \`$libobj'" 1226311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff ;; 1227311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff esac 1228311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1229311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff func_infer_tag $base_compile 1230311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1231311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff for arg in $later; do 1232311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff case $arg in 1233732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -shared) 1234732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test "$build_libtool_libs" != yes && \ 1235732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_fatal_configuration "can not build a shared library" 1236732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com build_old_libs=no 1237732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com continue 1238732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 1239732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 1240311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff -static) 1241732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com build_libtool_libs=no 1242311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff build_old_libs=yes 1243311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff continue 1244311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff ;; 1245311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1246311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff -prefer-pic) 1247311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff pic_mode=yes 1248311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff continue 1249311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff ;; 1250311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1251311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff -prefer-non-pic) 1252311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff pic_mode=no 1253311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff continue 1254311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff ;; 1255311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff esac 1256311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff done 1257311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1258732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_quote_for_eval "$libobj" 1259732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test "X$libobj" != "X$func_quote_for_eval_result" \ 1260732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \ 1261732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com && func_warning "libobj name \`$libobj' may not contain shell special characters." 1262732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_dirname_and_basename "$obj" "/" "" 1263732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com objname="$func_basename_result" 1264732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com xdir="$func_dirname_result" 1265311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff lobj=${xdir}$objdir/$objname 1266311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1267732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test -z "$base_compile" && \ 1268732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_fatal_help "you must specify a compilation command" 1269311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1270311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff # Delete any leftover library objects. 1271311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff if test "$build_old_libs" = yes; then 1272311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff removelist="$obj $lobj $libobj ${libobj}T" 1273311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff else 1274311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff removelist="$lobj $libobj ${libobj}T" 1275311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff fi 1276311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1277311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff # On Cygwin there's no "real" PIC flag so we must build both object types 1278311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff case $host_os in 1279732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com cygwin* | mingw* | pw32* | os2* | cegcc*) 1280311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff pic_mode=default 1281311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff ;; 1282311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff esac 1283311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then 1284311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff # non-PIC code in shared libraries is not supported 1285311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff pic_mode=default 1286311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff fi 1287311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1288311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff # Calculate the filename of the output object if compiler does 1289311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff # not support -o with -c 1290311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff if test "$compiler_c_o" = no; then 1291732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com output_obj=`$ECHO "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext} 1292311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff lockfile="$output_obj.lock" 1293311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff else 1294311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff output_obj= 1295311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff need_locks=no 1296311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff lockfile= 1297311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff fi 1298311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1299311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff # Lock this critical section if it is needed 1300311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff # We use this script file to make the link, it avoids creating a new file 1301311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff if test "$need_locks" = yes; then 1302732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do 1303732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_echo "Waiting for $lockfile to be removed" 1304311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff sleep 2 1305311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff done 1306311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff elif test "$need_locks" = warn; then 1307311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff if test -f "$lockfile"; then 1308732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "\ 1309311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff*** ERROR, $lockfile exists and contains: 1310311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff`cat $lockfile 2>/dev/null` 1311311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1312311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiffThis indicates that another process is trying to use the same 1313311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdifftemporary object file, and libtool could not work around it because 1314311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiffyour compiler does not support \`-c' and \`-o' together. If you 1315311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiffrepeat this compilation, it may succeed, by chance, but you had better 1316311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiffavoid parallel builds (make -j) in this platform, or get a better 1317311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiffcompiler." 1318311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1319732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $opt_dry_run || $RM $removelist 1320311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff exit $EXIT_FAILURE 1321311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff fi 1322732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com removelist="$removelist $output_obj" 1323732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "$srcfile" > "$lockfile" 1324311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff fi 1325311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1326732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $opt_dry_run || $RM $removelist 1327732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com removelist="$removelist $lockfile" 1328732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 1329732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 1330311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff if test -n "$fix_srcfile_path"; then 1331311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff eval srcfile=\"$fix_srcfile_path\" 1332311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff fi 1333732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_quote_for_eval "$srcfile" 1334732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com qsrcfile=$func_quote_for_eval_result 1335311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1336311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff # Only build a PIC object if we are building libtool libraries. 1337311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff if test "$build_libtool_libs" = yes; then 1338311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff # Without this assignment, base_compile gets emptied. 1339311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff fbsd_hideous_sh_bug=$base_compile 1340311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1341311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff if test "$pic_mode" != no; then 1342311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff command="$base_compile $qsrcfile $pic_flag" 1343311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff else 1344311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff # Don't build PIC code 1345311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff command="$base_compile $qsrcfile" 1346311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff fi 1347311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1348732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_mkdir_p "$xdir$objdir" 1349311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1350311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff if test -z "$output_obj"; then 1351311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff # Place PIC objects in $objdir 1352311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff command="$command -o $lobj" 1353311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff fi 1354311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1355732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_show_eval_locale "$command" \ 1356732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE' 1357311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1358311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff if test "$need_locks" = warn && 1359311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then 1360732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "\ 1361311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff*** ERROR, $lockfile contains: 1362311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff`cat $lockfile 2>/dev/null` 1363311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1364311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiffbut it should contain: 1365311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff$srcfile 1366311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1367311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiffThis indicates that another process is trying to use the same 1368311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdifftemporary object file, and libtool could not work around it because 1369311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiffyour compiler does not support \`-c' and \`-o' together. If you 1370311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiffrepeat this compilation, it may succeed, by chance, but you had better 1371311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiffavoid parallel builds (make -j) in this platform, or get a better 1372311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiffcompiler." 1373311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1374732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $opt_dry_run || $RM $removelist 1375311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff exit $EXIT_FAILURE 1376311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff fi 1377311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1378311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff # Just move the object if needed, then go on to compile the next one 1379311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then 1380732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_show_eval '$MV "$output_obj" "$lobj"' \ 1381732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 'error=$?; $opt_dry_run || $RM $removelist; exit $error' 1382311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff fi 1383311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1384311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff # Allow error messages only from the first compilation. 1385311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff if test "$suppress_opt" = yes; then 1386732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com suppress_output=' >/dev/null 2>&1' 1387311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff fi 1388311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff fi 1389311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1390311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff # Only build a position-dependent object if we build old libraries. 1391311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff if test "$build_old_libs" = yes; then 1392311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff if test "$pic_mode" != yes; then 1393311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff # Don't build PIC code 1394732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com command="$base_compile $qsrcfile$pie_flag" 1395311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff else 1396311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff command="$base_compile $qsrcfile $pic_flag" 1397311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff fi 1398311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff if test "$compiler_c_o" = yes; then 1399311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff command="$command -o $obj" 1400311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff fi 1401311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1402311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff # Suppress compiler output if we already did a PIC compilation. 1403311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff command="$command$suppress_output" 1404732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_show_eval_locale "$command" \ 1405732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1406311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1407311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff if test "$need_locks" = warn && 1408311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then 1409732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "\ 1410311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff*** ERROR, $lockfile contains: 1411311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff`cat $lockfile 2>/dev/null` 1412311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1413311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiffbut it should contain: 1414311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff$srcfile 1415311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1416311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiffThis indicates that another process is trying to use the same 1417311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdifftemporary object file, and libtool could not work around it because 1418311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiffyour compiler does not support \`-c' and \`-o' together. If you 1419311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiffrepeat this compilation, it may succeed, by chance, but you had better 1420311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiffavoid parallel builds (make -j) in this platform, or get a better 1421311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiffcompiler." 1422311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1423732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $opt_dry_run || $RM $removelist 1424311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff exit $EXIT_FAILURE 1425311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff fi 1426311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1427311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff # Just move the object if needed 1428311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then 1429732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_show_eval '$MV "$output_obj" "$obj"' \ 1430732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 'error=$?; $opt_dry_run || $RM $removelist; exit $error' 1431311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff fi 1432311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff fi 1433311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1434732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $opt_dry_run || { 1435732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_write_libtool_object "$libobj" "$objdir/$objname" "$objname" 1436311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1437732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Unlock the critical section if it was locked 1438732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$need_locks" != no; then 1439732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com removelist=$lockfile 1440732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $RM "$lockfile" 1441732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 1442732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com } 1443311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1444311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff exit $EXIT_SUCCESS 1445732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com} 1446311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1447732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com$opt_help || { 1448732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comtest "$mode" = compile && func_mode_compile ${1+"$@"} 1449732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com} 1450311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1451732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comfunc_mode_help () 1452732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com{ 1453732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # We need to display help for each of the modes. 1454732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $mode in 1455732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com "") 1456732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Generic help is extracted from the usage comments 1457732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # at the start of this file. 1458732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_help 1459732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 1460311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1461732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com clean) 1462732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO \ 1463732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com"Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE... 1464311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1465732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comRemove files from the build directory. 1466311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1467732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comRM is the name of the program to use to delete files associated with each FILE 1468732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed 1469732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comto RM. 1470311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1471732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comIf FILE is a libtool library, object or program, all the files associated 1472732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comwith it are deleted. Otherwise, only FILE itself is deleted using RM." 1473732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 1474311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1475732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com compile) 1476732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO \ 1477732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com"Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE 1478311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1479732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comCompile a source file into a libtool library object. 1480311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1481732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comThis mode accepts the following additional options: 1482311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1483732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -o OUTPUT-FILE set the output file name to OUTPUT-FILE 1484732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -no-suppress do not suppress compiler output for multiple passes 1485732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -prefer-pic try to building PIC objects only 1486732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -prefer-non-pic try to building non-PIC objects only 1487732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -shared do not build a \`.o' file suitable for static linking 1488732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -static only build a \`.o' file suitable for static linking 1489311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1490732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comCOMPILE-COMMAND is a command to be used in creating a \`standard' object file 1491732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comfrom the given SOURCEFILE. 1492311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1493732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comThe output file name is determined by removing the directory component from 1494732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comSOURCEFILE, then substituting the C source code suffix \`.c' with the 1495732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comlibrary object suffix, \`.lo'." 1496732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 1497311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1498732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com execute) 1499732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO \ 1500732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com"Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]... 1501311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1502732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comAutomatically set library path, then run a program. 1503311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1504732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comThis mode accepts the following additional options: 1505311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1506732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -dlopen FILE add the directory containing FILE to the library path 1507311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1508732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comThis mode sets the library path environment variable according to \`-dlopen' 1509732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comflags. 1510311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1511732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comIf any of the ARGS are libtool executable wrappers, then they are translated 1512732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.cominto their corresponding uninstalled binary, and any of their required library 1513732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comdirectories are added to the library path. 1514311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1515732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comThen, COMMAND is executed, with ARGS as arguments." 1516732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 1517311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1518732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com finish) 1519732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO \ 1520732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com"Usage: $progname [OPTION]... --mode=finish [LIBDIR]... 1521311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1522732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comComplete the installation of libtool libraries. 1523311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1524732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comEach LIBDIR is a directory that contains libtool libraries. 1525311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1526732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comThe commands that this mode executes may require superuser privileges. Use 1527732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comthe \`--dry-run' option if you just want to see what would be executed." 1528732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 1529311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1530732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com install) 1531732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO \ 1532732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com"Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND... 1533311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1534732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comInstall executables or libraries. 1535311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1536732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comINSTALL-COMMAND is the installation command. The first component should be 1537732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comeither the \`install' or \`cp' program. 1538311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1539732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comThe following components of INSTALL-COMMAND are treated specially: 1540311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1541732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -inst-prefix PREFIX-DIR Use PREFIX-DIR as a staging area for installation 1542311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1543732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comThe rest of the components are interpreted as arguments to that command (only 1544732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comBSD-compatible install options are recognized)." 1545732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 1546311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1547732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com link) 1548732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO \ 1549732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com"Usage: $progname [OPTION]... --mode=link LINK-COMMAND... 1550311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1551732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comLink object files or libraries together to form another library, or to 1552732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comcreate an executable program. 1553311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1554732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comLINK-COMMAND is a command using the C compiler that you would use to create 1555732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.coma program from several object files. 1556311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1557732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comThe following components of LINK-COMMAND are treated specially: 1558311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1559732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -all-static do not do any dynamic linking at all 1560732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -avoid-version do not add a version suffix if possible 1561732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime 1562732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols 1563732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) 1564732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -export-symbols SYMFILE 1565732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com try to export only the symbols listed in SYMFILE 1566732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -export-symbols-regex REGEX 1567732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com try to export only the symbols matching REGEX 1568732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -LLIBDIR search LIBDIR for required installed libraries 1569732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -lNAME OUTPUT-FILE requires the installed library libNAME 1570732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -module build a library that can dlopened 1571732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -no-fast-install disable the fast-install mode 1572732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -no-install link a not-installable executable 1573732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -no-undefined declare that a library does not refer to external symbols 1574732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -o OUTPUT-FILE create OUTPUT-FILE from the specified objects 1575732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -objectlist FILE Use a list of object files found in FILE to specify objects 1576732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -precious-files-regex REGEX 1577732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com don't remove output files matching REGEX 1578732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -release RELEASE specify package release information 1579732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -rpath LIBDIR the created library will eventually be installed in LIBDIR 1580732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries 1581732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -shared only do dynamic linking of libtool libraries 1582732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -shrext SUFFIX override the standard shared library file extension 1583732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -static do not do any dynamic linking of uninstalled libtool libraries 1584732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -static-libtool-libs 1585732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com do not do any dynamic linking of libtool libraries 1586732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -version-info CURRENT[:REVISION[:AGE]] 1587732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com specify library version info [each variable defaults to 0] 1588732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -weak LIBNAME declare that the target provides the LIBNAME interface 1589311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1590732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comAll other options (arguments beginning with \`-') are ignored. 1591311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1592732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comEvery other argument is treated as a filename. Files ending in \`.la' are 1593732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comtreated as uninstalled libtool libraries, other files are standard or library 1594732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comobject files. 1595d18457863096b3685e56f5a8919959f6afbdb121openvcdiff 1596732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comIf the OUTPUT-FILE ends in \`.la', then a libtool library is created, 1597732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comonly library objects (\`.lo' files) may be specified, and \`-rpath' is 1598732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comrequired, except when creating a convenience library. 1599311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1600732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comIf OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created 1601732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comusing \`ar' and \`ranlib', or on Windows using \`lib'. 1602311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1603732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comIf OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file 1604732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comis created, otherwise an executable program is created." 1605311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff ;; 1606311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1607732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com uninstall) 1608732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO \ 1609732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com"Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... 1610311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1611732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comRemove libraries from an installation directory. 1612311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1613732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comRM is the name of the program to use to delete files associated with each FILE 1614732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed 1615732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comto RM. 1616311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1617732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comIf FILE is a libtool library, all the files associated with it are deleted. 1618732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comOtherwise, only FILE itself is deleted using RM." 1619732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 1620311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1621732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) 1622732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_fatal_help "invalid operation mode \`$mode'" 1623732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 1624732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 1625311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1626732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO 1627732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "Try \`$progname --help' for more information about other modes." 1628311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1629732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com exit $? 1630732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com} 1631311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1632732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Now that we've collected a possible --mode arg, show help if necessary 1633732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $opt_help && func_mode_help 1634311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1635311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1636732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# func_mode_execute arg... 1637732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comfunc_mode_execute () 1638732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com{ 1639732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $opt_debug 1640732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # The first argument is the command name. 1641732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com cmd="$nonopt" 1642732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test -z "$cmd" && \ 1643732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_fatal_help "you must specify a COMMAND" 1644311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1645732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Handle -dlopen flags immediately. 1646732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for file in $execute_dlfiles; do 1647732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test -f "$file" \ 1648732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com || func_fatal_help "\`$file' is not a file" 1649311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1650732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com dir= 1651732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $file in 1652732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *.la) 1653732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Check to see that this really is a libtool archive. 1654732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_lalib_unsafe_p "$file" \ 1655732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com || func_fatal_help "\`$lib' is not a valid libtool archive" 1656311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1657732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Read the libtool library. 1658732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com dlname= 1659732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com library_names= 1660732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_source "$file" 1661311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1662732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Skip this library if it cannot be dlopened. 1663732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -z "$dlname"; then 1664732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Warn if it was a shared library. 1665732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test -n "$library_names" && \ 1666732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_warning "\`$file' was not linked with \`-export-dynamic'" 1667732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com continue 1668732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 1669311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1670732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_dirname "$file" "" "." 1671732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com dir="$func_dirname_result" 1672311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1673732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -f "$dir/$objdir/$dlname"; then 1674732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com dir="$dir/$objdir" 1675732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 1676732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test ! -f "$dir/$dlname"; then 1677732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1678732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 1679732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 1680311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff ;; 1681311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1682732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *.lo) 1683732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Just add the directory containing the .lo file. 1684732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_dirname "$file" "" "." 1685732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com dir="$func_dirname_result" 1686311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff ;; 1687311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1688732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) 1689732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_warning "\`-dlopen' is ignored for non-libtool libraries and objects" 1690311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff continue 1691311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff ;; 1692732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 1693311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1694732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Get the absolute pathname. 1695732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com absdir=`cd "$dir" && pwd` 1696732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test -n "$absdir" && dir="$absdir" 1697311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1698732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Now add the directory to shlibpath_var. 1699732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if eval "test -z \"\$$shlibpath_var\""; then 1700732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com eval "$shlibpath_var=\"\$dir\"" 1701732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 1702732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" 1703732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 1704732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done 1705311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1706732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # This variable tells wrapper scripts just to set shlibpath_var 1707732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # rather than running their programs. 1708732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com libtool_execute_magic="$magic" 1709311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1710732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Check if any of the arguments is a wrapper script. 1711732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com args= 1712732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for file 1713732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com do 1714732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $file in 1715732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -*) ;; 1716732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) 1717732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Do a test to see if this is really a libtool program. 1718732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if func_ltwrapper_script_p "$file"; then 1719732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_source "$file" 1720732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Transform arg to wrapped name. 1721732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com file="$progdir/$program" 1722732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com elif func_ltwrapper_executable_p "$file"; then 1723732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_ltwrapper_scriptname "$file" 1724732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_source "$func_ltwrapper_scriptname_result" 1725732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Transform arg to wrapped name. 1726732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com file="$progdir/$program" 1727732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 1728732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 1729732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 1730732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Quote arguments (to preserve shell metacharacters). 1731732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_quote_for_eval "$file" 1732732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com args="$args $func_quote_for_eval_result" 1733732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done 1734311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1735732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "X$opt_dry_run" = Xfalse; then 1736732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$shlibpath_var"; then 1737732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Export the shlibpath_var. 1738732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com eval "export $shlibpath_var" 1739732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 1740311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1741732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Restore saved environment variables 1742732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES 1743732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com do 1744732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com eval "if test \"\${save_$lt_var+set}\" = set; then 1745732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $lt_var=\$save_$lt_var; export $lt_var 1746311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff else 1747732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $lt_unset $lt_var 1748732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi" 1749732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done 1750311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1751732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Now prepare to actually exec the command. 1752732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com exec_cmd="\$cmd$args" 1753732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 1754732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Display what would be done. 1755732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$shlibpath_var"; then 1756732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\"" 1757732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "export $shlibpath_var" 1758732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 1759732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "$cmd$args" 1760732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com exit $EXIT_SUCCESS 1761732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 1762732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com} 1763311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1764732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comtest "$mode" = execute && func_mode_execute ${1+"$@"} 1765311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1766311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1767732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# func_mode_finish arg... 1768732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comfunc_mode_finish () 1769732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com{ 1770732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $opt_debug 1771732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com libdirs="$nonopt" 1772732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com admincmds= 1773311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1774732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then 1775732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for dir 1776732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com do 1777732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com libdirs="$libdirs $dir" 1778732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done 1779311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1780732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for libdir in $libdirs; do 1781732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$finish_cmds"; then 1782732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Do each command in the finish commands. 1783732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_execute_cmds "$finish_cmds" 'admincmds="$admincmds 1784732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com'"$cmd"'"' 1785311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff fi 1786732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$finish_eval"; then 1787732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Do the single finish_eval. 1788732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com eval cmds=\"$finish_eval\" 1789732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $opt_dry_run || eval "$cmds" || admincmds="$admincmds 1790732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $cmds" 1791732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 1792732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done 1793732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 1794311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1795732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Exit here if they wanted silent mode. 1796732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $opt_silent && exit $EXIT_SUCCESS 1797311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1798732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "X----------------------------------------------------------------------" | $Xsed 1799732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "Libraries have been installed in:" 1800732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for libdir in $libdirs; do 1801732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO " $libdir" 1802732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done 1803732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO 1804732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "If you ever happen to want to link against installed libraries" 1805732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "in a given directory, LIBDIR, you must either use libtool, and" 1806732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "specify the full pathname of the library, or use the \`-LLIBDIR'" 1807732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "flag during linking and do at least one of the following:" 1808732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$shlibpath_var"; then 1809732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO " - add LIBDIR to the \`$shlibpath_var' environment variable" 1810732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO " during execution" 1811732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 1812732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$runpath_var"; then 1813732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO " - add LIBDIR to the \`$runpath_var' environment variable" 1814732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO " during linking" 1815732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 1816732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$hardcode_libdir_flag_spec"; then 1817732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com libdir=LIBDIR 1818732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com eval flag=\"$hardcode_libdir_flag_spec\" 1819732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 1820732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO " - use the \`$flag' linker flag" 1821732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 1822732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$admincmds"; then 1823732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO " - have your system administrator run these commands:$admincmds" 1824732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 1825732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -f /etc/ld.so.conf; then 1826732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" 1827732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 1828732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO 1829732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 1830732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "See any operating system documentation about shared libraries for" 1831732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $host in 1832732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com solaris2.[6789]|solaris2.1[0-9]) 1833732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "more information, such as the ld(1), crle(1) and ld.so(8) manual" 1834732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "pages." 1835732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 1836732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) 1837732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "more information, such as the ld(1) and ld.so(8) manual pages." 1838732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 1839732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 1840732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "X----------------------------------------------------------------------" | $Xsed 1841732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com exit $EXIT_SUCCESS 1842732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com} 1843732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 1844732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comtest "$mode" = finish && func_mode_finish ${1+"$@"} 1845732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 1846732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 1847732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# func_mode_install arg... 1848732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comfunc_mode_install () 1849732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com{ 1850732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $opt_debug 1851732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # There may be an optional sh(1) argument at the beginning of 1852732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # install_prog (especially on Windows NT). 1853732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || 1854732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Allow the use of GNU shtool's install command. 1855732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "X$nonopt" | $GREP shtool >/dev/null; then 1856732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Aesthetically quote it. 1857732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_quote_for_eval "$nonopt" 1858732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com install_prog="$func_quote_for_eval_result " 1859732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com arg=$1 1860732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com shift 1861732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 1862732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com install_prog= 1863732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com arg=$nonopt 1864732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 1865732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 1866732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # The real first argument should be the name of the installation program. 1867732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Aesthetically quote it. 1868732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_quote_for_eval "$arg" 1869732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com install_prog="$install_prog$func_quote_for_eval_result" 1870732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 1871732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # We need to accept at least all the BSD install flags. 1872732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com dest= 1873732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com files= 1874732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com opts= 1875732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com prev= 1876732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com install_type= 1877732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com isdir=no 1878732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com stripme= 1879732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for arg 1880732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com do 1881732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$dest"; then 1882732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com files="$files $dest" 1883732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com dest=$arg 1884732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com continue 1885732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 1886732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 1887732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $arg in 1888732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -d) isdir=yes ;; 1889732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -f) 1890732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case " $install_prog " in 1891732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *[\\\ /]cp\ *) ;; 1892732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) prev=$arg ;; 1893732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 1894732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 1895732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -g | -m | -o) 1896732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com prev=$arg 1897732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 1898732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -s) 1899732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com stripme=" -s" 1900732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com continue 1901732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 1902732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -*) 1903732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 1904732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) 1905732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # If the previous option needed an argument, then skip it. 1906732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$prev"; then 1907311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff prev= 1908311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff else 1909732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com dest=$arg 1910732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com continue 1911311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff fi 1912311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff ;; 1913732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 1914311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1915732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Aesthetically quote the argument. 1916732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_quote_for_eval "$arg" 1917732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com install_prog="$install_prog $func_quote_for_eval_result" 1918732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done 1919311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1920732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test -z "$install_prog" && \ 1921732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_fatal_help "you must specify an install program" 1922311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1923732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test -n "$prev" && \ 1924732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_fatal_help "the \`$prev' option requires an argument" 1925311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1926732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -z "$files"; then 1927732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -z "$dest"; then 1928732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_fatal_help "no file or destination specified" 1929732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 1930732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_fatal_help "you must specify a destination" 1931732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 1932311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff fi 1933311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1934732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Strip any trailing slash from the destination. 1935732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_stripname '' '/' "$dest" 1936732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com dest=$func_stripname_result 1937311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1938732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Check to see that the destination is a directory. 1939732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test -d "$dest" && isdir=yes 1940732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$isdir" = yes; then 1941732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com destdir="$dest" 1942732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com destname= 1943311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff else 1944732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_dirname_and_basename "$dest" "" "." 1945732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com destdir="$func_dirname_result" 1946732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com destname="$func_basename_result" 1947311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1948732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Not a directory, so check to see that there is only one file specified. 1949732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com set dummy $files; shift 1950732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test "$#" -gt 1 && \ 1951732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_fatal_help "\`$dest' is not a directory" 1952311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff fi 1953732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $destdir in 1954732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com [\\/]* | [A-Za-z]:[\\/]*) ;; 1955311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff *) 1956732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for file in $files; do 1957732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $file in 1958732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *.lo) ;; 1959732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) 1960732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_fatal_help "\`$destdir' must be an absolute directory name" 1961732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 1962732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 1963732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done 1964311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff ;; 1965311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff esac 1966311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1967732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # This variable tells wrapper scripts just to set variables rather 1968732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # than running their programs. 1969732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com libtool_install_magic="$magic" 1970311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1971732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com staticlibs= 1972732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com future_libdirs= 1973732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com current_libdirs= 1974732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for file in $files; do 1975311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 1976732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Do each installation. 1977732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $file in 1978732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *.$libext) 1979732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Do the static libraries later. 1980732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com staticlibs="$staticlibs $file" 1981732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 1982732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 1983732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *.la) 1984732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Check to see that this really is a libtool archive. 1985732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_lalib_unsafe_p "$file" \ 1986732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com || func_fatal_help "\`$file' is not a valid libtool archive" 1987732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 1988732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com library_names= 1989732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com old_library= 1990732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com relink_command= 1991732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_source "$file" 1992732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 1993732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Add the libdir to current_libdirs if it is the destination. 1994732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "X$destdir" = "X$libdir"; then 1995732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case "$current_libdirs " in 1996732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *" $libdir "*) ;; 1997732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) current_libdirs="$current_libdirs $libdir" ;; 1998311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff esac 1999732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 2000732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Note the libdir as a future libdir. 2001732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case "$future_libdirs " in 2002732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *" $libdir "*) ;; 2003732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) future_libdirs="$future_libdirs $libdir" ;; 2004732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 2005732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 2006311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 2007732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_dirname "$file" "/" "" 2008732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com dir="$func_dirname_result" 2009732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com dir="$dir$objdir" 2010732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 2011732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$relink_command"; then 2012732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Determine the prefix the user has applied to our future dir. 2013732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com inst_prefix_dir=`$ECHO "X$destdir" | $Xsed -e "s%$libdir\$%%"` 2014732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 2015732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Don't allow the user to place us outside of our expected 2016732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # location b/c this prevents finding dependent libraries that 2017732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # are installed to the same prefix. 2018732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # At present, this check doesn't affect windows .dll's that 2019732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # are installed into $libdir/../bin (currently, that works fine) 2020732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # but it's something to keep an eye on. 2021732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test "$inst_prefix_dir" = "$destdir" && \ 2022732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir" 2023732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 2024732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$inst_prefix_dir"; then 2025732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Stick the inst_prefix_dir data into the link command. 2026732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` 2027732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 2028732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%%"` 2029732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 2030732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 2031732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_warning "relinking \`$file'" 2032732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_show_eval "$relink_command" \ 2033732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"' 2034732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 2035732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 2036732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # See the names of the shared library. 2037732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com set dummy $library_names; shift 2038732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$1"; then 2039732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com realname="$1" 2040732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com shift 2041732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 2042732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com srcname="$realname" 2043732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test -n "$relink_command" && srcname="$realname"T 2044732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 2045732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Install the shared library and build the symlinks. 2046732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_show_eval "$install_prog $dir/$srcname $destdir/$realname" \ 2047732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 'exit $?' 2048732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com tstripme="$stripme" 2049732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $host_os in 2050732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com cygwin* | mingw* | pw32* | cegcc*) 2051732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $realname in 2052732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *.dll.a) 2053732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com tstripme="" 2054732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 2055732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 2056311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff ;; 2057311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff esac 2058732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$tstripme" && test -n "$striplib"; then 2059732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_show_eval "$striplib $destdir/$realname" 'exit $?' 2060d18457863096b3685e56f5a8919959f6afbdb121openvcdiff fi 2061732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 2062732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$#" -gt 0; then 2063732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Delete the old symlinks, and create new ones. 2064732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Try `ln -sf' first, because the `ln' binary might depend on 2065732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # the symlink we replace! Solaris /bin/ln does not understand -f, 2066732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # so we also need to try rm && ln -s. 2067732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for linkname 2068732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com do 2069732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test "$linkname" != "$realname" \ 2070732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })" 2071311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff done 2072311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff fi 2073311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 2074732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Do each command in the postinstall commands. 2075732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com lib="$destdir/$realname" 2076732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_execute_cmds "$postinstall_cmds" 'exit $?' 2077311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff fi 2078311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 2079732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Install the pseudo-library for information purposes. 2080732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_basename "$file" 2081732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com name="$func_basename_result" 2082732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com instname="$dir/$name"i 2083732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' 2084311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 2085732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Maybe install the static library, too. 2086732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library" 2087732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 2088311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 2089732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *.lo) 2090732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Install (i.e. copy) a libtool object. 2091311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 2092732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Figure out destination file name, if it wasn't already specified. 2093732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$destname"; then 2094732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com destfile="$destdir/$destname" 2095732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 2096732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_basename "$file" 2097732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com destfile="$func_basename_result" 2098732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com destfile="$destdir/$destfile" 2099732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 2100732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 2101732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Deduce the name of the destination old-style object file. 2102732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $destfile in 2103732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *.lo) 2104732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_lo2o "$destfile" 2105732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com staticdest=$func_lo2o_result 2106732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 2107732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *.$objext) 2108732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com staticdest="$destfile" 2109732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com destfile= 2110732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 2111732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) 2112732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_fatal_help "cannot copy a libtool object to \`$destfile'" 2113732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 2114311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff esac 2115311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 2116732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Install the libtool object if requested. 2117732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test -n "$destfile" && \ 2118732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_show_eval "$install_prog $file $destfile" 'exit $?' 2119732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 2120732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Install the old object if enabled. 2121732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$build_old_libs" = yes; then 2122732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Deduce the name of the old-style object file. 2123732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_lo2o "$file" 2124732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com staticobj=$func_lo2o_result 2125732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?' 2126311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff fi 2127732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com exit $EXIT_SUCCESS 2128732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 2129311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 2130732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) 2131732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Figure out destination file name, if it wasn't already specified. 2132732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$destname"; then 2133732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com destfile="$destdir/$destname" 2134732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 2135732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_basename "$file" 2136732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com destfile="$func_basename_result" 2137732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com destfile="$destdir/$destfile" 2138732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 2139311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 2140732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # If the file is missing, and there is a .exe on the end, strip it 2141732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # because it is most likely a libtool script we actually want to 2142732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # install 2143732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com stripped_ext="" 2144732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $file in 2145732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *.exe) 2146732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test ! -f "$file"; then 2147732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_stripname '' '.exe' "$file" 2148732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com file=$func_stripname_result 2149732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com stripped_ext=".exe" 2150732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 2151732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 2152732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 2153311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 2154732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Do a test to see if this is really a libtool program. 2155732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $host in 2156732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *cygwin* | *mingw*) 2157732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if func_ltwrapper_executable_p "$file"; then 2158732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_ltwrapper_scriptname "$file" 2159732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com wrapper=$func_ltwrapper_scriptname_result 2160732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 2161732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_stripname '' '.exe' "$file" 2162732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com wrapper=$func_stripname_result 2163732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 2164732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 2165732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) 2166732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com wrapper=$file 2167732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 2168732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 2169732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if func_ltwrapper_script_p "$wrapper"; then 2170732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com notinst_deplibs= 2171732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com relink_command= 2172311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 2173732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_source "$wrapper" 2174732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 2175732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Check the variables that should have been set. 2176732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test -z "$generated_by_libtool_version" && \ 2177732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_fatal_error "invalid libtool wrapper script \`$wrapper'" 2178732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 2179732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com finalize=yes 2180732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for lib in $notinst_deplibs; do 2181732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Check to see that each library is installed. 2182732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com libdir= 2183732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -f "$lib"; then 2184732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_source "$lib" 2185732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 2186732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com libfile="$libdir/"`$ECHO "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test 2187732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$libdir" && test ! -f "$libfile"; then 2188732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_warning "\`$lib' has not been installed in \`$libdir'" 2189732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com finalize=no 2190732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 2191732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done 2192732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 2193732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com relink_command= 2194732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_source "$wrapper" 2195732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 2196732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com outputname= 2197732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$fast_install" = no && test -n "$relink_command"; then 2198732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $opt_dry_run || { 2199732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$finalize" = yes; then 2200732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com tmpdir=`func_mktempdir` 2201732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_basename "$file$stripped_ext" 2202732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com file="$func_basename_result" 2203732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com outputname="$tmpdir/$file" 2204732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Replace the output file specification. 2205732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com relink_command=`$ECHO "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'` 2206732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 2207732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $opt_silent || { 2208732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_quote_for_expand "$relink_command" 2209732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com eval "func_echo $func_quote_for_expand_result" 2210732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com } 2211732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if eval "$relink_command"; then : 2212732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 2213732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_error "error: relink \`$file' with the above command before installing it" 2214732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $opt_dry_run || ${RM}r "$tmpdir" 2215732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com continue 2216732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 2217732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com file="$outputname" 2218732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 2219732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_warning "cannot relink \`$file'" 2220732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 2221732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com } 2222311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff else 2223732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Install the binary that we compiled earlier. 2224732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com file=`$ECHO "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"` 2225311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff fi 2226732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 2227311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 2228732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # remove .exe since cygwin /usr/bin/install will append another 2229732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # one anyway 2230732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $install_prog,$host in 2231732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com */usr/bin/install*,*cygwin*) 2232732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $file:$destfile in 2233732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *.exe:*.exe) 2234732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # this is ok 2235732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 2236732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *.exe:*) 2237732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com destfile=$destfile.exe 2238732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 2239732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *:*.exe) 2240732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_stripname '' '.exe' "$destfile" 2241732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com destfile=$func_stripname_result 2242732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 2243732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 2244311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff ;; 2245311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff esac 2246732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?' 2247732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $opt_dry_run || if test -n "$outputname"; then 2248732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ${RM}r "$tmpdir" 2249732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 2250732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 2251732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 2252732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done 2253311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 2254732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for file in $staticlibs; do 2255732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_basename "$file" 2256732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com name="$func_basename_result" 2257732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 2258732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Set up the ranlib parameters. 2259732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com oldlib="$destdir/$name" 2260732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 2261732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_show_eval "$install_prog \$file \$oldlib" 'exit $?' 2262732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 2263732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$stripme" && test -n "$old_striplib"; then 2264732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_show_eval "$old_striplib $oldlib" 'exit $?' 2265732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 2266732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 2267732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Do each command in the postinstall commands. 2268732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_execute_cmds "$old_postinstall_cmds" 'exit $?' 2269732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done 2270732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 2271732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test -n "$future_libdirs" && \ 2272732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_warning "remember to run \`$progname --finish$future_libdirs'" 2273732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 2274732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$current_libdirs"; then 2275732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Maybe just do a dry run. 2276732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $opt_dry_run && current_libdirs=" -n$current_libdirs" 2277732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' 2278732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 2279732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com exit $EXIT_SUCCESS 2280732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 2281732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com} 2282732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 2283732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comtest "$mode" = install && func_mode_install ${1+"$@"} 2284732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 2285732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 2286732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# func_generate_dlsyms outputname originator pic_p 2287732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# Extract symbols from dlprefiles and create ${outputname}S.o with 2288732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# a dlpreopen symbol table. 2289732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comfunc_generate_dlsyms () 2290732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com{ 2291732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $opt_debug 2292732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com my_outputname="$1" 2293732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com my_originator="$2" 2294732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com my_pic_p="${3-no}" 2295732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'` 2296732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com my_dlsyms= 2297732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 2298732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then 2299732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$NM" && test -n "$global_symbol_pipe"; then 2300732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com my_dlsyms="${my_outputname}S.c" 2301732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 2302732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_error "not configured to extract global symbols from dlpreopened files" 2303732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 2304732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 2305732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 2306732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$my_dlsyms"; then 2307732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $my_dlsyms in 2308732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com "") ;; 2309732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *.c) 2310732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Discover the nlist of each of the dlfiles. 2311732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com nlist="$output_objdir/${my_outputname}.nm" 2312732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 2313732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_show_eval "$RM $nlist ${nlist}S ${nlist}T" 2314732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 2315732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Parse the name list into a source file. 2316732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_verbose "creating $output_objdir/$my_dlsyms" 2317732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 2318732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\ 2319732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com/* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */ 2320732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com/* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */ 2321732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 2322732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com#ifdef __cplusplus 2323732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comextern \"C\" { 2324732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com#endif 2325732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 2326732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com/* External symbol declarations for the compiler. */\ 2327732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com" 2328732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 2329732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$dlself" = yes; then 2330732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_verbose "generating symbol list for \`$output'" 2331732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 2332732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist" 2333732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 2334732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Add our own program objects to the symbol list. 2335732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com progfiles=`$ECHO "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` 2336732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for progfile in $progfiles; do 2337732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_verbose "extracting global C symbols from \`$progfile'" 2338732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $opt_dry_run || eval "$NM $progfile | $global_symbol_pipe >> '$nlist'" 2339732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done 2340732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 2341732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$exclude_expsyms"; then 2342732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $opt_dry_run || { 2343732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' 2344732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com eval '$MV "$nlist"T "$nlist"' 2345732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com } 2346311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff fi 2347732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 2348732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$export_symbols_regex"; then 2349732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $opt_dry_run || { 2350732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' 2351732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com eval '$MV "$nlist"T "$nlist"' 2352732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com } 2353732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 2354732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 2355732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Prepare the list of exported symbols 2356732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -z "$export_symbols"; then 2357732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com export_symbols="$output_objdir/$outputname.exp" 2358732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $opt_dry_run || { 2359732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $RM $export_symbols 2360732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' 2361732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $host in 2362732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *cygwin* | *mingw* | *cegcc* ) 2363732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' 2364732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' 2365732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 2366732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 2367732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com } 2368311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff else 2369732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $opt_dry_run || { 2370732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' 2371732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' 2372732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com eval '$MV "$nlist"T "$nlist"' 2373732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $host in 2374732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *cygwin | *mingw* | *cegcc* ) 2375732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' 2376732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' 2377732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 2378732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 2379732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com } 2380311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff fi 2381732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 2382311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 2383732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for dlprefile in $dlprefiles; do 2384732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_verbose "extracting global C symbols from \`$dlprefile'" 2385732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_basename "$dlprefile" 2386732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com name="$func_basename_result" 2387732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $opt_dry_run || { 2388732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com eval '$ECHO ": $name " >> "$nlist"' 2389732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com eval "$NM $dlprefile 2>/dev/null | $global_symbol_pipe >> '$nlist'" 2390732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com } 2391732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done 2392732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 2393732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $opt_dry_run || { 2394732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Make sure we have at least an empty file. 2395732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test -f "$nlist" || : > "$nlist" 2396732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 2397732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$exclude_expsyms"; then 2398732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T 2399732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $MV "$nlist"T "$nlist" 2400311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff fi 2401732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 2402732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Try sorting and uniquifying the output. 2403732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if $GREP -v "^: " < "$nlist" | 2404732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if sort -k 3 </dev/null >/dev/null 2>&1; then 2405732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com sort -k 3 2406732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 2407732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com sort +2 2408732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi | 2409732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com uniq > "$nlist"S; then 2410732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com : 2411311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff else 2412732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $GREP -v "^: " < "$nlist" > "$nlist"S 2413311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff fi 2414311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 2415732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -f "$nlist"S; then 2416732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"' 2417311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff else 2418732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO '/* NONE */' >> "$output_objdir/$my_dlsyms" 2419311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff fi 2420311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 2421732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO >> "$output_objdir/$my_dlsyms" "\ 2422311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 2423732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com/* The mapping between symbol names and symbols. */ 2424732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comtypedef struct { 2425732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com const char *name; 2426732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com void *address; 2427732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com} lt_dlsymlist; 2428732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com" 2429732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $host in 2430732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *cygwin* | *mingw* | *cegcc* ) 2431732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO >> "$output_objdir/$my_dlsyms" "\ 2432732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com/* DATA imports from DLLs on WIN32 con't be const, because 2433732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com runtime relocations are performed -- see ld's documentation 2434732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com on pseudo-relocs. */" 2435732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com lt_dlsym_const= ;; 2436732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *osf5*) 2437732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com echo >> "$output_objdir/$my_dlsyms" "\ 2438732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com/* This system does not cope well with relocations in const data */" 2439732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com lt_dlsym_const= ;; 2440732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) 2441732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com lt_dlsym_const=const ;; 2442732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 2443311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 2444732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO >> "$output_objdir/$my_dlsyms" "\ 2445732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comextern $lt_dlsym_const lt_dlsymlist 2446732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comlt_${my_prefix}_LTX_preloaded_symbols[]; 2447732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com$lt_dlsym_const lt_dlsymlist 2448732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comlt_${my_prefix}_LTX_preloaded_symbols[] = 2449732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com{\ 2450732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com { \"$my_originator\", (void *) 0 }," 2451311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 2452732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $need_lib_prefix in 2453732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com no) 2454732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms" 2455732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 2456732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) 2457732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms" 2458732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 2459732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 2460732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO >> "$output_objdir/$my_dlsyms" "\ 2461732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com {0, (void *) 0} 2462732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com}; 2463311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 2464732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com/* This works around a problem in FreeBSD linker */ 2465732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com#ifdef FREEBSD_WORKAROUND 2466732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comstatic const void *lt_preloaded_setup() { 2467732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com return lt_${my_prefix}_LTX_preloaded_symbols; 2468732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com} 2469732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com#endif 2470732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 2471732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com#ifdef __cplusplus 2472732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com} 2473732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com#endif\ 2474732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com" 2475732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com } # !$opt_dry_run 2476732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 2477732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com pic_flag_for_symtable= 2478732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case "$compile_command " in 2479732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *" -static "*) ;; 2480732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) 2481732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $host in 2482732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # compiling the symbol table file with pic_flag works around 2483732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # a FreeBSD bug that causes programs to crash when -lm is 2484732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # linked before any other PIC object. But we must not use 2485732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # pic_flag when linking with -static. The problem exists in 2486732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. 2487732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) 2488732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;; 2489732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *-*-hpux*) 2490732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com pic_flag_for_symtable=" $pic_flag" ;; 2491732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) 2492732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "X$my_pic_p" != Xno; then 2493732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com pic_flag_for_symtable=" $pic_flag" 2494311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff fi 2495732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 2496732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 2497732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 2498732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 2499732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com symtab_cflags= 2500732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for arg in $LTCFLAGS; do 2501732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $arg in 2502732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -pie | -fpie | -fPIE) ;; 2503732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) symtab_cflags="$symtab_cflags $arg" ;; 2504732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 2505732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done 2506311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 2507732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Now compile the dynamic symbol file. 2508732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?' 2509311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 2510732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Clean up the generated files. 2511732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"' 2512311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 2513732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Transform the symbol file into the correct name. 2514732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com symfileobj="$output_objdir/${my_outputname}S.$objext" 2515732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $host in 2516732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *cygwin* | *mingw* | *cegcc* ) 2517732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -f "$output_objdir/$my_outputname.def"; then 2518732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` 2519732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` 2520732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 2521732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` 2522732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` 2523311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff fi 2524732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 2525732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) 2526732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` 2527732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` 2528732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 2529732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 2530732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 2531732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) 2532732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_fatal_error "unknown suffix for \`$my_dlsyms'" 2533732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 2534732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 2535732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 2536732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # We keep going just in case the user didn't refer to 2537732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # lt_preloaded_symbols. The linker will fail if global_symbol_pipe 2538732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # really was required. 2539311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 2540732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Nullify the symbol file. 2541732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com compile_command=`$ECHO "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"` 2542732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"` 2543732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 2544732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com} 2545311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 2546732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# func_win32_libid arg 2547732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# return the library type of file 'arg' 2548732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# 2549732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# Need a lot of goo to handle *both* DLLs and import libs 2550732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# Has to be a shell function in order to 'eat' the argument 2551732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# that is supplied when $file_magic_command is called. 2552732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comfunc_win32_libid () 2553732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com{ 2554732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $opt_debug 2555732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com win32_libid_type="unknown" 2556732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com win32_fileres=`file -L $1 2>/dev/null` 2557732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $win32_fileres in 2558732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *ar\ archive\ import\ library*) # definitely import 2559732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com win32_libid_type="x86 archive import" 2560732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 2561732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *ar\ archive*) # could be an import, or static 2562732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | 2563732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $EGREP 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then 2564732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com win32_nmres=`eval $NM -f posix -A $1 | 2565732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $SED -n -e ' 2566732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 1,100{ 2567732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com / I /{ 2568732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com s,.*,import, 2569732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com p 2570732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com q 2571732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com } 2572732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com }'` 2573732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $win32_nmres in 2574732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com import*) win32_libid_type="x86 archive import";; 2575732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) win32_libid_type="x86 archive static";; 2576732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 2577732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 2578732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 2579732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *DLL*) 2580732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com win32_libid_type="x86 DLL" 2581732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 2582732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *executable*) # but shell scripts are "executable" too... 2583732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $win32_fileres in 2584732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *MS\ Windows\ PE\ Intel*) 2585732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com win32_libid_type="x86 DLL" 2586732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 2587732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 2588732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 2589732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 2590732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "$win32_libid_type" 2591732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com} 2592311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 2593311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 2594311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 2595732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# func_extract_an_archive dir oldlib 2596732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comfunc_extract_an_archive () 2597732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com{ 2598732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $opt_debug 2599732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com f_ex_an_ar_dir="$1"; shift 2600732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com f_ex_an_ar_oldlib="$1" 2601732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" 'exit $?' 2602732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then 2603732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com : 2604732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 2605732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" 2606732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 2607732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com} 2608311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 2609311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 2610732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# func_extract_archives gentop oldlib ... 2611732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comfunc_extract_archives () 2612732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com{ 2613732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $opt_debug 2614732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com my_gentop="$1"; shift 2615732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com my_oldlibs=${1+"$@"} 2616732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com my_oldobjs="" 2617732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com my_xlib="" 2618732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com my_xabs="" 2619732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com my_xdir="" 2620311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 2621732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for my_xlib in $my_oldlibs; do 2622732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Extract the objects. 2623732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $my_xlib in 2624732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; 2625732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) my_xabs=`pwd`"/$my_xlib" ;; 2626732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 2627732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_basename "$my_xlib" 2628732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com my_xlib="$func_basename_result" 2629732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com my_xlib_u=$my_xlib 2630732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com while :; do 2631732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case " $extracted_archives " in 2632732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *" $my_xlib_u "*) 2633732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_arith $extracted_serial + 1 2634732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com extracted_serial=$func_arith_result 2635732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com my_xlib_u=lt$extracted_serial-$my_xlib ;; 2636732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) break ;; 2637732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 2638732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done 2639732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com extracted_archives="$extracted_archives $my_xlib_u" 2640732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com my_xdir="$my_gentop/$my_xlib_u" 2641311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 2642732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_mkdir_p "$my_xdir" 2643311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 2644732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $host in 2645732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *-darwin*) 2646732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_verbose "Extracting $my_xabs" 2647732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Do not bother doing anything if just a dry run 2648732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $opt_dry_run || { 2649732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com darwin_orig_dir=`pwd` 2650732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com cd $my_xdir || exit $? 2651732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com darwin_archive=$my_xabs 2652732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com darwin_curdir=`pwd` 2653732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com darwin_base_archive=`basename "$darwin_archive"` 2654732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true` 2655732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$darwin_arches"; then 2656732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'` 2657732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com darwin_arch= 2658732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_verbose "$darwin_base_archive has multiple architectures $darwin_arches" 2659732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for darwin_arch in $darwin_arches ; do 2660732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_mkdir_p "unfat-$$/${darwin_base_archive}-${darwin_arch}" 2661732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $LIPO -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" 2662732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" 2663732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_extract_an_archive "`pwd`" "${darwin_base_archive}" 2664732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com cd "$darwin_curdir" 2665732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" 2666732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done # $darwin_arches 2667732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ## Okay now we've a bunch of thin objects, gotta fatten them up :) 2668732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u` 2669732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com darwin_file= 2670732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com darwin_files= 2671732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for darwin_file in $darwin_filelist; do 2672732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP` 2673732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $LIPO -create -output "$darwin_file" $darwin_files 2674732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done # $darwin_filelist 2675732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $RM -rf unfat-$$ 2676732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com cd "$darwin_orig_dir" 2677311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff else 2678732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com cd $darwin_orig_dir 2679732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_extract_an_archive "$my_xdir" "$my_xabs" 2680732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi # $darwin_arches 2681732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com } # !$opt_dry_run 2682732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 2683732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) 2684732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_extract_an_archive "$my_xdir" "$my_xabs" 2685732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 2686732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 2687732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` 2688732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done 2689311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 2690732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_extract_archives_result="$my_oldobjs" 2691732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com} 2692311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 2693311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 2694311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 2695732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# func_emit_wrapper_part1 [arg=no] 2696732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# 2697732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# Emit the first part of a libtool wrapper script on stdout. 2698732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# For more information, see the description associated with 2699732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# func_emit_wrapper(), below. 2700732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comfunc_emit_wrapper_part1 () 2701732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com{ 2702732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_emit_wrapper_part1_arg1=no 2703732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$1" ; then 2704732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_emit_wrapper_part1_arg1=$1 2705311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff fi 2706311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 2707732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "\ 2708732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com#! $SHELL 2709311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 2710732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# $output - temporary wrapper script for $objdir/$outputname 2711732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION 2712732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# 2713732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# The $output program cannot be directly executed until all the libtool 2714732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# libraries that it depends on are installed. 2715732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# 2716732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# This wrapper script should never be moved out of the build directory. 2717732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# If it is, it will not operate correctly. 2718311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 2719732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# Sed substitution that helps us do robust quoting. It backslashifies 2720732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# metacharacters that are still active within double-quoted strings. 2721732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comXsed='${SED} -e 1s/^X//' 2722732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comsed_quote_subst='$sed_quote_subst' 2723311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 2724732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# Be Bourne compatible 2725732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comif test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then 2726732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com emulate sh 2727732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com NULLCMD=: 2728732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which 2729732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # is contrary to our usage. Disable this feature. 2730732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com alias -g '\${1+\"\$@\"}'='\"\$@\"' 2731732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com setopt NO_GLOB_SUBST 2732732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comelse 2733732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac 2734732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comfi 2735732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comBIN_SH=xpg4; export BIN_SH # for Tru64 2736732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comDUALCASE=1; export DUALCASE # for MKS sh 2737311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 2738732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# The HP-UX ksh and POSIX shell print the target directory to stdout 2739732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# if CDPATH is set. 2740732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com(unset CDPATH) >/dev/null 2>&1 && unset CDPATH 2741311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 2742732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comrelink_command=\"$relink_command\" 2743311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 2744732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# This environment variable determines our operation mode. 2745732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comif test \"\$libtool_install_magic\" = \"$magic\"; then 2746732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # install mode needs the following variables: 2747732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com generated_by_libtool_version='$macro_version' 2748732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com notinst_deplibs='$notinst_deplibs' 2749732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comelse 2750732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # When we are sourced in execute mode, \$file and \$ECHO are already set. 2751732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test \"\$libtool_execute_magic\" != \"$magic\"; then 2752732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ECHO=\"$qecho\" 2753732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com file=\"\$0\" 2754732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Make sure echo works. 2755732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test \"X\$1\" = X--no-reexec; then 2756732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Discard the --no-reexec flag, and continue. 2757732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com shift 2758732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com elif test \"X\`{ \$ECHO '\t'; } 2>/dev/null\`\" = 'X\t'; then 2759732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Yippee, \$ECHO works! 2760732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com : 2761732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 2762732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Restart under the correct shell, and then maybe \$ECHO will work. 2763732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"} 2764732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 2765732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi\ 2766732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com" 2767732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "\ 2768311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 2769732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Find the directory that this script lives in. 2770732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com thisdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\` 2771732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test \"x\$thisdir\" = \"x\$file\" && thisdir=. 2772311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 2773732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Follow symbolic links until we get to the real thisdir. 2774732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\` 2775732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com while test -n \"\$file\"; do 2776732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com destdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\` 2777311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 2778732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # If there was a directory component, then change thisdir. 2779732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test \"x\$destdir\" != \"x\$file\"; then 2780732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case \"\$destdir\" in 2781732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; 2782732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) thisdir=\"\$thisdir/\$destdir\" ;; 2783311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff esac 2784732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 2785311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 2786732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com file=\`\$ECHO \"X\$file\" | \$Xsed -e 's%^.*/%%'\` 2787732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\` 2788732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done 2789732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com" 2790732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com} 2791732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# end: func_emit_wrapper_part1 2792732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 2793732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# func_emit_wrapper_part2 [arg=no] 2794732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# 2795732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# Emit the second part of a libtool wrapper script on stdout. 2796732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# For more information, see the description associated with 2797732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# func_emit_wrapper(), below. 2798732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comfunc_emit_wrapper_part2 () 2799732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com{ 2800732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_emit_wrapper_part2_arg1=no 2801732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$1" ; then 2802732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_emit_wrapper_part2_arg1=$1 2803311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff fi 2804311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 2805732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "\ 2806311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 2807732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Usually 'no', except on cygwin/mingw when embedded into 2808732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # the cwrapper. 2809732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_part2_arg1 2810732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then 2811732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # special case for '.' 2812732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test \"\$thisdir\" = \".\"; then 2813732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com thisdir=\`pwd\` 2814732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 2815732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # remove .libs from thisdir 2816732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case \"\$thisdir\" in 2817732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *[\\\\/]$objdir ) thisdir=\`\$ECHO \"X\$thisdir\" | \$Xsed -e 's%[\\\\/][^\\\\/]*$%%'\` ;; 2818732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $objdir ) thisdir=. ;; 2819732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 2820732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 2821732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 2822732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Try to get the absolute directory name. 2823732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com absdir=\`cd \"\$thisdir\" && pwd\` 2824732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test -n \"\$absdir\" && thisdir=\"\$absdir\" 2825732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com" 2826732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 2827732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$fast_install" = yes; then 2828732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "\ 2829732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com program=lt-'$outputname'$exeext 2830732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com progdir=\"\$thisdir/$objdir\" 2831732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 2832732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test ! -f \"\$progdir/\$program\" || 2833732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ 2834732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test \"X\$file\" != \"X\$progdir/\$program\"; }; then 2835732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 2836732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com file=\"\$\$-\$program\" 2837732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 2838732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test ! -d \"\$progdir\"; then 2839732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $MKDIR \"\$progdir\" 2840732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 2841732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $RM \"\$progdir/\$file\" 2842732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi" 2843732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 2844732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "\ 2845732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 2846732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # relink executable if necessary 2847732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n \"\$relink_command\"; then 2848732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if relink_command_output=\`eval \$relink_command 2>&1\`; then : 2849732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 2850732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO \"\$relink_command_output\" >&2 2851732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $RM \"\$progdir/\$file\" 2852732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com exit 1 2853311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff fi 2854732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 2855311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 2856732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || 2857732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com { $RM \"\$progdir/\$program\"; 2858732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; } 2859732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $RM \"\$progdir/\$file\" 2860732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi" 2861732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 2862732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "\ 2863732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com program='$outputname' 2864732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com progdir=\"\$thisdir/$objdir\" 2865732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com" 2866311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff fi 2867311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 2868732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "\ 2869311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 2870732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -f \"\$progdir/\$program\"; then" 2871311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 2872732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Export our shlibpath_var if we have one. 2873732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then 2874732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "\ 2875732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Add our own library path to $shlibpath_var 2876732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" 2877311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 2878732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Some systems cannot cope with colon-terminated $shlibpath_var 2879732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # The second colon is a workaround for a bug in BeOS R4 sed 2880732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $shlibpath_var=\`\$ECHO \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\` 2881732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 2882732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com export $shlibpath_var 2883732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com" 2884311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff fi 2885311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 2886732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # fixup the dll searchpath if we need to. 2887732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$dllsearchpath"; then 2888732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "\ 2889732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Add the dll search path components to the executable PATH 2890732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com PATH=$dllsearchpath:\$PATH 2891732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com" 2892732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 2893311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 2894732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "\ 2895732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test \"\$libtool_execute_magic\" != \"$magic\"; then 2896732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Run the actual program with our arguments. 2897732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com" 2898732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $host in 2899732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Backslashes separate directories on plain windows 2900732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *-*-mingw | *-*-os2* | *-cegcc*) 2901732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "\ 2902732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} 2903732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com" 2904311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff ;; 2905311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 2906311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff *) 2907732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "\ 2908732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com exec \"\$progdir/\$program\" \${1+\"\$@\"} 2909732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com" 2910311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff ;; 2911311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff esac 2912732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "\ 2913732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 2914732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com exit 1 2915732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 2916732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 2917732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # The program doesn't exist. 2918732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 2919732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com \$ECHO \"This script is just a wrapper for \$program.\" 1>&2 2920732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO \"See the $PACKAGE documentation for more information.\" 1>&2 2921732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com exit 1 2922732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 2923732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comfi\ 2924732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com" 2925732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com} 2926732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# end: func_emit_wrapper_part2 2927311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 2928311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 2929732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# func_emit_wrapper [arg=no] 2930732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# 2931732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# Emit a libtool wrapper script on stdout. 2932732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# Don't directly open a file because we may want to 2933732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# incorporate the script contents within a cygwin/mingw 2934732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# wrapper executable. Must ONLY be called from within 2935732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# func_mode_link because it depends on a number of variables 2936732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# set therein. 2937732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# 2938732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR 2939732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# variable will take. If 'yes', then the emitted script 2940732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# will assume that the directory in which it is stored is 2941732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# the $objdir directory. This is a cygwin/mingw-specific 2942732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# behavior. 2943732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comfunc_emit_wrapper () 2944732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com{ 2945732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_emit_wrapper_arg1=no 2946732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$1" ; then 2947732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_emit_wrapper_arg1=$1 2948311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff fi 2949311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 2950732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # split this up so that func_emit_cwrapperexe_src 2951732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # can call each part independently. 2952732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_emit_wrapper_part1 "${func_emit_wrapper_arg1}" 2953732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_emit_wrapper_part2 "${func_emit_wrapper_arg1}" 2954732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com} 2955311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 2956311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 2957732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# func_to_host_path arg 2958732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# 2959732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# Convert paths to host format when used with build tools. 2960732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# Intended for use with "native" mingw (where libtool itself 2961732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# is running under the msys shell), or in the following cross- 2962732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# build environments: 2963732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# $build $host 2964732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# mingw (msys) mingw [e.g. native] 2965732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# cygwin mingw 2966732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# *nix + wine mingw 2967732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# where wine is equipped with the `winepath' executable. 2968732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# In the native mingw case, the (msys) shell automatically 2969732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# converts paths for any non-msys applications it launches, 2970732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# but that facility isn't available from inside the cwrapper. 2971732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# Similar accommodations are necessary for $host mingw and 2972732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# $build cygwin. Calling this function does no harm for other 2973732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# $host/$build combinations not listed above. 2974732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# 2975732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# ARG is the path (on $build) that should be converted to 2976732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# the proper representation for $host. The result is stored 2977732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# in $func_to_host_path_result. 2978732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comfunc_to_host_path () 2979732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com{ 2980732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_to_host_path_result="$1" 2981732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$1" ; then 2982732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $host in 2983732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *mingw* ) 2984732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' 2985732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $build in 2986732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *mingw* ) # actually, msys 2987732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # awkward: cmd appends spaces to result 2988732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com lt_sed_strip_trailing_spaces="s/[ ]*\$//" 2989732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_to_host_path_tmp1=`( cmd //c echo "$1" |\ 2990732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""` 2991732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ 2992732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $SED -e "$lt_sed_naive_backslashify"` 2993732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 2994732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *cygwin* ) 2995732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_to_host_path_tmp1=`cygpath -w "$1"` 2996732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ 2997732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $SED -e "$lt_sed_naive_backslashify"` 2998732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 2999732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com * ) 3000732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Unfortunately, winepath does not exit with a non-zero 3001732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # error code, so we are forced to check the contents of 3002732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # stdout. On the other hand, if the command is not 3003732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # found, the shell will set an exit code of 127 and print 3004732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # *an error message* to stdout. So we must check for both 3005732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # error code of zero AND non-empty stdout, which explains 3006732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # the odd construction: 3007732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_to_host_path_tmp1=`winepath -w "$1" 2>/dev/null` 3008732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$?" -eq 0 && test -n "${func_to_host_path_tmp1}"; then 3009732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ 3010732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $SED -e "$lt_sed_naive_backslashify"` 3011732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 3012732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Allow warning below. 3013732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_to_host_path_result="" 3014732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 3015732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 3016732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 3017732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -z "$func_to_host_path_result" ; then 3018732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_error "Could not determine host path corresponding to" 3019732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_error " '$1'" 3020732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_error "Continuing, but uninstalled executables may not work." 3021732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Fallback: 3022732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_to_host_path_result="$1" 3023732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 3024732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 3025732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 3026732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 3027732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com} 3028732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# end: func_to_host_path 3029311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 3030732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# func_to_host_pathlist arg 3031732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# 3032732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# Convert pathlists to host format when used with build tools. 3033732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# See func_to_host_path(), above. This function supports the 3034732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# following $build/$host combinations (but does no harm for 3035732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# combinations not listed here): 3036732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# $build $host 3037732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# mingw (msys) mingw [e.g. native] 3038732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# cygwin mingw 3039732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# *nix + wine mingw 3040732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# 3041732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# Path separators are also converted from $build format to 3042732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# $host format. If ARG begins or ends with a path separator 3043732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# character, it is preserved (but converted to $host format) 3044732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# on output. 3045732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# 3046732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# ARG is a pathlist (on $build) that should be converted to 3047732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# the proper representation on $host. The result is stored 3048732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# in $func_to_host_pathlist_result. 3049732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comfunc_to_host_pathlist () 3050732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com{ 3051732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_to_host_pathlist_result="$1" 3052732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$1" ; then 3053732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $host in 3054732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *mingw* ) 3055732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' 3056732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Remove leading and trailing path separator characters from 3057732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # ARG. msys behavior is inconsistent here, cygpath turns them 3058732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # into '.;' and ';.', and winepath ignores them completely. 3059732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_to_host_pathlist_tmp2="$1" 3060732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Once set for this call, this variable should not be 3061732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # reassigned. It is used in tha fallback case. 3062732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_to_host_pathlist_tmp1=`echo "$func_to_host_pathlist_tmp2" |\ 3063732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $SED -e 's|^:*||' -e 's|:*$||'` 3064732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $build in 3065732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *mingw* ) # Actually, msys. 3066732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Awkward: cmd appends spaces to result. 3067732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com lt_sed_strip_trailing_spaces="s/[ ]*\$//" 3068732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_to_host_pathlist_tmp2=`( cmd //c echo "$func_to_host_pathlist_tmp1" |\ 3069732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""` 3070732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\ 3071732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $SED -e "$lt_sed_naive_backslashify"` 3072732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 3073732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *cygwin* ) 3074732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_to_host_pathlist_tmp2=`cygpath -w -p "$func_to_host_pathlist_tmp1"` 3075732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\ 3076732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $SED -e "$lt_sed_naive_backslashify"` 3077732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 3078732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com * ) 3079732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # unfortunately, winepath doesn't convert pathlists 3080732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_to_host_pathlist_result="" 3081732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_to_host_pathlist_oldIFS=$IFS 3082732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com IFS=: 3083732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for func_to_host_pathlist_f in $func_to_host_pathlist_tmp1 ; do 3084732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com IFS=$func_to_host_pathlist_oldIFS 3085732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$func_to_host_pathlist_f" ; then 3086732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_to_host_path "$func_to_host_pathlist_f" 3087732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$func_to_host_path_result" ; then 3088732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -z "$func_to_host_pathlist_result" ; then 3089732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_to_host_pathlist_result="$func_to_host_path_result" 3090732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 3091732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_to_host_pathlist_result="$func_to_host_pathlist_result;$func_to_host_path_result" 3092732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 3093732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 3094732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 3095732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com IFS=: 3096732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done 3097732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com IFS=$func_to_host_pathlist_oldIFS 3098732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 3099732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 3100732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -z "$func_to_host_pathlist_result" ; then 3101732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_error "Could not determine the host path(s) corresponding to" 3102732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_error " '$1'" 3103732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_error "Continuing, but uninstalled executables may not work." 3104732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Fallback. This may break if $1 contains DOS-style drive 3105732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # specifications. The fix is not to complicate the expression 3106732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # below, but for the user to provide a working wine installation 3107732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # with winepath so that path translation in the cross-to-mingw 3108732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # case works properly. 3109732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com lt_replace_pathsep_nix_to_dos="s|:|;|g" 3110732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp1" |\ 3111732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $SED -e "$lt_replace_pathsep_nix_to_dos"` 3112732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 3113732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Now, add the leading and trailing path separators back 3114732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case "$1" in 3115732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com :* ) func_to_host_pathlist_result=";$func_to_host_pathlist_result" 3116732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 3117732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 3118732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case "$1" in 3119732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *: ) func_to_host_pathlist_result="$func_to_host_pathlist_result;" 3120732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 3121732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 3122732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 3123732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 3124732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 3125732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com} 3126732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# end: func_to_host_pathlist 3127311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 3128732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# func_emit_cwrapperexe_src 3129732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# emit the source code for a wrapper executable on stdout 3130732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# Must ONLY be called from within func_mode_link because 3131732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# it depends on a number of variable set therein. 3132732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comfunc_emit_cwrapperexe_src () 3133732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com{ 3134732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com cat <<EOF 3135311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 3136732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com/* $cwrappersource - temporary wrapper executable for $objdir/$outputname 3137732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION 3138311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 3139732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com The $output program cannot be directly executed until all the libtool 3140732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com libraries that it depends on are installed. 3141311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 3142732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com This wrapper executable should never be moved out of the build directory. 3143732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com If it is, it will not operate correctly. 3144311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 3145732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com Currently, it simply execs the wrapper *script* "$SHELL $output", 3146732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com but could eventually absorb all of the scripts functionality and 3147732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com exec $objdir/$outputname directly. 3148732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com*/ 3149732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comEOF 3150732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com cat <<"EOF" 3151732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com#include <stdio.h> 3152732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com#include <stdlib.h> 3153732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com#ifdef _MSC_VER 3154732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# include <direct.h> 3155732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# include <process.h> 3156732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# include <io.h> 3157732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# define setmode _setmode 3158732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com#else 3159732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# include <unistd.h> 3160732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# include <stdint.h> 3161732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# ifdef __CYGWIN__ 3162732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# include <io.h> 3163732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# define HAVE_SETENV 3164732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# ifdef __STRICT_ANSI__ 3165732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comchar *realpath (const char *, char *); 3166732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comint putenv (char *); 3167732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comint setenv (const char *, const char *, int); 3168732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# endif 3169732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# endif 3170732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com#endif 3171732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com#include <malloc.h> 3172732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com#include <stdarg.h> 3173732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com#include <assert.h> 3174732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com#include <string.h> 3175732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com#include <ctype.h> 3176732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com#include <errno.h> 3177732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com#include <fcntl.h> 3178732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com#include <sys/stat.h> 3179311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 3180732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com#if defined(PATH_MAX) 3181732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# define LT_PATHMAX PATH_MAX 3182732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com#elif defined(MAXPATHLEN) 3183732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# define LT_PATHMAX MAXPATHLEN 3184732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com#else 3185732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# define LT_PATHMAX 1024 3186732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com#endif 3187311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 3188732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com#ifndef S_IXOTH 3189732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# define S_IXOTH 0 3190732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com#endif 3191732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com#ifndef S_IXGRP 3192732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# define S_IXGRP 0 3193732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com#endif 3194311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 3195732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com#ifdef _MSC_VER 3196732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# define S_IXUSR _S_IEXEC 3197732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# define stat _stat 3198732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# ifndef _INTPTR_T_DEFINED 3199732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# define intptr_t int 3200732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# endif 3201732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com#endif 3202311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 3203732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com#ifndef DIR_SEPARATOR 3204732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# define DIR_SEPARATOR '/' 3205732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# define PATH_SEPARATOR ':' 3206732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com#endif 3207311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 3208732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ 3209732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com defined (__OS2__) 3210732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# define HAVE_DOS_BASED_FILE_SYSTEM 3211732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# define FOPEN_WB "wb" 3212732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# ifndef DIR_SEPARATOR_2 3213732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# define DIR_SEPARATOR_2 '\\' 3214732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# endif 3215732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# ifndef PATH_SEPARATOR_2 3216732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# define PATH_SEPARATOR_2 ';' 3217732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# endif 3218732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com#endif 3219311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 3220732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com#ifndef DIR_SEPARATOR_2 3221732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) 3222732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com#else /* DIR_SEPARATOR_2 */ 3223732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# define IS_DIR_SEPARATOR(ch) \ 3224732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) 3225732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com#endif /* DIR_SEPARATOR_2 */ 3226311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 3227732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com#ifndef PATH_SEPARATOR_2 3228732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) 3229732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com#else /* PATH_SEPARATOR_2 */ 3230732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) 3231732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com#endif /* PATH_SEPARATOR_2 */ 3232311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 3233732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com#ifdef __CYGWIN__ 3234732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# define FOPEN_WB "wb" 3235732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com#endif 3236311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 3237732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com#ifndef FOPEN_WB 3238732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# define FOPEN_WB "w" 3239732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com#endif 3240732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com#ifndef _O_BINARY 3241732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# define _O_BINARY 0 3242732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com#endif 3243311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 3244732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com#define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) 3245732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com#define XFREE(stale) do { \ 3246732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if (stale) { free ((void *) stale); stale = 0; } \ 3247732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com} while (0) 3248311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 3249732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com#undef LTWRAPPER_DEBUGPRINTF 3250732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com#if defined DEBUGWRAPPER 3251732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# define LTWRAPPER_DEBUGPRINTF(args) ltwrapper_debugprintf args 3252732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comstatic void 3253732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comltwrapper_debugprintf (const char *fmt, ...) 3254732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com{ 3255732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com va_list args; 3256732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com va_start (args, fmt); 3257732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com (void) vfprintf (stderr, fmt, args); 3258732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com va_end (args); 3259732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com} 3260732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com#else 3261732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# define LTWRAPPER_DEBUGPRINTF(args) 3262732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com#endif 3263311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 3264732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comconst char *program_name = NULL; 3265311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 3266732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comvoid *xmalloc (size_t num); 3267732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comchar *xstrdup (const char *string); 3268732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comconst char *base_name (const char *name); 3269732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comchar *find_executable (const char *wrapper); 3270732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comchar *chase_symlinks (const char *pathspec); 3271732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comint make_executable (const char *path); 3272732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comint check_executable (const char *path); 3273732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comchar *strendzap (char *str, const char *pat); 3274732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comvoid lt_fatal (const char *message, ...); 3275732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comvoid lt_setenv (const char *name, const char *value); 3276732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comchar *lt_extend_str (const char *orig_value, const char *add, int to_end); 3277732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comvoid lt_opt_process_env_set (const char *arg); 3278732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comvoid lt_opt_process_env_prepend (const char *arg); 3279732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comvoid lt_opt_process_env_append (const char *arg); 3280732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comint lt_split_name_value (const char *arg, char** name, char** value); 3281732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comvoid lt_update_exe_path (const char *name, const char *value); 3282732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comvoid lt_update_lib_path (const char *name, const char *value); 3283732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 3284732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comstatic const char *script_text_part1 = 3285732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comEOF 3286311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 3287732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_emit_wrapper_part1 yes | 3288732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $SED -e 's/\([\\"]\)/\\\1/g' \ 3289732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -e 's/^/ "/' -e 's/$/\\n"/' 3290732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com echo ";" 3291732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com cat <<EOF 3292311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 3293732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comstatic const char *script_text_part2 = 3294732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comEOF 3295732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_emit_wrapper_part2 yes | 3296732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $SED -e 's/\([\\"]\)/\\\1/g' \ 3297732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -e 's/^/ "/' -e 's/$/\\n"/' 3298732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com echo ";" 3299732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 3300732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com cat <<EOF 3301732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comconst char * MAGIC_EXE = "$magic_exe"; 3302732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comconst char * LIB_PATH_VARNAME = "$shlibpath_var"; 3303732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comEOF 3304311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 3305732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then 3306732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_to_host_pathlist "$temp_rpath" 3307732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com cat <<EOF 3308732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comconst char * LIB_PATH_VALUE = "$func_to_host_pathlist_result"; 3309732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comEOF 3310732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 3311732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com cat <<"EOF" 3312732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comconst char * LIB_PATH_VALUE = ""; 3313732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comEOF 3314311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff fi 3315311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 3316732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$dllsearchpath"; then 3317732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_to_host_pathlist "$dllsearchpath:" 3318732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com cat <<EOF 3319732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comconst char * EXE_PATH_VARNAME = "PATH"; 3320732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comconst char * EXE_PATH_VALUE = "$func_to_host_pathlist_result"; 3321311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiffEOF 3322311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff else 3323732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com cat <<"EOF" 3324732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comconst char * EXE_PATH_VARNAME = ""; 3325732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comconst char * EXE_PATH_VALUE = ""; 3326732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comEOF 3327311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff fi 3328732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 3329732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$fast_install" = yes; then 3330732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com cat <<EOF 3331732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comconst char * TARGET_PROGRAM_NAME = "lt-$outputname"; /* hopefully, no .exe */ 3332732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comEOF 3333311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff else 3334732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com cat <<EOF 3335732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comconst char * TARGET_PROGRAM_NAME = "$outputname"; /* hopefully, no .exe */ 3336732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comEOF 3337311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff fi 3338311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 3339311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 3340732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com cat <<"EOF" 3341311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 3342732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com#define LTWRAPPER_OPTION_PREFIX "--lt-" 3343732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com#define LTWRAPPER_OPTION_PREFIX_LENGTH 5 3344311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 3345732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comstatic const size_t opt_prefix_len = LTWRAPPER_OPTION_PREFIX_LENGTH; 3346732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comstatic const char *ltwrapper_option_prefix = LTWRAPPER_OPTION_PREFIX; 3347311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 3348732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comstatic const char *dumpscript_opt = LTWRAPPER_OPTION_PREFIX "dump-script"; 3349311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 3350732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comstatic const size_t env_set_opt_len = LTWRAPPER_OPTION_PREFIX_LENGTH + 7; 3351732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comstatic const char *env_set_opt = LTWRAPPER_OPTION_PREFIX "env-set"; 3352732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com /* argument is putenv-style "foo=bar", value of foo is set to bar */ 3353311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 3354732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comstatic const size_t env_prepend_opt_len = LTWRAPPER_OPTION_PREFIX_LENGTH + 11; 3355732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comstatic const char *env_prepend_opt = LTWRAPPER_OPTION_PREFIX "env-prepend"; 3356732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com /* argument is putenv-style "foo=bar", new value of foo is bar${foo} */ 3357311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 3358732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comstatic const size_t env_append_opt_len = LTWRAPPER_OPTION_PREFIX_LENGTH + 10; 3359732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comstatic const char *env_append_opt = LTWRAPPER_OPTION_PREFIX "env-append"; 3360732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com /* argument is putenv-style "foo=bar", new value of foo is ${foo}bar */ 3361311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 3362732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comint 3363732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.commain (int argc, char *argv[]) 3364732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com{ 3365732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com char **newargz; 3366732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com int newargc; 3367732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com char *tmp_pathspec; 3368732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com char *actual_cwrapper_path; 3369732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com char *actual_cwrapper_name; 3370732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com char *target_name; 3371732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com char *lt_argv_zero; 3372732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com intptr_t rval = 127; 3373311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 3374732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com int i; 3375311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 3376732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com program_name = (char *) xstrdup (base_name (argv[0])); 3377732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com LTWRAPPER_DEBUGPRINTF (("(main) argv[0] : %s\n", argv[0])); 3378732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com LTWRAPPER_DEBUGPRINTF (("(main) program_name : %s\n", program_name)); 3379311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 3380732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com /* very simple arg parsing; don't want to rely on getopt */ 3381732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for (i = 1; i < argc; i++) 3382732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com { 3383732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if (strcmp (argv[i], dumpscript_opt) == 0) 3384732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com { 3385732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comEOF 3386732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case "$host" in 3387732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *mingw* | *cygwin* ) 3388732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # make stdout use "unix" line endings 3389732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com echo " setmode(1,_O_BINARY);" 3390732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 3391732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 3392311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 3393732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com cat <<"EOF" 3394732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com printf ("%s", script_text_part1); 3395732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com printf ("%s", script_text_part2); 3396732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com return 0; 3397732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com } 3398732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com } 3399311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 3400732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com newargz = XMALLOC (char *, argc + 1); 3401732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com tmp_pathspec = find_executable (argv[0]); 3402732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if (tmp_pathspec == NULL) 3403732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com lt_fatal ("Couldn't find %s", argv[0]); 3404732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com LTWRAPPER_DEBUGPRINTF (("(main) found exe (before symlink chase) at : %s\n", 3405732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com tmp_pathspec)); 3406732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 3407732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com actual_cwrapper_path = chase_symlinks (tmp_pathspec); 3408732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com LTWRAPPER_DEBUGPRINTF (("(main) found exe (after symlink chase) at : %s\n", 3409732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com actual_cwrapper_path)); 3410732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com XFREE (tmp_pathspec); 3411732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 3412732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com actual_cwrapper_name = xstrdup( base_name (actual_cwrapper_path)); 3413732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com strendzap (actual_cwrapper_path, actual_cwrapper_name); 3414732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 3415732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com /* wrapper name transforms */ 3416732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com strendzap (actual_cwrapper_name, ".exe"); 3417732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com tmp_pathspec = lt_extend_str (actual_cwrapper_name, ".exe", 1); 3418732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com XFREE (actual_cwrapper_name); 3419732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com actual_cwrapper_name = tmp_pathspec; 3420732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com tmp_pathspec = 0; 3421732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 3422732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com /* target_name transforms -- use actual target program name; might have lt- prefix */ 3423732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com target_name = xstrdup (base_name (TARGET_PROGRAM_NAME)); 3424732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com strendzap (target_name, ".exe"); 3425732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com tmp_pathspec = lt_extend_str (target_name, ".exe", 1); 3426732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com XFREE (target_name); 3427732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com target_name = tmp_pathspec; 3428732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com tmp_pathspec = 0; 3429732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 3430732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com LTWRAPPER_DEBUGPRINTF (("(main) libtool target name: %s\n", 3431732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com target_name)); 3432732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comEOF 3433311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 3434732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com cat <<EOF 3435732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com newargz[0] = 3436732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com XMALLOC (char, (strlen (actual_cwrapper_path) + 3437732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com strlen ("$objdir") + 1 + strlen (actual_cwrapper_name) + 1)); 3438732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com strcpy (newargz[0], actual_cwrapper_path); 3439732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com strcat (newargz[0], "$objdir"); 3440732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com strcat (newargz[0], "/"); 3441732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comEOF 3442311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 3443732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com cat <<"EOF" 3444732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com /* stop here, and copy so we don't have to do this twice */ 3445732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com tmp_pathspec = xstrdup (newargz[0]); 3446311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 3447732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com /* do NOT want the lt- prefix here, so use actual_cwrapper_name */ 3448732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com strcat (newargz[0], actual_cwrapper_name); 3449311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 3450732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com /* DO want the lt- prefix here if it exists, so use target_name */ 3451732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com lt_argv_zero = lt_extend_str (tmp_pathspec, target_name, 1); 3452732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com XFREE (tmp_pathspec); 3453732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com tmp_pathspec = NULL; 3454732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comEOF 3455311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 3456732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $host_os in 3457732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com mingw*) 3458732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com cat <<"EOF" 3459732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com { 3460732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com char* p; 3461732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com while ((p = strchr (newargz[0], '\\')) != NULL) 3462732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com { 3463732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *p = '/'; 3464732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com } 3465732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com while ((p = strchr (lt_argv_zero, '\\')) != NULL) 3466732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com { 3467732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *p = '/'; 3468732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com } 3469732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com } 3470732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comEOF 3471732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 3472732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 3473311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 3474732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com cat <<"EOF" 3475732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com XFREE (target_name); 3476732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com XFREE (actual_cwrapper_path); 3477732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com XFREE (actual_cwrapper_name); 3478311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 3479732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com lt_setenv ("BIN_SH", "xpg4"); /* for Tru64 */ 3480732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com lt_setenv ("DUALCASE", "1"); /* for MSK sh */ 3481732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE); 3482732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com lt_update_exe_path (EXE_PATH_VARNAME, EXE_PATH_VALUE); 3483311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 3484732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com newargc=0; 3485732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for (i = 1; i < argc; i++) 3486732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com { 3487732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if (strncmp (argv[i], env_set_opt, env_set_opt_len) == 0) 3488732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com { 3489732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if (argv[i][env_set_opt_len] == '=') 3490732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com { 3491732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com const char *p = argv[i] + env_set_opt_len + 1; 3492732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com lt_opt_process_env_set (p); 3493732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com } 3494732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else if (argv[i][env_set_opt_len] == '\0' && i + 1 < argc) 3495732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com { 3496732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com lt_opt_process_env_set (argv[++i]); /* don't copy */ 3497732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com } 3498732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 3499732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com lt_fatal ("%s missing required argument", env_set_opt); 3500732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com continue; 3501732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com } 3502732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if (strncmp (argv[i], env_prepend_opt, env_prepend_opt_len) == 0) 3503732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com { 3504732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if (argv[i][env_prepend_opt_len] == '=') 3505732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com { 3506732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com const char *p = argv[i] + env_prepend_opt_len + 1; 3507732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com lt_opt_process_env_prepend (p); 3508732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com } 3509732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else if (argv[i][env_prepend_opt_len] == '\0' && i + 1 < argc) 3510732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com { 3511732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com lt_opt_process_env_prepend (argv[++i]); /* don't copy */ 3512732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com } 3513732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 3514732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com lt_fatal ("%s missing required argument", env_prepend_opt); 3515732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com continue; 3516732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com } 3517732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if (strncmp (argv[i], env_append_opt, env_append_opt_len) == 0) 3518732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com { 3519732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if (argv[i][env_append_opt_len] == '=') 3520732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com { 3521732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com const char *p = argv[i] + env_append_opt_len + 1; 3522732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com lt_opt_process_env_append (p); 3523732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com } 3524732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else if (argv[i][env_append_opt_len] == '\0' && i + 1 < argc) 3525732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com { 3526732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com lt_opt_process_env_append (argv[++i]); /* don't copy */ 3527732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com } 3528732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 3529732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com lt_fatal ("%s missing required argument", env_append_opt); 3530732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com continue; 3531732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com } 3532732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if (strncmp (argv[i], ltwrapper_option_prefix, opt_prefix_len) == 0) 3533732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com { 3534732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX 3535732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com namespace, but it is not one of the ones we know about and 3536732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com have already dealt with, above (inluding dump-script), then 3537732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com report an error. Otherwise, targets might begin to believe 3538732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com they are allowed to use options in the LTWRAPPER_OPTION_PREFIX 3539732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com namespace. The first time any user complains about this, we'll 3540732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com need to make LTWRAPPER_OPTION_PREFIX a configure-time option 3541732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com or a configure.ac-settable value. 3542732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com */ 3543732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com lt_fatal ("Unrecognized option in %s namespace: '%s'", 3544732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ltwrapper_option_prefix, argv[i]); 3545732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com } 3546732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com /* otherwise ... */ 3547732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com newargz[++newargc] = xstrdup (argv[i]); 3548732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com } 3549732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com newargz[++newargc] = NULL; 3550311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 3551732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com LTWRAPPER_DEBUGPRINTF (("(main) lt_argv_zero : %s\n", (lt_argv_zero ? lt_argv_zero : "<NULL>"))); 3552732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for (i = 0; i < newargc; i++) 3553732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com { 3554732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com LTWRAPPER_DEBUGPRINTF (("(main) newargz[%d] : %s\n", i, (newargz[i] ? newargz[i] : "<NULL>"))); 3555732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com } 3556311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 3557732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comEOF 3558311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 3559732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $host_os in 3560732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com mingw*) 3561732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com cat <<"EOF" 3562732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com /* execv doesn't actually work on mingw as expected on unix */ 3563732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com rval = _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz); 3564732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if (rval == -1) 3565732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com { 3566732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com /* failed to start process */ 3567732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com LTWRAPPER_DEBUGPRINTF (("(main) failed to launch target \"%s\": errno = %d\n", lt_argv_zero, errno)); 3568732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com return 127; 3569732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com } 3570732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com return rval; 3571732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comEOF 3572732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 3573732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) 3574732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com cat <<"EOF" 3575732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com execv (lt_argv_zero, newargz); 3576732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com return rval; /* =127, but avoids unused variable warning */ 3577732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comEOF 3578732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 3579732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 3580311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 3581732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com cat <<"EOF" 3582732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com} 3583311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 3584732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comvoid * 3585732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comxmalloc (size_t num) 3586732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com{ 3587732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com void *p = (void *) malloc (num); 3588732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if (!p) 3589732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com lt_fatal ("Memory exhausted"); 3590311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 3591732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com return p; 3592732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com} 3593311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 3594732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comchar * 3595732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comxstrdup (const char *string) 3596732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com{ 3597732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com return string ? strcpy ((char *) xmalloc (strlen (string) + 1), 3598732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com string) : NULL; 3599732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com} 3600311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 3601732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comconst char * 3602732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.combase_name (const char *name) 3603732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com{ 3604732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com const char *base; 3605311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 3606732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com#if defined (HAVE_DOS_BASED_FILE_SYSTEM) 3607732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com /* Skip over the disk name in MSDOS pathnames. */ 3608732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if (isalpha ((unsigned char) name[0]) && name[1] == ':') 3609732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com name += 2; 3610732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com#endif 3611311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 3612732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for (base = name; *name; name++) 3613732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if (IS_DIR_SEPARATOR (*name)) 3614732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com base = name + 1; 3615732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com return base; 3616732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com} 3617311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 3618732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comint 3619732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comcheck_executable (const char *path) 3620732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com{ 3621732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com struct stat st; 3622311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 3623732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com LTWRAPPER_DEBUGPRINTF (("(check_executable) : %s\n", 3624732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com path ? (*path ? path : "EMPTY!") : "NULL!")); 3625732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if ((!path) || (!*path)) 3626732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com return 0; 3627311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 3628732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if ((stat (path, &st) >= 0) 3629732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH))) 3630732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com return 1; 3631732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 3632732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com return 0; 3633732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com} 3634311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 3635732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comint 3636732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.commake_executable (const char *path) 3637732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com{ 3638732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com int rval = 0; 3639732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com struct stat st; 3640311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 3641732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com LTWRAPPER_DEBUGPRINTF (("(make_executable) : %s\n", 3642732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com path ? (*path ? path : "EMPTY!") : "NULL!")); 3643732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if ((!path) || (!*path)) 3644732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com return 0; 3645311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 3646732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if (stat (path, &st) >= 0) 3647732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com { 3648732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR); 3649732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com } 3650732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com return rval; 3651732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com} 3652311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 3653732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com/* Searches for the full path of the wrapper. Returns 3654732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com newly allocated full path name if found, NULL otherwise 3655732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com Does not chase symlinks, even on platforms that support them. 3656732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com*/ 3657732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comchar * 3658732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comfind_executable (const char *wrapper) 3659732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com{ 3660732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com int has_slash = 0; 3661732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com const char *p; 3662732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com const char *p_next; 3663732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com /* static buffer for getcwd */ 3664732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com char tmp[LT_PATHMAX + 1]; 3665732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com int tmp_len; 3666732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com char *concat_name; 3667311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 3668732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com LTWRAPPER_DEBUGPRINTF (("(find_executable) : %s\n", 3669732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!")); 3670311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 3671732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if ((wrapper == NULL) || (*wrapper == '\0')) 3672732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com return NULL; 3673311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 3674732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com /* Absolute path? */ 3675732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com#if defined (HAVE_DOS_BASED_FILE_SYSTEM) 3676732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':') 3677732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com { 3678732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com concat_name = xstrdup (wrapper); 3679732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if (check_executable (concat_name)) 3680732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com return concat_name; 3681732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com XFREE (concat_name); 3682732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com } 3683732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 3684732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com { 3685732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com#endif 3686732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if (IS_DIR_SEPARATOR (wrapper[0])) 3687732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com { 3688732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com concat_name = xstrdup (wrapper); 3689732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if (check_executable (concat_name)) 3690732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com return concat_name; 3691732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com XFREE (concat_name); 3692732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com } 3693732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com#if defined (HAVE_DOS_BASED_FILE_SYSTEM) 3694732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com } 3695732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com#endif 3696311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 3697732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for (p = wrapper; *p; p++) 3698732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if (*p == '/') 3699732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com { 3700732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com has_slash = 1; 3701732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com break; 3702732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com } 3703732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if (!has_slash) 3704732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com { 3705732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com /* no slashes; search PATH */ 3706732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com const char *path = getenv ("PATH"); 3707732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if (path != NULL) 3708732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com { 3709732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for (p = path; *p; p = p_next) 3710732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com { 3711732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com const char *q; 3712732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com size_t p_len; 3713732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for (q = p; *q; q++) 3714732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if (IS_PATH_SEPARATOR (*q)) 3715732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com break; 3716732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com p_len = q - p; 3717732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com p_next = (*q == '\0' ? q : q + 1); 3718732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if (p_len == 0) 3719732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com { 3720732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com /* empty path: current directory */ 3721732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if (getcwd (tmp, LT_PATHMAX) == NULL) 3722732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com lt_fatal ("getcwd failed"); 3723732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com tmp_len = strlen (tmp); 3724732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com concat_name = 3725732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); 3726732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com memcpy (concat_name, tmp, tmp_len); 3727732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com concat_name[tmp_len] = '/'; 3728732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com strcpy (concat_name + tmp_len + 1, wrapper); 3729732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com } 3730732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 3731732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com { 3732732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com concat_name = 3733732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com XMALLOC (char, p_len + 1 + strlen (wrapper) + 1); 3734732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com memcpy (concat_name, p, p_len); 3735732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com concat_name[p_len] = '/'; 3736732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com strcpy (concat_name + p_len + 1, wrapper); 3737732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com } 3738732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if (check_executable (concat_name)) 3739732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com return concat_name; 3740732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com XFREE (concat_name); 3741732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com } 3742732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com } 3743732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com /* not found in PATH; assume curdir */ 3744732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com } 3745732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com /* Relative path | not found in path: prepend cwd */ 3746732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if (getcwd (tmp, LT_PATHMAX) == NULL) 3747732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com lt_fatal ("getcwd failed"); 3748732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com tmp_len = strlen (tmp); 3749732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); 3750732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com memcpy (concat_name, tmp, tmp_len); 3751732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com concat_name[tmp_len] = '/'; 3752732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com strcpy (concat_name + tmp_len + 1, wrapper); 3753311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 3754732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if (check_executable (concat_name)) 3755732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com return concat_name; 3756732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com XFREE (concat_name); 3757732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com return NULL; 3758732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com} 3759311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 3760732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comchar * 3761732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comchase_symlinks (const char *pathspec) 3762732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com{ 3763732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com#ifndef S_ISLNK 3764732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com return xstrdup (pathspec); 3765732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com#else 3766732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com char buf[LT_PATHMAX]; 3767732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com struct stat s; 3768732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com char *tmp_pathspec = xstrdup (pathspec); 3769732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com char *p; 3770732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com int has_symlinks = 0; 3771732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com while (strlen (tmp_pathspec) && !has_symlinks) 3772732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com { 3773732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com LTWRAPPER_DEBUGPRINTF (("checking path component for symlinks: %s\n", 3774732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com tmp_pathspec)); 3775732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if (lstat (tmp_pathspec, &s) == 0) 3776732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com { 3777732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if (S_ISLNK (s.st_mode) != 0) 3778732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com { 3779732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com has_symlinks = 1; 3780732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com break; 3781732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com } 3782311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 3783732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com /* search backwards for last DIR_SEPARATOR */ 3784732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com p = tmp_pathspec + strlen (tmp_pathspec) - 1; 3785732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) 3786732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com p--; 3787732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) 3788732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com { 3789732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com /* no more DIR_SEPARATORS left */ 3790732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com break; 3791732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com } 3792732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *p = '\0'; 3793732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com } 3794732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 3795732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com { 3796732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com char *errstr = strerror (errno); 3797732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com lt_fatal ("Error accessing file %s (%s)", tmp_pathspec, errstr); 3798732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com } 3799732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com } 3800732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com XFREE (tmp_pathspec); 3801311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 3802732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if (!has_symlinks) 3803732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com { 3804732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com return xstrdup (pathspec); 3805732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com } 3806311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 3807732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com tmp_pathspec = realpath (pathspec, buf); 3808732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if (tmp_pathspec == 0) 3809732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com { 3810732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com lt_fatal ("Could not follow symlinks for %s", pathspec); 3811732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com } 3812732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com return xstrdup (tmp_pathspec); 3813732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com#endif 3814732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com} 3815311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 3816732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comchar * 3817732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comstrendzap (char *str, const char *pat) 3818732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com{ 3819732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com size_t len, patlen; 3820311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 3821732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com assert (str != NULL); 3822732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com assert (pat != NULL); 3823311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 3824732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com len = strlen (str); 3825732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com patlen = strlen (pat); 3826311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 3827732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if (patlen <= len) 3828732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com { 3829732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com str += len - patlen; 3830732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if (strcmp (str, pat) == 0) 3831732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *str = '\0'; 3832732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com } 3833732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com return str; 3834732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com} 3835311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 3836732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comstatic void 3837732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comlt_error_core (int exit_status, const char *mode, 3838732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com const char *message, va_list ap) 3839732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com{ 3840732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fprintf (stderr, "%s: %s: ", program_name, mode); 3841732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com vfprintf (stderr, message, ap); 3842732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fprintf (stderr, ".\n"); 3843311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 3844732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if (exit_status >= 0) 3845732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com exit (exit_status); 3846732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com} 3847311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 3848732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comvoid 3849732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comlt_fatal (const char *message, ...) 3850732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com{ 3851732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com va_list ap; 3852732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com va_start (ap, message); 3853732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com lt_error_core (EXIT_FAILURE, "FATAL", message, ap); 3854732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com va_end (ap); 3855732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com} 3856311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 3857732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comvoid 3858732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comlt_setenv (const char *name, const char *value) 3859732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com{ 3860732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com LTWRAPPER_DEBUGPRINTF (("(lt_setenv) setting '%s' to '%s'\n", 3861732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com (name ? name : "<NULL>"), 3862732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com (value ? value : "<NULL>"))); 3863732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com { 3864732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com#ifdef HAVE_SETENV 3865732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com /* always make a copy, for consistency with !HAVE_SETENV */ 3866732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com char *str = xstrdup (value); 3867732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com setenv (name, str, 1); 3868732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com#else 3869732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com int len = strlen (name) + 1 + strlen (value) + 1; 3870732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com char *str = XMALLOC (char, len); 3871732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com sprintf (str, "%s=%s", name, value); 3872732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if (putenv (str) != EXIT_SUCCESS) 3873732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com { 3874732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com XFREE (str); 3875732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com } 3876732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com#endif 3877732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com } 3878732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com} 3879311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 3880732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comchar * 3881732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comlt_extend_str (const char *orig_value, const char *add, int to_end) 3882732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com{ 3883732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com char *new_value; 3884732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if (orig_value && *orig_value) 3885732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com { 3886732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com int orig_value_len = strlen (orig_value); 3887732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com int add_len = strlen (add); 3888732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com new_value = XMALLOC (char, add_len + orig_value_len + 1); 3889732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if (to_end) 3890732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com { 3891732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com strcpy (new_value, orig_value); 3892732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com strcpy (new_value + orig_value_len, add); 3893732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com } 3894732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 3895732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com { 3896732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com strcpy (new_value, add); 3897732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com strcpy (new_value + add_len, orig_value); 3898732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com } 3899732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com } 3900732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 3901732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com { 3902732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com new_value = xstrdup (add); 3903732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com } 3904732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com return new_value; 3905732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com} 3906311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 3907732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comint 3908732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comlt_split_name_value (const char *arg, char** name, char** value) 3909732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com{ 3910732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com const char *p; 3911732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com int len; 3912732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if (!arg || !*arg) 3913732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com return 1; 3914311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 3915732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com p = strchr (arg, (int)'='); 3916311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 3917732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if (!p) 3918732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com return 1; 3919311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 3920732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *value = xstrdup (++p); 3921311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 3922732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com len = strlen (arg) - strlen (*value); 3923732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *name = XMALLOC (char, len); 3924732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com strncpy (*name, arg, len-1); 3925732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com (*name)[len - 1] = '\0'; 3926311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 3927732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com return 0; 3928732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com} 3929311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 3930732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comvoid 3931732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comlt_opt_process_env_set (const char *arg) 3932732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com{ 3933732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com char *name = NULL; 3934732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com char *value = NULL; 3935311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 3936732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if (lt_split_name_value (arg, &name, &value) != 0) 3937732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com { 3938732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com XFREE (name); 3939732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com XFREE (value); 3940732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com lt_fatal ("bad argument for %s: '%s'", env_set_opt, arg); 3941732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com } 3942311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 3943732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com lt_setenv (name, value); 3944732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com XFREE (name); 3945732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com XFREE (value); 3946732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com} 3947311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 3948732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comvoid 3949732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comlt_opt_process_env_prepend (const char *arg) 3950732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com{ 3951732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com char *name = NULL; 3952732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com char *value = NULL; 3953732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com char *new_value = NULL; 3954311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 3955732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if (lt_split_name_value (arg, &name, &value) != 0) 3956732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com { 3957732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com XFREE (name); 3958732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com XFREE (value); 3959732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com lt_fatal ("bad argument for %s: '%s'", env_prepend_opt, arg); 3960732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com } 3961311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 3962732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com new_value = lt_extend_str (getenv (name), value, 0); 3963732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com lt_setenv (name, new_value); 3964732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com XFREE (new_value); 3965732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com XFREE (name); 3966732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com XFREE (value); 3967732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com} 3968311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 3969732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comvoid 3970732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comlt_opt_process_env_append (const char *arg) 3971732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com{ 3972732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com char *name = NULL; 3973732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com char *value = NULL; 3974732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com char *new_value = NULL; 3975311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 3976732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if (lt_split_name_value (arg, &name, &value) != 0) 3977732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com { 3978732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com XFREE (name); 3979732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com XFREE (value); 3980732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com lt_fatal ("bad argument for %s: '%s'", env_append_opt, arg); 3981732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com } 3982311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 3983732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com new_value = lt_extend_str (getenv (name), value, 1); 3984732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com lt_setenv (name, new_value); 3985732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com XFREE (new_value); 3986732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com XFREE (name); 3987732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com XFREE (value); 3988732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com} 3989311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 3990732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comvoid 3991732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comlt_update_exe_path (const char *name, const char *value) 3992732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com{ 3993732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com LTWRAPPER_DEBUGPRINTF (("(lt_update_exe_path) modifying '%s' by prepending '%s'\n", 3994732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com (name ? name : "<NULL>"), 3995732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com (value ? value : "<NULL>"))); 3996311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 3997732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if (name && *name && value && *value) 3998732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com { 3999732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com char *new_value = lt_extend_str (getenv (name), value, 0); 4000732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com /* some systems can't cope with a ':'-terminated path #' */ 4001732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com int len = strlen (new_value); 4002732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com while (((len = strlen (new_value)) > 0) && IS_PATH_SEPARATOR (new_value[len-1])) 4003732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com { 4004732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com new_value[len-1] = '\0'; 4005732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com } 4006732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com lt_setenv (name, new_value); 4007732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com XFREE (new_value); 4008732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com } 4009732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com} 4010311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 4011732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comvoid 4012732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comlt_update_lib_path (const char *name, const char *value) 4013732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com{ 4014732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com LTWRAPPER_DEBUGPRINTF (("(lt_update_lib_path) modifying '%s' by prepending '%s'\n", 4015732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com (name ? name : "<NULL>"), 4016732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com (value ? value : "<NULL>"))); 4017311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 4018732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if (name && *name && value && *value) 4019732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com { 4020732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com char *new_value = lt_extend_str (getenv (name), value, 0); 4021732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com lt_setenv (name, new_value); 4022732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com XFREE (new_value); 4023732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com } 4024732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com} 4025311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 4026311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 4027732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comEOF 4028732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com} 4029732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# end: func_emit_cwrapperexe_src 4030311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 4031732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# func_mode_link arg... 4032732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comfunc_mode_link () 4033732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com{ 4034732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $opt_debug 4035732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $host in 4036732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) 4037732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # It is impossible to link a dll without this setting, and 4038732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # we shouldn't force the makefile maintainer to figure out 4039732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # which system we are compiling for in order to pass an extra 4040732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # flag for every libtool invocation. 4041732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # allow_undefined=no 4042311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 4043732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # FIXME: Unfortunately, there are problems with the above when trying 4044732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # to make a dll which has undefined symbols, in which case not 4045732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # even a static library is built. For now, we need to specify 4046732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # -no-undefined on the libtool link line when we can be certain 4047732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # that all symbols are satisfied, otherwise we get a static library. 4048732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com allow_undefined=yes 4049732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 4050732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) 4051732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com allow_undefined=yes 4052732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 4053732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 4054732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com libtool_args=$nonopt 4055732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com base_compile="$nonopt $@" 4056732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com compile_command=$nonopt 4057732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com finalize_command=$nonopt 4058311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 4059732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com compile_rpath= 4060732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com finalize_rpath= 4061732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com compile_shlibpath= 4062732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com finalize_shlibpath= 4063732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com convenience= 4064732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com old_convenience= 4065732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com deplibs= 4066732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com old_deplibs= 4067732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com compiler_flags= 4068732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com linker_flags= 4069732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com dllsearchpath= 4070732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com lib_search_path=`pwd` 4071732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com inst_prefix_dir= 4072732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com new_inherited_linker_flags= 4073311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 4074732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com avoid_version=no 4075732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com dlfiles= 4076732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com dlprefiles= 4077732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com dlself=no 4078732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com export_dynamic=no 4079732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com export_symbols= 4080732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com export_symbols_regex= 4081732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com generated= 4082732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com libobjs= 4083732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ltlibs= 4084732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com module=no 4085732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com no_install=no 4086732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com objs= 4087732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com non_pic_objects= 4088732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com precious_files_regex= 4089732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com prefer_static_libs=no 4090732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com preload=no 4091732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com prev= 4092732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com prevarg= 4093732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com release= 4094732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com rpath= 4095732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com xrpath= 4096732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com perm_rpath= 4097732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com temp_rpath= 4098732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com thread_safe=no 4099732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com vinfo= 4100732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com vinfo_number=no 4101732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com weak_libs= 4102732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com single_module="${wl}-single_module" 4103732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_infer_tag $base_compile 4104311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 4105732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # We need to know -static, to get the right output filenames. 4106732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for arg 4107732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com do 4108732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $arg in 4109732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -shared) 4110732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test "$build_libtool_libs" != yes && \ 4111732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_fatal_configuration "can not build a shared library" 4112732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com build_old_libs=no 4113732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com break 4114732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 4115732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -all-static | -static | -static-libtool-libs) 4116732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $arg in 4117732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -all-static) 4118732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then 4119732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_warning "complete static linking is impossible in this configuration" 4120732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 4121732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$link_static_flag"; then 4122732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com dlopen_self=$dlopen_self_static 4123732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 4124732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com prefer_static_libs=yes 4125732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 4126732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -static) 4127732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -z "$pic_flag" && test -n "$link_static_flag"; then 4128732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com dlopen_self=$dlopen_self_static 4129732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 4130732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com prefer_static_libs=built 4131732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 4132732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -static-libtool-libs) 4133732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -z "$pic_flag" && test -n "$link_static_flag"; then 4134732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com dlopen_self=$dlopen_self_static 4135732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 4136732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com prefer_static_libs=yes 4137732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 4138732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 4139732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com build_libtool_libs=no 4140732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com build_old_libs=yes 4141732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com break 4142732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 4143732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 4144732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done 4145311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 4146732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # See if our shared archives depend on static archives. 4147732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test -n "$old_archive_from_new_cmds" && build_old_libs=yes 4148311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 4149732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Go through the arguments, transforming them on the way. 4150732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com while test "$#" -gt 0; do 4151732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com arg="$1" 4152732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com shift 4153732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_quote_for_eval "$arg" 4154732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com qarg=$func_quote_for_eval_unquoted_result 4155732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_append libtool_args " $func_quote_for_eval_result" 4156311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 4157732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # If the previous option needs an argument, assign it. 4158732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$prev"; then 4159732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $prev in 4160732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com output) 4161732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_append compile_command " @OUTPUT@" 4162732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_append finalize_command " @OUTPUT@" 4163732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 4164732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 4165311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 4166732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $prev in 4167732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com dlfiles|dlprefiles) 4168732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$preload" = no; then 4169732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Add the symbol object into the linking commands. 4170732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_append compile_command " @SYMFILE@" 4171732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_append finalize_command " @SYMFILE@" 4172732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com preload=yes 4173311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff fi 4174732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $arg in 4175732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *.la | *.lo) ;; # We handle these cases below. 4176732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com force) 4177732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$dlself" = no; then 4178732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com dlself=needless 4179732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com export_dynamic=yes 4180732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 4181732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com prev= 4182732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com continue 4183732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 4184732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com self) 4185732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$prev" = dlprefiles; then 4186732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com dlself=yes 4187732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then 4188732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com dlself=yes 4189732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 4190732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com dlself=needless 4191732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com export_dynamic=yes 4192732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 4193732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com prev= 4194732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com continue 4195732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 4196732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) 4197732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$prev" = dlfiles; then 4198732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com dlfiles="$dlfiles $arg" 4199732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 4200732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com dlprefiles="$dlprefiles $arg" 4201732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 4202732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com prev= 4203732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com continue 4204732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 4205732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 4206732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 4207732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com expsyms) 4208732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com export_symbols="$arg" 4209732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test -f "$arg" \ 4210732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com || func_fatal_error "symbol file \`$arg' does not exist" 4211732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com prev= 4212732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com continue 4213732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 4214732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com expsyms_regex) 4215732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com export_symbols_regex="$arg" 4216732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com prev= 4217732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com continue 4218732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 4219732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com framework) 4220311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff case $host in 4221732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *-*-darwin*) 4222732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case "$deplibs " in 4223732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *" $qarg.ltframework "*) ;; 4224732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) deplibs="$deplibs $qarg.ltframework" # this is fixed later 4225732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 4226732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 4227732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 4228311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff esac 4229732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com prev= 4230732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com continue 4231311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff ;; 4232732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com inst_prefix) 4233732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com inst_prefix_dir="$arg" 4234732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com prev= 4235732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com continue 4236311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff ;; 4237732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com objectlist) 4238732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -f "$arg"; then 4239732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com save_arg=$arg 4240732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com moreargs= 4241732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for fil in `cat "$save_arg"` 4242732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com do 4243732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# moreargs="$moreargs $fil" 4244732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com arg=$fil 4245732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # A libtool-controlled object. 4246311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 4247732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Check to see that this really is a libtool object. 4248732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if func_lalib_unsafe_p "$arg"; then 4249732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com pic_object= 4250732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com non_pic_object= 4251311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 4252732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Read the .lo file 4253732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_source "$arg" 4254311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 4255732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -z "$pic_object" || 4256732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test -z "$non_pic_object" || 4257732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test "$pic_object" = none && 4258732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test "$non_pic_object" = none; then 4259732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_fatal_error "cannot find name of object for \`$arg'" 4260732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 4261311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 4262732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Extract subdirectory from the argument. 4263732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_dirname "$arg" "/" "" 4264732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com xdir="$func_dirname_result" 4265311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 4266732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$pic_object" != none; then 4267732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Prepend the subdirectory the object is found in. 4268732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com pic_object="$xdir$pic_object" 4269311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 4270732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$prev" = dlfiles; then 4271732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then 4272732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com dlfiles="$dlfiles $pic_object" 4273732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com prev= 4274732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com continue 4275732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 4276732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # If libtool objects are unsupported, then we need to preload. 4277732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com prev=dlprefiles 4278732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 4279732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 4280311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 4281732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # CHECK ME: I think I busted this. -Ossama 4282732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$prev" = dlprefiles; then 4283732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Preload the old-style object. 4284732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com dlprefiles="$dlprefiles $pic_object" 4285732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com prev= 4286732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 4287311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 4288732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # A PIC object. 4289732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_append libobjs " $pic_object" 4290732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com arg="$pic_object" 4291732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 4292311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 4293732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Non-PIC object. 4294732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$non_pic_object" != none; then 4295732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Prepend the subdirectory the object is found in. 4296732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com non_pic_object="$xdir$non_pic_object" 4297311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 4298732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # A standard non-PIC object 4299732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_append non_pic_objects " $non_pic_object" 4300732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -z "$pic_object" || test "$pic_object" = none ; then 4301732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com arg="$non_pic_object" 4302732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 4303732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 4304732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # If the PIC object exists, use it instead. 4305732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # $xdir was prepended to $pic_object above. 4306732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com non_pic_object="$pic_object" 4307732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_append non_pic_objects " $non_pic_object" 4308732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 4309732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 4310732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Only an error if not doing a dry-run. 4311732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if $opt_dry_run; then 4312732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Extract subdirectory from the argument. 4313732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_dirname "$arg" "/" "" 4314732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com xdir="$func_dirname_result" 4315732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 4316732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_lo2o "$arg" 4317732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com pic_object=$xdir$objdir/$func_lo2o_result 4318732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com non_pic_object=$xdir$func_lo2o_result 4319732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_append libobjs " $pic_object" 4320732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_append non_pic_objects " $non_pic_object" 4321732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 4322732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_fatal_error "\`$arg' is not a valid libtool object" 4323732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 4324732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 4325732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done 4326311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff else 4327732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_fatal_error "link input file \`$arg' does not exist" 4328311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff fi 4329732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com arg=$save_arg 4330732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com prev= 4331732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com continue 4332732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 4333732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com precious_regex) 4334732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com precious_files_regex="$arg" 4335732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com prev= 4336732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com continue 4337732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 4338732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com release) 4339732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com release="-$arg" 4340732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com prev= 4341732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com continue 4342732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 4343732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com rpath | xrpath) 4344732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # We need an absolute path. 4345732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $arg in 4346732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com [\\/]* | [A-Za-z]:[\\/]*) ;; 4347732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) 4348732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_fatal_error "only absolute run-paths are allowed" 4349732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 4350732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 4351732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$prev" = rpath; then 4352732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case "$rpath " in 4353732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *" $arg "*) ;; 4354732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) rpath="$rpath $arg" ;; 4355732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 4356311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff else 4357732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case "$xrpath " in 4358732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *" $arg "*) ;; 4359732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) xrpath="$xrpath $arg" ;; 4360732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 4361311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff fi 4362732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com prev= 4363732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com continue 4364732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 4365732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com shrext) 4366732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com shrext_cmds="$arg" 4367732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com prev= 4368732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com continue 4369732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 4370732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com weak) 4371732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com weak_libs="$weak_libs $arg" 4372732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com prev= 4373732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com continue 4374732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 4375732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com xcclinker) 4376732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com linker_flags="$linker_flags $qarg" 4377732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com compiler_flags="$compiler_flags $qarg" 4378732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com prev= 4379732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_append compile_command " $qarg" 4380732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_append finalize_command " $qarg" 4381732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com continue 4382732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 4383732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com xcompiler) 4384732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com compiler_flags="$compiler_flags $qarg" 4385732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com prev= 4386732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_append compile_command " $qarg" 4387732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_append finalize_command " $qarg" 4388732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com continue 4389732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 4390732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com xlinker) 4391732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com linker_flags="$linker_flags $qarg" 4392732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com compiler_flags="$compiler_flags $wl$qarg" 4393732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com prev= 4394732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_append compile_command " $wl$qarg" 4395732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_append finalize_command " $wl$qarg" 4396732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com continue 4397732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 4398732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) 4399732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com eval "$prev=\"\$arg\"" 4400732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com prev= 4401732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com continue 4402732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 4403311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff esac 4404732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi # test -n "$prev" 4405311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 4406732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com prevarg="$arg" 4407311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 4408732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $arg in 4409732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -all-static) 4410732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$link_static_flag"; then 4411732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # See comment for -static flag below, for more details. 4412732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_append compile_command " $link_static_flag" 4413732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_append finalize_command " $link_static_flag" 4414732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 4415732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com continue 4416732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 4417311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 4418732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -allow-undefined) 4419732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # FIXME: remove this flag sometime in the future. 4420732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_fatal_error "\`-allow-undefined' must not be used because it is the default" 4421732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 4422311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 4423732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -avoid-version) 4424732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com avoid_version=yes 4425732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com continue 4426732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 4427311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 4428732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -dlopen) 4429732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com prev=dlfiles 4430732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com continue 4431732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 4432311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 4433732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -dlpreopen) 4434732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com prev=dlprefiles 4435732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com continue 4436732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 4437311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 4438732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -export-dynamic) 4439732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com export_dynamic=yes 4440732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com continue 4441732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 4442311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 4443732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -export-symbols | -export-symbols-regex) 4444732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$export_symbols" || test -n "$export_symbols_regex"; then 4445732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_fatal_error "more than one -exported-symbols argument is not allowed" 4446732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 4447732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "X$arg" = "X-export-symbols"; then 4448732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com prev=expsyms 4449732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 4450732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com prev=expsyms_regex 4451732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 4452732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com continue 4453732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 4454311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 4455732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -framework) 4456732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com prev=framework 4457732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com continue 4458732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 4459311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 4460732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -inst-prefix-dir) 4461732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com prev=inst_prefix 4462732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com continue 4463732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 4464311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 4465732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* 4466732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # so, if we see these flags be careful not to treat them like -L 4467732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -L[A-Z][A-Z]*:*) 4468732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $with_gcc/$host in 4469732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com no/*-*-irix* | /*-*-irix*) 4470732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_append compile_command " $arg" 4471732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_append finalize_command " $arg" 4472732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 4473732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 4474732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com continue 4475732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 4476311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 4477732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -L*) 4478732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_stripname '-L' '' "$arg" 4479732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com dir=$func_stripname_result 4480732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -z "$dir"; then 4481732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$#" -gt 0; then 4482732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_fatal_error "require no space between \`-L' and \`$1'" 4483732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 4484732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_fatal_error "need path for \`-L' option" 4485732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 4486732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 4487732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # We need an absolute path. 4488732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $dir in 4489732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com [\\/]* | [A-Za-z]:[\\/]*) ;; 4490732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) 4491732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com absdir=`cd "$dir" && pwd` 4492732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test -z "$absdir" && \ 4493732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_fatal_error "cannot determine absolute directory name of \`$dir'" 4494732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com dir="$absdir" 4495732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 4496732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 4497732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case "$deplibs " in 4498732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *" -L$dir "*) ;; 4499732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) 4500732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com deplibs="$deplibs -L$dir" 4501732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com lib_search_path="$lib_search_path $dir" 4502732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 4503732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 4504732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $host in 4505732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) 4506732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com testbindir=`$ECHO "X$dir" | $Xsed -e 's*/lib$*/bin*'` 4507732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case :$dllsearchpath: in 4508732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *":$dir:"*) ;; 4509732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ::) dllsearchpath=$dir;; 4510732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) dllsearchpath="$dllsearchpath:$dir";; 4511732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 4512732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case :$dllsearchpath: in 4513732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *":$testbindir:"*) ;; 4514732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ::) dllsearchpath=$testbindir;; 4515732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) dllsearchpath="$dllsearchpath:$testbindir";; 4516732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 4517732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 4518732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 4519732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com continue 4520732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 4521311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 4522732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -l*) 4523732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then 4524732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $host in 4525732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc*) 4526732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # These systems don't actually have a C or math library (as such) 4527732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com continue 4528732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 4529732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *-*-os2*) 4530732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # These systems don't actually have a C library (as such) 4531732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test "X$arg" = "X-lc" && continue 4532732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 4533732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) 4534732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Do not include libc due to us having libc/libc_r. 4535732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test "X$arg" = "X-lc" && continue 4536732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 4537732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *-*-rhapsody* | *-*-darwin1.[012]) 4538732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Rhapsody C and math libraries are in the System framework 4539732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com deplibs="$deplibs System.ltframework" 4540732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com continue 4541732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 4542732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *-*-sco3.2v5* | *-*-sco5v6*) 4543732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Causes problems with __ctype 4544732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test "X$arg" = "X-lc" && continue 4545732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 4546732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) 4547732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Compiler inserts libc in the correct place for threads to work 4548732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test "X$arg" = "X-lc" && continue 4549732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 4550732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 4551732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com elif test "X$arg" = "X-lc_r"; then 4552732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $host in 4553732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) 4554732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Do not include libc_r directly, use -pthread flag. 4555732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com continue 4556732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 4557732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 4558732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 4559732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com deplibs="$deplibs $arg" 4560732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com continue 4561732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 4562311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 4563732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -module) 4564732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com module=yes 4565732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com continue 4566732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 4567311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 4568732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Tru64 UNIX uses -model [arg] to determine the layout of C++ 4569732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # classes, name mangling, and exception handling. 4570732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Darwin uses the -arch flag to determine output architecture. 4571732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -model|-arch|-isysroot) 4572732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com compiler_flags="$compiler_flags $arg" 4573732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_append compile_command " $arg" 4574732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_append finalize_command " $arg" 4575732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com prev=xcompiler 4576732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com continue 4577732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 4578311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 4579732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) 4580732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com compiler_flags="$compiler_flags $arg" 4581732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_append compile_command " $arg" 4582732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_append finalize_command " $arg" 4583732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case "$new_inherited_linker_flags " in 4584732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *" $arg "*) ;; 4585732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com * ) new_inherited_linker_flags="$new_inherited_linker_flags $arg" ;; 4586732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 4587732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com continue 4588732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 4589311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 4590732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -multi_module) 4591732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com single_module="${wl}-multi_module" 4592732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com continue 4593732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 4594311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 4595732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -no-fast-install) 4596732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fast_install=no 4597732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com continue 4598732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 4599311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 4600732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -no-install) 4601732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $host in 4602732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*) 4603732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # The PATH hackery in wrapper scripts is required on Windows 4604732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # and Darwin in order for the loader to find any dlls it needs. 4605732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_warning "\`-no-install' is ignored for $host" 4606732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_warning "assuming \`-no-fast-install' instead" 4607732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fast_install=no 4608732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 4609732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) no_install=yes ;; 4610732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 4611732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com continue 4612732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 4613311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 4614732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -no-undefined) 4615732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com allow_undefined=no 4616732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com continue 4617732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 4618311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 4619732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -objectlist) 4620732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com prev=objectlist 4621732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com continue 4622732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 4623311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 4624732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -o) prev=output ;; 4625311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 4626732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -precious-files-regex) 4627732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com prev=precious_regex 4628732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com continue 4629732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 4630311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 4631732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -release) 4632732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com prev=release 4633732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com continue 4634732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 4635311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 4636732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -rpath) 4637732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com prev=rpath 4638732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com continue 4639732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 4640311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 4641732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -R) 4642732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com prev=xrpath 4643732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com continue 4644732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 4645311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 4646732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -R*) 4647732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_stripname '-R' '' "$arg" 4648732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com dir=$func_stripname_result 4649732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # We need an absolute path. 4650732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $dir in 4651732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com [\\/]* | [A-Za-z]:[\\/]*) ;; 4652732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) 4653732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_fatal_error "only absolute run-paths are allowed" 4654732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 4655732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 4656732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case "$xrpath " in 4657732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *" $dir "*) ;; 4658732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) xrpath="$xrpath $dir" ;; 4659732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 4660732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com continue 4661732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 4662311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 4663732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -shared) 4664732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # The effects of -shared are defined in a previous loop. 4665732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com continue 4666732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 4667311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 4668732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -shrext) 4669732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com prev=shrext 4670732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com continue 4671732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 4672311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 4673732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -static | -static-libtool-libs) 4674732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # The effects of -static are defined in a previous loop. 4675732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # We used to do the same as -all-static on platforms that 4676732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # didn't have a PIC flag, but the assumption that the effects 4677732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # would be equivalent was wrong. It would break on at least 4678732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Digital Unix and AIX. 4679732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com continue 4680732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 4681311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 4682732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -thread-safe) 4683732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com thread_safe=yes 4684732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com continue 4685732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 4686311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 4687732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -version-info) 4688732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com prev=vinfo 4689732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com continue 4690732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 4691311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 4692732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -version-number) 4693732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com prev=vinfo 4694732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com vinfo_number=yes 4695732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com continue 4696732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 4697311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 4698732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -weak) 4699732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com prev=weak 4700732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com continue 4701732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 4702311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 4703732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -Wc,*) 4704732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_stripname '-Wc,' '' "$arg" 4705732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com args=$func_stripname_result 4706732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com arg= 4707732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com save_ifs="$IFS"; IFS=',' 4708732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for flag in $args; do 4709732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com IFS="$save_ifs" 4710732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_quote_for_eval "$flag" 4711732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com arg="$arg $wl$func_quote_for_eval_result" 4712732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com compiler_flags="$compiler_flags $func_quote_for_eval_result" 4713732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done 4714732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com IFS="$save_ifs" 4715732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_stripname ' ' '' "$arg" 4716732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com arg=$func_stripname_result 4717732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 4718311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 4719732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -Wl,*) 4720732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_stripname '-Wl,' '' "$arg" 4721732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com args=$func_stripname_result 4722732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com arg= 4723732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com save_ifs="$IFS"; IFS=',' 4724732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for flag in $args; do 4725732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com IFS="$save_ifs" 4726732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_quote_for_eval "$flag" 4727732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com arg="$arg $wl$func_quote_for_eval_result" 4728732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com compiler_flags="$compiler_flags $wl$func_quote_for_eval_result" 4729732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com linker_flags="$linker_flags $func_quote_for_eval_result" 4730732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done 4731732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com IFS="$save_ifs" 4732732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_stripname ' ' '' "$arg" 4733732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com arg=$func_stripname_result 4734732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 4735311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 4736732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -Xcompiler) 4737732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com prev=xcompiler 4738732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com continue 4739732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 4740311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 4741732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -Xlinker) 4742732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com prev=xlinker 4743732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com continue 4744732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 4745311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 4746732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -XCClinker) 4747732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com prev=xcclinker 4748732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com continue 4749732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 4750311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 4751732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # -msg_* for osf cc 4752732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -msg_*) 4753732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_quote_for_eval "$arg" 4754732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com arg="$func_quote_for_eval_result" 4755732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 4756311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 4757732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # -64, -mips[0-9] enable 64-bit mode on the SGI compiler 4758732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # -r[0-9][0-9]* specifies the processor on the SGI compiler 4759732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler 4760732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # +DA*, +DD* enable 64-bit mode on the HP compiler 4761732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # -q* pass through compiler args for the IBM compiler 4762732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # -m*, -t[45]*, -txscale* pass through architecture-specific 4763732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # compiler args for GCC 4764732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # -F/path gives path to uninstalled frameworks, gcc on darwin 4765732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC 4766732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # @file GCC response files 4767732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ 4768732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*) 4769732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_quote_for_eval "$arg" 4770732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com arg="$func_quote_for_eval_result" 4771732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_append compile_command " $arg" 4772732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_append finalize_command " $arg" 4773732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com compiler_flags="$compiler_flags $arg" 4774732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com continue 4775732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 4776311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 4777732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Some other compiler flag. 4778732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -* | +*) 4779732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_quote_for_eval "$arg" 4780732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com arg="$func_quote_for_eval_result" 4781732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 4782311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 4783732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *.$objext) 4784732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # A standard object. 4785732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com objs="$objs $arg" 4786732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 4787311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 4788732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *.lo) 4789732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # A libtool-controlled object. 4790311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 4791732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Check to see that this really is a libtool object. 4792732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if func_lalib_unsafe_p "$arg"; then 4793732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com pic_object= 4794732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com non_pic_object= 4795311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 4796732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Read the .lo file 4797732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_source "$arg" 4798311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 4799732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -z "$pic_object" || 4800732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test -z "$non_pic_object" || 4801732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test "$pic_object" = none && 4802732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test "$non_pic_object" = none; then 4803732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_fatal_error "cannot find name of object for \`$arg'" 4804732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 4805d18457863096b3685e56f5a8919959f6afbdb121openvcdiff 4806732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Extract subdirectory from the argument. 4807732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_dirname "$arg" "/" "" 4808732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com xdir="$func_dirname_result" 4809311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 4810732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$pic_object" != none; then 4811732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Prepend the subdirectory the object is found in. 4812732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com pic_object="$xdir$pic_object" 4813311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 4814732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$prev" = dlfiles; then 4815732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then 4816732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com dlfiles="$dlfiles $pic_object" 4817732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com prev= 4818732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com continue 4819732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 4820732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # If libtool objects are unsupported, then we need to preload. 4821732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com prev=dlprefiles 4822732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 4823732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 4824311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 4825732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # CHECK ME: I think I busted this. -Ossama 4826732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$prev" = dlprefiles; then 4827732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Preload the old-style object. 4828732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com dlprefiles="$dlprefiles $pic_object" 4829732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com prev= 4830732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 4831311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 4832732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # A PIC object. 4833732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_append libobjs " $pic_object" 4834732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com arg="$pic_object" 4835732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 4836311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 4837732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Non-PIC object. 4838732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$non_pic_object" != none; then 4839732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Prepend the subdirectory the object is found in. 4840732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com non_pic_object="$xdir$non_pic_object" 4841311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 4842732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # A standard non-PIC object 4843732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_append non_pic_objects " $non_pic_object" 4844732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -z "$pic_object" || test "$pic_object" = none ; then 4845732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com arg="$non_pic_object" 4846732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 4847732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 4848732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # If the PIC object exists, use it instead. 4849732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # $xdir was prepended to $pic_object above. 4850732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com non_pic_object="$pic_object" 4851732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_append non_pic_objects " $non_pic_object" 4852732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 4853732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 4854732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Only an error if not doing a dry-run. 4855732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if $opt_dry_run; then 4856732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Extract subdirectory from the argument. 4857732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_dirname "$arg" "/" "" 4858732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com xdir="$func_dirname_result" 4859732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 4860732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_lo2o "$arg" 4861732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com pic_object=$xdir$objdir/$func_lo2o_result 4862732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com non_pic_object=$xdir$func_lo2o_result 4863732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_append libobjs " $pic_object" 4864732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_append non_pic_objects " $non_pic_object" 4865732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 4866732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_fatal_error "\`$arg' is not a valid libtool object" 4867732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 4868732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 4869732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 4870732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 4871732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *.$libext) 4872732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # An archive. 4873732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com deplibs="$deplibs $arg" 4874732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com old_deplibs="$old_deplibs $arg" 4875732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com continue 4876732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 4877732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 4878732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *.la) 4879732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # A libtool-controlled library. 4880732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 4881732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$prev" = dlfiles; then 4882732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # This library was specified with -dlopen. 4883732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com dlfiles="$dlfiles $arg" 4884732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com prev= 4885732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com elif test "$prev" = dlprefiles; then 4886732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # The library was specified with -dlpreopen. 4887732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com dlprefiles="$dlprefiles $arg" 4888732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com prev= 4889732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 4890732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com deplibs="$deplibs $arg" 4891732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 4892732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com continue 4893732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 4894732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 4895732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Some other compiler argument. 4896732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) 4897732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Unknown arguments in both finalize_command and compile_command need 4898732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # to be aesthetically quoted because they are evaled later. 4899732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_quote_for_eval "$arg" 4900732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com arg="$func_quote_for_eval_result" 4901732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 4902732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac # arg 4903732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 4904732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Now actually substitute the argument into the commands. 4905732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$arg"; then 4906732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_append compile_command " $arg" 4907732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_append finalize_command " $arg" 4908732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 4909732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done # argument parsing loop 4910732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 4911732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test -n "$prev" && \ 4912732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_fatal_help "the \`$prevarg' option requires an argument" 4913732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 4914732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then 4915732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com eval arg=\"$export_dynamic_flag_spec\" 4916732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_append compile_command " $arg" 4917732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_append finalize_command " $arg" 4918732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 4919732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 4920732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com oldlibs= 4921732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # calculate the name of the file, without its directory 4922732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_basename "$output" 4923732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com outputname="$func_basename_result" 4924732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com libobjs_save="$libobjs" 4925732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 4926732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$shlibpath_var"; then 4927732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # get the directories listed in $shlibpath_var 4928732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com eval shlib_search_path=\`\$ECHO \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\` 4929732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 4930732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com shlib_search_path= 4931732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 4932732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com eval sys_lib_search_path=\"$sys_lib_search_path_spec\" 4933732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" 4934732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 4935732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_dirname "$output" "/" "" 4936732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com output_objdir="$func_dirname_result$objdir" 4937732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Create the object directory. 4938732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_mkdir_p "$output_objdir" 4939732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 4940732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Determine the type of output 4941732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $output in 4942732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com "") 4943732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_fatal_help "you must specify an output file" 4944732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 4945732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *.$libext) linkmode=oldlib ;; 4946732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *.lo | *.$objext) linkmode=obj ;; 4947732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *.la) linkmode=lib ;; 4948732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) linkmode=prog ;; # Anything else should be a program. 4949732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 4950732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 4951732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com specialdeplibs= 4952732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 4953732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com libs= 4954732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Find all interdependent deplibs by searching for libraries 4955732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # that are linked more than once (e.g. -la -lb -la) 4956732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for deplib in $deplibs; do 4957732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if $opt_duplicate_deps ; then 4958732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case "$libs " in 4959732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; 4960732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 4961732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 4962732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com libs="$libs $deplib" 4963732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done 4964732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 4965732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$linkmode" = lib; then 4966732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com libs="$predeps $libs $compiler_lib_search_path $postdeps" 4967732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 4968732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Compute libraries that are listed more than once in $predeps 4969732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # $postdeps and mark them as special (i.e., whose duplicates are 4970732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # not to be eliminated). 4971732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com pre_post_deps= 4972732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if $opt_duplicate_compiler_generated_deps; then 4973732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for pre_post_dep in $predeps $postdeps; do 4974732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case "$pre_post_deps " in 4975732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;; 4976732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 4977732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com pre_post_deps="$pre_post_deps $pre_post_dep" 4978732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done 4979732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 4980732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com pre_post_deps= 4981732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 4982732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 4983732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com deplibs= 4984732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com newdependency_libs= 4985732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com newlib_search_path= 4986732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com need_relink=no # whether we're linking any uninstalled libtool libraries 4987732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com notinst_deplibs= # not-installed libtool libraries 4988732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com notinst_path= # paths that contain not-installed libtool libraries 4989732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 4990732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $linkmode in 4991732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com lib) 4992732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com passes="conv dlpreopen link" 4993732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for file in $dlfiles $dlprefiles; do 4994732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $file in 4995732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *.la) ;; 4996732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) 4997732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_fatal_help "libraries can \`-dlopen' only libtool libraries: $file" 4998732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 4999732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 5000732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done 5001732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 5002732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com prog) 5003732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com compile_deplibs= 5004732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com finalize_deplibs= 5005732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com alldeplibs=no 5006732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com newdlfiles= 5007732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com newdlprefiles= 5008732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com passes="conv scan dlopen dlpreopen link" 5009732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 5010732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) passes="conv" 5011732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 5012732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 5013732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 5014732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for pass in $passes; do 5015732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # The preopen pass in lib mode reverses $deplibs; put it back here 5016732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # so that -L comes before libs that need it for instance... 5017732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$linkmode,$pass" = "lib,link"; then 5018732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ## FIXME: Find the place where the list is rebuilt in the wrong 5019732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ## order, and fix it there properly 5020732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com tmp_deplibs= 5021732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for deplib in $deplibs; do 5022732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com tmp_deplibs="$deplib $tmp_deplibs" 5023732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done 5024732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com deplibs="$tmp_deplibs" 5025732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 5026732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 5027732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$linkmode,$pass" = "lib,link" || 5028732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test "$linkmode,$pass" = "prog,scan"; then 5029732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com libs="$deplibs" 5030732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com deplibs= 5031732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 5032732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$linkmode" = prog; then 5033732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $pass in 5034732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com dlopen) libs="$dlfiles" ;; 5035732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com dlpreopen) libs="$dlprefiles" ;; 5036732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com link) 5037732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com libs="$deplibs %DEPLIBS%" 5038732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs" 5039732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 5040732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 5041732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 5042732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$linkmode,$pass" = "lib,dlpreopen"; then 5043732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Collect and forward deplibs of preopened libtool libs 5044732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for lib in $dlprefiles; do 5045732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Ignore non-libtool-libs 5046732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com dependency_libs= 5047732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $lib in 5048732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *.la) func_source "$lib" ;; 5049732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 5050732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 5051732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Collect preopened libtool deplibs, except any this library 5052732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # has declared as weak libs 5053732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for deplib in $dependency_libs; do 5054732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com deplib_base=`$ECHO "X$deplib" | $Xsed -e "$basename"` 5055732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case " $weak_libs " in 5056732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *" $deplib_base "*) ;; 5057732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) deplibs="$deplibs $deplib" ;; 5058732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 5059732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done 5060732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done 5061732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com libs="$dlprefiles" 5062732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 5063732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$pass" = dlopen; then 5064732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Collect dlpreopened libraries 5065732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com save_deplibs="$deplibs" 5066732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com deplibs= 5067732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 5068732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 5069732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for deplib in $libs; do 5070732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com lib= 5071732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com found=no 5072732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $deplib in 5073732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) 5074732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$linkmode,$pass" = "prog,link"; then 5075732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com compile_deplibs="$deplib $compile_deplibs" 5076732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com finalize_deplibs="$deplib $finalize_deplibs" 5077732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 5078732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com compiler_flags="$compiler_flags $deplib" 5079732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$linkmode" = lib ; then 5080732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case "$new_inherited_linker_flags " in 5081732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *" $deplib "*) ;; 5082732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;; 5083732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 5084732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 5085732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 5086732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com continue 5087732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 5088732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -l*) 5089732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$linkmode" != lib && test "$linkmode" != prog; then 5090732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_warning "\`-l' is ignored for archives/objects" 5091732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com continue 5092732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 5093732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_stripname '-l' '' "$deplib" 5094732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com name=$func_stripname_result 5095732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$linkmode" = lib; then 5096732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path" 5097732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 5098732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path" 5099732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 5100732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for searchdir in $searchdirs; do 5101732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for search_ext in .la $std_shrext .so .a; do 5102732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Search the libtool library 5103732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com lib="$searchdir/lib${name}${search_ext}" 5104732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -f "$lib"; then 5105732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$search_ext" = ".la"; then 5106732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com found=yes 5107732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 5108732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com found=no 5109732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 5110732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com break 2 5111732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 5112732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done 5113732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done 5114732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$found" != yes; then 5115732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # deplib doesn't seem to be a libtool library 5116732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$linkmode,$pass" = "prog,link"; then 5117732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com compile_deplibs="$deplib $compile_deplibs" 5118732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com finalize_deplibs="$deplib $finalize_deplibs" 5119732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 5120732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com deplibs="$deplib $deplibs" 5121732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" 5122732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 5123732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com continue 5124732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else # deplib is a libtool library 5125732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, 5126732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # We need to do some special things here, and not later. 5127732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then 5128732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case " $predeps $postdeps " in 5129732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *" $deplib "*) 5130732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if func_lalib_p "$lib"; then 5131732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com library_names= 5132732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com old_library= 5133732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_source "$lib" 5134732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for l in $old_library $library_names; do 5135732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ll="$l" 5136732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done 5137732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "X$ll" = "X$old_library" ; then # only static version available 5138732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com found=no 5139732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_dirname "$lib" "" "." 5140732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ladir="$func_dirname_result" 5141732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com lib=$ladir/$old_library 5142732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$linkmode,$pass" = "prog,link"; then 5143732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com compile_deplibs="$deplib $compile_deplibs" 5144732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com finalize_deplibs="$deplib $finalize_deplibs" 5145732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 5146732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com deplibs="$deplib $deplibs" 5147732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" 5148732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 5149732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com continue 5150732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 5151732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 5152732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 5153732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) ;; 5154732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 5155732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 5156732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 5157732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; # -l 5158732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *.ltframework) 5159732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$linkmode,$pass" = "prog,link"; then 5160732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com compile_deplibs="$deplib $compile_deplibs" 5161732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com finalize_deplibs="$deplib $finalize_deplibs" 5162732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 5163732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com deplibs="$deplib $deplibs" 5164732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$linkmode" = lib ; then 5165732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case "$new_inherited_linker_flags " in 5166732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *" $deplib "*) ;; 5167732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;; 5168732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 5169732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 5170732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 5171732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com continue 5172732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 5173732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -L*) 5174732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $linkmode in 5175732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com lib) 5176732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com deplibs="$deplib $deplibs" 5177732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test "$pass" = conv && continue 5178732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com newdependency_libs="$deplib $newdependency_libs" 5179732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_stripname '-L' '' "$deplib" 5180732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com newlib_search_path="$newlib_search_path $func_stripname_result" 5181732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 5182732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com prog) 5183732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$pass" = conv; then 5184732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com deplibs="$deplib $deplibs" 5185732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com continue 5186732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 5187732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$pass" = scan; then 5188732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com deplibs="$deplib $deplibs" 5189732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 5190732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com compile_deplibs="$deplib $compile_deplibs" 5191732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com finalize_deplibs="$deplib $finalize_deplibs" 5192732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 5193732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_stripname '-L' '' "$deplib" 5194732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com newlib_search_path="$newlib_search_path $func_stripname_result" 5195732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 5196732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) 5197732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_warning "\`-L' is ignored for archives/objects" 5198732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 5199732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac # linkmode 5200732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com continue 5201732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; # -L 5202732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -R*) 5203732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$pass" = link; then 5204732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_stripname '-R' '' "$deplib" 5205732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com dir=$func_stripname_result 5206732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Make sure the xrpath contains only unique directories. 5207732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case "$xrpath " in 5208732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *" $dir "*) ;; 5209732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) xrpath="$xrpath $dir" ;; 5210732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 5211732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 5212732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com deplibs="$deplib $deplibs" 5213732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com continue 5214732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 5215732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *.la) lib="$deplib" ;; 5216732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *.$libext) 5217732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$pass" = conv; then 5218732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com deplibs="$deplib $deplibs" 5219732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com continue 5220732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 5221732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $linkmode in 5222732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com lib) 5223732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Linking convenience modules into shared libraries is allowed, 5224732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # but linking other static libraries is non-portable. 5225732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case " $dlpreconveniencelibs " in 5226732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *" $deplib "*) ;; 5227732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) 5228732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com valid_a_lib=no 5229732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $deplibs_check_method in 5230732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com match_pattern*) 5231732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com set dummy $deplibs_check_method; shift 5232732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` 5233732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if eval "\$ECHO \"X$deplib\"" 2>/dev/null | $Xsed -e 10q \ 5234732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com | $EGREP "$match_pattern_regex" > /dev/null; then 5235732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com valid_a_lib=yes 5236732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 5237732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 5238732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com pass_all) 5239732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com valid_a_lib=yes 5240732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 5241732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 5242732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$valid_a_lib" != yes; then 5243732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO 5244732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "*** Warning: Trying to link with static lib archive $deplib." 5245732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "*** I have the capability to make that library automatically link in when" 5246732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "*** you link to this library. But I can only do this if you have a" 5247732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "*** shared version of the library, which you do not appear to have" 5248732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "*** because the file extensions .$libext of this argument makes me believe" 5249732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "*** that it is just a static archive that I should not use here." 5250732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 5251732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO 5252732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "*** Warning: Linking the shared library $output against the" 5253732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "*** static library $deplib is not portable!" 5254732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com deplibs="$deplib $deplibs" 5255732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 5256732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 5257732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 5258732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com continue 5259732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 5260732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com prog) 5261732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$pass" != link; then 5262732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com deplibs="$deplib $deplibs" 5263732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 5264732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com compile_deplibs="$deplib $compile_deplibs" 5265732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com finalize_deplibs="$deplib $finalize_deplibs" 5266732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 5267732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com continue 5268732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 5269732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac # linkmode 5270732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; # *.$libext 5271732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *.lo | *.$objext) 5272732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$pass" = conv; then 5273732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com deplibs="$deplib $deplibs" 5274732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com elif test "$linkmode" = prog; then 5275732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then 5276732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # If there is no dlopen support or we're linking statically, 5277732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # we need to preload. 5278732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com newdlprefiles="$newdlprefiles $deplib" 5279732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com compile_deplibs="$deplib $compile_deplibs" 5280732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com finalize_deplibs="$deplib $finalize_deplibs" 5281732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 5282732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com newdlfiles="$newdlfiles $deplib" 5283732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 5284732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 5285732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com continue 5286732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 5287732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com %DEPLIBS%) 5288732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com alldeplibs=yes 5289732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com continue 5290732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 5291732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac # case $deplib 5292732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 5293732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$found" = yes || test -f "$lib"; then : 5294732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 5295732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'" 5296732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 5297732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 5298732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Check to see that this really is a libtool archive. 5299732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_lalib_unsafe_p "$lib" \ 5300732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com || func_fatal_error "\`$lib' is not a valid libtool archive" 5301732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 5302732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_dirname "$lib" "" "." 5303732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ladir="$func_dirname_result" 5304732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 5305732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com dlname= 5306732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com dlopen= 5307732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com dlpreopen= 5308732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com libdir= 5309732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com library_names= 5310732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com old_library= 5311732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com inherited_linker_flags= 5312732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # If the library was installed with an old release of libtool, 5313732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # it will not redefine variables installed, or shouldnotlink 5314732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com installed=yes 5315732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com shouldnotlink=no 5316732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com avoidtemprpath= 5317732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 5318732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 5319732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Read the .la file 5320732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_source "$lib" 5321732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 5322732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Convert "-framework foo" to "foo.ltframework" 5323732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$inherited_linker_flags"; then 5324732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com tmp_inherited_linker_flags=`$ECHO "X$inherited_linker_flags" | $Xsed -e 's/-framework \([^ $]*\)/\1.ltframework/g'` 5325732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do 5326732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case " $new_inherited_linker_flags " in 5327732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *" $tmp_inherited_linker_flag "*) ;; 5328732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) new_inherited_linker_flags="$new_inherited_linker_flags $tmp_inherited_linker_flag";; 5329732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 5330732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done 5331732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 5332732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com dependency_libs=`$ECHO "X $dependency_libs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` 5333732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$linkmode,$pass" = "lib,link" || 5334732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test "$linkmode,$pass" = "prog,scan" || 5335732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com { test "$linkmode" != prog && test "$linkmode" != lib; }; then 5336732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test -n "$dlopen" && dlfiles="$dlfiles $dlopen" 5337732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen" 5338732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 5339732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 5340732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$pass" = conv; then 5341732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Only check for convenience libraries 5342732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com deplibs="$lib $deplibs" 5343732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -z "$libdir"; then 5344732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -z "$old_library"; then 5345732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_fatal_error "cannot find name of link library for \`$lib'" 5346732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 5347732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # It is a libtool convenience library, so add in its objects. 5348732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com convenience="$convenience $ladir/$objdir/$old_library" 5349732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com old_convenience="$old_convenience $ladir/$objdir/$old_library" 5350732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com tmp_libs= 5351732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for deplib in $dependency_libs; do 5352732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com deplibs="$deplib $deplibs" 5353732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if $opt_duplicate_deps ; then 5354732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case "$tmp_libs " in 5355732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; 5356732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 5357732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 5358732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com tmp_libs="$tmp_libs $deplib" 5359732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done 5360732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com elif test "$linkmode" != prog && test "$linkmode" != lib; then 5361732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_fatal_error "\`$lib' is not a convenience library" 5362732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 5363732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com continue 5364732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi # $pass = conv 5365732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 5366732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 5367732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Get the name of the library we link against. 5368732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com linklib= 5369732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for l in $old_library $library_names; do 5370732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com linklib="$l" 5371732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done 5372732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -z "$linklib"; then 5373732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_fatal_error "cannot find name of link library for \`$lib'" 5374732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 5375732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 5376732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # This library was specified with -dlopen. 5377732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$pass" = dlopen; then 5378732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -z "$libdir"; then 5379732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_fatal_error "cannot -dlopen a convenience library: \`$lib'" 5380732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 5381732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -z "$dlname" || 5382732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test "$dlopen_support" != yes || 5383732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test "$build_libtool_libs" = no; then 5384732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # If there is no dlname, no dlopen support or we're linking 5385732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # statically, we need to preload. We also need to preload any 5386732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # dependent libraries so libltdl's deplib preloader doesn't 5387732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # bomb out in the load deplibs phase. 5388732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com dlprefiles="$dlprefiles $lib $dependency_libs" 5389732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 5390732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com newdlfiles="$newdlfiles $lib" 5391732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 5392732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com continue 5393732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi # $pass = dlopen 5394732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 5395732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # We need an absolute path. 5396732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $ladir in 5397732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; 5398732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) 5399732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com abs_ladir=`cd "$ladir" && pwd` 5400732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -z "$abs_ladir"; then 5401732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_warning "cannot determine absolute directory name of \`$ladir'" 5402732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_warning "passing it literally to the linker, although it might fail" 5403732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com abs_ladir="$ladir" 5404732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 5405732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 5406732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 5407732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_basename "$lib" 5408732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com laname="$func_basename_result" 5409732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 5410732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Find the relevant object directory and library name. 5411732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "X$installed" = Xyes; then 5412732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then 5413732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_warning "library \`$lib' was moved." 5414732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com dir="$ladir" 5415732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com absdir="$abs_ladir" 5416732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com libdir="$abs_ladir" 5417732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 5418732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com dir="$libdir" 5419732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com absdir="$libdir" 5420732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 5421732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes 5422732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 5423732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then 5424732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com dir="$ladir" 5425732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com absdir="$abs_ladir" 5426732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Remove this search path later 5427732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com notinst_path="$notinst_path $abs_ladir" 5428732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 5429732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com dir="$ladir/$objdir" 5430732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com absdir="$abs_ladir/$objdir" 5431732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Remove this search path later 5432732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com notinst_path="$notinst_path $abs_ladir" 5433732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 5434732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi # $installed = yes 5435732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_stripname 'lib' '.la' "$laname" 5436732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com name=$func_stripname_result 5437732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 5438732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # This library was specified with -dlpreopen. 5439732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$pass" = dlpreopen; then 5440732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -z "$libdir" && test "$linkmode" = prog; then 5441732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'" 5442732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 5443732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Prefer using a static library (so that no silly _DYNAMIC symbols 5444732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # are required to link). 5445732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$old_library"; then 5446732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com newdlprefiles="$newdlprefiles $dir/$old_library" 5447732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Keep a list of preopened convenience libraries to check 5448732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # that they are being used correctly in the link pass. 5449732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test -z "$libdir" && \ 5450732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com dlpreconveniencelibs="$dlpreconveniencelibs $dir/$old_library" 5451732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Otherwise, use the dlname, so that lt_dlopen finds it. 5452732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com elif test -n "$dlname"; then 5453732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com newdlprefiles="$newdlprefiles $dir/$dlname" 5454732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 5455732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com newdlprefiles="$newdlprefiles $dir/$linklib" 5456732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 5457732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi # $pass = dlpreopen 5458732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 5459732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -z "$libdir"; then 5460732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Link the convenience library 5461732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$linkmode" = lib; then 5462732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com deplibs="$dir/$old_library $deplibs" 5463732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com elif test "$linkmode,$pass" = "prog,link"; then 5464732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com compile_deplibs="$dir/$old_library $compile_deplibs" 5465732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com finalize_deplibs="$dir/$old_library $finalize_deplibs" 5466732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 5467732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com deplibs="$lib $deplibs" # used for prog,scan pass 5468732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 5469732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com continue 5470732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 5471732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 5472732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 5473732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$linkmode" = prog && test "$pass" != link; then 5474732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com newlib_search_path="$newlib_search_path $ladir" 5475732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com deplibs="$lib $deplibs" 5476732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 5477732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com linkalldeplibs=no 5478732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$link_all_deplibs" != no || test -z "$library_names" || 5479732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test "$build_libtool_libs" = no; then 5480732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com linkalldeplibs=yes 5481732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 5482732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 5483732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com tmp_libs= 5484732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for deplib in $dependency_libs; do 5485732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $deplib in 5486732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -L*) func_stripname '-L' '' "$deplib" 5487732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com newlib_search_path="$newlib_search_path $func_stripname_result" 5488732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 5489732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 5490732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Need to link against all dependency_libs? 5491732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$linkalldeplibs" = yes; then 5492732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com deplibs="$deplib $deplibs" 5493732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 5494732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Need to hardcode shared library paths 5495732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # or/and link against static libraries 5496732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com newdependency_libs="$deplib $newdependency_libs" 5497732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 5498732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if $opt_duplicate_deps ; then 5499732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case "$tmp_libs " in 5500732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; 5501732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 5502732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 5503732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com tmp_libs="$tmp_libs $deplib" 5504732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done # for deplib 5505732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com continue 5506732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi # $linkmode = prog... 5507732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 5508732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$linkmode,$pass" = "prog,link"; then 5509732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$library_names" && 5510732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com { { test "$prefer_static_libs" = no || 5511732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test "$prefer_static_libs,$installed" = "built,yes"; } || 5512732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test -z "$old_library"; }; then 5513732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # We need to hardcode the library path 5514732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then 5515732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Make sure the rpath contains only unique directories. 5516732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case "$temp_rpath:" in 5517732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *"$absdir:"*) ;; 5518732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) temp_rpath="$temp_rpath$absdir:" ;; 5519732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 5520732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 5521732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 5522732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Hardcode the library path. 5523732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Skip directories that are in the system default run-time 5524732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # search path. 5525732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case " $sys_lib_dlsearch_path " in 5526732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *" $absdir "*) ;; 5527732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) 5528732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case "$compile_rpath " in 5529732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *" $absdir "*) ;; 5530732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) compile_rpath="$compile_rpath $absdir" 5531732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 5532732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 5533732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 5534732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case " $sys_lib_dlsearch_path " in 5535732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *" $libdir "*) ;; 5536732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) 5537732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case "$finalize_rpath " in 5538732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *" $libdir "*) ;; 5539732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) finalize_rpath="$finalize_rpath $libdir" 5540732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 5541732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 5542732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 5543732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi # $linkmode,$pass = prog,link... 5544732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 5545732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$alldeplibs" = yes && 5546732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com { test "$deplibs_check_method" = pass_all || 5547732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com { test "$build_libtool_libs" = yes && 5548732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test -n "$library_names"; }; }; then 5549732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # We only need to search for static libraries 5550732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com continue 5551732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 5552732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 5553732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 5554732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com link_static=no # Whether the deplib will be linked statically 5555732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com use_static_libs=$prefer_static_libs 5556732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$use_static_libs" = built && test "$installed" = yes; then 5557732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com use_static_libs=no 5558732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 5559732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$library_names" && 5560732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com { test "$use_static_libs" = no || test -z "$old_library"; }; then 5561732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $host in 5562732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *cygwin* | *mingw* | *cegcc*) 5563732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # No point in relinking DLLs because paths are not encoded 5564732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com notinst_deplibs="$notinst_deplibs $lib" 5565732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com need_relink=no 5566732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 5567732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) 5568732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$installed" = no; then 5569732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com notinst_deplibs="$notinst_deplibs $lib" 5570732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com need_relink=yes 5571732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 5572732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 5573732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 5574732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # This is a shared library 5575732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 5576732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Warn about portability, can't link against -module's on some 5577732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # systems (darwin). Don't bleat about dlopened modules though! 5578732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com dlopenmodule="" 5579732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for dlpremoduletest in $dlprefiles; do 5580732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "X$dlpremoduletest" = "X$lib"; then 5581732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com dlopenmodule="$dlpremoduletest" 5582732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com break 5583732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 5584732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done 5585732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then 5586732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO 5587732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$linkmode" = prog; then 5588732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "*** Warning: Linking the executable $output against the loadable module" 5589732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 5590732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "*** Warning: Linking the shared library $output against the loadable module" 5591732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 5592732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "*** $linklib is not portable!" 5593732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 5594732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$linkmode" = lib && 5595732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test "$hardcode_into_libs" = yes; then 5596732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Hardcode the library path. 5597732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Skip directories that are in the system default run-time 5598732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # search path. 5599732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case " $sys_lib_dlsearch_path " in 5600732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *" $absdir "*) ;; 5601732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) 5602732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case "$compile_rpath " in 5603732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *" $absdir "*) ;; 5604732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) compile_rpath="$compile_rpath $absdir" 5605732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 5606732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 5607732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 5608732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case " $sys_lib_dlsearch_path " in 5609732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *" $libdir "*) ;; 5610732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) 5611732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case "$finalize_rpath " in 5612732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *" $libdir "*) ;; 5613732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) finalize_rpath="$finalize_rpath $libdir" 5614732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 5615732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 5616732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 5617732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 5618732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 5619732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$old_archive_from_expsyms_cmds"; then 5620732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # figure out the soname 5621732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com set dummy $library_names 5622732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com shift 5623732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com realname="$1" 5624732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com shift 5625732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com libname=`eval "\\$ECHO \"$libname_spec\""` 5626732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # use dlname if we got it. it's perfectly good, no? 5627732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$dlname"; then 5628732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com soname="$dlname" 5629732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com elif test -n "$soname_spec"; then 5630732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # bleh windows 5631732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $host in 5632732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *cygwin* | mingw* | *cegcc*) 5633732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_arith $current - $age 5634732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com major=$func_arith_result 5635732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com versuffix="-$major" 5636732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 5637732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 5638732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com eval soname=\"$soname_spec\" 5639732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 5640732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com soname="$realname" 5641732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 5642732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 5643732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Make a new name for the extract_expsyms_cmds to use 5644732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com soroot="$soname" 5645732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_basename "$soroot" 5646732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com soname="$func_basename_result" 5647732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_stripname 'lib' '.dll' "$soname" 5648732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com newlib=libimp-$func_stripname_result.a 5649732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 5650732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # If the library has no export list, then create one now 5651732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -f "$output_objdir/$soname-def"; then : 5652732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 5653732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_verbose "extracting exported symbol list from \`$soname'" 5654732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_execute_cmds "$extract_expsyms_cmds" 'exit $?' 5655732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 5656732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 5657732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Create $newlib 5658732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -f "$output_objdir/$newlib"; then :; else 5659732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_verbose "generating import library for \`$soname'" 5660732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?' 5661732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 5662732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # make sure the library variables are pointing to the new library 5663732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com dir=$output_objdir 5664732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com linklib=$newlib 5665732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi # test -n "$old_archive_from_expsyms_cmds" 5666732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 5667732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$linkmode" = prog || test "$mode" != relink; then 5668732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com add_shlibpath= 5669732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com add_dir= 5670732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com add= 5671732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com lib_linked=yes 5672732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $hardcode_action in 5673732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com immediate | unsupported) 5674732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$hardcode_direct" = no; then 5675732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com add="$dir/$linklib" 5676732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $host in 5677732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;; 5678732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *-*-sysv4*uw2*) add_dir="-L$dir" ;; 5679732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ 5680732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *-*-unixware7*) add_dir="-L$dir" ;; 5681732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *-*-darwin* ) 5682732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # if the lib is a (non-dlopened) module then we can not 5683732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # link against it, someone is ignoring the earlier warnings 5684732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if /usr/bin/file -L $add 2> /dev/null | 5685732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $GREP ": [^:]* bundle" >/dev/null ; then 5686732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "X$dlopenmodule" != "X$lib"; then 5687732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "*** Warning: lib $linklib is a module, not a shared library" 5688732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -z "$old_library" ; then 5689732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO 5690732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "*** And there doesn't seem to be a static archive available" 5691732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "*** The link will probably fail, sorry" 5692732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 5693732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com add="$dir/$old_library" 5694732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 5695732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com elif test -n "$old_library"; then 5696732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com add="$dir/$old_library" 5697732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 5698732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 5699732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 5700732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com elif test "$hardcode_minus_L" = no; then 5701732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $host in 5702732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *-*-sunos*) add_shlibpath="$dir" ;; 5703732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 5704732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com add_dir="-L$dir" 5705732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com add="-l$name" 5706732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com elif test "$hardcode_shlibpath_var" = no; then 5707732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com add_shlibpath="$dir" 5708732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com add="-l$name" 5709732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 5710732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com lib_linked=no 5711732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 5712732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 5713732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com relink) 5714732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$hardcode_direct" = yes && 5715732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test "$hardcode_direct_absolute" = no; then 5716732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com add="$dir/$linklib" 5717732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com elif test "$hardcode_minus_L" = yes; then 5718732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com add_dir="-L$dir" 5719732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Try looking first in the location we're being installed to. 5720732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$inst_prefix_dir"; then 5721732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $libdir in 5722732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com [\\/]*) 5723732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com add_dir="$add_dir -L$inst_prefix_dir$libdir" 5724732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 5725732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 5726732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 5727732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com add="-l$name" 5728732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com elif test "$hardcode_shlibpath_var" = yes; then 5729732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com add_shlibpath="$dir" 5730732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com add="-l$name" 5731732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 5732732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com lib_linked=no 5733732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 5734732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 5735732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) lib_linked=no ;; 5736732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 5737732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 5738732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$lib_linked" != yes; then 5739732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_fatal_configuration "unsupported hardcode properties" 5740732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 5741732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 5742732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$add_shlibpath"; then 5743732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case :$compile_shlibpath: in 5744732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *":$add_shlibpath:"*) ;; 5745732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;; 5746732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 5747732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 5748732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$linkmode" = prog; then 5749732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" 5750732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test -n "$add" && compile_deplibs="$add $compile_deplibs" 5751732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 5752732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test -n "$add_dir" && deplibs="$add_dir $deplibs" 5753732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test -n "$add" && deplibs="$add $deplibs" 5754732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$hardcode_direct" != yes && 5755732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test "$hardcode_minus_L" != yes && 5756732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test "$hardcode_shlibpath_var" = yes; then 5757732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case :$finalize_shlibpath: in 5758732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *":$libdir:"*) ;; 5759732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; 5760732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 5761732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 5762732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 5763732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 5764732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 5765732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$linkmode" = prog || test "$mode" = relink; then 5766732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com add_shlibpath= 5767732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com add_dir= 5768732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com add= 5769732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Finalize command for both is simple: just hardcode it. 5770732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$hardcode_direct" = yes && 5771732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test "$hardcode_direct_absolute" = no; then 5772732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com add="$libdir/$linklib" 5773732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com elif test "$hardcode_minus_L" = yes; then 5774732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com add_dir="-L$libdir" 5775732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com add="-l$name" 5776732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com elif test "$hardcode_shlibpath_var" = yes; then 5777732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case :$finalize_shlibpath: in 5778732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *":$libdir:"*) ;; 5779732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; 5780732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 5781732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com add="-l$name" 5782732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com elif test "$hardcode_automatic" = yes; then 5783732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$inst_prefix_dir" && 5784732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test -f "$inst_prefix_dir$libdir/$linklib" ; then 5785732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com add="$inst_prefix_dir$libdir/$linklib" 5786732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 5787732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com add="$libdir/$linklib" 5788732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 5789732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 5790732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # We cannot seem to hardcode it, guess we'll fake it. 5791732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com add_dir="-L$libdir" 5792732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Try looking first in the location we're being installed to. 5793732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$inst_prefix_dir"; then 5794732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $libdir in 5795732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com [\\/]*) 5796732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com add_dir="$add_dir -L$inst_prefix_dir$libdir" 5797732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 5798732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 5799732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 5800732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com add="-l$name" 5801732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 5802732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 5803732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$linkmode" = prog; then 5804732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" 5805732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test -n "$add" && finalize_deplibs="$add $finalize_deplibs" 5806732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 5807732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test -n "$add_dir" && deplibs="$add_dir $deplibs" 5808732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test -n "$add" && deplibs="$add $deplibs" 5809732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 5810732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 5811732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com elif test "$linkmode" = prog; then 5812732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Here we assume that one of hardcode_direct or hardcode_minus_L 5813732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # is not unsupported. This is valid on all known static and 5814732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # shared platforms. 5815732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$hardcode_direct" != unsupported; then 5816732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test -n "$old_library" && linklib="$old_library" 5817732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com compile_deplibs="$dir/$linklib $compile_deplibs" 5818732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com finalize_deplibs="$dir/$linklib $finalize_deplibs" 5819732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 5820732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com compile_deplibs="-l$name -L$dir $compile_deplibs" 5821732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com finalize_deplibs="-l$name -L$dir $finalize_deplibs" 5822732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 5823732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com elif test "$build_libtool_libs" = yes; then 5824732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Not a shared library 5825732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$deplibs_check_method" != pass_all; then 5826732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # We're trying link a shared library against a static one 5827732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # but the system doesn't support it. 5828732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 5829732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Just print a warning and add the library to dependency_libs so 5830732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # that the program can be linked against the static library. 5831732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO 5832732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "*** Warning: This system can not link to static lib archive $lib." 5833732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "*** I have the capability to make that library automatically link in when" 5834732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "*** you link to this library. But I can only do this if you have a" 5835732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "*** shared version of the library, which you do not appear to have." 5836732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$module" = yes; then 5837732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "*** But as you try to build a module library, libtool will still create " 5838732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "*** a static module, that should work as long as the dlopening application" 5839732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "*** is linked with the -dlopen flag to resolve symbols at runtime." 5840732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -z "$global_symbol_pipe"; then 5841732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO 5842732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "*** However, this would only work if libtool was able to extract symbol" 5843732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could" 5844732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "*** not find such a program. So, this module is probably useless." 5845732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "*** \`nm' from GNU binutils and a full rebuild may help." 5846732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 5847732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$build_old_libs" = no; then 5848732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com build_libtool_libs=module 5849732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com build_old_libs=yes 5850732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 5851732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com build_libtool_libs=no 5852732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 5853732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 5854732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 5855732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com deplibs="$dir/$old_library $deplibs" 5856732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com link_static=yes 5857732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 5858732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi # link shared/static library? 5859732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 5860732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$linkmode" = lib; then 5861732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$dependency_libs" && 5862732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com { test "$hardcode_into_libs" != yes || 5863732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test "$build_old_libs" = yes || 5864732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test "$link_static" = yes; }; then 5865732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Extract -R from dependency_libs 5866732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com temp_deplibs= 5867732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for libdir in $dependency_libs; do 5868732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $libdir in 5869732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -R*) func_stripname '-R' '' "$libdir" 5870732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com temp_xrpath=$func_stripname_result 5871732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case " $xrpath " in 5872732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *" $temp_xrpath "*) ;; 5873732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) xrpath="$xrpath $temp_xrpath";; 5874732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac;; 5875732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) temp_deplibs="$temp_deplibs $libdir";; 5876732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 5877732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done 5878732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com dependency_libs="$temp_deplibs" 5879732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 5880732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 5881732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com newlib_search_path="$newlib_search_path $absdir" 5882732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Link against this library 5883732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" 5884732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # ... and its dependency_libs 5885732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com tmp_libs= 5886732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for deplib in $dependency_libs; do 5887732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com newdependency_libs="$deplib $newdependency_libs" 5888732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if $opt_duplicate_deps ; then 5889732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case "$tmp_libs " in 5890732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; 5891732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 5892732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 5893732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com tmp_libs="$tmp_libs $deplib" 5894732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done 5895732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 5896732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$link_all_deplibs" != no; then 5897732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Add the search paths of all dependency libraries 5898732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for deplib in $dependency_libs; do 5899732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com path= 5900732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $deplib in 5901732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -L*) path="$deplib" ;; 5902732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *.la) 5903732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_dirname "$deplib" "" "." 5904732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com dir="$func_dirname_result" 5905732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # We need an absolute path. 5906732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $dir in 5907732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; 5908732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) 5909732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com absdir=`cd "$dir" && pwd` 5910732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -z "$absdir"; then 5911732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_warning "cannot determine absolute directory name of \`$dir'" 5912732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com absdir="$dir" 5913732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 5914732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 5915732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 5916732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if $GREP "^installed=no" $deplib > /dev/null; then 5917732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $host in 5918732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *-*-darwin*) 5919732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com depdepl= 5920732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` 5921732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$deplibrary_names" ; then 5922732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for tmp in $deplibrary_names ; do 5923732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com depdepl=$tmp 5924732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done 5925732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -f "$absdir/$objdir/$depdepl" ; then 5926732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com depdepl="$absdir/$objdir/$depdepl" 5927732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` 5928732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -z "$darwin_install_name"; then 5929732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com darwin_install_name=`${OTOOL64} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` 5930732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 5931732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com compiler_flags="$compiler_flags ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}" 5932732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com linker_flags="$linker_flags -dylib_file ${darwin_install_name}:${depdepl}" 5933732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com path= 5934732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 5935732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 5936732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 5937732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) 5938732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com path="-L$absdir/$objdir" 5939732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 5940732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 5941732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 5942732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` 5943732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test -z "$libdir" && \ 5944732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_fatal_error "\`$deplib' is not a valid libtool archive" 5945732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test "$absdir" != "$libdir" && \ 5946732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_warning "\`$deplib' seems to be moved" 5947732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 5948732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com path="-L$absdir" 5949732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 5950732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 5951732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 5952732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case " $deplibs " in 5953732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *" $path "*) ;; 5954732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) deplibs="$path $deplibs" ;; 5955732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 5956732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done 5957732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi # link_all_deplibs != no 5958732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi # linkmode = lib 5959732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done # for deplib in $libs 5960732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$pass" = link; then 5961732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$linkmode" = "prog"; then 5962732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com compile_deplibs="$new_inherited_linker_flags $compile_deplibs" 5963732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" 5964732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 5965732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com compiler_flags="$compiler_flags "`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` 5966732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 5967732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 5968732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com dependency_libs="$newdependency_libs" 5969732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$pass" = dlpreopen; then 5970732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Link the dlpreopened libraries before other libraries 5971732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for deplib in $save_deplibs; do 5972732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com deplibs="$deplib $deplibs" 5973732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done 5974732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 5975732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$pass" != dlopen; then 5976732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$pass" != conv; then 5977732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Make sure lib_search_path contains only unique directories. 5978732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com lib_search_path= 5979732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for dir in $newlib_search_path; do 5980732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case "$lib_search_path " in 5981732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *" $dir "*) ;; 5982732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) lib_search_path="$lib_search_path $dir" ;; 5983732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 5984732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done 5985732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com newlib_search_path= 5986732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 5987732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 5988732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$linkmode,$pass" != "prog,link"; then 5989732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com vars="deplibs" 5990732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 5991732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com vars="compile_deplibs finalize_deplibs" 5992732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 5993732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for var in $vars dependency_libs; do 5994732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Add libraries to $var in reverse order 5995732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com eval tmp_libs=\"\$$var\" 5996732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com new_libs= 5997732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for deplib in $tmp_libs; do 5998732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # FIXME: Pedantically, this is the right thing to do, so 5999732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # that some nasty dependency loop isn't accidentally 6000732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # broken: 6001732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com #new_libs="$deplib $new_libs" 6002732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Pragmatically, this seems to cause very few problems in 6003732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # practice: 6004732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $deplib in 6005732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -L*) new_libs="$deplib $new_libs" ;; 6006732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -R*) ;; 6007732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) 6008732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # And here is the reason: when a library appears more 6009732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # than once as an explicit dependence of a library, or 6010732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # is implicitly linked in more than once by the 6011732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # compiler, it is considered special, and multiple 6012732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # occurrences thereof are not removed. Compare this 6013732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # with having the same library being listed as a 6014732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # dependency of multiple other libraries: in this case, 6015732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # we know (pedantically, we assume) the library does not 6016732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # need to be listed more than once, so we keep only the 6017732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # last copy. This is not always right, but it is rare 6018732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # enough that we require users that really mean to play 6019732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # such unportable linking tricks to link the library 6020732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # using -Wl,-lname, so that libtool does not consider it 6021732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # for duplicate removal. 6022732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case " $specialdeplibs " in 6023732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *" $deplib "*) new_libs="$deplib $new_libs" ;; 6024732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) 6025732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case " $new_libs " in 6026732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *" $deplib "*) ;; 6027732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) new_libs="$deplib $new_libs" ;; 6028732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 6029732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 6030732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 6031732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 6032732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 6033732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done 6034732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com tmp_libs= 6035732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for deplib in $new_libs; do 6036732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $deplib in 6037732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -L*) 6038732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case " $tmp_libs " in 6039732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *" $deplib "*) ;; 6040732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) tmp_libs="$tmp_libs $deplib" ;; 6041732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 6042732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 6043732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) tmp_libs="$tmp_libs $deplib" ;; 6044732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 6045732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done 6046732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com eval $var=\"$tmp_libs\" 6047732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done # for var 6048732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 6049732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Last step: remove runtime libs from dependency_libs 6050732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # (they stay in deplibs) 6051732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com tmp_libs= 6052732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for i in $dependency_libs ; do 6053732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case " $predeps $postdeps $compiler_lib_search_path " in 6054732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *" $i "*) 6055732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com i="" 6056732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 6057732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 6058732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$i" ; then 6059732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com tmp_libs="$tmp_libs $i" 6060732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 6061732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done 6062732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com dependency_libs=$tmp_libs 6063732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done # for pass 6064732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$linkmode" = prog; then 6065732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com dlfiles="$newdlfiles" 6066732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 6067732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$linkmode" = prog || test "$linkmode" = lib; then 6068732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com dlprefiles="$newdlprefiles" 6069732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 6070732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 6071732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $linkmode in 6072732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com oldlib) 6073732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then 6074732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_warning "\`-dlopen' is ignored for archives" 6075732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 6076732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 6077732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case " $deplibs" in 6078732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *\ -l* | *\ -L*) 6079732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_warning "\`-l' and \`-L' are ignored for archives" ;; 6080732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 6081732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 6082732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test -n "$rpath" && \ 6083732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_warning "\`-rpath' is ignored for archives" 6084732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 6085732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test -n "$xrpath" && \ 6086732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_warning "\`-R' is ignored for archives" 6087732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 6088732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test -n "$vinfo" && \ 6089732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_warning "\`-version-info/-version-number' is ignored for archives" 6090732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 6091732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test -n "$release" && \ 6092732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_warning "\`-release' is ignored for archives" 6093732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 6094732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test -n "$export_symbols$export_symbols_regex" && \ 6095732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_warning "\`-export-symbols' is ignored for archives" 6096732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 6097732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Now set the variables for building old libraries. 6098732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com build_libtool_libs=no 6099732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com oldlibs="$output" 6100732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com objs="$objs$old_deplibs" 6101732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 6102732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 6103732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com lib) 6104732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Make sure we only generate libraries of the form `libNAME.la'. 6105732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $outputname in 6106732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com lib*) 6107732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_stripname 'lib' '.la' "$outputname" 6108732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com name=$func_stripname_result 6109732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com eval shared_ext=\"$shrext_cmds\" 6110732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com eval libname=\"$libname_spec\" 6111732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 6112732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) 6113732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test "$module" = no && \ 6114732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_fatal_help "libtool library \`$output' must begin with \`lib'" 6115732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 6116732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$need_lib_prefix" != no; then 6117732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Add the "lib" prefix for modules if required 6118732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_stripname '' '.la' "$outputname" 6119732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com name=$func_stripname_result 6120732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com eval shared_ext=\"$shrext_cmds\" 6121732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com eval libname=\"$libname_spec\" 6122732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 6123732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_stripname '' '.la' "$outputname" 6124732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com libname=$func_stripname_result 6125732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 6126732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 6127732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 6128732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 6129732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$objs"; then 6130732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$deplibs_check_method" != pass_all; then 6131732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 6132732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 6133732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO 6134732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "*** Warning: Linking the shared library $output against the non-libtool" 6135732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "*** objects $objs is not portable!" 6136732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com libobjs="$libobjs $objs" 6137732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 6138732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 6139732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 6140732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test "$dlself" != no && \ 6141732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_warning "\`-dlopen self' is ignored for libtool libraries" 6142732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 6143732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com set dummy $rpath 6144732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com shift 6145732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test "$#" -gt 1 && \ 6146732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_warning "ignoring multiple \`-rpath's for a libtool library" 6147732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 6148732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com install_libdir="$1" 6149732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 6150732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com oldlibs= 6151732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -z "$rpath"; then 6152732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$build_libtool_libs" = yes; then 6153732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Building a libtool convenience library. 6154732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Some compilers have problems with a `.al' extension so 6155732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # convenience libraries should have the same extension an 6156732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # archive normally would. 6157732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com oldlibs="$output_objdir/$libname.$libext $oldlibs" 6158732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com build_libtool_libs=convenience 6159732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com build_old_libs=yes 6160732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 6161732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 6162732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test -n "$vinfo" && \ 6163732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_warning "\`-version-info/-version-number' is ignored for convenience libraries" 6164732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 6165732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test -n "$release" && \ 6166732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_warning "\`-release' is ignored for convenience libraries" 6167732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 6168732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 6169732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Parse the version information argument. 6170732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com save_ifs="$IFS"; IFS=':' 6171732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com set dummy $vinfo 0 0 0 6172732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com shift 6173732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com IFS="$save_ifs" 6174732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 6175732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test -n "$7" && \ 6176732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_fatal_help "too many parameters to \`-version-info'" 6177732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 6178732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # convert absolute version numbers to libtool ages 6179732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # this retains compatibility with .la files and attempts 6180732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # to make the code below a bit more comprehensible 6181732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 6182732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $vinfo_number in 6183732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com yes) 6184732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com number_major="$1" 6185732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com number_minor="$2" 6186732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com number_revision="$3" 6187732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # 6188732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # There are really only two kinds -- those that 6189732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # use the current revision as the major version 6190732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # and those that subtract age and use age as 6191732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # a minor version. But, then there is irix 6192732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # which has an extra 1 added just for fun 6193732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # 6194732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $version_type in 6195732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com darwin|linux|osf|windows|none) 6196732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_arith $number_major + $number_minor 6197732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com current=$func_arith_result 6198732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com age="$number_minor" 6199732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com revision="$number_revision" 6200732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 6201732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com freebsd-aout|freebsd-elf|sunos) 6202732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com current="$number_major" 6203732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com revision="$number_minor" 6204732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com age="0" 6205732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 6206732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com irix|nonstopux) 6207732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_arith $number_major + $number_minor 6208732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com current=$func_arith_result 6209732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com age="$number_minor" 6210732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com revision="$number_minor" 6211732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com lt_irix_increment=no 6212732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 6213732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) 6214732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_fatal_configuration "$modename: unknown library version type \`$version_type'" 6215732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 6216732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 6217732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 6218732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com no) 6219732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com current="$1" 6220732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com revision="$2" 6221732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com age="$3" 6222732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 6223732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 6224732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 6225732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Check that each of the things are valid numbers. 6226732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $current in 6227732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 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]) ;; 6228732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) 6229732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_error "CURRENT \`$current' must be a nonnegative integer" 6230732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_fatal_error "\`$vinfo' is not valid version information" 6231732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 6232732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 6233732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 6234732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $revision in 6235732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 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]) ;; 6236732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) 6237732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_error "REVISION \`$revision' must be a nonnegative integer" 6238732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_fatal_error "\`$vinfo' is not valid version information" 6239732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 6240732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 6241732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 6242732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $age in 6243732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 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]) ;; 6244732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) 6245732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_error "AGE \`$age' must be a nonnegative integer" 6246732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_fatal_error "\`$vinfo' is not valid version information" 6247732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 6248732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 6249732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 6250732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$age" -gt "$current"; then 6251732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_error "AGE \`$age' is greater than the current interface number \`$current'" 6252732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_fatal_error "\`$vinfo' is not valid version information" 6253732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 6254732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 6255732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Calculate the version variables. 6256732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com major= 6257732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com versuffix= 6258732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com verstring= 6259732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $version_type in 6260732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com none) ;; 6261732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 6262732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com darwin) 6263732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Like Linux, but with the current version available in 6264732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # verstring for coding it into the library header 6265732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_arith $current - $age 6266732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com major=.$func_arith_result 6267732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com versuffix="$major.$age.$revision" 6268732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Darwin ld doesn't like 0 for these options... 6269732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_arith $current + 1 6270732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com minor_current=$func_arith_result 6271732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" 6272732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" 6273732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 6274732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 6275732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com freebsd-aout) 6276732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com major=".$current" 6277732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com versuffix=".$current.$revision"; 6278732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 6279732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 6280732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com freebsd-elf) 6281732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com major=".$current" 6282732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com versuffix=".$current" 6283732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 6284732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 6285732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com irix | nonstopux) 6286732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "X$lt_irix_increment" = "Xno"; then 6287732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_arith $current - $age 6288732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 6289732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_arith $current - $age + 1 6290732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 6291732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com major=$func_arith_result 6292732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 6293732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $version_type in 6294732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com nonstopux) verstring_prefix=nonstopux ;; 6295732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) verstring_prefix=sgi ;; 6296732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 6297732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com verstring="$verstring_prefix$major.$revision" 6298732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 6299732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Add in all the interfaces that we are compatible with. 6300732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com loop=$revision 6301732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com while test "$loop" -ne 0; do 6302732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_arith $revision - $loop 6303732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com iface=$func_arith_result 6304732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_arith $loop - 1 6305732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com loop=$func_arith_result 6306732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com verstring="$verstring_prefix$major.$iface:$verstring" 6307732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done 6308732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 6309732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Before this point, $major must not contain `.'. 6310732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com major=.$major 6311732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com versuffix="$major.$revision" 6312732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 6313732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 6314732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com linux) 6315732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_arith $current - $age 6316732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com major=.$func_arith_result 6317732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com versuffix="$major.$age.$revision" 6318732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 6319732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 6320732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com osf) 6321732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_arith $current - $age 6322732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com major=.$func_arith_result 6323732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com versuffix=".$current.$age.$revision" 6324732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com verstring="$current.$age.$revision" 6325732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 6326732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Add in all the interfaces that we are compatible with. 6327732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com loop=$age 6328732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com while test "$loop" -ne 0; do 6329732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_arith $current - $loop 6330732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com iface=$func_arith_result 6331732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_arith $loop - 1 6332732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com loop=$func_arith_result 6333732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com verstring="$verstring:${iface}.0" 6334732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done 6335732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 6336732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Make executables depend on our current version. 6337732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com verstring="$verstring:${current}.0" 6338732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 6339732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 6340732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com qnx) 6341732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com major=".$current" 6342732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com versuffix=".$current" 6343732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 6344732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 6345732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com sunos) 6346732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com major=".$current" 6347732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com versuffix=".$current.$revision" 6348732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 6349732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 6350732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com windows) 6351732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Use '-' rather than '.', since we only want one 6352732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # extension on DOS 8.3 filesystems. 6353732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_arith $current - $age 6354732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com major=$func_arith_result 6355732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com versuffix="-$major" 6356732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 6357732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 6358732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) 6359732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_fatal_configuration "unknown library version type \`$version_type'" 6360732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 6361732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 6362732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 6363732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Clear the version info if we defaulted, and they specified a release. 6364732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -z "$vinfo" && test -n "$release"; then 6365732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com major= 6366732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $version_type in 6367732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com darwin) 6368732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # we can't check for "0.0" in archive_cmds due to quoting 6369732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # problems, so we reset it completely 6370732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com verstring= 6371732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 6372732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) 6373732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com verstring="0.0" 6374732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 6375732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 6376732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$need_version" = no; then 6377732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com versuffix= 6378732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 6379732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com versuffix=".0.0" 6380732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 6381732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 6382732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 6383732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Remove version info from name if versioning should be avoided 6384732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$avoid_version" = yes && test "$need_version" = no; then 6385732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com major= 6386732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com versuffix= 6387732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com verstring="" 6388732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 6389732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 6390732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Check to see if the archive will have undefined symbols. 6391732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$allow_undefined" = yes; then 6392732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$allow_undefined_flag" = unsupported; then 6393732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_warning "undefined symbols not allowed in $host shared libraries" 6394732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com build_libtool_libs=no 6395732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com build_old_libs=yes 6396732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 6397732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 6398732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Don't allow undefined symbols. 6399732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com allow_undefined_flag="$no_undefined_flag" 6400732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 6401732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 6402732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 6403732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 6404732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_generate_dlsyms "$libname" "$libname" "yes" 6405732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com libobjs="$libobjs $symfileobj" 6406732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test "X$libobjs" = "X " && libobjs= 6407732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 6408732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$mode" != relink; then 6409732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Remove our outputs, but don't remove object files since they 6410732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # may have been created when compiling PIC objects. 6411732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com removelist= 6412732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com tempremovelist=`$ECHO "$output_objdir/*"` 6413732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for p in $tempremovelist; do 6414732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $p in 6415732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *.$objext | *.gcno) 6416732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 6417732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) 6418732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "X$precious_files_regex" != "X"; then 6419732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 6420732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com then 6421732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com continue 6422732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 6423732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 6424732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com removelist="$removelist $p" 6425732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 6426732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) ;; 6427732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 6428732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done 6429732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test -n "$removelist" && \ 6430732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_show_eval "${RM}r \$removelist" 6431732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 6432732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 6433732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Now set the variables for building old libraries. 6434732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then 6435732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com oldlibs="$oldlibs $output_objdir/$libname.$libext" 6436732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 6437732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Transform .lo files to .o files. 6438732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com oldobjs="$objs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP` 6439732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 6440732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 6441732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Eliminate all temporary directories. 6442732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com #for path in $notinst_path; do 6443732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # lib_search_path=`$ECHO "X$lib_search_path " | $Xsed -e "s% $path % %g"` 6444732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # deplibs=`$ECHO "X$deplibs " | $Xsed -e "s% -L$path % %g"` 6445732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # dependency_libs=`$ECHO "X$dependency_libs " | $Xsed -e "s% -L$path % %g"` 6446732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com #done 6447732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 6448732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$xrpath"; then 6449732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # If the user specified any rpath flags, then add them. 6450732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com temp_xrpath= 6451732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for libdir in $xrpath; do 6452732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com temp_xrpath="$temp_xrpath -R$libdir" 6453732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case "$finalize_rpath " in 6454732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *" $libdir "*) ;; 6455732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) finalize_rpath="$finalize_rpath $libdir" ;; 6456732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 6457732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done 6458732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then 6459732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com dependency_libs="$temp_xrpath $dependency_libs" 6460732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 6461732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 6462732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 6463732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Make sure dlfiles contains only unique files that won't be dlpreopened 6464732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com old_dlfiles="$dlfiles" 6465732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com dlfiles= 6466732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for lib in $old_dlfiles; do 6467732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case " $dlprefiles $dlfiles " in 6468732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *" $lib "*) ;; 6469732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) dlfiles="$dlfiles $lib" ;; 6470732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 6471732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done 6472732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 6473732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Make sure dlprefiles contains only unique files 6474732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com old_dlprefiles="$dlprefiles" 6475732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com dlprefiles= 6476732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for lib in $old_dlprefiles; do 6477732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case "$dlprefiles " in 6478732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *" $lib "*) ;; 6479732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) dlprefiles="$dlprefiles $lib" ;; 6480732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 6481732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done 6482732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 6483732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$build_libtool_libs" = yes; then 6484732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$rpath"; then 6485732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $host in 6486732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc*) 6487732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # these systems don't actually have a c library (as such)! 6488732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 6489732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *-*-rhapsody* | *-*-darwin1.[012]) 6490732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Rhapsody C library is in the System framework 6491732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com deplibs="$deplibs System.ltframework" 6492732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 6493732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *-*-netbsd*) 6494732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Don't link with libc until the a.out ld.so is fixed. 6495732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 6496732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) 6497732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Do not include libc due to us having libc/libc_r. 6498732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 6499732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *-*-sco3.2v5* | *-*-sco5v6*) 6500732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Causes problems with __ctype 6501732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 6502732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) 6503732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Compiler inserts libc in the correct place for threads to work 6504732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 6505732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) 6506732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Add libc to deplibs on all other systems if necessary. 6507732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$build_libtool_need_lc" = "yes"; then 6508732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com deplibs="$deplibs -lc" 6509732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 6510732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 6511732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 6512732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 6513732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 6514732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Transform deplibs into only deplibs that can be linked in shared. 6515732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com name_save=$name 6516732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com libname_save=$libname 6517732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com release_save=$release 6518732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com versuffix_save=$versuffix 6519732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com major_save=$major 6520732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # I'm not sure if I'm treating the release correctly. I think 6521732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # release should show up in the -l (ie -lgmp5) so we don't want to 6522732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # add it in twice. Is that correct? 6523732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com release="" 6524732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com versuffix="" 6525732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com major="" 6526732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com newdeplibs= 6527732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com droppeddeps=no 6528732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $deplibs_check_method in 6529732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com pass_all) 6530732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Don't check for shared/static. Everything works. 6531732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # This might be a little naive. We might want to check 6532732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # whether the library exists or not. But this is on 6533732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # osf3 & osf4 and I'm not really sure... Just 6534732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # implementing what was already the behavior. 6535732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com newdeplibs=$deplibs 6536732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 6537732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test_compile) 6538732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # This code stresses the "libraries are programs" paradigm to its 6539732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # limits. Maybe even breaks it. We compile a program, linking it 6540732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # against the deplibs as a proxy for the library. Then we can check 6541732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # whether they linked in statically or dynamically with ldd. 6542732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $opt_dry_run || $RM conftest.c 6543732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com cat > conftest.c <<EOF 6544732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com int main() { return 0; } 6545732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comEOF 6546732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $opt_dry_run || $RM conftest 6547732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if $LTCC $LTCFLAGS -o conftest conftest.c $deplibs; then 6548732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ldd_output=`ldd conftest` 6549732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for i in $deplibs; do 6550732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $i in 6551732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -l*) 6552732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_stripname -l '' "$i" 6553732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com name=$func_stripname_result 6554732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then 6555732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case " $predeps $postdeps " in 6556732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *" $i "*) 6557732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com newdeplibs="$newdeplibs $i" 6558732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com i="" 6559732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 6560732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 6561732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 6562732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$i" ; then 6563732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com libname=`eval "\\$ECHO \"$libname_spec\""` 6564732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com deplib_matches=`eval "\\$ECHO \"$library_names_spec\""` 6565732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com set dummy $deplib_matches; shift 6566732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com deplib_match=$1 6567732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then 6568732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com newdeplibs="$newdeplibs $i" 6569732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 6570732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com droppeddeps=yes 6571732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO 6572732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "*** Warning: dynamic linker does not accept needed library $i." 6573732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "*** I have the capability to make that library automatically link in when" 6574732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "*** you link to this library. But I can only do this if you have a" 6575732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "*** shared version of the library, which I believe you do not have" 6576732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "*** because a test_compile did reveal that the linker did not use it for" 6577732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "*** its dynamic dependency list that programs get resolved with at runtime." 6578732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 6579732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 6580732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 6581732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) 6582732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com newdeplibs="$newdeplibs $i" 6583732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 6584732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 6585732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done 6586732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 6587732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Error occurred in the first compile. Let's try to salvage 6588732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # the situation: Compile a separate program for each library. 6589732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for i in $deplibs; do 6590732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $i in 6591732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -l*) 6592732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_stripname -l '' "$i" 6593732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com name=$func_stripname_result 6594732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $opt_dry_run || $RM conftest 6595732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if $LTCC $LTCFLAGS -o conftest conftest.c $i; then 6596732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ldd_output=`ldd conftest` 6597732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then 6598732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case " $predeps $postdeps " in 6599732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *" $i "*) 6600732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com newdeplibs="$newdeplibs $i" 6601732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com i="" 6602732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 6603732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 6604732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 6605732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$i" ; then 6606732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com libname=`eval "\\$ECHO \"$libname_spec\""` 6607732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com deplib_matches=`eval "\\$ECHO \"$library_names_spec\""` 6608732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com set dummy $deplib_matches; shift 6609732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com deplib_match=$1 6610732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then 6611732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com newdeplibs="$newdeplibs $i" 6612732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 6613732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com droppeddeps=yes 6614732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO 6615732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "*** Warning: dynamic linker does not accept needed library $i." 6616732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "*** I have the capability to make that library automatically link in when" 6617732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "*** you link to this library. But I can only do this if you have a" 6618732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "*** shared version of the library, which you do not appear to have" 6619732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "*** because a test_compile did reveal that the linker did not use this one" 6620732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "*** as a dynamic dependency that programs can get resolved with at runtime." 6621732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 6622732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 6623732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 6624732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com droppeddeps=yes 6625732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO 6626732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "*** Warning! Library $i is needed by this library but I was not able to" 6627732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "*** make it link in! You will probably need to install it or some" 6628732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "*** library that it depends on before this library will be fully" 6629732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "*** functional. Installing it before continuing would be even better." 6630732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 6631732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 6632732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) 6633732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com newdeplibs="$newdeplibs $i" 6634732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 6635732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 6636732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done 6637732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 6638732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 6639732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com file_magic*) 6640732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com set dummy $deplibs_check_method; shift 6641732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com file_magic_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` 6642732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for a_deplib in $deplibs; do 6643732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $a_deplib in 6644732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -l*) 6645732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_stripname -l '' "$a_deplib" 6646732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com name=$func_stripname_result 6647732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then 6648732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case " $predeps $postdeps " in 6649732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *" $a_deplib "*) 6650732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com newdeplibs="$newdeplibs $a_deplib" 6651732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com a_deplib="" 6652732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 6653732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 6654732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 6655732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$a_deplib" ; then 6656732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com libname=`eval "\\$ECHO \"$libname_spec\""` 6657732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do 6658732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com potential_libs=`ls $i/$libname[.-]* 2>/dev/null` 6659732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for potent_lib in $potential_libs; do 6660732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Follow soft links. 6661732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if ls -lLd "$potent_lib" 2>/dev/null | 6662732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $GREP " -> " >/dev/null; then 6663732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com continue 6664732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 6665732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # The statement above tries to avoid entering an 6666732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # endless loop below, in case of cyclic links. 6667732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # We might still enter an endless loop, since a link 6668732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # loop can be closed while we follow links, 6669732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # but so what? 6670732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com potlib="$potent_lib" 6671732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com while test -h "$potlib" 2>/dev/null; do 6672732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` 6673732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $potliblink in 6674732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; 6675732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) potlib=`$ECHO "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";; 6676732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 6677732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done 6678732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | 6679732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $SED -e 10q | 6680732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $EGREP "$file_magic_regex" > /dev/null; then 6681732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com newdeplibs="$newdeplibs $a_deplib" 6682732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com a_deplib="" 6683732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com break 2 6684732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 6685732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done 6686732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done 6687732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 6688732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$a_deplib" ; then 6689732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com droppeddeps=yes 6690732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO 6691732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "*** Warning: linker path does not have real file for library $a_deplib." 6692732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "*** I have the capability to make that library automatically link in when" 6693732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "*** you link to this library. But I can only do this if you have a" 6694732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "*** shared version of the library, which you do not appear to have" 6695732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "*** because I did check the linker path looking for a file starting" 6696732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -z "$potlib" ; then 6697732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "*** with $libname but no candidates were found. (...for file magic test)" 6698732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 6699732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "*** with $libname and none of the candidates passed a file format test" 6700732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "*** using a file magic. Last file checked: $potlib" 6701732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 6702732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 6703732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 6704732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) 6705732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Add a -L argument. 6706732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com newdeplibs="$newdeplibs $a_deplib" 6707732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 6708732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 6709732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done # Gone through all deplibs. 6710732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 6711732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com match_pattern*) 6712732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com set dummy $deplibs_check_method; shift 6713732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` 6714732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for a_deplib in $deplibs; do 6715732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $a_deplib in 6716732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -l*) 6717732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_stripname -l '' "$a_deplib" 6718732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com name=$func_stripname_result 6719732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then 6720732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case " $predeps $postdeps " in 6721732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *" $a_deplib "*) 6722732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com newdeplibs="$newdeplibs $a_deplib" 6723732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com a_deplib="" 6724732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 6725732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 6726732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 6727732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$a_deplib" ; then 6728732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com libname=`eval "\\$ECHO \"$libname_spec\""` 6729732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do 6730732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com potential_libs=`ls $i/$libname[.-]* 2>/dev/null` 6731732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for potent_lib in $potential_libs; do 6732732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com potlib="$potent_lib" # see symlink-check above in file_magic test 6733732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if eval "\$ECHO \"X$potent_lib\"" 2>/dev/null | $Xsed -e 10q | \ 6734732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $EGREP "$match_pattern_regex" > /dev/null; then 6735732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com newdeplibs="$newdeplibs $a_deplib" 6736732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com a_deplib="" 6737732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com break 2 6738732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 6739732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done 6740732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done 6741732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 6742732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$a_deplib" ; then 6743732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com droppeddeps=yes 6744732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO 6745732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "*** Warning: linker path does not have real file for library $a_deplib." 6746732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "*** I have the capability to make that library automatically link in when" 6747732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "*** you link to this library. But I can only do this if you have a" 6748732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "*** shared version of the library, which you do not appear to have" 6749732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "*** because I did check the linker path looking for a file starting" 6750732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -z "$potlib" ; then 6751732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)" 6752732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 6753732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "*** with $libname and none of the candidates passed a file format test" 6754732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "*** using a regex pattern. Last file checked: $potlib" 6755732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 6756732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 6757732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 6758732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) 6759732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Add a -L argument. 6760732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com newdeplibs="$newdeplibs $a_deplib" 6761732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 6762732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 6763732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done # Gone through all deplibs. 6764732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 6765732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com none | unknown | *) 6766732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com newdeplibs="" 6767732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com tmp_deplibs=`$ECHO "X $deplibs" | $Xsed \ 6768732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -e 's/ -lc$//' -e 's/ -[LR][^ ]*//g'` 6769732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then 6770732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for i in $predeps $postdeps ; do 6771732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # can't use Xsed below, because $i might contain '/' 6772732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com tmp_deplibs=`$ECHO "X $tmp_deplibs" | $Xsed -e "s,$i,,"` 6773732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done 6774732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 6775732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if $ECHO "X $tmp_deplibs" | $Xsed -e 's/[ ]//g' | 6776732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $GREP . >/dev/null; then 6777732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO 6778732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "X$deplibs_check_method" = "Xnone"; then 6779732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "*** Warning: inter-library dependencies are not supported in this platform." 6780732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 6781732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "*** Warning: inter-library dependencies are not known to be supported." 6782732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 6783732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "*** All declared inter-library dependencies are being dropped." 6784732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com droppeddeps=yes 6785732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 6786732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 6787732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 6788732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com versuffix=$versuffix_save 6789732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com major=$major_save 6790732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com release=$release_save 6791732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com libname=$libname_save 6792732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com name=$name_save 6793732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 6794732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $host in 6795732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *-*-rhapsody* | *-*-darwin1.[012]) 6796732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # On Rhapsody replace the C library with the System framework 6797732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's/ -lc / System.ltframework /'` 6798732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 6799732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 6800732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 6801732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$droppeddeps" = yes; then 6802732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$module" = yes; then 6803732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO 6804732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "*** Warning: libtool could not satisfy all declared inter-library" 6805732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "*** dependencies of module $libname. Therefore, libtool will create" 6806732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "*** a static module, that should work as long as the dlopening" 6807732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "*** application is linked with the -dlopen flag." 6808732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -z "$global_symbol_pipe"; then 6809732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO 6810732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "*** However, this would only work if libtool was able to extract symbol" 6811732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could" 6812732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "*** not find such a program. So, this module is probably useless." 6813732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "*** \`nm' from GNU binutils and a full rebuild may help." 6814732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 6815732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$build_old_libs" = no; then 6816732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com oldlibs="$output_objdir/$libname.$libext" 6817732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com build_libtool_libs=module 6818732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com build_old_libs=yes 6819732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 6820732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com build_libtool_libs=no 6821732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 6822732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 6823732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "*** The inter-library dependencies that have been dropped here will be" 6824732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "*** automatically added whenever a program is linked with this library" 6825732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "*** or is declared to -dlopen it." 6826732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 6827732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$allow_undefined" = no; then 6828732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO 6829732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "*** Since this library must not contain undefined symbols," 6830732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "*** because either the platform does not support them or" 6831732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "*** it was explicitly requested with -no-undefined," 6832732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "*** libtool will only create a static version of it." 6833732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$build_old_libs" = no; then 6834732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com oldlibs="$output_objdir/$libname.$libext" 6835732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com build_libtool_libs=module 6836732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com build_old_libs=yes 6837732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 6838732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com build_libtool_libs=no 6839732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 6840732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 6841732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 6842732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 6843732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Done checking deplibs! 6844732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com deplibs=$newdeplibs 6845732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 6846732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Time to change all our "foo.ltframework" stuff back to "-framework foo" 6847732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $host in 6848732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *-*-darwin*) 6849732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` 6850732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com new_inherited_linker_flags=`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` 6851732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com deplibs=`$ECHO "X $deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` 6852732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 6853732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 6854732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 6855732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # move library search paths that coincide with paths to not yet 6856732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # installed libraries to the beginning of the library search list 6857732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com new_libs= 6858732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for path in $notinst_path; do 6859732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case " $new_libs " in 6860732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *" -L$path/$objdir "*) ;; 6861732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) 6862732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case " $deplibs " in 6863732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *" -L$path/$objdir "*) 6864732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com new_libs="$new_libs -L$path/$objdir" ;; 6865732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 6866732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 6867732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 6868732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done 6869732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for deplib in $deplibs; do 6870732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $deplib in 6871732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -L*) 6872732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case " $new_libs " in 6873732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *" $deplib "*) ;; 6874732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) new_libs="$new_libs $deplib" ;; 6875732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 6876732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 6877732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) new_libs="$new_libs $deplib" ;; 6878732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 6879732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done 6880732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com deplibs="$new_libs" 6881732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 6882732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # All the library-specific variables (install_libdir is set above). 6883732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com library_names= 6884732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com old_library= 6885732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com dlname= 6886732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 6887732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Test again, we may have decided not to build it any more 6888732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$build_libtool_libs" = yes; then 6889732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$hardcode_into_libs" = yes; then 6890732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Hardcode the library paths 6891732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com hardcode_libdirs= 6892732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com dep_rpath= 6893732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com rpath="$finalize_rpath" 6894732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test "$mode" != relink && rpath="$compile_rpath$rpath" 6895732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for libdir in $rpath; do 6896732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$hardcode_libdir_flag_spec"; then 6897732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$hardcode_libdir_separator"; then 6898732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -z "$hardcode_libdirs"; then 6899732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com hardcode_libdirs="$libdir" 6900732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 6901732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Just accumulate the unique libdirs. 6902732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in 6903732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) 6904732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 6905732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) 6906732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" 6907732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 6908732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 6909732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 6910732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 6911732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com eval flag=\"$hardcode_libdir_flag_spec\" 6912732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com dep_rpath="$dep_rpath $flag" 6913732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 6914732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com elif test -n "$runpath_var"; then 6915732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case "$perm_rpath " in 6916732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *" $libdir "*) ;; 6917732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) perm_rpath="$perm_rpath $libdir" ;; 6918732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 6919732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 6920732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done 6921732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Substitute the hardcoded libdirs into the rpath. 6922732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$hardcode_libdir_separator" && 6923732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test -n "$hardcode_libdirs"; then 6924732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com libdir="$hardcode_libdirs" 6925732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$hardcode_libdir_flag_spec_ld"; then 6926732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" 6927732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 6928732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com eval dep_rpath=\"$hardcode_libdir_flag_spec\" 6929732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 6930732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 6931732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$runpath_var" && test -n "$perm_rpath"; then 6932732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # We should set the runpath_var. 6933732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com rpath= 6934732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for dir in $perm_rpath; do 6935732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com rpath="$rpath$dir:" 6936732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done 6937732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" 6938732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 6939732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" 6940732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 6941311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 6942732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com shlibpath="$finalize_shlibpath" 6943732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath" 6944732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$shlibpath"; then 6945732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" 6946732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 6947311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 6948732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Get the real and link names of the library. 6949732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com eval shared_ext=\"$shrext_cmds\" 6950732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com eval library_names=\"$library_names_spec\" 6951732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com set dummy $library_names 6952732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com shift 6953732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com realname="$1" 6954732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com shift 6955311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 6956732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$soname_spec"; then 6957732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com eval soname=\"$soname_spec\" 6958732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 6959732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com soname="$realname" 6960732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 6961732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -z "$dlname"; then 6962732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com dlname=$soname 6963732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 6964311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 6965732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com lib="$output_objdir/$realname" 6966732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com linknames= 6967732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for link 6968732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com do 6969732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com linknames="$linknames $link" 6970732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done 6971311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 6972732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Use standard objects if they are pic 6973732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test -z "$pic_flag" && libobjs=`$ECHO "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` 6974732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test "X$libobjs" = "X " && libobjs= 6975311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 6976732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com delfiles= 6977732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$export_symbols" && test -n "$include_expsyms"; then 6978732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" 6979732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com export_symbols="$output_objdir/$libname.uexp" 6980732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com delfiles="$delfiles $export_symbols" 6981732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 6982311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 6983732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com orig_export_symbols= 6984732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $host_os in 6985732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com cygwin* | mingw* | cegcc*) 6986732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$export_symbols" && test -z "$export_symbols_regex"; then 6987732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # exporting using user supplied symfile 6988732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "x`$SED 1q $export_symbols`" != xEXPORTS; then 6989732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # and it's NOT already a .def file. Must figure out 6990732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # which of the given symbols are data symbols and tag 6991732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # them as such. So, trigger use of export_symbols_cmds. 6992732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # export_symbols gets reassigned inside the "prepare 6993732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # the list of exported symbols" if statement, so the 6994732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # include_expsyms logic still works. 6995732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com orig_export_symbols="$export_symbols" 6996732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com export_symbols= 6997732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com always_export_symbols=yes 6998732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 6999732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 7000732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 7001732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 7002311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 7003732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Prepare the list of exported symbols 7004732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -z "$export_symbols"; then 7005732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then 7006732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_verbose "generating symbol list for \`$libname.la'" 7007732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com export_symbols="$output_objdir/$libname.exp" 7008732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $opt_dry_run || $RM $export_symbols 7009732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com cmds=$export_symbols_cmds 7010732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com save_ifs="$IFS"; IFS='~' 7011732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for cmd in $cmds; do 7012732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com IFS="$save_ifs" 7013732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com eval cmd=\"$cmd\" 7014732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_len " $cmd" 7015732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com len=$func_len_result 7016732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then 7017732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_show_eval "$cmd" 'exit $?' 7018732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com skipped_export=false 7019732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 7020732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # The command line is too long to execute in one step. 7021732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_verbose "using reloadable object file for export list..." 7022732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com skipped_export=: 7023732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Break out early, otherwise skipped_export may be 7024732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # set to false by a later but shorter cmd. 7025732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com break 7026732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 7027732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done 7028732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com IFS="$save_ifs" 7029732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then 7030732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' 7031732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_show_eval '$MV "${export_symbols}T" "$export_symbols"' 7032732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 7033732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 7034311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff fi 7035311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 7036732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$export_symbols" && test -n "$include_expsyms"; then 7037732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com tmp_export_symbols="$export_symbols" 7038732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" 7039732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"' 7040732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 7041311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 7042732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then 7043732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # The given exports_symbols file has to be filtered, so filter it. 7044732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" 7045732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # FIXME: $output_objdir/$libname.filter potentially contains lots of 7046732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # 's' commands which not all seds can handle. GNU sed should be fine 7047732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # though. Also, the filter scales superlinearly with the number of 7048732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # global variables. join(1) would be nice here, but unfortunately 7049732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # isn't a blessed tool. 7050732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter 7051732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com delfiles="$delfiles $export_symbols $output_objdir/$libname.filter" 7052732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com export_symbols=$output_objdir/$libname.def 7053732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols 7054732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 7055311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 7056732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com tmp_deplibs= 7057732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for test_deplib in $deplibs; do 7058732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case " $convenience " in 7059732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *" $test_deplib "*) ;; 7060732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) 7061732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com tmp_deplibs="$tmp_deplibs $test_deplib" 7062732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 7063732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 7064732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done 7065732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com deplibs="$tmp_deplibs" 7066311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 7067732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$convenience"; then 7068732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$whole_archive_flag_spec" && 7069732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test "$compiler_needs_object" = yes && 7070732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test -z "$libobjs"; then 7071732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # extract the archives, so we have objects to list. 7072732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # TODO: could optimize this to just extract one archive. 7073732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com whole_archive_flag_spec= 7074732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 7075732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$whole_archive_flag_spec"; then 7076732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com save_libobjs=$libobjs 7077732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com eval libobjs=\"\$libobjs $whole_archive_flag_spec\" 7078732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test "X$libobjs" = "X " && libobjs= 7079732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 7080732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com gentop="$output_objdir/${outputname}x" 7081732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com generated="$generated $gentop" 7082311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 7083732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_extract_archives $gentop $convenience 7084732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com libobjs="$libobjs $func_extract_archives_result" 7085732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test "X$libobjs" = "X " && libobjs= 7086732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 7087311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff fi 7088311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 7089732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then 7090732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com eval flag=\"$thread_safe_flag_spec\" 7091732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com linker_flags="$linker_flags $flag" 7092311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff fi 7093311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 7094732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Make a backup of the uninstalled library when relinking 7095732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$mode" = relink; then 7096732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? 7097732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 7098311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 7099732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Do each of the archive commands. 7100732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$module" = yes && test -n "$module_cmds" ; then 7101732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then 7102732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com eval test_cmds=\"$module_expsym_cmds\" 7103732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com cmds=$module_expsym_cmds 7104732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 7105732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com eval test_cmds=\"$module_cmds\" 7106732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com cmds=$module_cmds 7107732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 7108311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff else 7109732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then 7110732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com eval test_cmds=\"$archive_expsym_cmds\" 7111732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com cmds=$archive_expsym_cmds 7112732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 7113732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com eval test_cmds=\"$archive_cmds\" 7114732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com cmds=$archive_cmds 7115732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 7116311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff fi 7117311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 7118732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "X$skipped_export" != "X:" && 7119732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_len " $test_cmds" && 7120732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com len=$func_len_result && 7121732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then 7122732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com : 7123732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 7124732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # The command line is too long to link in one step, link piecewise 7125732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # or, if using GNU ld and skipped_export is not :, use a linker 7126732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # script. 7127311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 7128732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Save the value of $output and $libobjs because we want to 7129732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # use them later. If we have whole_archive_flag_spec, we 7130732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # want to use save_libobjs as it was before 7131732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # whole_archive_flag_spec was expanded, because we can't 7132732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # assume the linker understands whole_archive_flag_spec. 7133732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # This may have to be revisited, in case too many 7134732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # convenience libraries get linked in and end up exceeding 7135732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # the spec. 7136732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then 7137732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com save_libobjs=$libobjs 7138732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 7139732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com save_output=$output 7140732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com output_la=`$ECHO "X$output" | $Xsed -e "$basename"` 7141311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 7142732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Clear the reloadable object creation command queue and 7143732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # initialize k to one. 7144732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test_cmds= 7145732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com concat_cmds= 7146732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com objlist= 7147732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com last_robj= 7148732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com k=1 7149732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 7150732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then 7151732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com output=${output_objdir}/${output_la}.lnkscript 7152732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_verbose "creating GNU ld script: $output" 7153732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO 'INPUT (' > $output 7154732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for obj in $save_libobjs 7155311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff do 7156732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "$obj" >> $output 7157732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done 7158732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO ')' >> $output 7159732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com delfiles="$delfiles $output" 7160732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then 7161732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com output=${output_objdir}/${output_la}.lnk 7162732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_verbose "creating linker input file list: $output" 7163732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com : > $output 7164732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com set x $save_libobjs 7165732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com shift 7166732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com firstobj= 7167732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$compiler_needs_object" = yes; then 7168732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com firstobj="$1 " 7169732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com shift 7170732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 7171732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for obj 7172732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com do 7173732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "$obj" >> $output 7174732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done 7175732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com delfiles="$delfiles $output" 7176732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com output=$firstobj\"$file_list_spec$output\" 7177732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 7178732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$save_libobjs"; then 7179732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_verbose "creating reloadable object files..." 7180732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com output=$output_objdir/$output_la-${k}.$objext 7181732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com eval test_cmds=\"$reload_cmds\" 7182732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_len " $test_cmds" 7183732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com len0=$func_len_result 7184732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com len=$len0 7185732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 7186732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Loop over the list of objects to be linked. 7187732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for obj in $save_libobjs 7188732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com do 7189732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_len " $obj" 7190732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_arith $len + $func_len_result 7191732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com len=$func_arith_result 7192732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "X$objlist" = X || 7193732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test "$len" -lt "$max_cmd_len"; then 7194732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_append objlist " $obj" 7195732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 7196732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # The command $test_cmds is almost too long, add a 7197732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # command to the queue. 7198732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$k" -eq 1 ; then 7199732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # The first file doesn't have a previous command to add. 7200732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com eval concat_cmds=\"$reload_cmds $objlist $last_robj\" 7201732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 7202732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # All subsequent reloadable object files will link in 7203732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # the last one created. 7204732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj~\$RM $last_robj\" 7205732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 7206732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com last_robj=$output_objdir/$output_la-${k}.$objext 7207732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_arith $k + 1 7208732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com k=$func_arith_result 7209732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com output=$output_objdir/$output_la-${k}.$objext 7210732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com objlist=$obj 7211732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_len " $last_robj" 7212732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_arith $len0 + $func_len_result 7213732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com len=$func_arith_result 7214732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 7215732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done 7216732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Handle the remaining objects by creating one last 7217732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # reloadable object file. All subsequent reloadable object 7218732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # files will link in the last one created. 7219732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test -z "$concat_cmds" || concat_cmds=$concat_cmds~ 7220732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\" 7221732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$last_robj"; then 7222732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\" 7223732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 7224732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com delfiles="$delfiles $output" 7225311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 7226732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 7227732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com output= 7228732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 7229311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 7230732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if ${skipped_export-false}; then 7231732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_verbose "generating symbol list for \`$libname.la'" 7232732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com export_symbols="$output_objdir/$libname.exp" 7233732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $opt_dry_run || $RM $export_symbols 7234732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com libobjs=$output 7235732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Append the command to create the export file. 7236732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test -z "$concat_cmds" || concat_cmds=$concat_cmds~ 7237732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\" 7238732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$last_robj"; then 7239732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" 7240732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 7241311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff fi 7242311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 7243732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test -n "$save_libobjs" && 7244732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_verbose "creating a temporary reloadable object file: $output" 7245311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 7246732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Loop through the commands generated above and execute them. 7247732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com save_ifs="$IFS"; IFS='~' 7248732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for cmd in $concat_cmds; do 7249732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com IFS="$save_ifs" 7250732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $opt_silent || { 7251732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_quote_for_expand "$cmd" 7252732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com eval "func_echo $func_quote_for_expand_result" 7253732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com } 7254732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $opt_dry_run || eval "$cmd" || { 7255732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com lt_exit=$? 7256732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 7257732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Restore the uninstalled library and exit 7258732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$mode" = relink; then 7259732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ( cd "$output_objdir" && \ 7260732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $RM "${realname}T" && \ 7261732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $MV "${realname}U" "$realname" ) 7262732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 7263311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 7264732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com exit $lt_exit 7265732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com } 7266732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done 7267732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com IFS="$save_ifs" 7268311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 7269732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$export_symbols_regex" && ${skipped_export-false}; then 7270732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' 7271732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_show_eval '$MV "${export_symbols}T" "$export_symbols"' 7272311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff fi 7273311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff fi 7274311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 7275732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if ${skipped_export-false}; then 7276732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$export_symbols" && test -n "$include_expsyms"; then 7277732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com tmp_export_symbols="$export_symbols" 7278732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" 7279732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"' 7280732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 7281311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 7282732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$orig_export_symbols"; then 7283732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # The given exports_symbols file has to be filtered, so filter it. 7284732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" 7285732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # FIXME: $output_objdir/$libname.filter potentially contains lots of 7286732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # 's' commands which not all seds can handle. GNU sed should be fine 7287732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # though. Also, the filter scales superlinearly with the number of 7288732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # global variables. join(1) would be nice here, but unfortunately 7289732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # isn't a blessed tool. 7290732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter 7291732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com delfiles="$delfiles $export_symbols $output_objdir/$libname.filter" 7292732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com export_symbols=$output_objdir/$libname.def 7293732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols 7294732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 7295732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 7296311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 7297732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com libobjs=$output 7298732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Restore the value of output. 7299732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com output=$save_output 7300311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 7301732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then 7302732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com eval libobjs=\"\$libobjs $whole_archive_flag_spec\" 7303732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test "X$libobjs" = "X " && libobjs= 7304732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 7305732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Expand the library linking commands again to reset the 7306732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # value of $libobjs for piecewise linking. 7307311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 7308732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Do each of the archive commands. 7309732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$module" = yes && test -n "$module_cmds" ; then 7310732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then 7311732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com cmds=$module_expsym_cmds 7312732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 7313732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com cmds=$module_cmds 7314311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff fi 7315311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff else 7316732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then 7317732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com cmds=$archive_expsym_cmds 7318732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 7319732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com cmds=$archive_cmds 7320732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 7321311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff fi 7322732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 7323311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 7324732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$delfiles"; then 7325732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Append the command to remove temporary files to $cmds. 7326732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com eval cmds=\"\$cmds~\$RM $delfiles\" 7327732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 7328311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 7329732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Add any objects from preloaded convenience libraries 7330732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$dlprefiles"; then 7331732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com gentop="$output_objdir/${outputname}x" 7332732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com generated="$generated $gentop" 7333311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 7334732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_extract_archives $gentop $dlprefiles 7335732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com libobjs="$libobjs $func_extract_archives_result" 7336732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test "X$libobjs" = "X " && libobjs= 7337732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 7338311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 7339732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com save_ifs="$IFS"; IFS='~' 7340732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for cmd in $cmds; do 7341732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com IFS="$save_ifs" 7342732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com eval cmd=\"$cmd\" 7343732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $opt_silent || { 7344732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_quote_for_expand "$cmd" 7345732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com eval "func_echo $func_quote_for_expand_result" 7346732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com } 7347732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $opt_dry_run || eval "$cmd" || { 7348732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com lt_exit=$? 7349311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 7350732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Restore the uninstalled library and exit 7351732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$mode" = relink; then 7352732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ( cd "$output_objdir" && \ 7353732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $RM "${realname}T" && \ 7354732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $MV "${realname}U" "$realname" ) 7355732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 7356311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 7357732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com exit $lt_exit 7358732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com } 7359732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done 7360732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com IFS="$save_ifs" 7361311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 7362732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Restore the uninstalled library and exit 7363732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$mode" = relink; then 7364732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? 7365311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 7366732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$convenience"; then 7367732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -z "$whole_archive_flag_spec"; then 7368732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_show_eval '${RM}r "$gentop"' 7369732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 7370732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 7371311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 7372732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com exit $EXIT_SUCCESS 7373732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 7374732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 7375732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Create links to the real library. 7376732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for linkname in $linknames; do 7377732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$realname" != "$linkname"; then 7378732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?' 7379311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff fi 7380311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff done 7381311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 7382732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # If -module or -export-dynamic was specified, set the dlname. 7383732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$module" = yes || test "$export_dynamic" = yes; then 7384732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # On all known operating systems, these are identical. 7385732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com dlname="$soname" 7386732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 7387732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 7388311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff ;; 7389311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 7390732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com obj) 7391732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then 7392732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_warning "\`-dlopen' is ignored for objects" 7393732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 7394311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 7395732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case " $deplibs" in 7396732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *\ -l* | *\ -L*) 7397732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_warning "\`-l' and \`-L' are ignored for objects" ;; 7398311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff esac 7399311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 7400732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test -n "$rpath" && \ 7401732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_warning "\`-rpath' is ignored for objects" 7402732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 7403732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test -n "$xrpath" && \ 7404732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_warning "\`-R' is ignored for objects" 7405311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 7406732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test -n "$vinfo" && \ 7407732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_warning "\`-version-info' is ignored for objects" 7408311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 7409732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test -n "$release" && \ 7410732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_warning "\`-release' is ignored for objects" 7411732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 7412732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $output in 7413732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *.lo) 7414732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test -n "$objs$old_deplibs" && \ 7415732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_fatal_error "cannot build library object \`$output' from non-libtool objects" 7416732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 7417732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com libobj=$output 7418732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_lo2o "$libobj" 7419732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com obj=$func_lo2o_result 7420311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff ;; 7421311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff *) 7422732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com libobj= 7423732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com obj="$output" 7424311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff ;; 7425311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff esac 7426311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 7427732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Delete the old objects. 7428732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $opt_dry_run || $RM $obj $libobj 7429311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 7430732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Objects from convenience libraries. This assumes 7431732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # single-version convenience libraries. Whenever we create 7432732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # different ones for PIC/non-PIC, this we'll have to duplicate 7433732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # the extraction. 7434732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com reload_conv_objs= 7435732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com gentop= 7436732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # reload_cmds runs $LD directly, so let us get rid of 7437732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # -Wl from whole_archive_flag_spec and hope we can get by with 7438732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # turning comma into space.. 7439732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com wl= 7440311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 7441732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$convenience"; then 7442732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$whole_archive_flag_spec"; then 7443732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" 7444732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com reload_conv_objs=$reload_objs\ `$ECHO "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'` 7445732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 7446732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com gentop="$output_objdir/${obj}x" 7447732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com generated="$generated $gentop" 7448311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 7449732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_extract_archives $gentop $convenience 7450732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com reload_conv_objs="$reload_objs $func_extract_archives_result" 7451732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 7452311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff fi 7453311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 7454732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Create the old-style object. 7455732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com reload_objs="$objs$old_deplibs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test 7456311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 7457732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com output="$obj" 7458732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_execute_cmds "$reload_cmds" 'exit $?' 7459311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 7460732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Exit if we aren't doing a library object file. 7461732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -z "$libobj"; then 7462732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$gentop"; then 7463732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_show_eval '${RM}r "$gentop"' 7464732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 7465732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 7466732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com exit $EXIT_SUCCESS 7467311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff fi 7468732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 7469732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$build_libtool_libs" != yes; then 7470732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$gentop"; then 7471732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_show_eval '${RM}r "$gentop"' 7472732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 7473732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 7474732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Create an invalid libtool object if no PIC, so that we don't 7475732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # accidentally link it into a program. 7476732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # $show "echo timestamp > $libobj" 7477732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # $opt_dry_run || eval "echo timestamp > $libobj" || exit $? 7478732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com exit $EXIT_SUCCESS 7479732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 7480732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 7481732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$pic_flag" || test "$pic_mode" != default; then 7482732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Only do commands if we really have different PIC objects. 7483732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com reload_objs="$libobjs $reload_conv_objs" 7484732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com output="$libobj" 7485732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_execute_cmds "$reload_cmds" 'exit $?' 7486732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 7487732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 7488732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$gentop"; then 7489732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_show_eval '${RM}r "$gentop"' 7490732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 7491732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 7492732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com exit $EXIT_SUCCESS 7493311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff ;; 7494311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 7495732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com prog) 7496732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $host in 7497732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *cygwin*) func_stripname '' '.exe' "$output" 7498732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com output=$func_stripname_result.exe;; 7499732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 7500732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test -n "$vinfo" && \ 7501732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_warning "\`-version-info' is ignored for programs" 7502311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 7503732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test -n "$release" && \ 7504732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_warning "\`-release' is ignored for programs" 7505311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 7506732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test "$preload" = yes \ 7507732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com && test "$dlopen_support" = unknown \ 7508732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com && test "$dlopen_self" = unknown \ 7509732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com && test "$dlopen_self_static" = unknown && \ 7510732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support." 7511732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 7512732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $host in 7513732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *-*-rhapsody* | *-*-darwin1.[012]) 7514732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # On Rhapsody replace the C library is the System framework 7515732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'` 7516732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'` 7517311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff ;; 7518732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 7519311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 7520732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $host in 7521732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *-*-darwin*) 7522732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Don't allow lazy linking, it breaks C++ global constructors 7523732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # But is supposedly fixed on 10.4 or later (yay!). 7524732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$tagname" = CXX ; then 7525732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case ${MACOSX_DEPLOYMENT_TARGET-10.0} in 7526732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 10.[0123]) 7527732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com compile_command="$compile_command ${wl}-bind_at_load" 7528732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com finalize_command="$finalize_command ${wl}-bind_at_load" 7529732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 7530732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 7531311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff fi 7532732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Time to change all our "foo.ltframework" stuff back to "-framework foo" 7533732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` 7534732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` 7535732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 7536732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 7537311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 7538311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 7539732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # move library search paths that coincide with paths to not yet 7540732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # installed libraries to the beginning of the library search list 7541732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com new_libs= 7542732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for path in $notinst_path; do 7543732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case " $new_libs " in 7544732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *" -L$path/$objdir "*) ;; 7545732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) 7546732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case " $compile_deplibs " in 7547732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *" -L$path/$objdir "*) 7548732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com new_libs="$new_libs -L$path/$objdir" ;; 7549311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff esac 7550732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 7551732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 7552732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done 7553732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for deplib in $compile_deplibs; do 7554732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $deplib in 7555732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -L*) 7556732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case " $new_libs " in 7557732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *" $deplib "*) ;; 7558732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) new_libs="$new_libs $deplib" ;; 7559311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff esac 7560732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 7561732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) new_libs="$new_libs $deplib" ;; 7562732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 7563732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done 7564732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com compile_deplibs="$new_libs" 7565311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 7566311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 7567732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com compile_command="$compile_command $compile_deplibs" 7568732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com finalize_command="$finalize_command $finalize_deplibs" 7569311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 7570732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$rpath$xrpath"; then 7571732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # If the user specified any rpath flags, then add them. 7572732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for libdir in $rpath $xrpath; do 7573732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # This is the magic to use -rpath. 7574732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case "$finalize_rpath " in 7575732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *" $libdir "*) ;; 7576732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) finalize_rpath="$finalize_rpath $libdir" ;; 7577732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 7578732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done 7579732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 7580311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 7581732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Now hardcode the library paths 7582732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com rpath= 7583732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com hardcode_libdirs= 7584732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for libdir in $compile_rpath $finalize_rpath; do 7585732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$hardcode_libdir_flag_spec"; then 7586732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$hardcode_libdir_separator"; then 7587732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -z "$hardcode_libdirs"; then 7588732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com hardcode_libdirs="$libdir" 7589732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 7590732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Just accumulate the unique libdirs. 7591732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in 7592732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) 7593732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 7594732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) 7595732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" 7596732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 7597732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 7598732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 7599311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff else 7600732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com eval flag=\"$hardcode_libdir_flag_spec\" 7601732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com rpath="$rpath $flag" 7602311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff fi 7603732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com elif test -n "$runpath_var"; then 7604732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case "$perm_rpath " in 7605732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *" $libdir "*) ;; 7606732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) perm_rpath="$perm_rpath $libdir" ;; 7607732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 7608732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 7609732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $host in 7610732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) 7611732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'` 7612732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case :$dllsearchpath: in 7613732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *":$libdir:"*) ;; 7614732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ::) dllsearchpath=$libdir;; 7615732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) dllsearchpath="$dllsearchpath:$libdir";; 7616732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 7617732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case :$dllsearchpath: in 7618732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *":$testbindir:"*) ;; 7619732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ::) dllsearchpath=$testbindir;; 7620732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) dllsearchpath="$dllsearchpath:$testbindir";; 7621732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 7622732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 7623732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 7624732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done 7625732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Substitute the hardcoded libdirs into the rpath. 7626732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$hardcode_libdir_separator" && 7627732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test -n "$hardcode_libdirs"; then 7628732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com libdir="$hardcode_libdirs" 7629732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com eval rpath=\" $hardcode_libdir_flag_spec\" 7630732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 7631732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com compile_rpath="$rpath" 7632311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 7633732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com rpath= 7634732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com hardcode_libdirs= 7635732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for libdir in $finalize_rpath; do 7636732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$hardcode_libdir_flag_spec"; then 7637732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$hardcode_libdir_separator"; then 7638732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -z "$hardcode_libdirs"; then 7639732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com hardcode_libdirs="$libdir" 7640732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 7641732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Just accumulate the unique libdirs. 7642732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in 7643732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) 7644732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 7645732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) 7646732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" 7647732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 7648732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 7649732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 7650311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff else 7651732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com eval flag=\"$hardcode_libdir_flag_spec\" 7652732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com rpath="$rpath $flag" 7653311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff fi 7654732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com elif test -n "$runpath_var"; then 7655732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case "$finalize_perm_rpath " in 7656732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *" $libdir "*) ;; 7657732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;; 7658732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 7659311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff fi 7660732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done 7661732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Substitute the hardcoded libdirs into the rpath. 7662732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$hardcode_libdir_separator" && 7663732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test -n "$hardcode_libdirs"; then 7664732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com libdir="$hardcode_libdirs" 7665732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com eval rpath=\" $hardcode_libdir_flag_spec\" 7666732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 7667732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com finalize_rpath="$rpath" 7668311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 7669732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$libobjs" && test "$build_old_libs" = yes; then 7670732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Transform all the library objects into standard objects. 7671732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com compile_command=`$ECHO "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` 7672732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com finalize_command=`$ECHO "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` 7673732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 7674311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 7675732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_generate_dlsyms "$outputname" "@PROGRAM@" "no" 7676311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 7677732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # template prelinking step 7678732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$prelink_cmds"; then 7679732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_execute_cmds "$prelink_cmds" 'exit $?' 7680732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 7681311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 7682732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com wrappers_required=yes 7683732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $host in 7684732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *cygwin* | *mingw* ) 7685732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$build_libtool_libs" != yes; then 7686732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com wrappers_required=no 7687732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 7688732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 7689732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *cegcc) 7690732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Disable wrappers for cegcc, we are cross compiling anyway. 7691732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com wrappers_required=no 7692732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 7693732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) 7694732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$need_relink" = no || test "$build_libtool_libs" != yes; then 7695732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com wrappers_required=no 7696732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 7697732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 7698732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 7699732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$wrappers_required" = no; then 7700732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Replace the output file specification. 7701732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com compile_command=`$ECHO "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` 7702732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com link_command="$compile_command$compile_rpath" 7703311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 7704732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # We have no uninstalled library dependencies, so finalize right now. 7705732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com exit_status=0 7706732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_show_eval "$link_command" 'exit_status=$?' 7707311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 7708732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Delete the generated files. 7709732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -f "$output_objdir/${outputname}S.${objext}"; then 7710732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"' 7711311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff fi 7712311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 7713732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com exit $exit_status 7714732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 7715311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 7716732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$compile_shlibpath$finalize_shlibpath"; then 7717732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" 7718732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 7719732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$finalize_shlibpath"; then 7720732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" 7721732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 7722311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 7723732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com compile_var= 7724732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com finalize_var= 7725732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$runpath_var"; then 7726732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$perm_rpath"; then 7727732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # We should set the runpath_var. 7728732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com rpath= 7729732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for dir in $perm_rpath; do 7730732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com rpath="$rpath$dir:" 7731732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done 7732732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com compile_var="$runpath_var=\"$rpath\$$runpath_var\" " 7733311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff fi 7734732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$finalize_perm_rpath"; then 7735732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # We should set the runpath_var. 7736732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com rpath= 7737732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for dir in $finalize_perm_rpath; do 7738732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com rpath="$rpath$dir:" 7739732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done 7740732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " 7741311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff fi 7742732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 7743311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 7744732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$no_install" = yes; then 7745732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # We don't need to create a wrapper script. 7746732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com link_command="$compile_var$compile_command$compile_rpath" 7747732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Replace the output file specification. 7748732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` 7749732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Delete the old output file. 7750732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $opt_dry_run || $RM $output 7751732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Link the executable and exit 7752732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_show_eval "$link_command" 'exit $?' 7753311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff exit $EXIT_SUCCESS 7754732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 7755311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 7756732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$hardcode_action" = relink; then 7757732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Fast installation is not supported 7758732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com link_command="$compile_var$compile_command$compile_rpath" 7759732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com relink_command="$finalize_var$finalize_command$finalize_rpath" 7760732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 7761732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_warning "this platform does not like uninstalled shared libraries" 7762732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_warning "\`$output' will be relinked during installation" 7763732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 7764732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$fast_install" != no; then 7765732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com link_command="$finalize_var$compile_command$finalize_rpath" 7766732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$fast_install" = yes; then 7767732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com relink_command=`$ECHO "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'` 7768732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 7769732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # fast_install is set to needless 7770732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com relink_command= 7771732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 7772311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff else 7773732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com link_command="$compile_var$compile_command$compile_rpath" 7774732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com relink_command="$finalize_var$finalize_command$finalize_rpath" 7775311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff fi 7776732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 7777311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 7778732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Replace the output file specification. 7779732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` 7780311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 7781732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Delete the old output files. 7782732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname 7783311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 7784732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_show_eval "$link_command" 'exit $?' 7785311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 7786732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Now create the wrapper script. 7787732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_verbose "creating $output" 7788311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 7789732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Quote the relink command for shipping. 7790732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$relink_command"; then 7791732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Preserve any variables that may affect compiler behavior 7792732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for var in $variables_saved_for_relink; do 7793732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if eval test -z \"\${$var+set}\"; then 7794732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" 7795732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com elif eval var_value=\$$var; test -z "$var_value"; then 7796732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com relink_command="$var=; export $var; $relink_command" 7797311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff else 7798732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_quote_for_eval "$var_value" 7799732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" 7800311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff fi 7801732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done 7802732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com relink_command="(cd `pwd`; $relink_command)" 7803732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"` 7804732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 7805311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 7806732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Quote $ECHO for shipping. 7807732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "X$ECHO" = "X$SHELL $progpath --fallback-echo"; then 7808732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $progpath in 7809732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";; 7810732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) qecho="$SHELL `pwd`/$progpath --fallback-echo";; 7811732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 7812732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com qecho=`$ECHO "X$qecho" | $Xsed -e "$sed_quote_subst"` 7813732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 7814732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com qecho=`$ECHO "X$ECHO" | $Xsed -e "$sed_quote_subst"` 7815732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 7816732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 7817732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Only actually do things if not in dry run mode. 7818732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $opt_dry_run || { 7819732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # win32 will think the script is a binary if it has 7820732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # a .exe suffix, so we strip it off here. 7821732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $output in 7822732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *.exe) func_stripname '' '.exe' "$output" 7823732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com output=$func_stripname_result ;; 7824732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 7825732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # test for cygwin because mv fails w/o .exe extensions 7826732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $host in 7827732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *cygwin*) 7828732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com exeext=.exe 7829732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_stripname '' '.exe' "$outputname" 7830732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com outputname=$func_stripname_result ;; 7831732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) exeext= ;; 7832311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff esac 7833732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $host in 7834732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *cygwin* | *mingw* ) 7835732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_dirname_and_basename "$output" "" "." 7836732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com output_name=$func_basename_result 7837732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com output_path=$func_dirname_result 7838732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com cwrappersource="$output_path/$objdir/lt-$output_name.c" 7839732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com cwrapper="$output_path/$output_name.exe" 7840732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $RM $cwrappersource $cwrapper 7841732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 7842732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 7843732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_emit_cwrapperexe_src > $cwrappersource 7844732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 7845732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # The wrapper executable is built using the $host compiler, 7846732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # because it contains $host paths and files. If cross- 7847732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # compiling, it, like the target executable, must be 7848732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # executed on the $host or under an emulation environment. 7849732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $opt_dry_run || { 7850732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $LTCC $LTCFLAGS -o $cwrapper $cwrappersource 7851732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $STRIP $cwrapper 7852732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com } 7853311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 7854732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Now, create the wrapper script for func_source use: 7855732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_ltwrapper_scriptname $cwrapper 7856732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $RM $func_ltwrapper_scriptname_result 7857732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15 7858732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $opt_dry_run || { 7859732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # note: this script will not be executed, so do not chmod. 7860732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "x$build" = "x$host" ; then 7861732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result 7862732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 7863732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_emit_wrapper no > $func_ltwrapper_scriptname_result 7864732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 7865732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com } 7866732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 7867732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com * ) 7868732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $RM $output 7869732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com trap "$RM $output; exit $EXIT_FAILURE" 1 2 15 7870311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 7871732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_emit_wrapper no > $output 7872732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com chmod +x $output 7873732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 7874732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 7875732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com } 7876732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com exit $EXIT_SUCCESS 7877732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 7878732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 7879311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 7880732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # See if we need to build an old-fashioned archive. 7881732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for oldlib in $oldlibs; do 7882311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 7883732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$build_libtool_libs" = convenience; then 7884732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com oldobjs="$libobjs_save $symfileobj" 7885732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com addlibs="$convenience" 7886732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com build_libtool_libs=no 7887732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 7888732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$build_libtool_libs" = module; then 7889732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com oldobjs="$libobjs_save" 7890732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com build_libtool_libs=no 7891732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 7892732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com oldobjs="$old_deplibs $non_pic_objects" 7893732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$preload" = yes && test -f "$symfileobj"; then 7894732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com oldobjs="$oldobjs $symfileobj" 7895732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 7896732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 7897732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com addlibs="$old_convenience" 7898311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff fi 7899311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 7900732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$addlibs"; then 7901732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com gentop="$output_objdir/${outputname}x" 7902732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com generated="$generated $gentop" 7903311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 7904732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_extract_archives $gentop $addlibs 7905732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com oldobjs="$oldobjs $func_extract_archives_result" 7906732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 7907311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 7908732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Do each command in the archive commands. 7909732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then 7910732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com cmds=$old_archive_from_new_cmds 7911732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 7912311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 7913732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Add any objects from preloaded convenience libraries 7914732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$dlprefiles"; then 7915732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com gentop="$output_objdir/${outputname}x" 7916732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com generated="$generated $gentop" 7917311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 7918732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_extract_archives $gentop $dlprefiles 7919732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com oldobjs="$oldobjs $func_extract_archives_result" 7920732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 7921311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 7922732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # POSIX demands no paths to be encoded in archives. We have 7923732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # to avoid creating archives with duplicate basenames if we 7924732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # might have to extract them afterwards, e.g., when creating a 7925732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # static archive out of a convenience library, or when linking 7926732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # the entirety of a libtool archive into another (currently 7927732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # not supported by libtool). 7928732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if (for obj in $oldobjs 7929732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com do 7930732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_basename "$obj" 7931732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "$func_basename_result" 7932732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done | sort | sort -uc >/dev/null 2>&1); then 7933732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com : 7934732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 7935732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO "copying selected object files to avoid basename conflicts..." 7936732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com gentop="$output_objdir/${outputname}x" 7937732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com generated="$generated $gentop" 7938732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_mkdir_p "$gentop" 7939732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com save_oldobjs=$oldobjs 7940732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com oldobjs= 7941732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com counter=1 7942732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for obj in $save_oldobjs 7943732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com do 7944732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_basename "$obj" 7945732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com objbase="$func_basename_result" 7946732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case " $oldobjs " in 7947732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com " ") oldobjs=$obj ;; 7948732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *[\ /]"$objbase "*) 7949732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com while :; do 7950732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Make sure we don't pick an alternate name that also 7951732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # overlaps. 7952732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com newobj=lt$counter-$objbase 7953732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_arith $counter + 1 7954732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com counter=$func_arith_result 7955732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case " $oldobjs " in 7956732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *[\ /]"$newobj "*) ;; 7957732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) if test ! -f "$gentop/$newobj"; then break; fi ;; 7958732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 7959732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done 7960732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" 7961732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com oldobjs="$oldobjs $gentop/$newobj" 7962732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 7963732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) oldobjs="$oldobjs $obj" ;; 7964732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 7965311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff done 7966311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff fi 7967732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com eval cmds=\"$old_archive_cmds\" 7968311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 7969732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_len " $cmds" 7970732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com len=$func_len_result 7971732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then 7972732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com cmds=$old_archive_cmds 7973732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 7974732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # the command line is too long to link in one step, link in parts 7975732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_verbose "using piecewise archive linking..." 7976732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com save_RANLIB=$RANLIB 7977732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com RANLIB=: 7978732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com objlist= 7979732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com concat_cmds= 7980732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com save_oldobjs=$oldobjs 7981732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com oldobjs= 7982732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Is there a better way of finding the last object in the list? 7983732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for obj in $save_oldobjs 7984732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com do 7985732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com last_oldobj=$obj 7986732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done 7987732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com eval test_cmds=\"$old_archive_cmds\" 7988732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_len " $test_cmds" 7989732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com len0=$func_len_result 7990732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com len=$len0 7991732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for obj in $save_oldobjs 7992732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com do 7993732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_len " $obj" 7994732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_arith $len + $func_len_result 7995732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com len=$func_arith_result 7996732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_append objlist " $obj" 7997732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$len" -lt "$max_cmd_len"; then 7998732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com : 7999732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 8000732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # the above command should be used before it gets too long 8001732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com oldobjs=$objlist 8002732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$obj" = "$last_oldobj" ; then 8003732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com RANLIB=$save_RANLIB 8004732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 8005732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test -z "$concat_cmds" || concat_cmds=$concat_cmds~ 8006732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" 8007732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com objlist= 8008732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com len=$len0 8009732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 8010732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done 8011732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com RANLIB=$save_RANLIB 8012732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com oldobjs=$objlist 8013732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "X$oldobjs" = "X" ; then 8014732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com eval cmds=\"\$concat_cmds\" 8015732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 8016732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com eval cmds=\"\$concat_cmds~\$old_archive_cmds\" 8017732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 8018732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 8019732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 8020732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_execute_cmds "$cmds" 'exit $?' 8021311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff done 8022311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 8023732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test -n "$generated" && \ 8024732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_show_eval "${RM}r$generated" 8025311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 8026732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Now create the libtool archive. 8027732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $output in 8028732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *.la) 8029732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com old_library= 8030732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test "$build_old_libs" = yes && old_library="$libname.$libext" 8031732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_verbose "creating $output" 8032311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 8033732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Preserve any variables that may affect compiler behavior 8034732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for var in $variables_saved_for_relink; do 8035732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if eval test -z \"\${$var+set}\"; then 8036732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" 8037732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com elif eval var_value=\$$var; test -z "$var_value"; then 8038732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com relink_command="$var=; export $var; $relink_command" 8039311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff else 8040732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_quote_for_eval "$var_value" 8041732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" 8042311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff fi 8043732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done 8044732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Quote the link command for shipping. 8045732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" 8046732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"` 8047732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$hardcode_automatic" = yes ; then 8048732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com relink_command= 8049732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 8050311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 8051732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Only create the output if not a dry run. 8052732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $opt_dry_run || { 8053732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for installed in no yes; do 8054732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$installed" = yes; then 8055732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -z "$install_libdir"; then 8056732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com break 8057732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 8058732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com output="$output_objdir/$outputname"i 8059732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Replace all uninstalled libtool libraries with the installed ones 8060732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com newdependency_libs= 8061732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for deplib in $dependency_libs; do 8062732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $deplib in 8063732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *.la) 8064732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_basename "$deplib" 8065732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com name="$func_basename_result" 8066732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` 8067732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test -z "$libdir" && \ 8068732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_fatal_error "\`$deplib' is not a valid libtool archive" 8069732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com newdependency_libs="$newdependency_libs $libdir/$name" 8070732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 8071732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) newdependency_libs="$newdependency_libs $deplib" ;; 8072732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 8073732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done 8074732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com dependency_libs="$newdependency_libs" 8075732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com newdlfiles= 8076732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 8077732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for lib in $dlfiles; do 8078732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $lib in 8079732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *.la) 8080732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_basename "$lib" 8081732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com name="$func_basename_result" 8082732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` 8083732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test -z "$libdir" && \ 8084732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_fatal_error "\`$lib' is not a valid libtool archive" 8085732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com newdlfiles="$newdlfiles $libdir/$name" 8086732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 8087732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) newdlfiles="$newdlfiles $lib" ;; 8088732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 8089732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done 8090732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com dlfiles="$newdlfiles" 8091732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com newdlprefiles= 8092732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for lib in $dlprefiles; do 8093732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $lib in 8094732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *.la) 8095732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Only pass preopened files to the pseudo-archive (for 8096732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # eventual linking with the app. that links it) if we 8097732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # didn't already link the preopened objects directly into 8098732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # the library: 8099732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_basename "$lib" 8100732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com name="$func_basename_result" 8101732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` 8102732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test -z "$libdir" && \ 8103732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_fatal_error "\`$lib' is not a valid libtool archive" 8104732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com newdlprefiles="$newdlprefiles $libdir/$name" 8105732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 8106732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 8107732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done 8108732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com dlprefiles="$newdlprefiles" 8109732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 8110732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com newdlfiles= 8111732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for lib in $dlfiles; do 8112732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $lib in 8113732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; 8114732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) abs=`pwd`"/$lib" ;; 8115732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 8116732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com newdlfiles="$newdlfiles $abs" 8117732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done 8118732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com dlfiles="$newdlfiles" 8119732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com newdlprefiles= 8120732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com for lib in $dlprefiles; do 8121732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $lib in 8122732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; 8123732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *) abs=`pwd`"/$lib" ;; 8124732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 8125732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com newdlprefiles="$newdlprefiles $abs" 8126732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done 8127732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com dlprefiles="$newdlprefiles" 8128732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 8129732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $RM $output 8130732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # place dlname in correct position for cygwin 8131732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com tdlname=$dlname 8132732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com case $host,$output,$installed,$module,$dlname in 8133732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;; 8134732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 8135732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO > $output "\ 8136732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# $outputname - a libtool library file 8137732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION 8138732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# 8139732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# Please DO NOT delete this file! 8140732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# It is necessary for linking the library. 8141311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 8142732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# The name that we can dlopen(3). 8143732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comdlname='$tdlname' 8144311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 8145732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# Names of this library. 8146732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comlibrary_names='$library_names' 8147311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 8148732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# The name of the static archive. 8149732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comold_library='$old_library' 8150311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 8151732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# Linker flags that can not go in dependency_libs. 8152732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.cominherited_linker_flags='$new_inherited_linker_flags' 8153311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 8154732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# Libraries that this one depends upon. 8155732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comdependency_libs='$dependency_libs' 8156311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 8157732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# Names of additional weak libraries provided by this library 8158732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comweak_library_names='$weak_libs' 8159311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 8160732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# Version information for $libname. 8161732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comcurrent=$current 8162732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comage=$age 8163732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comrevision=$revision 8164311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 8165732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# Is this an already installed library? 8166732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.cominstalled=$installed 8167311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 8168732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# Should we warn about portability when linking against -modules? 8169732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comshouldnotlink=$module 8170311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 8171732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# Files to dlopen/dlpreopen 8172732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comdlopen='$dlfiles' 8173732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comdlpreopen='$dlprefiles' 8174311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 8175732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# Directory that this library needs to be installed in: 8176732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comlibdir='$install_libdir'" 8177732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "$installed" = no && test "$need_relink" = yes; then 8178732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $ECHO >> $output "\ 8179732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comrelink_command=\"$relink_command\"" 8180732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 8181732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com done 8182732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com } 8183311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 8184732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # Do a symbolic link so that the libtool archive can be found in 8185732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com # LD_LIBRARY_PATH before the program is installed. 8186732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?' 8187732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com ;; 8188732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com esac 8189732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com exit $EXIT_SUCCESS 8190732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com} 8191311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 8192732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com{ test "$mode" = link || test "$mode" = relink; } && 8193732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_mode_link ${1+"$@"} 8194311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 8195311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 8196732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# func_mode_uninstall arg... 8197732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comfunc_mode_uninstall () 8198732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com{ 8199732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com $opt_debug 8200732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com RM="$nonopt" 8201311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff files= 8202311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff rmforce= 8203311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff exit_status=0 8204311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 8205311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff # This variable tells wrapper scripts just to set variables rather 8206311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff # than running their programs. 8207311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff libtool_install_magic="$magic" 8208311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 8209311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff for arg 8210311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff do 8211311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff case $arg in 8212732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -f) RM="$RM $arg"; rmforce=yes ;; 8213732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com -*) RM="$RM $arg" ;; 8214311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff *) files="$files $arg" ;; 8215311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff esac 8216311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff done 8217311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 8218732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test -z "$RM" && \ 8219732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_fatal_help "you must specify an RM program" 8220311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 8221311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff rmdirs= 8222311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 8223311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff origobjdir="$objdir" 8224311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff for file in $files; do 8225732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_dirname "$file" "" "." 8226732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com dir="$func_dirname_result" 8227732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test "X$dir" = X.; then 8228311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff objdir="$origobjdir" 8229311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff else 8230311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff objdir="$dir/$origobjdir" 8231311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff fi 8232732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_basename "$file" 8233732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com name="$func_basename_result" 8234311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff test "$mode" = uninstall && objdir="$dir" 8235311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 8236311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff # Remember objdir for removal later, being careful to avoid duplicates 8237311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff if test "$mode" = clean; then 8238311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff case " $rmdirs " in 8239311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff *" $objdir "*) ;; 8240311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff *) rmdirs="$rmdirs $objdir" ;; 8241311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff esac 8242311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff fi 8243311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 8244311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff # Don't error if the file doesn't exist and rm -f was used. 8245732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if { test -L "$file"; } >/dev/null 2>&1 || 8246732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com { test -h "$file"; } >/dev/null 2>&1 || 8247732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test -f "$file"; then 8248311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff : 8249311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff elif test -d "$file"; then 8250311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff exit_status=1 8251311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff continue 8252311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff elif test "$rmforce" = yes; then 8253311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff continue 8254311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff fi 8255311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 8256311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff rmfiles="$file" 8257311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 8258311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff case $name in 8259311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff *.la) 8260311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff # Possibly a libtool archive, so verify it. 8261732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if func_lalib_p "$file"; then 8262732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_source $dir/$name 8263311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 8264311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff # Delete the libtool libraries and symlinks. 8265311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff for n in $library_names; do 8266311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff rmfiles="$rmfiles $objdir/$n" 8267311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff done 8268311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library" 8269311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 8270311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff case "$mode" in 8271311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff clean) 8272311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff case " $library_names " in 8273311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff # " " in the beginning catches empty $dlname 8274311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff *" $dlname "*) ;; 8275311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff *) rmfiles="$rmfiles $objdir/$dlname" ;; 8276311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff esac 8277732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" 8278311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff ;; 8279311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff uninstall) 8280311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff if test -n "$library_names"; then 8281311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff # Do each command in the postuninstall commands. 8282732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' 8283311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff fi 8284311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 8285311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff if test -n "$old_library"; then 8286311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff # Do each command in the old_postuninstall commands. 8287732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' 8288311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff fi 8289311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff # FIXME: should reinstall the best remaining shared library. 8290311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff ;; 8291311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff esac 8292311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff fi 8293311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff ;; 8294311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 8295311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff *.lo) 8296311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff # Possibly a libtool object, so verify it. 8297732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if func_lalib_p "$file"; then 8298311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 8299311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff # Read the .lo file 8300732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_source $dir/$name 8301311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 8302311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff # Add PIC object to the list of files to remove. 8303732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$pic_object" && 8304732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test "$pic_object" != none; then 8305311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff rmfiles="$rmfiles $dir/$pic_object" 8306311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff fi 8307311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 8308311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff # Add non-PIC object to the list of files to remove. 8309732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if test -n "$non_pic_object" && 8310732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com test "$non_pic_object" != none; then 8311311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff rmfiles="$rmfiles $dir/$non_pic_object" 8312311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff fi 8313311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff fi 8314311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff ;; 8315311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 8316311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff *) 8317311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff if test "$mode" = clean ; then 8318311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff noexename=$name 8319311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff case $file in 8320311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff *.exe) 8321732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_stripname '' '.exe' "$file" 8322732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com file=$func_stripname_result 8323732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_stripname '' '.exe' "$name" 8324732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com noexename=$func_stripname_result 8325311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff # $file with .exe has already been added to rmfiles, 8326311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff # add $file without .exe 8327311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff rmfiles="$rmfiles $file" 8328311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff ;; 8329311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff esac 8330311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff # Do a test to see if this is a libtool program. 8331732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if func_ltwrapper_p "$file"; then 8332732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com if func_ltwrapper_executable_p "$file"; then 8333732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_ltwrapper_scriptname "$file" 8334732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com relink_command= 8335732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_source $func_ltwrapper_scriptname_result 8336732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com rmfiles="$rmfiles $func_ltwrapper_scriptname_result" 8337732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com else 8338732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com relink_command= 8339732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_source $dir/$noexename 8340732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com fi 8341311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 8342311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff # note $name still contains .exe if it was in $file originally 8343311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff # as does the version of $file that was added into $rmfiles 8344311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}" 8345311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff if test "$fast_install" = yes && test -n "$relink_command"; then 8346311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff rmfiles="$rmfiles $objdir/lt-$name" 8347311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff fi 8348311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff if test "X$noexename" != "X$name" ; then 8349311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff rmfiles="$rmfiles $objdir/lt-${noexename}.c" 8350311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff fi 8351311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff fi 8352311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff fi 8353311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff ;; 8354311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff esac 8355732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_show_eval "$RM $rmfiles" 'exit_status=1' 8356311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff done 8357311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff objdir="$origobjdir" 8358311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 8359311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff # Try to remove the ${objdir}s in the directories where we deleted files 8360311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff for dir in $rmdirs; do 8361311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff if test -d "$dir"; then 8362732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_show_eval "rmdir $dir >/dev/null 2>&1" 8363311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff fi 8364311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff done 8365311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 8366311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff exit $exit_status 8367732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com} 8368311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 8369732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com{ test "$mode" = uninstall || test "$mode" = clean; } && 8370732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_mode_uninstall ${1+"$@"} 8371311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 8372732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comtest -z "$mode" && { 8373732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com help="$generic_help" 8374732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_fatal_help "you must specify a MODE" 8375732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com} 8376732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 8377732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comtest -z "$exec_cmd" && \ 8378732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com func_fatal_help "invalid operation mode \`$mode'" 8379311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 8380311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiffif test -n "$exec_cmd"; then 8381732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com eval exec "$exec_cmd" 8382311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff exit $EXIT_FAILURE 8383311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdifffi 8384311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 8385732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comexit $exit_status 8386311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 8387311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 8388311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff# The TAGs below are defined such that we never get into a situation 8389311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff# in which we disable both kinds of libraries. Given conflicting 8390311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff# choices, we go for a static library, that is the most portable, 8391311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff# since we can't tell whether shared libraries were disabled because 8392311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff# the user asked for that or because the platform doesn't support 8393311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff# them. This is particularly important on AIX, because we don't 8394311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff# support having both static and shared libraries enabled at the same 8395311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff# time on that platform, so we default to a shared-only configuration. 8396311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff# If a disable-shared tag is given, we'll fallback to a static-only 8397311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff# configuration. But we'll never go from static-only to shared-only. 8398311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 8399311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff# ### BEGIN LIBTOOL TAG CONFIG: disable-shared 8400732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.combuild_libtool_libs=no 8401732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.combuild_old_libs=yes 8402311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff# ### END LIBTOOL TAG CONFIG: disable-shared 8403311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 8404311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff# ### BEGIN LIBTOOL TAG CONFIG: disable-static 8405732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.combuild_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` 8406311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff# ### END LIBTOOL TAG CONFIG: disable-static 8407311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 8408311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff# Local Variables: 8409311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff# mode:shell-script 8410311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff# sh-indentation:2 8411311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff# End: 8412732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com# vi:sw=2 8413732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 8414