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