15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ltmain.sh - Provide generalized library-building support services. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# NOTE: Changing this file will not affect anything until you rerun configure. 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# 2007, 2008 Free Software Foundation, Inc. 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# This program is free software; you can redistribute it and/or modify 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# it under the terms of the GNU General Public License as published by 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# the Free Software Foundation; either version 2 of the License, or 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# (at your option) any later version. 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# This program is distributed in the hope that it will be useful, but 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# WITHOUT ANY WARRANTY; without even the implied warranty of 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# General Public License for more details. 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# You should have received a copy of the GNU General Public License 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# along with this program; if not, write to the Free Software 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# As a special exception to the GNU General Public License, if you 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# distribute this file as part of a program that contains a 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# configuration script generated by Autoconf, you may include it under 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# the same distribution terms that you use for the rest of that program. 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)basename="s,^.*/,,g" 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# is ksh but when the shell is invoked as "sh" and the current value of 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# the _XPG environment variable is not equal to 1 (one), the special 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# positional parameter $0, within a function call, is the name of the 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# function. 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)progpath="$0" 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# The name of this program: 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)progname=`echo "$progpath" | $SED $basename` 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)modename="$progname" 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Global variables: 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)EXIT_SUCCESS=0 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)EXIT_FAILURE=1 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)PROGRAM=ltmain.sh 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)PACKAGE=libtool 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)VERSION=1.5.26 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)TIMESTAMP=" (1.1220.2.492 2008/01/30 06:40:56)" 485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Be Bourne compatible (taken from Autoconf:_AS_BOURNE_COMPATIBLE). 505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then 515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) emulate sh 525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) NULLCMD=: 535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which 545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # is contrary to our usage. Disable this feature. 555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) alias -g '${1+"$@"}'='"$@"' 565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) setopt NO_GLOB_SUBST 575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)else 585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac 595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)fi 605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)BIN_SH=xpg4; export BIN_SH # for Tru64 615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)DUALCASE=1; export DUALCASE # for MKS sh 625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Check that we have a working $echo. 645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)if test "X$1" = X--no-reexec; then 655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Discard the --no-reexec flag, and continue. 665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) shift 675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)elif test "X$1" = X--fallback-echo; then 685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Avoid inline document here, it may be left over 695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) : 705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then 715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Yippee, $echo works! 725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) : 735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)else 745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Restart under the correct shell, and then maybe $echo will work. 755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exec $SHELL "$progpath" --no-reexec ${1+"$@"} 765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)fi 775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)if test "X$1" = X--fallback-echo; then 795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # used as fallback echo 805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) shift 815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) cat <<EOF 825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)$* 835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)EOF 845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit $EXIT_SUCCESS 855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)fi 865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)default_mode= 885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)help="Try \`$progname --help' for more information." 895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)magic="%%%MAGIC variable%%%" 905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)mkdir="mkdir" 915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)mv="mv -f" 925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)rm="rm -f" 935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Sed substitution that helps us do robust quoting. It backslashifies 955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# metacharacters that are still active within double-quoted strings. 965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)Xsed="${SED}"' -e 1s/^X//' 975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g' 985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# test EBCDIC or ASCII 995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)case `echo X|tr X '\101'` in 1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) A) # ASCII based system 1015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr 1025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SP2NL='tr \040 \012' 1035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) NL2SP='tr \015\012 \040\040' 1045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 1055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) # EBCDIC based system 1065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SP2NL='tr \100 \n' 1075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) NL2SP='tr \r\n \100\100' 1085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 1095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)esac 1105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# NLS nuisances. 1125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Only set LANG and LC_ALL to C if already set. 1135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# These must not be set unconditionally because not all systems understand 1145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# e.g. LANG=C (notably SCO). 1155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# We save the old values to restore during execute mode. 1165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)lt_env= 1175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES 1185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)do 1195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eval "if test \"\${$lt_var+set}\" = set; then 1205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) save_$lt_var=\$$lt_var 1215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lt_env=\"$lt_var=\$$lt_var \$lt_env\" 1225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $lt_var=C 1235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) export $lt_var 1245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi" 1255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)done 1265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)if test -n "$lt_env"; then 1285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lt_env="env $lt_env" 1295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)fi 1305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Make sure IFS has a sensible default 1325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)lt_nl=' 1335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)' 1345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IFS=" $lt_nl" 1355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then 1375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: not configured to build any kind of library" 1>&2 1385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 1395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit $EXIT_FAILURE 1405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)fi 1415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Global variables. 1435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)mode=$default_mode 1445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)nonopt= 1455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)prev= 1465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)prevopt= 1475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)run= 1485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)show="$echo" 1495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)show_help= 1505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)execute_dlfiles= 1515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)duplicate_deps=no 1525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)preserve_args= 1535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)lo2o="s/\\.lo\$/.${objext}/" 1545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)o2lo="s/\\.${objext}\$/.lo/" 1555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extracted_archives= 1565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extracted_serial=0 1575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)##################################### 1595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Shell function definitions: 1605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# This seems to be the best place for them 1615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# func_mktempdir [string] 1635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Make a temporary directory that won't clash with other running 1645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# libtool processes, and avoids race conditions if possible. If 1655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# given, STRING is the basename for that directory. 1665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)func_mktempdir () 1675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){ 1685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) my_template="${TMPDIR-/tmp}/${1-$progname}" 1695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$run" = ":"; then 1715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Return a directory name, but don't create it in dry-run mode 1725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) my_tmpdir="${my_template}-$$" 1735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 1745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # If mktemp works, use that first and foremost 1765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` 1775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test ! -d "$my_tmpdir"; then 1795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Failing that, at least try and use $RANDOM to avoid a race 1805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) my_tmpdir="${my_template}-${RANDOM-0}$$" 1815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) save_mktempdir_umask=`umask` 1835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) umask 0077 1845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $mkdir "$my_tmpdir" 1855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) umask $save_mktempdir_umask 1865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 1875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # If we're not in dry-run mode, bomb out on failure 1895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test -d "$my_tmpdir" || { 1905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "cannot create temporary directory \`$my_tmpdir'" 1>&2 1915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit $EXIT_FAILURE 1925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 1935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 1945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "X$my_tmpdir" | $Xsed 1965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# func_win32_libid arg 2005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# return the library type of file 'arg' 2015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# 2025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Need a lot of goo to handle *both* DLLs and import libs 2035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Has to be a shell function in order to 'eat' the argument 2045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# that is supplied when $file_magic_command is called. 2055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)func_win32_libid () 2065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){ 2075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) win32_libid_type="unknown" 2085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) win32_fileres=`file -L $1 2>/dev/null` 2095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $win32_fileres in 2105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *ar\ archive\ import\ library*) # definitely import 2115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) win32_libid_type="x86 archive import" 2125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 2135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *ar\ archive*) # could be an import, or static 2145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \ 2155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $EGREP -e 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then 2165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) win32_nmres=`eval $NM -f posix -A $1 | \ 2175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $SED -n -e '1,100{ 2185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) / I /{ 2195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) s,.*,import, 2205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) p 2215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) q 2225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 2235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) }'` 2245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $win32_nmres in 2255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) import*) win32_libid_type="x86 archive import";; 2265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) win32_libid_type="x86 archive static";; 2275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 2285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 2295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 2305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *DLL*) 2315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) win32_libid_type="x86 DLL" 2325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 2335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *executable*) # but shell scripts are "executable" too... 2345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $win32_fileres in 2355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *MS\ Windows\ PE\ Intel*) 2365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) win32_libid_type="x86 DLL" 2375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 2385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 2395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 2405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 2415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo $win32_libid_type 2425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# func_infer_tag arg 2465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Infer tagged configuration to use if any are available and 2475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# if one wasn't chosen via the "--tag" command line option. 2485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Only attempt this if the compiler in the base compile 2495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# command doesn't match the default compiler. 2505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# arg is usually of the form 'gcc ...' 2515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)func_infer_tag () 2525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){ 2535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$available_tags" && test -z "$tagname"; then 2545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) CC_quoted= 2555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for arg in $CC; do 2565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $arg in 2575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 2585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) arg="\"$arg\"" 2595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 2605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 2615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) CC_quoted="$CC_quoted $arg" 2625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 2635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $@ in 2645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Blanks in the command may have been stripped by the calling shell, 2655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # but not from the CC environment variable when configure was run. 2665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) ;; 2675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Blanks at the start of $base_compile will cause this to fail 2685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # if we don't check for them as well. 2695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) 2705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for z in $available_tags; do 2715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then 2725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Evaluate the configuration. 2735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" 2745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) CC_quoted= 2755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for arg in $CC; do 2765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Double-quote args containing other shell metacharacters. 2775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $arg in 2785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 2795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) arg="\"$arg\"" 2805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 2815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 2825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) CC_quoted="$CC_quoted $arg" 2835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 2845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case "$@ " in 2855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) 2865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # The compiler in the base compile command matches 2875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # the one in the tagged configuration. 2885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Assume this is the tagged configuration we want. 2895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) tagname=$z 2905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) break 2915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 2925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 2935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 2945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 2955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # If $tagname still isn't set, then no tagged configuration 2965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # was found and let the user know that the "--tag" command 2975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # line option must be used. 2985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -z "$tagname"; then 2995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: unable to infer tagged configuration" 3005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: specify a tag with \`--tag'" 1>&2 3015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit $EXIT_FAILURE 3025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# else 3035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# $echo "$modename: using $tagname tagged configuration" 3045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 3055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 3065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 3075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 3085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 3095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# func_extract_an_archive dir oldlib 3125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)func_extract_an_archive () 3135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){ 3145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) f_ex_an_ar_dir="$1"; shift 3155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) f_ex_an_ar_oldlib="$1" 3165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $show "(cd $f_ex_an_ar_dir && $AR x $f_ex_an_ar_oldlib)" 3185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $run eval "(cd \$f_ex_an_ar_dir && $AR x \$f_ex_an_ar_oldlib)" || exit $? 3195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then 3205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) : 3215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 3225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: ERROR: object name conflicts: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" 1>&2 3235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit $EXIT_FAILURE 3245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 3255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 3265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# func_extract_archives gentop oldlib ... 3285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)func_extract_archives () 3295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){ 3305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) my_gentop="$1"; shift 3315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) my_oldlibs=${1+"$@"} 3325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) my_oldobjs="" 3335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) my_xlib="" 3345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) my_xabs="" 3355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) my_xdir="" 3365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) my_status="" 3375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $show "${rm}r $my_gentop" 3395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $run ${rm}r "$my_gentop" 3405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $show "$mkdir $my_gentop" 3415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $run $mkdir "$my_gentop" 3425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) my_status=$? 3435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$my_status" -ne 0 && test ! -d "$my_gentop"; then 3445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit $my_status 3455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 3465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for my_xlib in $my_oldlibs; do 3485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Extract the objects. 3495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $my_xlib in 3505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; 3515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) my_xabs=`pwd`"/$my_xlib" ;; 3525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 3535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) my_xlib=`$echo "X$my_xlib" | $Xsed -e 's%^.*/%%'` 3545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) my_xlib_u=$my_xlib 3555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) while :; do 3565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case " $extracted_archives " in 3575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *" $my_xlib_u "*) 3585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) extracted_serial=`expr $extracted_serial + 1` 3595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) my_xlib_u=lt$extracted_serial-$my_xlib ;; 3605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) break ;; 3615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 3625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 3635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) extracted_archives="$extracted_archives $my_xlib_u" 3645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) my_xdir="$my_gentop/$my_xlib_u" 3655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $show "${rm}r $my_xdir" 3675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $run ${rm}r "$my_xdir" 3685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $show "$mkdir $my_xdir" 3695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $run $mkdir "$my_xdir" 3705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit_status=$? 3715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$exit_status" -ne 0 && test ! -d "$my_xdir"; then 3725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit $exit_status 3735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 3745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $host in 3755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *-darwin*) 3765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $show "Extracting $my_xabs" 3775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Do not bother doing anything if just a dry run 3785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -z "$run"; then 3795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) darwin_orig_dir=`pwd` 3805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) cd $my_xdir || exit $? 3815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) darwin_archive=$my_xabs 3825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) darwin_curdir=`pwd` 3835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) darwin_base_archive=`$echo "X$darwin_archive" | $Xsed -e 's%^.*/%%'` 3845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) darwin_arches=`lipo -info "$darwin_archive" 2>/dev/null | $EGREP Architectures 2>/dev/null` 3855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$darwin_arches"; then 3865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) darwin_arches=`echo "$darwin_arches" | $SED -e 's/.*are://'` 3875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) darwin_arch= 3885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $show "$darwin_base_archive has multiple architectures $darwin_arches" 3895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for darwin_arch in $darwin_arches ; do 3905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) mkdir -p "unfat-$$/${darwin_base_archive}-${darwin_arch}" 3915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lipo -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" 3925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" 3935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) func_extract_an_archive "`pwd`" "${darwin_base_archive}" 3945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) cd "$darwin_curdir" 3955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $rm "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" 3965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done # $darwin_arches 3975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ## Okay now we have a bunch of thin objects, gotta fatten them up :) 3985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print| xargs basename | sort -u | $NL2SP` 3995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) darwin_file= 4005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) darwin_files= 4015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for darwin_file in $darwin_filelist; do 4025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP` 4035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lipo -create -output "$darwin_file" $darwin_files 4045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done # $darwin_filelist 4055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ${rm}r unfat-$$ 4065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) cd "$darwin_orig_dir" 4075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 4085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) cd "$darwin_orig_dir" 4095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) func_extract_an_archive "$my_xdir" "$my_xabs" 4105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi # $darwin_arches 4115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi # $run 4125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 4135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) 4145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) func_extract_an_archive "$my_xdir" "$my_xabs" 4155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 4165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 4175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` 4185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 4195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) func_extract_archives_result="$my_oldobjs" 4205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 4215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# End of Shell function definitions 4225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)##################################### 4235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Darwin sucks 4255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)eval std_shrext=\"$shrext_cmds\" 4265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)disable_libs=no 4285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Parse our command line options once, thoroughly. 4305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)while test "$#" -gt 0 4315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)do 4325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) arg="$1" 4335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) shift 4345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $arg in 4365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;; 4375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) optarg= ;; 4385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 4395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # If the previous option needs an argument, assign it. 4415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$prev"; then 4425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $prev in 4435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) execute_dlfiles) 4445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) execute_dlfiles="$execute_dlfiles $arg" 4455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 4465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) tag) 4475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) tagname="$arg" 4485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) preserve_args="${preserve_args}=$arg" 4495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Check whether tagname contains only valid characters 4515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $tagname in 4525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *[!-_A-Za-z0-9,/]*) 4535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$progname: invalid tag name: $tagname" 1>&2 4545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit $EXIT_FAILURE 4555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 4565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 4575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $tagname in 4595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) CC) 4605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Don't test for the "default" C tag, as we know, it's there, but 4615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # not specially marked. 4625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 4635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) 4645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$progpath" > /dev/null; then 4655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) taglist="$taglist $tagname" 4665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Evaluate the configuration. 4675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $progpath`" 4685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 4695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$progname: ignoring unknown tag $tagname" 1>&2 4705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 4715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 4725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 4735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 4745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) 4755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eval "$prev=\$arg" 4765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 4775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 4785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) prev= 4805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) prevopt= 4815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) continue 4825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 4835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Have we seen a non-optional argument yet? 4855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $arg in 4865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) --help) 4875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) show_help=yes 4885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 4895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) --version) 4915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) echo "\ 4925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP 4935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)Copyright (C) 2008 Free Software Foundation, Inc. 4955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)This is free software; see the source for copying conditions. There is NO 4965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." 4975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit $? 4985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 4995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 5005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) --config) 5015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $progpath 5025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Now print the configurations for the tags. 5035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for tagname in $taglist; do 5045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$progpath" 5055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 5065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit $? 5075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 5085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 5095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) --debug) 5105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$progname: enabling shell trace mode" 5115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) set -x 5125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) preserve_args="$preserve_args $arg" 5135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 5145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 5155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) --dry-run | -n) 5165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) run=: 5175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 5185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 5195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) --features) 5205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "host: $host" 5215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$build_libtool_libs" = yes; then 5225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "enable shared libraries" 5235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 5245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "disable shared libraries" 5255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 5265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$build_old_libs" = yes; then 5275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "enable static libraries" 5285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 5295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "disable static libraries" 5305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 5315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit $? 5325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 5335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 5345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) --finish) mode="finish" ;; 5355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 5365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) --mode) prevopt="--mode" prev=mode ;; 5375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) --mode=*) mode="$optarg" ;; 5385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 5395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) --preserve-dup-deps) duplicate_deps="yes" ;; 5405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 5415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) --quiet | --silent) 5425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) show=: 5435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) preserve_args="$preserve_args $arg" 5445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 5455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 5465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) --tag) 5475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) prevopt="--tag" 5485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) prev=tag 5495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) preserve_args="$preserve_args --tag" 5505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 5515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) --tag=*) 5525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) set tag "$optarg" ${1+"$@"} 5535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) shift 5545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) prev=tag 5555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) preserve_args="$preserve_args --tag" 5565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 5575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 5585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -dlopen) 5595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) prevopt="-dlopen" 5605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) prev=execute_dlfiles 5615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 5625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 5635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -*) 5645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: unrecognized option \`$arg'" 1>&2 5655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$help" 1>&2 5665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit $EXIT_FAILURE 5675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 5685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 5695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) 5705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) nonopt="$arg" 5715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) break 5725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 5735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 5745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)done 5755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 5765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)if test -n "$prevopt"; then 5775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: option \`$prevopt' requires an argument" 1>&2 5785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$help" 1>&2 5795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit $EXIT_FAILURE 5805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)fi 5815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 5825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)case $disable_libs in 5835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)no) 5845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 5855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)shared) 5865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) build_libtool_libs=no 5875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) build_old_libs=yes 5885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 5895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)static) 5905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` 5915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 5925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)esac 5935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 5945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# If this variable is set in any of the actions, the command in it 5955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# will be execed at the end. This prevents here-documents from being 5965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# left over by shells. 5975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)exec_cmd= 5985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 5995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)if test -z "$show_help"; then 6005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 6015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Infer the operation mode. 6025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -z "$mode"; then 6035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "*** Warning: inferring the mode of operation is deprecated." 1>&2 6045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "*** Future versions of Libtool will require --mode=MODE be specified." 1>&2 6055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $nonopt in 6065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*) 6075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) mode=link 6085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for arg 6095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) do 6105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $arg in 6115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -c) 6125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) mode=compile 6135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) break 6145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 6155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 6165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 6175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 6185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *db | *dbx | *strace | *truss) 6195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) mode=execute 6205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 6215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *install*|cp|mv) 6225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) mode=install 6235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 6245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *rm) 6255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) mode=uninstall 6265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 6275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) 6285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # If we have no mode, but dlfiles were specified, then do execute mode. 6295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test -n "$execute_dlfiles" && mode=execute 6305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 6315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Just use the default operation mode. 6325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -z "$mode"; then 6335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$nonopt"; then 6345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2 6355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 6365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2 6375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 6385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 6395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 6405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 6415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 6425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 6435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Only execute mode is allowed to have -dlopen flags. 6445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$execute_dlfiles" && test "$mode" != execute; then 6455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: unrecognized option \`-dlopen'" 1>&2 6465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$help" 1>&2 6475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit $EXIT_FAILURE 6485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 6495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 6505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Change the help message to a mode-specific one. 6515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) generic_help="$help" 6525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) help="Try \`$modename --help --mode=$mode' for more information." 6535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 6545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # These modes are in order of execution frequency so that they run quickly. 6555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $mode in 6565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # libtool compile mode 6575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) compile) 6585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) modename="$modename: compile" 6595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Get the compilation command and the source file. 6605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) base_compile= 6615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) srcfile="$nonopt" # always keep a non-empty value in "srcfile" 6625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) suppress_opt=yes 6635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) suppress_output= 6645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) arg_mode=normal 6655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) libobj= 6665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) later= 6675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 6685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for arg 6695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) do 6705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $arg_mode in 6715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) arg ) 6725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # do not "continue". Instead, add this to base_compile 6735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lastarg="$arg" 6745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) arg_mode=normal 6755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 6765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 6775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) target ) 6785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) libobj="$arg" 6795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) arg_mode=normal 6805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) continue 6815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 6825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 6835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) normal ) 6845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Accept any command-line options. 6855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $arg in 6865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -o) 6875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$libobj" ; then 6885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: you cannot specify \`-o' more than once" 1>&2 6895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit $EXIT_FAILURE 6905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 6915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) arg_mode=target 6925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) continue 6935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 6945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 6955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -static | -prefer-pic | -prefer-non-pic) 6965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) later="$later $arg" 6975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) continue 6985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 6995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 7005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -no-suppress) 7015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) suppress_opt=no 7025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) continue 7035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 7045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 7055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -Xcompiler) 7065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) arg_mode=arg # the next one goes into the "base_compile" arg list 7075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) continue # The current "srcfile" will either be retained or 7085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; # replaced later. I would guess that would be a bug. 7095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 7105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -Wc,*) 7115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"` 7125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lastarg= 7135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) save_ifs="$IFS"; IFS=',' 7145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for arg in $args; do 7155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) IFS="$save_ifs" 7165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 7175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Double-quote args containing other shell metacharacters. 7185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Many Bourne shells cannot handle close brackets correctly 7195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # in scan sets, so we specify it separately. 7205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $arg in 7215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 7225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) arg="\"$arg\"" 7235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 7245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 7255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lastarg="$lastarg $arg" 7265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 7275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) IFS="$save_ifs" 7285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"` 7295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 7305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Add the arguments to base_compile. 7315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) base_compile="$base_compile $lastarg" 7325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) continue 7335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 7345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 7355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * ) 7365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Accept the current argument as the source file. 7375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # The previous "srcfile" becomes the current argument. 7385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # 7395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lastarg="$srcfile" 7405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) srcfile="$arg" 7415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 7425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac # case $arg 7435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 7445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac # case $arg_mode 7455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 7465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Aesthetically quote the previous argument. 7475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"` 7485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 7495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $lastarg in 7505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Double-quote args containing other shell metacharacters. 7515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Many Bourne shells cannot handle close brackets correctly 7525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # in scan sets, and some SunOS ksh mistreat backslash-escaping 7535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # in scan sets (worked around with variable expansion), 7545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # and furthermore cannot handle '|' '&' '(' ')' in scan sets 7555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # at all, so we specify them separately. 7565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 7575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lastarg="\"$lastarg\"" 7585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 7595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 7605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 7615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) base_compile="$base_compile $lastarg" 7625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done # for arg 7635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 7645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $arg_mode in 7655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) arg) 7665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: you must specify an argument for -Xcompile" 7675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit $EXIT_FAILURE 7685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 7695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) target) 7705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: you must specify a target with \`-o'" 1>&2 7715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit $EXIT_FAILURE 7725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 7735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) 7745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Get the name of the library object. 7755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) [ -z "$libobj" ] && libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'` 7765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 7775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 7785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 7795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Recognize several different file suffixes. 7805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # If the user specifies -o file.o, it is replaced with file.lo 7815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) xform='[cCFSifmso]' 7825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $libobj in 7835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *.ada) xform=ada ;; 7845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *.adb) xform=adb ;; 7855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *.ads) xform=ads ;; 7865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *.asm) xform=asm ;; 7875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *.c++) xform=c++ ;; 7885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *.cc) xform=cc ;; 7895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *.ii) xform=ii ;; 7905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *.class) xform=class ;; 7915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *.cpp) xform=cpp ;; 7925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *.cxx) xform=cxx ;; 7935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *.[fF][09]?) xform=[fF][09]. ;; 7945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *.for) xform=for ;; 7955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *.java) xform=java ;; 7965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *.obj) xform=obj ;; 7975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *.sx) xform=sx ;; 7985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 7995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 8005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"` 8015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 8025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $libobj in 8035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;; 8045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) 8055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2 8065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit $EXIT_FAILURE 8075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 8085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 8095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 8105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) func_infer_tag $base_compile 8115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 8125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for arg in $later; do 8135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $arg in 8145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -static) 8155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) build_old_libs=yes 8165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) continue 8175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 8185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 8195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -prefer-pic) 8205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) pic_mode=yes 8215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) continue 8225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 8235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 8245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -prefer-non-pic) 8255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) pic_mode=no 8265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) continue 8275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 8285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 8295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 8305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 8315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) qlibobj=`$echo "X$libobj" | $Xsed -e "$sed_quote_subst"` 8325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $qlibobj in 8335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 8345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) qlibobj="\"$qlibobj\"" ;; 8355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 8365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test "X$libobj" != "X$qlibobj" \ 8375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) && $echo "X$libobj" | grep '[]~#^*{};<>?"'"'"' &()|`$[]' \ 8385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) && $echo "$modename: libobj name \`$libobj' may not contain shell special characters." 8395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` 8405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'` 8415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "X$xdir" = "X$obj"; then 8425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) xdir= 8435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 8445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) xdir=$xdir/ 8455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 8465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lobj=${xdir}$objdir/$objname 8475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 8485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -z "$base_compile"; then 8495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: you must specify a compilation command" 1>&2 8505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$help" 1>&2 8515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit $EXIT_FAILURE 8525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 8535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 8545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Delete any leftover library objects. 8555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$build_old_libs" = yes; then 8565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) removelist="$obj $lobj $libobj ${libobj}T" 8575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 8585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) removelist="$lobj $libobj ${libobj}T" 8595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 8605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 8615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $run $rm $removelist 8625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15 8635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 8645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # On Cygwin there's no "real" PIC flag so we must build both object types 8655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $host_os in 8665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) cygwin* | mingw* | pw32* | os2*) 8675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) pic_mode=default 8685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 8695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 8705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then 8715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # non-PIC code in shared libraries is not supported 8725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) pic_mode=default 8735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 8745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 8755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Calculate the filename of the output object if compiler does 8765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # not support -o with -c 8775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$compiler_c_o" = no; then 8785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext} 8795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lockfile="$output_obj.lock" 8805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) removelist="$removelist $output_obj $lockfile" 8815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15 8825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 8835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) output_obj= 8845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) need_locks=no 8855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lockfile= 8865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 8875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 8885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Lock this critical section if it is needed 8895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # We use this script file to make the link, it avoids creating a new file 8905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$need_locks" = yes; then 8915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) until $run ln "$progpath" "$lockfile" 2>/dev/null; do 8925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $show "Waiting for $lockfile to be removed" 8935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) sleep 2 8945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 8955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) elif test "$need_locks" = warn; then 8965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -f "$lockfile"; then 8975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "\ 8985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*** ERROR, $lockfile exists and contains: 8995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)`cat $lockfile 2>/dev/null` 9005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 9015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)This indicates that another process is trying to use the same 9025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)temporary object file, and libtool could not work around it because 9035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)your compiler does not support \`-c' and \`-o' together. If you 9045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)repeat this compilation, it may succeed, by chance, but you had better 9055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)avoid parallel builds (make -j) in this platform, or get a better 9065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)compiler." 9075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 9085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $run $rm $removelist 9095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit $EXIT_FAILURE 9105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 9115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$srcfile" > "$lockfile" 9125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 9135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 9145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$fix_srcfile_path"; then 9155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eval srcfile=\"$fix_srcfile_path\" 9165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 9175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) qsrcfile=`$echo "X$srcfile" | $Xsed -e "$sed_quote_subst"` 9185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $qsrcfile in 9195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 9205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) qsrcfile="\"$qsrcfile\"" ;; 9215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 9225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 9235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $run $rm "$libobj" "${libobj}T" 9245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 9255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Create a libtool object file (analogous to a ".la" file), 9265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # but don't create it if we're doing a dry run. 9275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test -z "$run" && cat > ${libobj}T <<EOF 9285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# $libobj - a libtool object file 9295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP 9305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# 9315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Please DO NOT delete this file! 9325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# It is necessary for linking the library. 9335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 9345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Name of the PIC object. 9355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)EOF 9365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 9375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Only build a PIC object if we are building libtool libraries. 9385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$build_libtool_libs" = yes; then 9395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Without this assignment, base_compile gets emptied. 9405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fbsd_hideous_sh_bug=$base_compile 9415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 9425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$pic_mode" != no; then 9435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) command="$base_compile $qsrcfile $pic_flag" 9445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 9455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Don't build PIC code 9465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) command="$base_compile $qsrcfile" 9475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 9485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 9495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test ! -d "${xdir}$objdir"; then 9505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $show "$mkdir ${xdir}$objdir" 9515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $run $mkdir ${xdir}$objdir 9525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit_status=$? 9535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$exit_status" -ne 0 && test ! -d "${xdir}$objdir"; then 9545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit $exit_status 9555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 9565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 9575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 9585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -z "$output_obj"; then 9595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Place PIC objects in $objdir 9605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) command="$command -o $lobj" 9615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 9625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 9635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $run $rm "$lobj" "$output_obj" 9645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 9655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $show "$command" 9665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if $run eval $lt_env "$command"; then : 9675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 9685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test -n "$output_obj" && $run $rm $removelist 9695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit $EXIT_FAILURE 9705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 9715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 9725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$need_locks" = warn && 9735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then 9745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "\ 9755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*** ERROR, $lockfile contains: 9765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)`cat $lockfile 2>/dev/null` 9775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 9785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)but it should contain: 9795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)$srcfile 9805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 9815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)This indicates that another process is trying to use the same 9825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)temporary object file, and libtool could not work around it because 9835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)your compiler does not support \`-c' and \`-o' together. If you 9845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)repeat this compilation, it may succeed, by chance, but you had better 9855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)avoid parallel builds (make -j) in this platform, or get a better 9865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)compiler." 9875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 9885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $run $rm $removelist 9895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit $EXIT_FAILURE 9905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 9915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 9925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Just move the object if needed, then go on to compile the next one 9935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then 9945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $show "$mv $output_obj $lobj" 9955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if $run $mv $output_obj $lobj; then : 9965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 9975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) error=$? 9985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $run $rm $removelist 9995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit $error 10005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 10015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 10025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Append the name of the PIC object to the libtool object file. 10045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test -z "$run" && cat >> ${libobj}T <<EOF 10055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)pic_object='$objdir/$objname' 10065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)EOF 10085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Allow error messages only from the first compilation. 10105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$suppress_opt" = yes; then 10115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) suppress_output=' >/dev/null 2>&1' 10125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 10135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 10145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # No PIC object so indicate it doesn't exist in the libtool 10155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # object file. 10165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test -z "$run" && cat >> ${libobj}T <<EOF 10175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)pic_object=none 10185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)EOF 10205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 10215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Only build a position-dependent object if we build old libraries. 10235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$build_old_libs" = yes; then 10245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$pic_mode" != yes; then 10255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Don't build PIC code 10265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) command="$base_compile $qsrcfile" 10275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 10285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) command="$base_compile $qsrcfile $pic_flag" 10295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 10305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$compiler_c_o" = yes; then 10315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) command="$command -o $obj" 10325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 10335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Suppress compiler output if we already did a PIC compilation. 10355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) command="$command$suppress_output" 10365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $run $rm "$obj" "$output_obj" 10375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $show "$command" 10385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if $run eval $lt_env "$command"; then : 10395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 10405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $run $rm $removelist 10415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit $EXIT_FAILURE 10425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 10435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$need_locks" = warn && 10455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then 10465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "\ 10475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*** ERROR, $lockfile contains: 10485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)`cat $lockfile 2>/dev/null` 10495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)but it should contain: 10515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)$srcfile 10525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)This indicates that another process is trying to use the same 10545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)temporary object file, and libtool could not work around it because 10555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)your compiler does not support \`-c' and \`-o' together. If you 10565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)repeat this compilation, it may succeed, by chance, but you had better 10575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)avoid parallel builds (make -j) in this platform, or get a better 10585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)compiler." 10595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $run $rm $removelist 10615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit $EXIT_FAILURE 10625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 10635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Just move the object if needed 10655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then 10665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $show "$mv $output_obj $obj" 10675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if $run $mv $output_obj $obj; then : 10685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 10695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) error=$? 10705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $run $rm $removelist 10715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit $error 10725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 10735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 10745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Append the name of the non-PIC object the libtool object file. 10765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Only append if the libtool object file exists. 10775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test -z "$run" && cat >> ${libobj}T <<EOF 10785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Name of the non-PIC object. 10795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)non_pic_object='$objname' 10805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)EOF 10825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 10835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Append the name of the non-PIC object the libtool object file. 10845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Only append if the libtool object file exists. 10855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test -z "$run" && cat >> ${libobj}T <<EOF 10865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Name of the non-PIC object. 10875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)non_pic_object=none 10885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)EOF 10905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 10915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $run $mv "${libobj}T" "${libobj}" 10935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Unlock the critical section if it was locked 10955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$need_locks" != no; then 10965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $run $rm "$lockfile" 10975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 10985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit $EXIT_SUCCESS 11005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 11015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 11025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # libtool link mode 11035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) link | relink) 11045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) modename="$modename: link" 11055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $host in 11065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) 11075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # It is impossible to link a dll without this setting, and 11085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # we shouldn't force the makefile maintainer to figure out 11095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # which system we are compiling for in order to pass an extra 11105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # flag for every libtool invocation. 11115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # allow_undefined=no 11125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 11135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # FIXME: Unfortunately, there are problems with the above when trying 11145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # to make a dll which has undefined symbols, in which case not 11155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # even a static library is built. For now, we need to specify 11165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # -no-undefined on the libtool link line when we can be certain 11175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # that all symbols are satisfied, otherwise we get a static library. 11185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) allow_undefined=yes 11195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 11205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) 11215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) allow_undefined=yes 11225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 11235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 11245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) libtool_args="$nonopt" 11255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) base_compile="$nonopt $@" 11265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) compile_command="$nonopt" 11275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) finalize_command="$nonopt" 11285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 11295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) compile_rpath= 11305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) finalize_rpath= 11315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) compile_shlibpath= 11325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) finalize_shlibpath= 11335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) convenience= 11345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) old_convenience= 11355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) deplibs= 11365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) old_deplibs= 11375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) compiler_flags= 11385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) linker_flags= 11395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dllsearchpath= 11405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib_search_path=`pwd` 11415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) inst_prefix_dir= 11425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 11435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) avoid_version=no 11445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dlfiles= 11455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dlprefiles= 11465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dlself=no 11475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) export_dynamic=no 11485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) export_symbols= 11495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) export_symbols_regex= 11505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) generated= 11515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) libobjs= 11525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ltlibs= 11535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) module=no 11545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) no_install=no 11555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) objs= 11565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) non_pic_objects= 11575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) notinst_path= # paths that contain not-installed libtool libraries 11585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) precious_files_regex= 11595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) prefer_static_libs=no 11605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) preload=no 11615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) prev= 11625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) prevarg= 11635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) release= 11645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) rpath= 11655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) xrpath= 11665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) perm_rpath= 11675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) temp_rpath= 11685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) thread_safe=no 11695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) vinfo= 11705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) vinfo_number=no 11715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) single_module="${wl}-single_module" 11725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 11735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) func_infer_tag $base_compile 11745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 11755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # We need to know -static, to get the right output filenames. 11765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for arg 11775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) do 11785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $arg in 11795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -all-static | -static | -static-libtool-libs) 11805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $arg in 11815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -all-static) 11825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then 11835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2 11845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 11855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$link_static_flag"; then 11865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dlopen_self=$dlopen_self_static 11875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 11885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) prefer_static_libs=yes 11895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 11905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -static) 11915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -z "$pic_flag" && test -n "$link_static_flag"; then 11925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dlopen_self=$dlopen_self_static 11935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 11945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) prefer_static_libs=built 11955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 11965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -static-libtool-libs) 11975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -z "$pic_flag" && test -n "$link_static_flag"; then 11985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dlopen_self=$dlopen_self_static 11995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 12005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) prefer_static_libs=yes 12015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 12025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 12035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) build_libtool_libs=no 12045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) build_old_libs=yes 12055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) break 12065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 12075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 12085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 12095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 12105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # See if our shared archives depend on static archives. 12115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test -n "$old_archive_from_new_cmds" && build_old_libs=yes 12125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 12135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Go through the arguments, transforming them on the way. 12145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) while test "$#" -gt 0; do 12155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) arg="$1" 12165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) shift 12175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $arg in 12185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 12195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test 12205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 12215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) qarg=$arg ;; 12225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 12235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) libtool_args="$libtool_args $qarg" 12245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 12255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # If the previous option needs an argument, assign it. 12265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$prev"; then 12275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $prev in 12285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) output) 12295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) compile_command="$compile_command @OUTPUT@" 12305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) finalize_command="$finalize_command @OUTPUT@" 12315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 12325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 12335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 12345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $prev in 12355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dlfiles|dlprefiles) 12365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$preload" = no; then 12375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Add the symbol object into the linking commands. 12385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) compile_command="$compile_command @SYMFILE@" 12395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) finalize_command="$finalize_command @SYMFILE@" 12405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) preload=yes 12415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 12425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $arg in 12435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *.la | *.lo) ;; # We handle these cases below. 12445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) force) 12455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$dlself" = no; then 12465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dlself=needless 12475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) export_dynamic=yes 12485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 12495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) prev= 12505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) continue 12515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 12525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) self) 12535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$prev" = dlprefiles; then 12545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dlself=yes 12555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then 12565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dlself=yes 12575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 12585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dlself=needless 12595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) export_dynamic=yes 12605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 12615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) prev= 12625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) continue 12635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 12645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) 12655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$prev" = dlfiles; then 12665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dlfiles="$dlfiles $arg" 12675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 12685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dlprefiles="$dlprefiles $arg" 12695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 12705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) prev= 12715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) continue 12725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 12735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 12745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 12755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) expsyms) 12765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) export_symbols="$arg" 12775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test ! -f "$arg"; then 12785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: symbol file \`$arg' does not exist" 12795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit $EXIT_FAILURE 12805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 12815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) prev= 12825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) continue 12835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 12845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) expsyms_regex) 12855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) export_symbols_regex="$arg" 12865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) prev= 12875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) continue 12885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 12895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) inst_prefix) 12905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) inst_prefix_dir="$arg" 12915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) prev= 12925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) continue 12935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 12945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) precious_regex) 12955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) precious_files_regex="$arg" 12965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) prev= 12975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) continue 12985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 12995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) release) 13005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) release="-$arg" 13015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) prev= 13025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) continue 13035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 13045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) objectlist) 13055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -f "$arg"; then 13065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) save_arg=$arg 13075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) moreargs= 13085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for fil in `cat $save_arg` 13095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) do 13105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# moreargs="$moreargs $fil" 13115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) arg=$fil 13125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # A libtool-controlled object. 13135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 13145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Check to see that this really is a libtool object. 13155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then 13165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) pic_object= 13175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) non_pic_object= 13185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 13195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Read the .lo file 13205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # If there is no directory component, then add one. 13215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $arg in 13225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */* | *\\*) . $arg ;; 13235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) . ./$arg ;; 13245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 13255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 13265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -z "$pic_object" || \ 13275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test -z "$non_pic_object" || 13285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test "$pic_object" = none && \ 13295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test "$non_pic_object" = none; then 13305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: cannot find name of object for \`$arg'" 1>&2 13315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit $EXIT_FAILURE 13325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 13335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 13345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Extract subdirectory from the argument. 13355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` 13365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "X$xdir" = "X$arg"; then 13375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) xdir= 13385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 13395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) xdir="$xdir/" 13405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 13415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 13425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$pic_object" != none; then 13435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Prepend the subdirectory the object is found in. 13445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) pic_object="$xdir$pic_object" 13455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 13465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$prev" = dlfiles; then 13475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then 13485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dlfiles="$dlfiles $pic_object" 13495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) prev= 13505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) continue 13515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 13525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # If libtool objects are unsupported, then we need to preload. 13535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) prev=dlprefiles 13545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 13555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 13565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 13575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # CHECK ME: I think I busted this. -Ossama 13585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$prev" = dlprefiles; then 13595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Preload the old-style object. 13605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dlprefiles="$dlprefiles $pic_object" 13615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) prev= 13625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 13635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 13645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # A PIC object. 13655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) libobjs="$libobjs $pic_object" 13665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) arg="$pic_object" 13675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 13685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 13695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Non-PIC object. 13705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$non_pic_object" != none; then 13715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Prepend the subdirectory the object is found in. 13725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) non_pic_object="$xdir$non_pic_object" 13735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 13745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # A standard non-PIC object 13755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) non_pic_objects="$non_pic_objects $non_pic_object" 13765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -z "$pic_object" || test "$pic_object" = none ; then 13775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) arg="$non_pic_object" 13785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 13795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 13805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # If the PIC object exists, use it instead. 13815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # $xdir was prepended to $pic_object above. 13825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) non_pic_object="$pic_object" 13835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) non_pic_objects="$non_pic_objects $non_pic_object" 13845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 13855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 13865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Only an error if not doing a dry-run. 13875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -z "$run"; then 13885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: \`$arg' is not a valid libtool object" 1>&2 13895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit $EXIT_FAILURE 13905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 13915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Dry-run case. 13925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 13935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Extract subdirectory from the argument. 13945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` 13955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "X$xdir" = "X$arg"; then 13965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) xdir= 13975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 13985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) xdir="$xdir/" 13995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 14005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 14015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"` 14025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"` 14035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) libobjs="$libobjs $pic_object" 14045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) non_pic_objects="$non_pic_objects $non_pic_object" 14055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 14065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 14075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 14085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 14095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: link input file \`$save_arg' does not exist" 14105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit $EXIT_FAILURE 14115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 14125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) arg=$save_arg 14135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) prev= 14145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) continue 14155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 14165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) rpath | xrpath) 14175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # We need an absolute path. 14185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $arg in 14195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) [\\/]* | [A-Za-z]:[\\/]*) ;; 14205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) 14215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: only absolute run-paths are allowed" 1>&2 14225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit $EXIT_FAILURE 14235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 14245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 14255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$prev" = rpath; then 14265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case "$rpath " in 14275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *" $arg "*) ;; 14285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) rpath="$rpath $arg" ;; 14295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 14305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 14315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case "$xrpath " in 14325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *" $arg "*) ;; 14335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) xrpath="$xrpath $arg" ;; 14345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 14355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 14365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) prev= 14375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) continue 14385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 14395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) xcompiler) 14405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) compiler_flags="$compiler_flags $qarg" 14415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) prev= 14425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) compile_command="$compile_command $qarg" 14435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) finalize_command="$finalize_command $qarg" 14445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) continue 14455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 14465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) xlinker) 14475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) linker_flags="$linker_flags $qarg" 14485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) compiler_flags="$compiler_flags $wl$qarg" 14495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) prev= 14505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) compile_command="$compile_command $wl$qarg" 14515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) finalize_command="$finalize_command $wl$qarg" 14525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) continue 14535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 14545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) xcclinker) 14555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) linker_flags="$linker_flags $qarg" 14565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) compiler_flags="$compiler_flags $qarg" 14575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) prev= 14585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) compile_command="$compile_command $qarg" 14595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) finalize_command="$finalize_command $qarg" 14605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) continue 14615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 14625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) shrext) 14635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) shrext_cmds="$arg" 14645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) prev= 14655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) continue 14665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 14675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) darwin_framework|darwin_framework_skip) 14685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test "$prev" = "darwin_framework" && compiler_flags="$compiler_flags $arg" 14695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) compile_command="$compile_command $arg" 14705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) finalize_command="$finalize_command $arg" 14715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) prev= 14725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) continue 14735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 14745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) 14755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eval "$prev=\"\$arg\"" 14765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) prev= 14775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) continue 14785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 14795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 14805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi # test -n "$prev" 14815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 14825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) prevarg="$arg" 14835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 14845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $arg in 14855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -all-static) 14865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$link_static_flag"; then 14875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) compile_command="$compile_command $link_static_flag" 14885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) finalize_command="$finalize_command $link_static_flag" 14895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 14905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) continue 14915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 14925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 14935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -allow-undefined) 14945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # FIXME: remove this flag sometime in the future. 14955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2 14965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) continue 14975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 14985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 14995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -avoid-version) 15005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) avoid_version=yes 15015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) continue 15025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 15035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 15045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -dlopen) 15055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) prev=dlfiles 15065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) continue 15075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 15085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 15095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -dlpreopen) 15105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) prev=dlprefiles 15115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) continue 15125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 15135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 15145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -export-dynamic) 15155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) export_dynamic=yes 15165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) continue 15175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 15185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 15195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -export-symbols | -export-symbols-regex) 15205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$export_symbols" || test -n "$export_symbols_regex"; then 15215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: more than one -exported-symbols argument is not allowed" 15225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit $EXIT_FAILURE 15235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 15245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "X$arg" = "X-export-symbols"; then 15255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) prev=expsyms 15265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 15275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) prev=expsyms_regex 15285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 15295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) continue 15305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 15315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 15325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -framework|-arch|-isysroot) 15335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case " $CC " in 15345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *" ${arg} ${1} "* | *" ${arg} ${1} "*) 15355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) prev=darwin_framework_skip ;; 15365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) compiler_flags="$compiler_flags $arg" 15375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) prev=darwin_framework ;; 15385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 15395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) compile_command="$compile_command $arg" 15405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) finalize_command="$finalize_command $arg" 15415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) continue 15425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 15435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 15445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -inst-prefix-dir) 15455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) prev=inst_prefix 15465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) continue 15475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 15485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 15495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* 15505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # so, if we see these flags be careful not to treat them like -L 15515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -L[A-Z][A-Z]*:*) 15525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $with_gcc/$host in 15535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) no/*-*-irix* | /*-*-irix*) 15545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) compile_command="$compile_command $arg" 15555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) finalize_command="$finalize_command $arg" 15565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 15575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 15585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) continue 15595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 15605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 15615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -L*) 15625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dir=`$echo "X$arg" | $Xsed -e 's/^-L//'` 15635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # We need an absolute path. 15645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $dir in 15655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) [\\/]* | [A-Za-z]:[\\/]*) ;; 15665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) 15675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) absdir=`cd "$dir" && pwd` 15685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -z "$absdir"; then 15695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2 15705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) absdir="$dir" 15715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) notinst_path="$notinst_path $dir" 15725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 15735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dir="$absdir" 15745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 15755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 15765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case "$deplibs " in 15775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *" -L$dir "*) ;; 15785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) 15795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) deplibs="$deplibs -L$dir" 15805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib_search_path="$lib_search_path $dir" 15815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 15825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 15835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $host in 15845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) 15855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) testbindir=`$echo "X$dir" | $Xsed -e 's*/lib$*/bin*'` 15865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case :$dllsearchpath: in 15875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *":$dir:"*) ;; 15885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) dllsearchpath="$dllsearchpath:$dir";; 15895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 15905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case :$dllsearchpath: in 15915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *":$testbindir:"*) ;; 15925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) dllsearchpath="$dllsearchpath:$testbindir";; 15935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 15945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 15955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 15965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) continue 15975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 15985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 15995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -l*) 16005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then 16015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $host in 16025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos*) 16035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # These systems don't actually have a C or math library (as such) 16045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) continue 16055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 16065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *-*-os2*) 16075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # These systems don't actually have a C library (as such) 16085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test "X$arg" = "X-lc" && continue 16095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 16105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) 16115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Do not include libc due to us having libc/libc_r. 16125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test "X$arg" = "X-lc" && continue 16135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 16145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *-*-rhapsody* | *-*-darwin1.[012]) 16155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Rhapsody C and math libraries are in the System framework 16165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) deplibs="$deplibs -framework System" 16175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) continue 16185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 16195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *-*-sco3.2v5* | *-*-sco5v6*) 16205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Causes problems with __ctype 16215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test "X$arg" = "X-lc" && continue 16225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 16235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) 16245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Compiler inserts libc in the correct place for threads to work 16255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test "X$arg" = "X-lc" && continue 16265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 16275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 16285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) elif test "X$arg" = "X-lc_r"; then 16295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $host in 16305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) 16315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Do not include libc_r directly, use -pthread flag. 16325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) continue 16335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 16345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 16355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 16365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) deplibs="$deplibs $arg" 16375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) continue 16385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 16395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 16405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Tru64 UNIX uses -model [arg] to determine the layout of C++ 16415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # classes, name mangling, and exception handling. 16425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -model) 16435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) compile_command="$compile_command $arg" 16445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) compiler_flags="$compiler_flags $arg" 16455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) finalize_command="$finalize_command $arg" 16465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) prev=xcompiler 16475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) continue 16485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 16495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 16505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) 16515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) compiler_flags="$compiler_flags $arg" 16525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) compile_command="$compile_command $arg" 16535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) finalize_command="$finalize_command $arg" 16545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) continue 16555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 16565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 16575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -multi_module) 16585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) single_module="${wl}-multi_module" 16595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) continue 16605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 16615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 16625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -module) 16635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) module=yes 16645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) continue 16655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 16665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 16675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # -64, -mips[0-9] enable 64-bit mode on the SGI compiler 16685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # -r[0-9][0-9]* specifies the processor on the SGI compiler 16695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler 16705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # +DA*, +DD* enable 64-bit mode on the HP compiler 16715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # -q* pass through compiler args for the IBM compiler 16725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # -m* pass through architecture-specific compiler args for GCC 16735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # -m*, -t[45]*, -txscale* pass through architecture-specific 16745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # compiler args for GCC 16755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC 16765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # -F/path gives path to uninstalled frameworks, gcc on darwin 16775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # @file GCC response files 16785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ 16795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*) 16805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 16815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Unknown arguments in both finalize_command and compile_command need 16825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # to be aesthetically quoted because they are evaled later. 16835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` 16845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $arg in 16855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 16865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) arg="\"$arg\"" 16875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 16885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 16895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) compile_command="$compile_command $arg" 16905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) finalize_command="$finalize_command $arg" 16915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) compiler_flags="$compiler_flags $arg" 16925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) continue 16935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 16945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 16955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -shrext) 16965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) prev=shrext 16975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) continue 16985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 16995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 17005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -no-fast-install) 17015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fast_install=no 17025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) continue 17035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 17045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 17055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -no-install) 17065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $host in 17075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin*) 17085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # The PATH hackery in wrapper scripts is required on Windows 17095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # and Darwin in order for the loader to find any dlls it needs. 17105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2 17115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2 17125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fast_install=no 17135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 17145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) no_install=yes ;; 17155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 17165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) continue 17175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 17185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 17195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -no-undefined) 17205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) allow_undefined=no 17215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) continue 17225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 17235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 17245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -objectlist) 17255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) prev=objectlist 17265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) continue 17275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 17285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 17295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -o) prev=output ;; 17305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 17315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -precious-files-regex) 17325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) prev=precious_regex 17335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) continue 17345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 17355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 17365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -release) 17375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) prev=release 17385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) continue 17395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 17405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 17415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -rpath) 17425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) prev=rpath 17435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) continue 17445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 17455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 17465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -R) 17475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) prev=xrpath 17485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) continue 17495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 17505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 17515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -R*) 17525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dir=`$echo "X$arg" | $Xsed -e 's/^-R//'` 17535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # We need an absolute path. 17545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $dir in 17555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) [\\/]* | [A-Za-z]:[\\/]*) ;; 17565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) 17575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: only absolute run-paths are allowed" 1>&2 17585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit $EXIT_FAILURE 17595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 17605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 17615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case "$xrpath " in 17625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *" $dir "*) ;; 17635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) xrpath="$xrpath $dir" ;; 17645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 17655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) continue 17665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 17675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 17685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -static | -static-libtool-libs) 17695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # The effects of -static are defined in a previous loop. 17705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # We used to do the same as -all-static on platforms that 17715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # didn't have a PIC flag, but the assumption that the effects 17725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # would be equivalent was wrong. It would break on at least 17735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Digital Unix and AIX. 17745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) continue 17755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 17765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 17775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -thread-safe) 17785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) thread_safe=yes 17795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) continue 17805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 17815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 17825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -version-info) 17835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) prev=vinfo 17845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) continue 17855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 17865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -version-number) 17875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) prev=vinfo 17885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) vinfo_number=yes 17895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) continue 17905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 17915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 17925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -Wc,*) 17935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'` 17945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) arg= 17955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) save_ifs="$IFS"; IFS=',' 17965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for flag in $args; do 17975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) IFS="$save_ifs" 17985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $flag in 17995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 18005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) flag="\"$flag\"" 18015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 18025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 18035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) arg="$arg $wl$flag" 18045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) compiler_flags="$compiler_flags $flag" 18055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 18065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) IFS="$save_ifs" 18075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) arg=`$echo "X$arg" | $Xsed -e "s/^ //"` 18085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 18095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 18105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -Wl,*) 18115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'` 18125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) arg= 18135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) save_ifs="$IFS"; IFS=',' 18145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for flag in $args; do 18155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) IFS="$save_ifs" 18165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $flag in 18175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 18185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) flag="\"$flag\"" 18195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 18205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 18215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) arg="$arg $wl$flag" 18225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) compiler_flags="$compiler_flags $wl$flag" 18235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) linker_flags="$linker_flags $flag" 18245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 18255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) IFS="$save_ifs" 18265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) arg=`$echo "X$arg" | $Xsed -e "s/^ //"` 18275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 18285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 18295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -Xcompiler) 18305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) prev=xcompiler 18315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) continue 18325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 18335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 18345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -Xlinker) 18355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) prev=xlinker 18365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) continue 18375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 18385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 18395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -XCClinker) 18405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) prev=xcclinker 18415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) continue 18425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 18435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 18445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Some other compiler flag. 18455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -* | +*) 18465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Unknown arguments in both finalize_command and compile_command need 18475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # to be aesthetically quoted because they are evaled later. 18485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` 18495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $arg in 18505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 18515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) arg="\"$arg\"" 18525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 18535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 18545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 18555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 18565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *.$objext) 18575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # A standard object. 18585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) objs="$objs $arg" 18595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 18605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 18615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *.lo) 18625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # A libtool-controlled object. 18635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 18645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Check to see that this really is a libtool object. 18655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then 18665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) pic_object= 18675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) non_pic_object= 18685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 18695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Read the .lo file 18705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # If there is no directory component, then add one. 18715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $arg in 18725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */* | *\\*) . $arg ;; 18735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) . ./$arg ;; 18745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 18755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 18765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -z "$pic_object" || \ 18775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test -z "$non_pic_object" || 18785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test "$pic_object" = none && \ 18795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test "$non_pic_object" = none; then 18805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: cannot find name of object for \`$arg'" 1>&2 18815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit $EXIT_FAILURE 18825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 18835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 18845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Extract subdirectory from the argument. 18855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` 18865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "X$xdir" = "X$arg"; then 18875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) xdir= 18885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 18895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) xdir="$xdir/" 18905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 18915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 18925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$pic_object" != none; then 18935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Prepend the subdirectory the object is found in. 18945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) pic_object="$xdir$pic_object" 18955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 18965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$prev" = dlfiles; then 18975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then 18985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dlfiles="$dlfiles $pic_object" 18995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) prev= 19005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) continue 19015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 19025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # If libtool objects are unsupported, then we need to preload. 19035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) prev=dlprefiles 19045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 19055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 19065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 19075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # CHECK ME: I think I busted this. -Ossama 19085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$prev" = dlprefiles; then 19095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Preload the old-style object. 19105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dlprefiles="$dlprefiles $pic_object" 19115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) prev= 19125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 19135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 19145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # A PIC object. 19155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) libobjs="$libobjs $pic_object" 19165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) arg="$pic_object" 19175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 19185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 19195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Non-PIC object. 19205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$non_pic_object" != none; then 19215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Prepend the subdirectory the object is found in. 19225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) non_pic_object="$xdir$non_pic_object" 19235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 19245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # A standard non-PIC object 19255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) non_pic_objects="$non_pic_objects $non_pic_object" 19265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -z "$pic_object" || test "$pic_object" = none ; then 19275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) arg="$non_pic_object" 19285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 19295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 19305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # If the PIC object exists, use it instead. 19315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # $xdir was prepended to $pic_object above. 19325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) non_pic_object="$pic_object" 19335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) non_pic_objects="$non_pic_objects $non_pic_object" 19345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 19355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 19365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Only an error if not doing a dry-run. 19375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -z "$run"; then 19385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: \`$arg' is not a valid libtool object" 1>&2 19395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit $EXIT_FAILURE 19405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 19415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Dry-run case. 19425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 19435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Extract subdirectory from the argument. 19445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` 19455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "X$xdir" = "X$arg"; then 19465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) xdir= 19475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 19485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) xdir="$xdir/" 19495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 19505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 19515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"` 19525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"` 19535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) libobjs="$libobjs $pic_object" 19545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) non_pic_objects="$non_pic_objects $non_pic_object" 19555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 19565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 19575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 19585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 19595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *.$libext) 19605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # An archive. 19615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) deplibs="$deplibs $arg" 19625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) old_deplibs="$old_deplibs $arg" 19635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) continue 19645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 19655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 19665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *.la) 19675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # A libtool-controlled library. 19685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 19695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$prev" = dlfiles; then 19705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # This library was specified with -dlopen. 19715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dlfiles="$dlfiles $arg" 19725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) prev= 19735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) elif test "$prev" = dlprefiles; then 19745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # The library was specified with -dlpreopen. 19755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dlprefiles="$dlprefiles $arg" 19765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) prev= 19775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 19785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) deplibs="$deplibs $arg" 19795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 19805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) continue 19815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 19825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 19835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Some other compiler argument. 19845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) 19855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Unknown arguments in both finalize_command and compile_command need 19865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # to be aesthetically quoted because they are evaled later. 19875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` 19885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $arg in 19895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 19905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) arg="\"$arg\"" 19915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 19925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 19935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 19945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac # arg 19955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 19965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Now actually substitute the argument into the commands. 19975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$arg"; then 19985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) compile_command="$compile_command $arg" 19995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) finalize_command="$finalize_command $arg" 20005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 20015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done # argument parsing loop 20025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 20035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$prev"; then 20045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: the \`$prevarg' option requires an argument" 1>&2 20055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$help" 1>&2 20065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit $EXIT_FAILURE 20075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 20085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 20095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then 20105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eval arg=\"$export_dynamic_flag_spec\" 20115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) compile_command="$compile_command $arg" 20125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) finalize_command="$finalize_command $arg" 20135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 20145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 20155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) oldlibs= 20165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # calculate the name of the file, without its directory 20175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'` 20185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) libobjs_save="$libobjs" 20195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 20205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$shlibpath_var"; then 20215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # get the directories listed in $shlibpath_var 20225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\` 20235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 20245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) shlib_search_path= 20255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 20265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eval sys_lib_search_path=\"$sys_lib_search_path_spec\" 20275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" 20285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 20295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'` 20305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "X$output_objdir" = "X$output"; then 20315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) output_objdir="$objdir" 20325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 20335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) output_objdir="$output_objdir/$objdir" 20345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 20355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Create the object directory. 20365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test ! -d "$output_objdir"; then 20375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $show "$mkdir $output_objdir" 20385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $run $mkdir $output_objdir 20395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit_status=$? 20405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$exit_status" -ne 0 && test ! -d "$output_objdir"; then 20415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit $exit_status 20425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 20435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 20445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 20455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Determine the type of output 20465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $output in 20475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) "") 20485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: you must specify an output file" 1>&2 20495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$help" 1>&2 20505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit $EXIT_FAILURE 20515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 20525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *.$libext) linkmode=oldlib ;; 20535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *.lo | *.$objext) linkmode=obj ;; 20545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *.la) linkmode=lib ;; 20555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) linkmode=prog ;; # Anything else should be a program. 20565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 20575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 20585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $host in 20595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *cygwin* | *mingw* | *pw32*) 20605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # don't eliminate duplications in $postdeps and $predeps 20615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) duplicate_compiler_generated_deps=yes 20625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 20635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) 20645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) duplicate_compiler_generated_deps=$duplicate_deps 20655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 20665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 20675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) specialdeplibs= 20685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 20695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) libs= 20705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Find all interdependent deplibs by searching for libraries 20715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # that are linked more than once (e.g. -la -lb -la) 20725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for deplib in $deplibs; do 20735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "X$duplicate_deps" = "Xyes" ; then 20745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case "$libs " in 20755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; 20765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 20775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 20785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) libs="$libs $deplib" 20795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 20805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 20815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$linkmode" = lib; then 20825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) libs="$predeps $libs $compiler_lib_search_path $postdeps" 20835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 20845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Compute libraries that are listed more than once in $predeps 20855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # $postdeps and mark them as special (i.e., whose duplicates are 20865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # not to be eliminated). 20875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) pre_post_deps= 20885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "X$duplicate_compiler_generated_deps" = "Xyes" ; then 20895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for pre_post_dep in $predeps $postdeps; do 20905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case "$pre_post_deps " in 20915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;; 20925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 20935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) pre_post_deps="$pre_post_deps $pre_post_dep" 20945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 20955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 20965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) pre_post_deps= 20975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 20985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 20995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) deplibs= 21005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) newdependency_libs= 21015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) newlib_search_path= 21025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) need_relink=no # whether we're linking any uninstalled libtool libraries 21035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) notinst_deplibs= # not-installed libtool libraries 21045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $linkmode in 21055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib) 21065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) passes="conv link" 21075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for file in $dlfiles $dlprefiles; do 21085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $file in 21095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *.la) ;; 21105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) 21115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2 21125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit $EXIT_FAILURE 21135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 21145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 21155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 21165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 21175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) prog) 21185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) compile_deplibs= 21195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) finalize_deplibs= 21205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) alldeplibs=no 21215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) newdlfiles= 21225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) newdlprefiles= 21235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) passes="conv scan dlopen dlpreopen link" 21245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 21255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) passes="conv" 21265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 21275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 21285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for pass in $passes; do 21295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$linkmode,$pass" = "lib,link" || 21305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test "$linkmode,$pass" = "prog,scan"; then 21315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) libs="$deplibs" 21325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) deplibs= 21335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 21345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$linkmode" = prog; then 21355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $pass in 21365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dlopen) libs="$dlfiles" ;; 21375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dlpreopen) libs="$dlprefiles" ;; 21385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) link) libs="$deplibs %DEPLIBS% $dependency_libs" ;; 21395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 21405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 21415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$pass" = dlopen; then 21425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Collect dlpreopened libraries 21435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) save_deplibs="$deplibs" 21445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) deplibs= 21455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 21465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for deplib in $libs; do 21475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib= 21485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) found=no 21495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $deplib in 21505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) 21515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$linkmode,$pass" = "prog,link"; then 21525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) compile_deplibs="$deplib $compile_deplibs" 21535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) finalize_deplibs="$deplib $finalize_deplibs" 21545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 21555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) compiler_flags="$compiler_flags $deplib" 21565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 21575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) continue 21585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 21595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -l*) 21605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$linkmode" != lib && test "$linkmode" != prog; then 21615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2 21625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) continue 21635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 21645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) name=`$echo "X$deplib" | $Xsed -e 's/^-l//'` 21655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$linkmode" = lib; then 21665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path" 21675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 21685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path" 21695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 21705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for searchdir in $searchdirs; do 21715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for search_ext in .la $std_shrext .so .a; do 21725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Search the libtool library 21735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib="$searchdir/lib${name}${search_ext}" 21745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -f "$lib"; then 21755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$search_ext" = ".la"; then 21765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) found=yes 21775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 21785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) found=no 21795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 21805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) break 2 21815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 21825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 21835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 21845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$found" != yes; then 21855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # deplib doesn't seem to be a libtool library 21865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$linkmode,$pass" = "prog,link"; then 21875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) compile_deplibs="$deplib $compile_deplibs" 21885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) finalize_deplibs="$deplib $finalize_deplibs" 21895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 21905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) deplibs="$deplib $deplibs" 21915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" 21925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 21935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) continue 21945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else # deplib is a libtool library 21955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, 21965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # We need to do some special things here, and not later. 21975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then 21985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case " $predeps $postdeps " in 21995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *" $deplib "*) 22005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (${SED} -e '2q' $lib | 22015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then 22025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) library_names= 22035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) old_library= 22045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $lib in 22055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */* | *\\*) . $lib ;; 22065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) . ./$lib ;; 22075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 22085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for l in $old_library $library_names; do 22095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ll="$l" 22105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 22115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "X$ll" = "X$old_library" ; then # only static version available 22125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) found=no 22135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` 22145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test "X$ladir" = "X$lib" && ladir="." 22155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib=$ladir/$old_library 22165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$linkmode,$pass" = "prog,link"; then 22175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) compile_deplibs="$deplib $compile_deplibs" 22185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) finalize_deplibs="$deplib $finalize_deplibs" 22195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 22205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) deplibs="$deplib $deplibs" 22215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" 22225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 22235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) continue 22245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 22255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 22265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 22275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) ;; 22285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 22295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 22305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 22315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; # -l 22325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -L*) 22335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $linkmode in 22345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib) 22355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) deplibs="$deplib $deplibs" 22365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test "$pass" = conv && continue 22375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) newdependency_libs="$deplib $newdependency_libs" 22385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` 22395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 22405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) prog) 22415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$pass" = conv; then 22425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) deplibs="$deplib $deplibs" 22435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) continue 22445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 22455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$pass" = scan; then 22465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) deplibs="$deplib $deplibs" 22475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 22485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) compile_deplibs="$deplib $compile_deplibs" 22495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) finalize_deplibs="$deplib $finalize_deplibs" 22505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 22515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` 22525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 22535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) 22545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2 22555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 22565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac # linkmode 22575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) continue 22585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; # -L 22595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -R*) 22605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$pass" = link; then 22615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'` 22625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Make sure the xrpath contains only unique directories. 22635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case "$xrpath " in 22645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *" $dir "*) ;; 22655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) xrpath="$xrpath $dir" ;; 22665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 22675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 22685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) deplibs="$deplib $deplibs" 22695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) continue 22705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 22715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *.la) lib="$deplib" ;; 22725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *.$libext) 22735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$pass" = conv; then 22745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) deplibs="$deplib $deplibs" 22755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) continue 22765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 22775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $linkmode in 22785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib) 22795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) valid_a_lib=no 22805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $deplibs_check_method in 22815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) match_pattern*) 22825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) set dummy $deplibs_check_method 22835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` 22845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if eval $echo \"$deplib\" 2>/dev/null \ 22855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) | $SED 10q \ 22865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) | $EGREP "$match_pattern_regex" > /dev/null; then 22875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) valid_a_lib=yes 22885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 22895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 22905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) pass_all) 22915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) valid_a_lib=yes 22925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 22935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 22945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$valid_a_lib" != yes; then 22955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo 22965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "*** Warning: Trying to link with static lib archive $deplib." 22975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "*** I have the capability to make that library automatically link in when" 22985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "*** you link to this library. But I can only do this if you have a" 22995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "*** shared version of the library, which you do not appear to have" 23005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "*** because the file extensions .$libext of this argument makes me believe" 23015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "*** that it is just a static archive that I should not used here." 23025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 23035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo 23045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "*** Warning: Linking the shared library $output against the" 23055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "*** static library $deplib is not portable!" 23065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) deplibs="$deplib $deplibs" 23075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 23085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) continue 23095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 23105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) prog) 23115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$pass" != link; then 23125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) deplibs="$deplib $deplibs" 23135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 23145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) compile_deplibs="$deplib $compile_deplibs" 23155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) finalize_deplibs="$deplib $finalize_deplibs" 23165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 23175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) continue 23185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 23195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac # linkmode 23205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; # *.$libext 23215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *.lo | *.$objext) 23225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$pass" = conv; then 23235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) deplibs="$deplib $deplibs" 23245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) elif test "$linkmode" = prog; then 23255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then 23265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # If there is no dlopen support or we're linking statically, 23275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # we need to preload. 23285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) newdlprefiles="$newdlprefiles $deplib" 23295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) compile_deplibs="$deplib $compile_deplibs" 23305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) finalize_deplibs="$deplib $finalize_deplibs" 23315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 23325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) newdlfiles="$newdlfiles $deplib" 23335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 23345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 23355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) continue 23365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 23375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) %DEPLIBS%) 23385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) alldeplibs=yes 23395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) continue 23405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 23415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac # case $deplib 23425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$found" = yes || test -f "$lib"; then : 23435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 23445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: cannot find the library \`$lib' or unhandled argument \`$deplib'" 1>&2 23455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit $EXIT_FAILURE 23465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 23475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 23485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Check to see that this really is a libtool archive. 23495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : 23505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 23515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 23525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit $EXIT_FAILURE 23535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 23545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 23555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` 23565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test "X$ladir" = "X$lib" && ladir="." 23575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 23585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dlname= 23595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dlopen= 23605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dlpreopen= 23615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) libdir= 23625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) library_names= 23635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) old_library= 23645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # If the library was installed with an old release of libtool, 23655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # it will not redefine variables installed, or shouldnotlink 23665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) installed=yes 23675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) shouldnotlink=no 23685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) avoidtemprpath= 23695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 23705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 23715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Read the .la file 23725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $lib in 23735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */* | *\\*) . $lib ;; 23745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) . ./$lib ;; 23755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 23765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 23775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$linkmode,$pass" = "lib,link" || 23785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test "$linkmode,$pass" = "prog,scan" || 23795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) { test "$linkmode" != prog && test "$linkmode" != lib; }; then 23805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test -n "$dlopen" && dlfiles="$dlfiles $dlopen" 23815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen" 23825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 23835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 23845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$pass" = conv; then 23855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Only check for convenience libraries 23865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) deplibs="$lib $deplibs" 23875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -z "$libdir"; then 23885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -z "$old_library"; then 23895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 23905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit $EXIT_FAILURE 23915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 23925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # It is a libtool convenience library, so add in its objects. 23935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) convenience="$convenience $ladir/$objdir/$old_library" 23945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) old_convenience="$old_convenience $ladir/$objdir/$old_library" 23955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) tmp_libs= 23965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for deplib in $dependency_libs; do 23975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) deplibs="$deplib $deplibs" 23985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "X$duplicate_deps" = "Xyes" ; then 23995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case "$tmp_libs " in 24005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; 24015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 24025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 24035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) tmp_libs="$tmp_libs $deplib" 24045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 24055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) elif test "$linkmode" != prog && test "$linkmode" != lib; then 24065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: \`$lib' is not a convenience library" 1>&2 24075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit $EXIT_FAILURE 24085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 24095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) continue 24105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi # $pass = conv 24115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 24125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 24135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Get the name of the library we link against. 24145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) linklib= 24155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for l in $old_library $library_names; do 24165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) linklib="$l" 24175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 24185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -z "$linklib"; then 24195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 24205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit $EXIT_FAILURE 24215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 24225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 24235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # This library was specified with -dlopen. 24245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$pass" = dlopen; then 24255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -z "$libdir"; then 24265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2 24275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit $EXIT_FAILURE 24285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 24295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -z "$dlname" || 24305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test "$dlopen_support" != yes || 24315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test "$build_libtool_libs" = no; then 24325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # If there is no dlname, no dlopen support or we're linking 24335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # statically, we need to preload. We also need to preload any 24345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # dependent libraries so libltdl's deplib preloader doesn't 24355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # bomb out in the load deplibs phase. 24365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dlprefiles="$dlprefiles $lib $dependency_libs" 24375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 24385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) newdlfiles="$newdlfiles $lib" 24395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 24405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) continue 24415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi # $pass = dlopen 24425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 24435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # We need an absolute path. 24445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $ladir in 24455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; 24465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) 24475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) abs_ladir=`cd "$ladir" && pwd` 24485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -z "$abs_ladir"; then 24495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2 24505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: passing it literally to the linker, although it might fail" 1>&2 24515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) abs_ladir="$ladir" 24525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 24535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 24545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 24555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` 24565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 24575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Find the relevant object directory and library name. 24585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "X$installed" = Xyes; then 24595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then 24605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: warning: library \`$lib' was moved." 1>&2 24615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dir="$ladir" 24625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) absdir="$abs_ladir" 24635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) libdir="$abs_ladir" 24645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 24655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dir="$libdir" 24665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) absdir="$libdir" 24675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 24685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes 24695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 24705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then 24715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dir="$ladir" 24725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) absdir="$abs_ladir" 24735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Remove this search path later 24745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) notinst_path="$notinst_path $abs_ladir" 24755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 24765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dir="$ladir/$objdir" 24775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) absdir="$abs_ladir/$objdir" 24785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Remove this search path later 24795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) notinst_path="$notinst_path $abs_ladir" 24805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 24815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi # $installed = yes 24825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` 24835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 24845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # This library was specified with -dlpreopen. 24855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$pass" = dlpreopen; then 24865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -z "$libdir"; then 24875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2 24885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit $EXIT_FAILURE 24895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 24905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Prefer using a static library (so that no silly _DYNAMIC symbols 24915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # are required to link). 24925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$old_library"; then 24935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) newdlprefiles="$newdlprefiles $dir/$old_library" 24945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Otherwise, use the dlname, so that lt_dlopen finds it. 24955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) elif test -n "$dlname"; then 24965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) newdlprefiles="$newdlprefiles $dir/$dlname" 24975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 24985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) newdlprefiles="$newdlprefiles $dir/$linklib" 24995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 25005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi # $pass = dlpreopen 25015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 25025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -z "$libdir"; then 25035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Link the convenience library 25045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$linkmode" = lib; then 25055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) deplibs="$dir/$old_library $deplibs" 25065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) elif test "$linkmode,$pass" = "prog,link"; then 25075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) compile_deplibs="$dir/$old_library $compile_deplibs" 25085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) finalize_deplibs="$dir/$old_library $finalize_deplibs" 25095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 25105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) deplibs="$lib $deplibs" # used for prog,scan pass 25115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 25125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) continue 25135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 25145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 25155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 25165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$linkmode" = prog && test "$pass" != link; then 25175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) newlib_search_path="$newlib_search_path $ladir" 25185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) deplibs="$lib $deplibs" 25195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 25205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) linkalldeplibs=no 25215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$link_all_deplibs" != no || test -z "$library_names" || 25225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test "$build_libtool_libs" = no; then 25235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) linkalldeplibs=yes 25245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 25255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 25265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) tmp_libs= 25275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for deplib in $dependency_libs; do 25285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $deplib in 25295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test 25305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 25315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Need to link against all dependency_libs? 25325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$linkalldeplibs" = yes; then 25335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) deplibs="$deplib $deplibs" 25345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 25355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Need to hardcode shared library paths 25365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # or/and link against static libraries 25375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) newdependency_libs="$deplib $newdependency_libs" 25385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 25395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "X$duplicate_deps" = "Xyes" ; then 25405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case "$tmp_libs " in 25415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; 25425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 25435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 25445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) tmp_libs="$tmp_libs $deplib" 25455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done # for deplib 25465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) continue 25475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi # $linkmode = prog... 25485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 25495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$linkmode,$pass" = "prog,link"; then 25505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$library_names" && 25515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) { { test "$prefer_static_libs" = no || 25525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test "$prefer_static_libs,$installed" = "built,yes"; } || 25535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test -z "$old_library"; }; then 25545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # We need to hardcode the library path 25555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then 25565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Make sure the rpath contains only unique directories. 25575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case "$temp_rpath " in 25585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *" $dir "*) ;; 25595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *" $absdir "*) ;; 25605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) temp_rpath="$temp_rpath $absdir" ;; 25615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 25625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 25635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 25645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Hardcode the library path. 25655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Skip directories that are in the system default run-time 25665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # search path. 25675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case " $sys_lib_dlsearch_path " in 25685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *" $absdir "*) ;; 25695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) 25705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case "$compile_rpath " in 25715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *" $absdir "*) ;; 25725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) compile_rpath="$compile_rpath $absdir" 25735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 25745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 25755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 25765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case " $sys_lib_dlsearch_path " in 25775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *" $libdir "*) ;; 25785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) 25795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case "$finalize_rpath " in 25805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *" $libdir "*) ;; 25815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) finalize_rpath="$finalize_rpath $libdir" 25825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 25835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 25845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 25855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi # $linkmode,$pass = prog,link... 25865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 25875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$alldeplibs" = yes && 25885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) { test "$deplibs_check_method" = pass_all || 25895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) { test "$build_libtool_libs" = yes && 25905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test -n "$library_names"; }; }; then 25915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # We only need to search for static libraries 25925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) continue 25935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 25945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 25955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 25965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) link_static=no # Whether the deplib will be linked statically 25975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) use_static_libs=$prefer_static_libs 25985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$use_static_libs" = built && test "$installed" = yes ; then 25995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) use_static_libs=no 26005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 26015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$library_names" && 26025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) { test "$use_static_libs" = no || test -z "$old_library"; }; then 26035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$installed" = no; then 26045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) notinst_deplibs="$notinst_deplibs $lib" 26055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) need_relink=yes 26065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 26075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # This is a shared library 26085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 26095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Warn about portability, can't link against -module's on 26105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # some systems (darwin) 26115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$shouldnotlink" = yes && test "$pass" = link ; then 26125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo 26135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$linkmode" = prog; then 26145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "*** Warning: Linking the executable $output against the loadable module" 26155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 26165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "*** Warning: Linking the shared library $output against the loadable module" 26175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 26185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "*** $linklib is not portable!" 26195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 26205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$linkmode" = lib && 26215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test "$hardcode_into_libs" = yes; then 26225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Hardcode the library path. 26235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Skip directories that are in the system default run-time 26245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # search path. 26255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case " $sys_lib_dlsearch_path " in 26265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *" $absdir "*) ;; 26275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) 26285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case "$compile_rpath " in 26295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *" $absdir "*) ;; 26305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) compile_rpath="$compile_rpath $absdir" 26315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 26325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 26335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 26345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case " $sys_lib_dlsearch_path " in 26355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *" $libdir "*) ;; 26365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) 26375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case "$finalize_rpath " in 26385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *" $libdir "*) ;; 26395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) finalize_rpath="$finalize_rpath $libdir" 26405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 26415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 26425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 26435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 26445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 26455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$old_archive_from_expsyms_cmds"; then 26465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # figure out the soname 26475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) set dummy $library_names 26485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) realname="$2" 26495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) shift; shift 26505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) libname=`eval \\$echo \"$libname_spec\"` 26515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # use dlname if we got it. it's perfectly good, no? 26525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$dlname"; then 26535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) soname="$dlname" 26545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) elif test -n "$soname_spec"; then 26555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # bleh windows 26565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $host in 26575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *cygwin* | mingw*) 26585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) major=`expr $current - $age` 26595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) versuffix="-$major" 26605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 26615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 26625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eval soname=\"$soname_spec\" 26635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 26645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) soname="$realname" 26655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 26665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 26675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Make a new name for the extract_expsyms_cmds to use 26685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) soroot="$soname" 26695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) soname=`$echo $soroot | ${SED} -e 's/^.*\///'` 26705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) newlib="libimp-`$echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a" 26715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 26725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # If the library has no export list, then create one now 26735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -f "$output_objdir/$soname-def"; then : 26745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 26755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $show "extracting exported symbol list from \`$soname'" 26765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) save_ifs="$IFS"; IFS='~' 26775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) cmds=$extract_expsyms_cmds 26785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for cmd in $cmds; do 26795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) IFS="$save_ifs" 26805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eval cmd=\"$cmd\" 26815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $show "$cmd" 26825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $run eval "$cmd" || exit $? 26835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 26845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) IFS="$save_ifs" 26855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 26865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 26875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Create $newlib 26885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -f "$output_objdir/$newlib"; then :; else 26895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $show "generating import library for \`$soname'" 26905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) save_ifs="$IFS"; IFS='~' 26915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) cmds=$old_archive_from_expsyms_cmds 26925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for cmd in $cmds; do 26935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) IFS="$save_ifs" 26945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eval cmd=\"$cmd\" 26955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $show "$cmd" 26965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $run eval "$cmd" || exit $? 26975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 26985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) IFS="$save_ifs" 26995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 27005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # make sure the library variables are pointing to the new library 27015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dir=$output_objdir 27025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) linklib=$newlib 27035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi # test -n "$old_archive_from_expsyms_cmds" 27045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 27055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$linkmode" = prog || test "$mode" != relink; then 27065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) add_shlibpath= 27075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) add_dir= 27085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) add= 27095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib_linked=yes 27105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $hardcode_action in 27115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) immediate | unsupported) 27125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$hardcode_direct" = no; then 27135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) add="$dir/$linklib" 27145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $host in 27155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;; 27165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *-*-sysv4*uw2*) add_dir="-L$dir" ;; 27175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ 27185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *-*-unixware7*) add_dir="-L$dir" ;; 27195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *-*-darwin* ) 27205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # if the lib is a module then we can not link against 27215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # it, someone is ignoring the new warnings I added 27225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if /usr/bin/file -L $add 2> /dev/null | 27235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $EGREP ": [^:]* bundle" >/dev/null ; then 27245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "** Warning, lib $linklib is a module, not a shared library" 27255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -z "$old_library" ; then 27265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo 27275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "** And there doesn't seem to be a static archive available" 27285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "** The link will probably fail, sorry" 27295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 27305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) add="$dir/$old_library" 27315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 27325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 27335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 27345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) elif test "$hardcode_minus_L" = no; then 27355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $host in 27365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *-*-sunos*) add_shlibpath="$dir" ;; 27375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 27385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) add_dir="-L$dir" 27395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) add="-l$name" 27405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) elif test "$hardcode_shlibpath_var" = no; then 27415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) add_shlibpath="$dir" 27425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) add="-l$name" 27435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 27445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib_linked=no 27455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 27465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 27475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) relink) 27485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$hardcode_direct" = yes; then 27495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) add="$dir/$linklib" 27505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) elif test "$hardcode_minus_L" = yes; then 27515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) add_dir="-L$dir" 27525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Try looking first in the location we're being installed to. 27535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$inst_prefix_dir"; then 27545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $libdir in 27555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) [\\/]*) 27565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) add_dir="$add_dir -L$inst_prefix_dir$libdir" 27575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 27585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 27595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 27605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) add="-l$name" 27615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) elif test "$hardcode_shlibpath_var" = yes; then 27625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) add_shlibpath="$dir" 27635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) add="-l$name" 27645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 27655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib_linked=no 27665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 27675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 27685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) lib_linked=no ;; 27695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 27705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 27715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$lib_linked" != yes; then 27725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: configuration error: unsupported hardcode properties" 27735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit $EXIT_FAILURE 27745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 27755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 27765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$add_shlibpath"; then 27775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case :$compile_shlibpath: in 27785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *":$add_shlibpath:"*) ;; 27795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;; 27805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 27815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 27825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$linkmode" = prog; then 27835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" 27845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test -n "$add" && compile_deplibs="$add $compile_deplibs" 27855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 27865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test -n "$add_dir" && deplibs="$add_dir $deplibs" 27875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test -n "$add" && deplibs="$add $deplibs" 27885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$hardcode_direct" != yes && \ 27895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test "$hardcode_minus_L" != yes && \ 27905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test "$hardcode_shlibpath_var" = yes; then 27915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case :$finalize_shlibpath: in 27925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *":$libdir:"*) ;; 27935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; 27945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 27955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 27965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 27975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 27985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 27995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$linkmode" = prog || test "$mode" = relink; then 28005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) add_shlibpath= 28015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) add_dir= 28025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) add= 28035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Finalize command for both is simple: just hardcode it. 28045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$hardcode_direct" = yes; then 28055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) add="$libdir/$linklib" 28065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) elif test "$hardcode_minus_L" = yes; then 28075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) add_dir="-L$libdir" 28085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) add="-l$name" 28095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) elif test "$hardcode_shlibpath_var" = yes; then 28105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case :$finalize_shlibpath: in 28115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *":$libdir:"*) ;; 28125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; 28135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 28145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) add="-l$name" 28155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) elif test "$hardcode_automatic" = yes; then 28165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$inst_prefix_dir" && 28175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test -f "$inst_prefix_dir$libdir/$linklib" ; then 28185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) add="$inst_prefix_dir$libdir/$linklib" 28195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 28205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) add="$libdir/$linklib" 28215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 28225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 28235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # We cannot seem to hardcode it, guess we'll fake it. 28245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) add_dir="-L$libdir" 28255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Try looking first in the location we're being installed to. 28265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$inst_prefix_dir"; then 28275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $libdir in 28285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) [\\/]*) 28295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) add_dir="$add_dir -L$inst_prefix_dir$libdir" 28305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 28315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 28325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 28335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) add="-l$name" 28345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 28355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 28365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$linkmode" = prog; then 28375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" 28385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test -n "$add" && finalize_deplibs="$add $finalize_deplibs" 28395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 28405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test -n "$add_dir" && deplibs="$add_dir $deplibs" 28415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test -n "$add" && deplibs="$add $deplibs" 28425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 28435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 28445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) elif test "$linkmode" = prog; then 28455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Here we assume that one of hardcode_direct or hardcode_minus_L 28465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # is not unsupported. This is valid on all known static and 28475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # shared platforms. 28485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$hardcode_direct" != unsupported; then 28495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test -n "$old_library" && linklib="$old_library" 28505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) compile_deplibs="$dir/$linklib $compile_deplibs" 28515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) finalize_deplibs="$dir/$linklib $finalize_deplibs" 28525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 28535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) compile_deplibs="-l$name -L$dir $compile_deplibs" 28545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) finalize_deplibs="-l$name -L$dir $finalize_deplibs" 28555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 28565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) elif test "$build_libtool_libs" = yes; then 28575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Not a shared library 28585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$deplibs_check_method" != pass_all; then 28595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # We're trying link a shared library against a static one 28605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # but the system doesn't support it. 28615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 28625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Just print a warning and add the library to dependency_libs so 28635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # that the program can be linked against the static library. 28645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo 28655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "*** Warning: This system can not link to static lib archive $lib." 28665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "*** I have the capability to make that library automatically link in when" 28675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "*** you link to this library. But I can only do this if you have a" 28685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "*** shared version of the library, which you do not appear to have." 28695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$module" = yes; then 28705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "*** But as you try to build a module library, libtool will still create " 28715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "*** a static module, that should work as long as the dlopening application" 28725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "*** is linked with the -dlopen flag to resolve symbols at runtime." 28735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -z "$global_symbol_pipe"; then 28745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo 28755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "*** However, this would only work if libtool was able to extract symbol" 28765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "*** lists from a program, using \`nm' or equivalent, but libtool could" 28775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "*** not find such a program. So, this module is probably useless." 28785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "*** \`nm' from GNU binutils and a full rebuild may help." 28795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 28805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$build_old_libs" = no; then 28815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) build_libtool_libs=module 28825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) build_old_libs=yes 28835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 28845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) build_libtool_libs=no 28855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 28865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 28875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 28885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) deplibs="$dir/$old_library $deplibs" 28895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) link_static=yes 28905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 28915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi # link shared/static library? 28925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 28935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$linkmode" = lib; then 28945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$dependency_libs" && 28955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) { test "$hardcode_into_libs" != yes || 28965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test "$build_old_libs" = yes || 28975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test "$link_static" = yes; }; then 28985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Extract -R from dependency_libs 28995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) temp_deplibs= 29005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for libdir in $dependency_libs; do 29015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $libdir in 29025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'` 29035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case " $xrpath " in 29045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *" $temp_xrpath "*) ;; 29055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) xrpath="$xrpath $temp_xrpath";; 29065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac;; 29075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) temp_deplibs="$temp_deplibs $libdir";; 29085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 29095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 29105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dependency_libs="$temp_deplibs" 29115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 29125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 29135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) newlib_search_path="$newlib_search_path $absdir" 29145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Link against this library 29155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" 29165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # ... and its dependency_libs 29175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) tmp_libs= 29185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for deplib in $dependency_libs; do 29195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) newdependency_libs="$deplib $newdependency_libs" 29205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "X$duplicate_deps" = "Xyes" ; then 29215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case "$tmp_libs " in 29225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; 29235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 29245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 29255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) tmp_libs="$tmp_libs $deplib" 29265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 29275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 29285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$link_all_deplibs" != no; then 29295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Add the search paths of all dependency libraries 29305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for deplib in $dependency_libs; do 29315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $deplib in 29325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -L*) path="$deplib" ;; 29335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *.la) 29345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'` 29355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test "X$dir" = "X$deplib" && dir="." 29365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # We need an absolute path. 29375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $dir in 29385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; 29395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) 29405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) absdir=`cd "$dir" && pwd` 29415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -z "$absdir"; then 29425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2 29435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) absdir="$dir" 29445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 29455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 29465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 29475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if grep "^installed=no" $deplib > /dev/null; then 29485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) path="$absdir/$objdir" 29495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 29505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` 29515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -z "$libdir"; then 29525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 29535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit $EXIT_FAILURE 29545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 29555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$absdir" != "$libdir"; then 29565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2 29575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 29585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) path="$absdir" 29595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 29605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) depdepl= 29615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $host in 29625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *-*-darwin*) 29635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # we do not want to link against static libs, 29645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # but need to link against shared 29655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` 29665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eval deplibdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` 29675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$deplibrary_names" ; then 29685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for tmp in $deplibrary_names ; do 29695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) depdepl=$tmp 29705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 29715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -f "$deplibdir/$depdepl" ; then 29725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) depdepl="$deplibdir/$depdepl" 29735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) elif test -f "$path/$depdepl" ; then 29745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) depdepl="$path/$depdepl" 29755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 29765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Can't find it, oh well... 29775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) depdepl= 29785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 29795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # do not add paths which are already there 29805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case " $newlib_search_path " in 29815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *" $path "*) ;; 29825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) newlib_search_path="$newlib_search_path $path";; 29835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 29845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 29855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) path="" 29865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 29875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) 29885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) path="-L$path" 29895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 29905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 29915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 29925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -l*) 29935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $host in 29945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *-*-darwin*) 29955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Again, we only want to link against shared libraries 29965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"` 29975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for tmp in $newlib_search_path ; do 29985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -f "$tmp/lib$tmp_libs.dylib" ; then 29995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eval depdepl="$tmp/lib$tmp_libs.dylib" 30005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) break 30015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 30025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 30035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) path="" 30045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 30055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) continue ;; 30065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 30075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 30085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) continue ;; 30095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 30105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case " $deplibs " in 30115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *" $path "*) ;; 30125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) deplibs="$path $deplibs" ;; 30135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 30145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case " $deplibs " in 30155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *" $depdepl "*) ;; 30165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) deplibs="$depdepl $deplibs" ;; 30175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 30185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 30195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi # link_all_deplibs != no 30205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi # linkmode = lib 30215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done # for deplib in $libs 30225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dependency_libs="$newdependency_libs" 30235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$pass" = dlpreopen; then 30245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Link the dlpreopened libraries before other libraries 30255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for deplib in $save_deplibs; do 30265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) deplibs="$deplib $deplibs" 30275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 30285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 30295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$pass" != dlopen; then 30305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$pass" != conv; then 30315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Make sure lib_search_path contains only unique directories. 30325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib_search_path= 30335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for dir in $newlib_search_path; do 30345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case "$lib_search_path " in 30355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *" $dir "*) ;; 30365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) lib_search_path="$lib_search_path $dir" ;; 30375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 30385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 30395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) newlib_search_path= 30405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 30415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 30425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$linkmode,$pass" != "prog,link"; then 30435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) vars="deplibs" 30445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 30455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) vars="compile_deplibs finalize_deplibs" 30465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 30475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for var in $vars dependency_libs; do 30485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Add libraries to $var in reverse order 30495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eval tmp_libs=\"\$$var\" 30505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) new_libs= 30515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for deplib in $tmp_libs; do 30525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # FIXME: Pedantically, this is the right thing to do, so 30535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # that some nasty dependency loop isn't accidentally 30545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # broken: 30555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) #new_libs="$deplib $new_libs" 30565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Pragmatically, this seems to cause very few problems in 30575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # practice: 30585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $deplib in 30595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -L*) new_libs="$deplib $new_libs" ;; 30605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -R*) ;; 30615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) 30625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # And here is the reason: when a library appears more 30635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # than once as an explicit dependence of a library, or 30645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # is implicitly linked in more than once by the 30655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # compiler, it is considered special, and multiple 30665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # occurrences thereof are not removed. Compare this 30675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # with having the same library being listed as a 30685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # dependency of multiple other libraries: in this case, 30695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # we know (pedantically, we assume) the library does not 30705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # need to be listed more than once, so we keep only the 30715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # last copy. This is not always right, but it is rare 30725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # enough that we require users that really mean to play 30735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # such unportable linking tricks to link the library 30745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # using -Wl,-lname, so that libtool does not consider it 30755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # for duplicate removal. 30765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case " $specialdeplibs " in 30775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *" $deplib "*) new_libs="$deplib $new_libs" ;; 30785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) 30795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case " $new_libs " in 30805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *" $deplib "*) ;; 30815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) new_libs="$deplib $new_libs" ;; 30825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 30835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 30845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 30855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 30865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 30875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 30885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) tmp_libs= 30895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for deplib in $new_libs; do 30905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $deplib in 30915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -L*) 30925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case " $tmp_libs " in 30935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *" $deplib "*) ;; 30945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) tmp_libs="$tmp_libs $deplib" ;; 30955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 30965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 30975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) tmp_libs="$tmp_libs $deplib" ;; 30985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 30995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 31005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eval $var=\"$tmp_libs\" 31015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done # for var 31025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 31035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Last step: remove runtime libs from dependency_libs 31045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # (they stay in deplibs) 31055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) tmp_libs= 31065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for i in $dependency_libs ; do 31075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case " $predeps $postdeps $compiler_lib_search_path " in 31085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *" $i "*) 31095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) i="" 31105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 31115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 31125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$i" ; then 31135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) tmp_libs="$tmp_libs $i" 31145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 31155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 31165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dependency_libs=$tmp_libs 31175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done # for pass 31185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$linkmode" = prog; then 31195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dlfiles="$newdlfiles" 31205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dlprefiles="$newdlprefiles" 31215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 31225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 31235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $linkmode in 31245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) oldlib) 31255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case " $deplibs" in 31265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *\ -l* | *\ -L*) 31275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2 ;; 31285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 31295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 31305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then 31315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2 31325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 31335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 31345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$rpath"; then 31355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2 31365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 31375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 31385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$xrpath"; then 31395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: warning: \`-R' is ignored for archives" 1>&2 31405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 31415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 31425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$vinfo"; then 31435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: warning: \`-version-info/-version-number' is ignored for archives" 1>&2 31445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 31455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 31465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$release"; then 31475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: warning: \`-release' is ignored for archives" 1>&2 31485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 31495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 31505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$export_symbols" || test -n "$export_symbols_regex"; then 31515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2 31525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 31535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 31545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Now set the variables for building old libraries. 31555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) build_libtool_libs=no 31565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) oldlibs="$output" 31575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) objs="$objs$old_deplibs" 31585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 31595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 31605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib) 31615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Make sure we only generate libraries of the form `libNAME.la'. 31625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $outputname in 31635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib*) 31645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` 31655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eval shared_ext=\"$shrext_cmds\" 31665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eval libname=\"$libname_spec\" 31675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 31685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) 31695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$module" = no; then 31705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2 31715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$help" 1>&2 31725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit $EXIT_FAILURE 31735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 31745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$need_lib_prefix" != no; then 31755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Add the "lib" prefix for modules if required 31765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` 31775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eval shared_ext=\"$shrext_cmds\" 31785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eval libname=\"$libname_spec\" 31795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 31805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` 31815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 31825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 31835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 31845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 31855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$objs"; then 31865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$deplibs_check_method" != pass_all; then 31875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1 31885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit $EXIT_FAILURE 31895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 31905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo 31915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "*** Warning: Linking the shared library $output against the non-libtool" 31925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "*** objects $objs is not portable!" 31935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) libobjs="$libobjs $objs" 31945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 31955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 31965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 31975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$dlself" != no; then 31985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2 31995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 32005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 32015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) set dummy $rpath 32025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$#" -gt 2; then 32035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2 32045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 32055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) install_libdir="$2" 32065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 32075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) oldlibs= 32085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -z "$rpath"; then 32095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$build_libtool_libs" = yes; then 32105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Building a libtool convenience library. 32115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Some compilers have problems with a `.al' extension so 32125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # convenience libraries should have the same extension an 32135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # archive normally would. 32145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) oldlibs="$output_objdir/$libname.$libext $oldlibs" 32155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) build_libtool_libs=convenience 32165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) build_old_libs=yes 32175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 32185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 32195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$vinfo"; then 32205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: warning: \`-version-info/-version-number' is ignored for convenience libraries" 1>&2 32215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 32225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 32235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$release"; then 32245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2 32255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 32265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 32275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 32285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Parse the version information argument. 32295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) save_ifs="$IFS"; IFS=':' 32305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) set dummy $vinfo 0 0 0 32315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) IFS="$save_ifs" 32325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 32335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$8"; then 32345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: too many parameters to \`-version-info'" 1>&2 32355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$help" 1>&2 32365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit $EXIT_FAILURE 32375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 32385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 32395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # convert absolute version numbers to libtool ages 32405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # this retains compatibility with .la files and attempts 32415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # to make the code below a bit more comprehensible 32425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 32435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $vinfo_number in 32445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) yes) 32455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) number_major="$2" 32465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) number_minor="$3" 32475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) number_revision="$4" 32485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # 32495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # There are really only two kinds -- those that 32505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # use the current revision as the major version 32515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # and those that subtract age and use age as 32525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # a minor version. But, then there is irix 32535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # which has an extra 1 added just for fun 32545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # 32555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $version_type in 32565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) darwin|linux|osf|windows|none) 32575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) current=`expr $number_major + $number_minor` 32585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) age="$number_minor" 32595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) revision="$number_revision" 32605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 32615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) freebsd-aout|freebsd-elf|sunos) 32625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) current="$number_major" 32635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) revision="$number_minor" 32645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) age="0" 32655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 32665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) irix|nonstopux) 32675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) current=`expr $number_major + $number_minor` 32685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) age="$number_minor" 32695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) revision="$number_minor" 32705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lt_irix_increment=no 32715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 32725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 32735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 32745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) no) 32755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) current="$2" 32765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) revision="$3" 32775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) age="$4" 32785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 32795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 32805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 32815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Check that each of the things are valid numbers. 32825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $current in 32835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 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]) ;; 32845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) 32855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: CURRENT \`$current' must be a nonnegative integer" 1>&2 32865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: \`$vinfo' is not valid version information" 1>&2 32875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit $EXIT_FAILURE 32885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 32895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 32905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 32915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $revision in 32925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 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]) ;; 32935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) 32945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: REVISION \`$revision' must be a nonnegative integer" 1>&2 32955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: \`$vinfo' is not valid version information" 1>&2 32965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit $EXIT_FAILURE 32975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 32985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 32995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 33005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $age in 33015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 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]) ;; 33025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) 33035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: AGE \`$age' must be a nonnegative integer" 1>&2 33045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: \`$vinfo' is not valid version information" 1>&2 33055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit $EXIT_FAILURE 33065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 33075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 33085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 33095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$age" -gt "$current"; then 33105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2 33115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: \`$vinfo' is not valid version information" 1>&2 33125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit $EXIT_FAILURE 33135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 33145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 33155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Calculate the version variables. 33165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) major= 33175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) versuffix= 33185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) verstring= 33195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $version_type in 33205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) none) ;; 33215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 33225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) darwin) 33235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Like Linux, but with the current version available in 33245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # verstring for coding it into the library header 33255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) major=.`expr $current - $age` 33265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) versuffix="$major.$age.$revision" 33275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Darwin ld doesn't like 0 for these options... 33285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) minor_current=`expr $current + 1` 33295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" 33305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" 33315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 33325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 33335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) freebsd-aout) 33345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) major=".$current" 33355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) versuffix=".$current.$revision"; 33365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 33375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 33385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) freebsd-elf) 33395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) major=".$current" 33405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) versuffix=".$current"; 33415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 33425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 33435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) irix | nonstopux) 33445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "X$lt_irix_increment" = "Xno"; then 33455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) major=`expr $current - $age` 33465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 33475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) major=`expr $current - $age + 1` 33485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 33495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $version_type in 33505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) nonstopux) verstring_prefix=nonstopux ;; 33515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) verstring_prefix=sgi ;; 33525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 33535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) verstring="$verstring_prefix$major.$revision" 33545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 33555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Add in all the interfaces that we are compatible with. 33565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) loop=$revision 33575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) while test "$loop" -ne 0; do 33585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) iface=`expr $revision - $loop` 33595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) loop=`expr $loop - 1` 33605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) verstring="$verstring_prefix$major.$iface:$verstring" 33615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 33625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 33635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Before this point, $major must not contain `.'. 33645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) major=.$major 33655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) versuffix="$major.$revision" 33665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 33675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 33685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) linux) 33695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) major=.`expr $current - $age` 33705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) versuffix="$major.$age.$revision" 33715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 33725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 33735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) osf) 33745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) major=.`expr $current - $age` 33755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) versuffix=".$current.$age.$revision" 33765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) verstring="$current.$age.$revision" 33775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 33785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Add in all the interfaces that we are compatible with. 33795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) loop=$age 33805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) while test "$loop" -ne 0; do 33815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) iface=`expr $current - $loop` 33825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) loop=`expr $loop - 1` 33835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) verstring="$verstring:${iface}.0" 33845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 33855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 33865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Make executables depend on our current version. 33875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) verstring="$verstring:${current}.0" 33885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 33895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 33905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) sunos) 33915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) major=".$current" 33925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) versuffix=".$current.$revision" 33935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 33945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 33955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) windows) 33965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Use '-' rather than '.', since we only want one 33975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # extension on DOS 8.3 filesystems. 33985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) major=`expr $current - $age` 33995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) versuffix="-$major" 34005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 34015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 34025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) 34035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: unknown library version type \`$version_type'" 1>&2 34045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 34055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit $EXIT_FAILURE 34065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 34075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 34085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 34095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Clear the version info if we defaulted, and they specified a release. 34105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -z "$vinfo" && test -n "$release"; then 34115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) major= 34125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $version_type in 34135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) darwin) 34145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # we can't check for "0.0" in archive_cmds due to quoting 34155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # problems, so we reset it completely 34165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) verstring= 34175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 34185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) 34195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) verstring="0.0" 34205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 34215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 34225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$need_version" = no; then 34235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) versuffix= 34245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 34255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) versuffix=".0.0" 34265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 34275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 34285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 34295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Remove version info from name if versioning should be avoided 34305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$avoid_version" = yes && test "$need_version" = no; then 34315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) major= 34325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) versuffix= 34335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) verstring="" 34345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 34355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 34365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Check to see if the archive will have undefined symbols. 34375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$allow_undefined" = yes; then 34385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$allow_undefined_flag" = unsupported; then 34395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2 34405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) build_libtool_libs=no 34415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) build_old_libs=yes 34425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 34435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 34445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Don't allow undefined symbols. 34455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) allow_undefined_flag="$no_undefined_flag" 34465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 34475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 34485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 34495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$mode" != relink; then 34505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Remove our outputs, but don't remove object files since they 34515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # may have been created when compiling PIC objects. 34525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) removelist= 34535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) tempremovelist=`$echo "$output_objdir/*"` 34545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for p in $tempremovelist; do 34555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $p in 34565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *.$objext) 34575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 34585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) 34595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "X$precious_files_regex" != "X"; then 34605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if echo $p | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 34615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) then 34625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) continue 34635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 34645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 34655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) removelist="$removelist $p" 34665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 34675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) ;; 34685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 34695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 34705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$removelist"; then 34715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $show "${rm}r $removelist" 34725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $run ${rm}r $removelist 34735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 34745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 34755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 34765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Now set the variables for building old libraries. 34775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then 34785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) oldlibs="$oldlibs $output_objdir/$libname.$libext" 34795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 34805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Transform .lo files to .o files. 34815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP` 34825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 34835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 34845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Eliminate all temporary directories. 34855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) #for path in $notinst_path; do 34865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # lib_search_path=`$echo "$lib_search_path " | ${SED} -e "s% $path % %g"` 34875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # deplibs=`$echo "$deplibs " | ${SED} -e "s% -L$path % %g"` 34885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # dependency_libs=`$echo "$dependency_libs " | ${SED} -e "s% -L$path % %g"` 34895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) #done 34905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 34915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$xrpath"; then 34925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # If the user specified any rpath flags, then add them. 34935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) temp_xrpath= 34945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for libdir in $xrpath; do 34955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) temp_xrpath="$temp_xrpath -R$libdir" 34965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case "$finalize_rpath " in 34975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *" $libdir "*) ;; 34985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) finalize_rpath="$finalize_rpath $libdir" ;; 34995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 35005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 35015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then 35025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dependency_libs="$temp_xrpath $dependency_libs" 35035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 35045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 35055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 35065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Make sure dlfiles contains only unique files that won't be dlpreopened 35075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) old_dlfiles="$dlfiles" 35085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dlfiles= 35095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for lib in $old_dlfiles; do 35105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case " $dlprefiles $dlfiles " in 35115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *" $lib "*) ;; 35125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) dlfiles="$dlfiles $lib" ;; 35135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 35145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 35155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 35165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Make sure dlprefiles contains only unique files 35175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) old_dlprefiles="$dlprefiles" 35185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dlprefiles= 35195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for lib in $old_dlprefiles; do 35205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case "$dlprefiles " in 35215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *" $lib "*) ;; 35225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) dlprefiles="$dlprefiles $lib" ;; 35235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 35245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 35255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 35265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$build_libtool_libs" = yes; then 35275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$rpath"; then 35285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $host in 35295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*) 35305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # these systems don't actually have a c library (as such)! 35315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 35325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *-*-rhapsody* | *-*-darwin1.[012]) 35335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Rhapsody C library is in the System framework 35345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) deplibs="$deplibs -framework System" 35355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 35365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *-*-netbsd*) 35375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Don't link with libc until the a.out ld.so is fixed. 35385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 35395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) 35405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Do not include libc due to us having libc/libc_r. 35415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 35425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *-*-sco3.2v5* | *-*-sco5v6*) 35435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Causes problems with __ctype 35445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 35455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) 35465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Compiler inserts libc in the correct place for threads to work 35475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 35485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) 35495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Add libc to deplibs on all other systems if necessary. 35505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$build_libtool_need_lc" = "yes"; then 35515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) deplibs="$deplibs -lc" 35525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 35535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 35545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 35555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 35565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 35575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Transform deplibs into only deplibs that can be linked in shared. 35585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) name_save=$name 35595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) libname_save=$libname 35605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) release_save=$release 35615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) versuffix_save=$versuffix 35625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) major_save=$major 35635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # I'm not sure if I'm treating the release correctly. I think 35645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # release should show up in the -l (ie -lgmp5) so we don't want to 35655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # add it in twice. Is that correct? 35665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) release="" 35675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) versuffix="" 35685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) major="" 35695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) newdeplibs= 35705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) droppeddeps=no 35715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $deplibs_check_method in 35725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) pass_all) 35735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Don't check for shared/static. Everything works. 35745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # This might be a little naive. We might want to check 35755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # whether the library exists or not. But this is on 35765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # osf3 & osf4 and I'm not really sure... Just 35775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # implementing what was already the behavior. 35785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) newdeplibs=$deplibs 35795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 35805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test_compile) 35815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # This code stresses the "libraries are programs" paradigm to its 35825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # limits. Maybe even breaks it. We compile a program, linking it 35835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # against the deplibs as a proxy for the library. Then we can check 35845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # whether they linked in statically or dynamically with ldd. 35855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $rm conftest.c 35865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) cat > conftest.c <<EOF 35875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int main() { return 0; } 35885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)EOF 35895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $rm conftest 35905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if $LTCC $LTCFLAGS -o conftest conftest.c $deplibs; then 35915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ldd_output=`ldd conftest` 35925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for i in $deplibs; do 35935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) name=`expr $i : '-l\(.*\)'` 35945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # If $name is empty we are operating on a -L argument. 35955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$name" != "" && test "$name" != "0"; then 35965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then 35975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case " $predeps $postdeps " in 35985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *" $i "*) 35995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) newdeplibs="$newdeplibs $i" 36005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) i="" 36015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 36025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 36035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 36045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$i" ; then 36055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) libname=`eval \\$echo \"$libname_spec\"` 36065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) deplib_matches=`eval \\$echo \"$library_names_spec\"` 36075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) set dummy $deplib_matches 36085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) deplib_match=$2 36095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then 36105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) newdeplibs="$newdeplibs $i" 36115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 36125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) droppeddeps=yes 36135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo 36145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "*** Warning: dynamic linker does not accept needed library $i." 36155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "*** I have the capability to make that library automatically link in when" 36165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "*** you link to this library. But I can only do this if you have a" 36175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "*** shared version of the library, which I believe you do not have" 36185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "*** because a test_compile did reveal that the linker did not use it for" 36195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "*** its dynamic dependency list that programs get resolved with at runtime." 36205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 36215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 36225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 36235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) newdeplibs="$newdeplibs $i" 36245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 36255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 36265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 36275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Error occurred in the first compile. Let's try to salvage 36285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # the situation: Compile a separate program for each library. 36295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for i in $deplibs; do 36305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) name=`expr $i : '-l\(.*\)'` 36315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # If $name is empty we are operating on a -L argument. 36325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$name" != "" && test "$name" != "0"; then 36335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $rm conftest 36345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if $LTCC $LTCFLAGS -o conftest conftest.c $i; then 36355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ldd_output=`ldd conftest` 36365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then 36375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case " $predeps $postdeps " in 36385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *" $i "*) 36395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) newdeplibs="$newdeplibs $i" 36405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) i="" 36415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 36425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 36435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 36445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$i" ; then 36455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) libname=`eval \\$echo \"$libname_spec\"` 36465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) deplib_matches=`eval \\$echo \"$library_names_spec\"` 36475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) set dummy $deplib_matches 36485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) deplib_match=$2 36495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then 36505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) newdeplibs="$newdeplibs $i" 36515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 36525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) droppeddeps=yes 36535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo 36545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "*** Warning: dynamic linker does not accept needed library $i." 36555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "*** I have the capability to make that library automatically link in when" 36565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "*** you link to this library. But I can only do this if you have a" 36575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "*** shared version of the library, which you do not appear to have" 36585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "*** because a test_compile did reveal that the linker did not use this one" 36595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "*** as a dynamic dependency that programs can get resolved with at runtime." 36605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 36615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 36625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 36635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) droppeddeps=yes 36645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo 36655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "*** Warning! Library $i is needed by this library but I was not able to" 36665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "*** make it link in! You will probably need to install it or some" 36675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "*** library that it depends on before this library will be fully" 36685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "*** functional. Installing it before continuing would be even better." 36695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 36705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 36715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) newdeplibs="$newdeplibs $i" 36725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 36735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 36745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 36755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 36765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) file_magic*) 36775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) set dummy $deplibs_check_method 36785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) file_magic_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` 36795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for a_deplib in $deplibs; do 36805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) name=`expr $a_deplib : '-l\(.*\)'` 36815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # If $name is empty we are operating on a -L argument. 36825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$name" != "" && test "$name" != "0"; then 36835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then 36845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case " $predeps $postdeps " in 36855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *" $a_deplib "*) 36865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) newdeplibs="$newdeplibs $a_deplib" 36875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) a_deplib="" 36885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 36895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 36905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 36915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$a_deplib" ; then 36925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) libname=`eval \\$echo \"$libname_spec\"` 36935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do 36945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) potential_libs=`ls $i/$libname[.-]* 2>/dev/null` 36955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for potent_lib in $potential_libs; do 36965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Follow soft links. 36975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if ls -lLd "$potent_lib" 2>/dev/null \ 36985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) | grep " -> " >/dev/null; then 36995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) continue 37005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 37015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # The statement above tries to avoid entering an 37025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # endless loop below, in case of cyclic links. 37035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # We might still enter an endless loop, since a link 37045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # loop can be closed while we follow links, 37055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # but so what? 37065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) potlib="$potent_lib" 37075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) while test -h "$potlib" 2>/dev/null; do 37085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` 37095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $potliblink in 37105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; 37115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";; 37125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 37135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 37145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \ 37155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) | ${SED} 10q \ 37165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) | $EGREP "$file_magic_regex" > /dev/null; then 37175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) newdeplibs="$newdeplibs $a_deplib" 37185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) a_deplib="" 37195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) break 2 37205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 37215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 37225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 37235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 37245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$a_deplib" ; then 37255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) droppeddeps=yes 37265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo 37275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "*** Warning: linker path does not have real file for library $a_deplib." 37285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "*** I have the capability to make that library automatically link in when" 37295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "*** you link to this library. But I can only do this if you have a" 37305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "*** shared version of the library, which you do not appear to have" 37315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "*** because I did check the linker path looking for a file starting" 37325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -z "$potlib" ; then 37335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "*** with $libname but no candidates were found. (...for file magic test)" 37345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 37355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "*** with $libname and none of the candidates passed a file format test" 37365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "*** using a file magic. Last file checked: $potlib" 37375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 37385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 37395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 37405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Add a -L argument. 37415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) newdeplibs="$newdeplibs $a_deplib" 37425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 37435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done # Gone through all deplibs. 37445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 37455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) match_pattern*) 37465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) set dummy $deplibs_check_method 37475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` 37485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for a_deplib in $deplibs; do 37495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) name=`expr $a_deplib : '-l\(.*\)'` 37505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # If $name is empty we are operating on a -L argument. 37515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$name" && test "$name" != "0"; then 37525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then 37535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case " $predeps $postdeps " in 37545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *" $a_deplib "*) 37555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) newdeplibs="$newdeplibs $a_deplib" 37565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) a_deplib="" 37575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 37585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 37595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 37605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$a_deplib" ; then 37615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) libname=`eval \\$echo \"$libname_spec\"` 37625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do 37635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) potential_libs=`ls $i/$libname[.-]* 2>/dev/null` 37645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for potent_lib in $potential_libs; do 37655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) potlib="$potent_lib" # see symlink-check above in file_magic test 37665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if eval $echo \"$potent_lib\" 2>/dev/null \ 37675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) | ${SED} 10q \ 37685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) | $EGREP "$match_pattern_regex" > /dev/null; then 37695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) newdeplibs="$newdeplibs $a_deplib" 37705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) a_deplib="" 37715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) break 2 37725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 37735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 37745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 37755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 37765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$a_deplib" ; then 37775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) droppeddeps=yes 37785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo 37795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "*** Warning: linker path does not have real file for library $a_deplib." 37805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "*** I have the capability to make that library automatically link in when" 37815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "*** you link to this library. But I can only do this if you have a" 37825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "*** shared version of the library, which you do not appear to have" 37835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "*** because I did check the linker path looking for a file starting" 37845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -z "$potlib" ; then 37855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "*** with $libname but no candidates were found. (...for regex pattern test)" 37865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 37875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "*** with $libname and none of the candidates passed a file format test" 37885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "*** using a regex pattern. Last file checked: $potlib" 37895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 37905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 37915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 37925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Add a -L argument. 37935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) newdeplibs="$newdeplibs $a_deplib" 37945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 37955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done # Gone through all deplibs. 37965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 37975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) none | unknown | *) 37985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) newdeplibs="" 37995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) tmp_deplibs=`$echo "X $deplibs" | $Xsed -e 's/ -lc$//' \ 38005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -e 's/ -[LR][^ ]*//g'` 38015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then 38025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for i in $predeps $postdeps ; do 38035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # can't use Xsed below, because $i might contain '/' 38045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) tmp_deplibs=`$echo "X $tmp_deplibs" | ${SED} -e "1s,^X,," -e "s,$i,,"` 38055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 38065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 38075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if $echo "X $tmp_deplibs" | $Xsed -e 's/[ ]//g' \ 38085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) | grep . >/dev/null; then 38095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo 38105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "X$deplibs_check_method" = "Xnone"; then 38115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "*** Warning: inter-library dependencies are not supported in this platform." 38125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 38135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "*** Warning: inter-library dependencies are not known to be supported." 38145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 38155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "*** All declared inter-library dependencies are being dropped." 38165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) droppeddeps=yes 38175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 38185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 38195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 38205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) versuffix=$versuffix_save 38215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) major=$major_save 38225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) release=$release_save 38235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) libname=$libname_save 38245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) name=$name_save 38255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 38265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $host in 38275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *-*-rhapsody* | *-*-darwin1.[012]) 38285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # On Rhapsody replace the C library is the System framework 38295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'` 38305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 38315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 38325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 38335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$droppeddeps" = yes; then 38345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$module" = yes; then 38355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo 38365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "*** Warning: libtool could not satisfy all declared inter-library" 38375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "*** dependencies of module $libname. Therefore, libtool will create" 38385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "*** a static module, that should work as long as the dlopening" 38395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "*** application is linked with the -dlopen flag." 38405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -z "$global_symbol_pipe"; then 38415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo 38425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "*** However, this would only work if libtool was able to extract symbol" 38435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "*** lists from a program, using \`nm' or equivalent, but libtool could" 38445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "*** not find such a program. So, this module is probably useless." 38455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "*** \`nm' from GNU binutils and a full rebuild may help." 38465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 38475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$build_old_libs" = no; then 38485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) oldlibs="$output_objdir/$libname.$libext" 38495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) build_libtool_libs=module 38505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) build_old_libs=yes 38515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 38525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) build_libtool_libs=no 38535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 38545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 38555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "*** The inter-library dependencies that have been dropped here will be" 38565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "*** automatically added whenever a program is linked with this library" 38575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "*** or is declared to -dlopen it." 38585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 38595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$allow_undefined" = no; then 38605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo 38615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "*** Since this library must not contain undefined symbols," 38625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "*** because either the platform does not support them or" 38635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "*** it was explicitly requested with -no-undefined," 38645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "*** libtool will only create a static version of it." 38655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$build_old_libs" = no; then 38665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) oldlibs="$output_objdir/$libname.$libext" 38675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) build_libtool_libs=module 38685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) build_old_libs=yes 38695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 38705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) build_libtool_libs=no 38715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 38725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 38735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 38745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 38755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Done checking deplibs! 38765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) deplibs=$newdeplibs 38775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 38785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 38795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 38805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # move library search paths that coincide with paths to not yet 38815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # installed libraries to the beginning of the library search list 38825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) new_libs= 38835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for path in $notinst_path; do 38845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case " $new_libs " in 38855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *" -L$path/$objdir "*) ;; 38865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) 38875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case " $deplibs " in 38885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *" -L$path/$objdir "*) 38895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) new_libs="$new_libs -L$path/$objdir" ;; 38905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 38915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 38925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 38935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 38945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for deplib in $deplibs; do 38955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $deplib in 38965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -L*) 38975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case " $new_libs " in 38985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *" $deplib "*) ;; 38995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) new_libs="$new_libs $deplib" ;; 39005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 39015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 39025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) new_libs="$new_libs $deplib" ;; 39035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 39045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 39055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) deplibs="$new_libs" 39065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 39075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 39085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # All the library-specific variables (install_libdir is set above). 39095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) library_names= 39105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) old_library= 39115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dlname= 39125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 39135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Test again, we may have decided not to build it any more 39145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$build_libtool_libs" = yes; then 39155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$hardcode_into_libs" = yes; then 39165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Hardcode the library paths 39175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) hardcode_libdirs= 39185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dep_rpath= 39195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) rpath="$finalize_rpath" 39205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test "$mode" != relink && rpath="$compile_rpath$rpath" 39215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for libdir in $rpath; do 39225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$hardcode_libdir_flag_spec"; then 39235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$hardcode_libdir_separator"; then 39245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -z "$hardcode_libdirs"; then 39255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) hardcode_libdirs="$libdir" 39265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 39275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Just accumulate the unique libdirs. 39285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in 39295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) 39305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 39315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) 39325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" 39335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 39345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 39355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 39365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 39375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eval flag=\"$hardcode_libdir_flag_spec\" 39385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dep_rpath="$dep_rpath $flag" 39395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 39405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) elif test -n "$runpath_var"; then 39415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case "$perm_rpath " in 39425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *" $libdir "*) ;; 39435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) perm_rpath="$perm_rpath $libdir" ;; 39445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 39455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 39465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 39475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Substitute the hardcoded libdirs into the rpath. 39485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$hardcode_libdir_separator" && 39495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test -n "$hardcode_libdirs"; then 39505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) libdir="$hardcode_libdirs" 39515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$hardcode_libdir_flag_spec_ld"; then 39525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $archive_cmds in 39535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *\$LD*) eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" ;; 39545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) eval dep_rpath=\"$hardcode_libdir_flag_spec\" ;; 39555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 39565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 39575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eval dep_rpath=\"$hardcode_libdir_flag_spec\" 39585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 39595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 39605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$runpath_var" && test -n "$perm_rpath"; then 39615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # We should set the runpath_var. 39625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) rpath= 39635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for dir in $perm_rpath; do 39645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) rpath="$rpath$dir:" 39655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 39665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" 39675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 39685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" 39695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 39705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 39715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) shlibpath="$finalize_shlibpath" 39725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath" 39735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$shlibpath"; then 39745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" 39755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 39765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 39775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Get the real and link names of the library. 39785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eval shared_ext=\"$shrext_cmds\" 39795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eval library_names=\"$library_names_spec\" 39805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) set dummy $library_names 39815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) realname="$2" 39825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) shift; shift 39835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 39845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$soname_spec"; then 39855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eval soname=\"$soname_spec\" 39865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 39875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) soname="$realname" 39885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 39895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -z "$dlname"; then 39905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dlname=$soname 39915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 39925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 39935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib="$output_objdir/$realname" 39945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) linknames= 39955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for link 39965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) do 39975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) linknames="$linknames $link" 39985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 39995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 40005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Use standard objects if they are pic 40015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` 40025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 40035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Prepare the list of exported symbols 40045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -z "$export_symbols"; then 40055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then 40065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $show "generating symbol list for \`$libname.la'" 40075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) export_symbols="$output_objdir/$libname.exp" 40085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $run $rm $export_symbols 40095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) cmds=$export_symbols_cmds 40105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) save_ifs="$IFS"; IFS='~' 40115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for cmd in $cmds; do 40125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) IFS="$save_ifs" 40135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eval cmd=\"$cmd\" 40145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if len=`expr "X$cmd" : ".*"` && 40155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then 40165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $show "$cmd" 40175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $run eval "$cmd" || exit $? 40185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) skipped_export=false 40195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 40205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # The command line is too long to execute in one step. 40215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $show "using reloadable object file for export list..." 40225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) skipped_export=: 40235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Break out early, otherwise skipped_export may be 40245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # set to false by a later but shorter cmd. 40255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) break 40265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 40275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 40285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) IFS="$save_ifs" 40295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$export_symbols_regex"; then 40305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $show "$EGREP -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\"" 40315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $run eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' 40325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $show "$mv \"${export_symbols}T\" \"$export_symbols\"" 40335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $run eval '$mv "${export_symbols}T" "$export_symbols"' 40345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 40355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 40365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 40375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 40385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$export_symbols" && test -n "$include_expsyms"; then 40395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"' 40405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 40415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 40425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) tmp_deplibs= 40435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for test_deplib in $deplibs; do 40445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case " $convenience " in 40455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *" $test_deplib "*) ;; 40465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) 40475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) tmp_deplibs="$tmp_deplibs $test_deplib" 40485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 40495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 40505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 40515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) deplibs="$tmp_deplibs" 40525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 40535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$convenience"; then 40545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$whole_archive_flag_spec"; then 40555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) save_libobjs=$libobjs 40565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eval libobjs=\"\$libobjs $whole_archive_flag_spec\" 40575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 40585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) gentop="$output_objdir/${outputname}x" 40595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) generated="$generated $gentop" 40605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 40615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) func_extract_archives $gentop $convenience 40625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) libobjs="$libobjs $func_extract_archives_result" 40635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 40645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 40655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 40665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then 40675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eval flag=\"$thread_safe_flag_spec\" 40685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) linker_flags="$linker_flags $flag" 40695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 40705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 40715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Make a backup of the uninstalled library when relinking 40725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$mode" = relink; then 40735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $? 40745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 40755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 40765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Do each of the archive commands. 40775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$module" = yes && test -n "$module_cmds" ; then 40785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then 40795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eval test_cmds=\"$module_expsym_cmds\" 40805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) cmds=$module_expsym_cmds 40815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 40825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eval test_cmds=\"$module_cmds\" 40835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) cmds=$module_cmds 40845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 40855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 40865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then 40875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eval test_cmds=\"$archive_expsym_cmds\" 40885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) cmds=$archive_expsym_cmds 40895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 40905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eval test_cmds=\"$archive_cmds\" 40915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) cmds=$archive_cmds 40925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 40935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 40945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 40955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "X$skipped_export" != "X:" && 40965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) len=`expr "X$test_cmds" : ".*" 2>/dev/null` && 40975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then 40985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) : 40995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 41005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # The command line is too long to link in one step, link piecewise. 41015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "creating reloadable object files..." 41025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 41035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Save the value of $output and $libobjs because we want to 41045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # use them later. If we have whole_archive_flag_spec, we 41055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # want to use save_libobjs as it was before 41065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # whole_archive_flag_spec was expanded, because we can't 41075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # assume the linker understands whole_archive_flag_spec. 41085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # This may have to be revisited, in case too many 41095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # convenience libraries get linked in and end up exceeding 41105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # the spec. 41115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then 41125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) save_libobjs=$libobjs 41135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 41145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) save_output=$output 41155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) output_la=`$echo "X$output" | $Xsed -e "$basename"` 41165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 41175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Clear the reloadable object creation command queue and 41185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # initialize k to one. 41195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test_cmds= 41205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) concat_cmds= 41215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) objlist= 41225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) delfiles= 41235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) last_robj= 41245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) k=1 41255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) output=$output_objdir/$output_la-${k}.$objext 41265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Loop over the list of objects to be linked. 41275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for obj in $save_libobjs 41285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) do 41295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eval test_cmds=\"$reload_cmds $objlist $last_robj\" 41305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "X$objlist" = X || 41315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) { len=`expr "X$test_cmds" : ".*" 2>/dev/null` && 41325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test "$len" -le "$max_cmd_len"; }; then 41335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) objlist="$objlist $obj" 41345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 41355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # The command $test_cmds is almost too long, add a 41365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # command to the queue. 41375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$k" -eq 1 ; then 41385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # The first file doesn't have a previous command to add. 41395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eval concat_cmds=\"$reload_cmds $objlist $last_robj\" 41405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 41415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # All subsequent reloadable object files will link in 41425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # the last one created. 41435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\" 41445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 41455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) last_robj=$output_objdir/$output_la-${k}.$objext 41465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) k=`expr $k + 1` 41475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) output=$output_objdir/$output_la-${k}.$objext 41485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) objlist=$obj 41495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) len=1 41505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 41515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 41525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Handle the remaining objects by creating one last 41535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # reloadable object file. All subsequent reloadable object 41545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # files will link in the last one created. 41555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test -z "$concat_cmds" || concat_cmds=$concat_cmds~ 41565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\" 41575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 41585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if ${skipped_export-false}; then 41595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $show "generating symbol list for \`$libname.la'" 41605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) export_symbols="$output_objdir/$libname.exp" 41615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $run $rm $export_symbols 41625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) libobjs=$output 41635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Append the command to create the export file. 41645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eval concat_cmds=\"\$concat_cmds~$export_symbols_cmds\" 41655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 41665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 41675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Set up a command to remove the reloadable object files 41685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # after they are used. 41695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) i=0 41705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) while test "$i" -lt "$k" 41715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) do 41725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) i=`expr $i + 1` 41735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) delfiles="$delfiles $output_objdir/$output_la-${i}.$objext" 41745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 41755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 41765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "creating a temporary reloadable object file: $output" 41775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 41785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Loop through the commands generated above and execute them. 41795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) save_ifs="$IFS"; IFS='~' 41805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for cmd in $concat_cmds; do 41815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) IFS="$save_ifs" 41825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $show "$cmd" 41835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $run eval "$cmd" || exit $? 41845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 41855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) IFS="$save_ifs" 41865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 41875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) libobjs=$output 41885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Restore the value of output. 41895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) output=$save_output 41905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 41915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then 41925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eval libobjs=\"\$libobjs $whole_archive_flag_spec\" 41935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 41945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Expand the library linking commands again to reset the 41955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # value of $libobjs for piecewise linking. 41965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 41975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Do each of the archive commands. 41985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$module" = yes && test -n "$module_cmds" ; then 41995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then 42005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) cmds=$module_expsym_cmds 42015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 42025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) cmds=$module_cmds 42035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 42045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 42055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then 42065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) cmds=$archive_expsym_cmds 42075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 42085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) cmds=$archive_cmds 42095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 42105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 42115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 42125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Append the command to remove the reloadable object files 42135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # to the just-reset $cmds. 42145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eval cmds=\"\$cmds~\$rm $delfiles\" 42155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 42165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) save_ifs="$IFS"; IFS='~' 42175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for cmd in $cmds; do 42185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) IFS="$save_ifs" 42195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eval cmd=\"$cmd\" 42205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $show "$cmd" 42215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $run eval "$cmd" || { 42225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lt_exit=$? 42235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 42245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Restore the uninstalled library and exit 42255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$mode" = relink; then 42265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)' 42275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 42285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 42295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit $lt_exit 42305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 42315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 42325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) IFS="$save_ifs" 42335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 42345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Restore the uninstalled library and exit 42355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$mode" = relink; then 42365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $? 42375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 42385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$convenience"; then 42395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -z "$whole_archive_flag_spec"; then 42405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $show "${rm}r $gentop" 42415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $run ${rm}r "$gentop" 42425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 42435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 42445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 42455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit $EXIT_SUCCESS 42465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 42475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 42485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Create links to the real library. 42495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for linkname in $linknames; do 42505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$realname" != "$linkname"; then 42515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)" 42525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $? 42535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 42545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 42555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 42565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # If -module or -export-dynamic was specified, set the dlname. 42575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$module" = yes || test "$export_dynamic" = yes; then 42585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # On all known operating systems, these are identical. 42595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dlname="$soname" 42605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 42615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 42625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 42635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 42645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) obj) 42655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case " $deplibs" in 42665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *\ -l* | *\ -L*) 42675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2 ;; 42685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 42695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 42705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then 42715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2 42725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 42735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 42745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$rpath"; then 42755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2 42765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 42775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 42785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$xrpath"; then 42795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: warning: \`-R' is ignored for objects" 1>&2 42805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 42815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 42825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$vinfo"; then 42835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2 42845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 42855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 42865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$release"; then 42875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: warning: \`-release' is ignored for objects" 1>&2 42885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 42895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 42905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $output in 42915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *.lo) 42925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$objs$old_deplibs"; then 42935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2 42945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit $EXIT_FAILURE 42955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 42965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) libobj="$output" 42975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) obj=`$echo "X$output" | $Xsed -e "$lo2o"` 42985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 42995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) 43005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) libobj= 43015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) obj="$output" 43025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 43035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 43045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 43055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Delete the old objects. 43065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $run $rm $obj $libobj 43075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 43085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Objects from convenience libraries. This assumes 43095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # single-version convenience libraries. Whenever we create 43105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # different ones for PIC/non-PIC, this we'll have to duplicate 43115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # the extraction. 43125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) reload_conv_objs= 43135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) gentop= 43145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # reload_cmds runs $LD directly, so let us get rid of 43155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # -Wl from whole_archive_flag_spec and hope we can get by with 43165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # turning comma into space.. 43175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) wl= 43185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 43195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$convenience"; then 43205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$whole_archive_flag_spec"; then 43215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" 43225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) reload_conv_objs=$reload_objs\ `$echo "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'` 43235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 43245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) gentop="$output_objdir/${obj}x" 43255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) generated="$generated $gentop" 43265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 43275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) func_extract_archives $gentop $convenience 43285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) reload_conv_objs="$reload_objs $func_extract_archives_result" 43295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 43305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 43315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 43325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Create the old-style object. 43335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 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 43345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 43355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) output="$obj" 43365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) cmds=$reload_cmds 43375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) save_ifs="$IFS"; IFS='~' 43385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for cmd in $cmds; do 43395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) IFS="$save_ifs" 43405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eval cmd=\"$cmd\" 43415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $show "$cmd" 43425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $run eval "$cmd" || exit $? 43435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 43445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) IFS="$save_ifs" 43455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 43465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Exit if we aren't doing a library object file. 43475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -z "$libobj"; then 43485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$gentop"; then 43495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $show "${rm}r $gentop" 43505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $run ${rm}r $gentop 43515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 43525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 43535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit $EXIT_SUCCESS 43545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 43555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 43565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$build_libtool_libs" != yes; then 43575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$gentop"; then 43585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $show "${rm}r $gentop" 43595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $run ${rm}r $gentop 43605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 43615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 43625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Create an invalid libtool object if no PIC, so that we don't 43635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # accidentally link it into a program. 43645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # $show "echo timestamp > $libobj" 43655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # $run eval "echo timestamp > $libobj" || exit $? 43665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit $EXIT_SUCCESS 43675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 43685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 43695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$pic_flag" || test "$pic_mode" != default; then 43705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Only do commands if we really have different PIC objects. 43715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) reload_objs="$libobjs $reload_conv_objs" 43725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) output="$libobj" 43735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) cmds=$reload_cmds 43745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) save_ifs="$IFS"; IFS='~' 43755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for cmd in $cmds; do 43765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) IFS="$save_ifs" 43775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eval cmd=\"$cmd\" 43785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $show "$cmd" 43795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $run eval "$cmd" || exit $? 43805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 43815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) IFS="$save_ifs" 43825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 43835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 43845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$gentop"; then 43855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $show "${rm}r $gentop" 43865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $run ${rm}r $gentop 43875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 43885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 43895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit $EXIT_SUCCESS 43905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 43915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 43925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) prog) 43935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $host in 43945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *cygwin*) output=`$echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;; 43955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 43965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$vinfo"; then 43975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2 43985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 43995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 44005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$release"; then 44015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: warning: \`-release' is ignored for programs" 1>&2 44025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 44035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 44045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$preload" = yes; then 44055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown && 44065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test "$dlopen_self_static" = unknown; then 44075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support." 44085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 44095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 44105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 44115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $host in 44125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *-*-rhapsody* | *-*-darwin1.[012]) 44135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # On Rhapsody replace the C library is the System framework 44145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'` 44155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'` 44165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 44175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 44185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 44195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $host in 44205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *darwin*) 44215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Don't allow lazy linking, it breaks C++ global constructors 44225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$tagname" = CXX ; then 44235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) compile_command="$compile_command ${wl}-bind_at_load" 44245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) finalize_command="$finalize_command ${wl}-bind_at_load" 44255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 44265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 44275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 44285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 44295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 44305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # move library search paths that coincide with paths to not yet 44315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # installed libraries to the beginning of the library search list 44325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) new_libs= 44335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for path in $notinst_path; do 44345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case " $new_libs " in 44355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *" -L$path/$objdir "*) ;; 44365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) 44375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case " $compile_deplibs " in 44385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *" -L$path/$objdir "*) 44395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) new_libs="$new_libs -L$path/$objdir" ;; 44405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 44415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 44425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 44435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 44445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for deplib in $compile_deplibs; do 44455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $deplib in 44465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -L*) 44475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case " $new_libs " in 44485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *" $deplib "*) ;; 44495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) new_libs="$new_libs $deplib" ;; 44505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 44515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 44525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) new_libs="$new_libs $deplib" ;; 44535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 44545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 44555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) compile_deplibs="$new_libs" 44565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 44575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 44585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) compile_command="$compile_command $compile_deplibs" 44595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) finalize_command="$finalize_command $finalize_deplibs" 44605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 44615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$rpath$xrpath"; then 44625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # If the user specified any rpath flags, then add them. 44635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for libdir in $rpath $xrpath; do 44645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # This is the magic to use -rpath. 44655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case "$finalize_rpath " in 44665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *" $libdir "*) ;; 44675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) finalize_rpath="$finalize_rpath $libdir" ;; 44685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 44695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 44705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 44715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 44725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Now hardcode the library paths 44735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) rpath= 44745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) hardcode_libdirs= 44755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for libdir in $compile_rpath $finalize_rpath; do 44765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$hardcode_libdir_flag_spec"; then 44775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$hardcode_libdir_separator"; then 44785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -z "$hardcode_libdirs"; then 44795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) hardcode_libdirs="$libdir" 44805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 44815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Just accumulate the unique libdirs. 44825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in 44835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) 44845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 44855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) 44865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" 44875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 44885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 44895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 44905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 44915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eval flag=\"$hardcode_libdir_flag_spec\" 44925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) rpath="$rpath $flag" 44935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 44945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) elif test -n "$runpath_var"; then 44955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case "$perm_rpath " in 44965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *" $libdir "*) ;; 44975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) perm_rpath="$perm_rpath $libdir" ;; 44985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 44995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 45005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $host in 45015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) 45025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) testbindir=`$echo "X$libdir" | $Xsed -e 's*/lib$*/bin*'` 45035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case :$dllsearchpath: in 45045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *":$libdir:"*) ;; 45055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) dllsearchpath="$dllsearchpath:$libdir";; 45065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 45075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case :$dllsearchpath: in 45085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *":$testbindir:"*) ;; 45095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) dllsearchpath="$dllsearchpath:$testbindir";; 45105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 45115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 45125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 45135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 45145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Substitute the hardcoded libdirs into the rpath. 45155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$hardcode_libdir_separator" && 45165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test -n "$hardcode_libdirs"; then 45175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) libdir="$hardcode_libdirs" 45185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eval rpath=\" $hardcode_libdir_flag_spec\" 45195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 45205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) compile_rpath="$rpath" 45215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 45225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) rpath= 45235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) hardcode_libdirs= 45245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for libdir in $finalize_rpath; do 45255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$hardcode_libdir_flag_spec"; then 45265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$hardcode_libdir_separator"; then 45275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -z "$hardcode_libdirs"; then 45285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) hardcode_libdirs="$libdir" 45295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 45305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Just accumulate the unique libdirs. 45315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in 45325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) 45335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 45345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) 45355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" 45365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 45375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 45385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 45395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 45405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eval flag=\"$hardcode_libdir_flag_spec\" 45415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) rpath="$rpath $flag" 45425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 45435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) elif test -n "$runpath_var"; then 45445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case "$finalize_perm_rpath " in 45455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *" $libdir "*) ;; 45465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;; 45475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 45485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 45495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 45505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Substitute the hardcoded libdirs into the rpath. 45515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$hardcode_libdir_separator" && 45525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test -n "$hardcode_libdirs"; then 45535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) libdir="$hardcode_libdirs" 45545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eval rpath=\" $hardcode_libdir_flag_spec\" 45555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 45565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) finalize_rpath="$rpath" 45575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 45585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$libobjs" && test "$build_old_libs" = yes; then 45595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Transform all the library objects into standard objects. 45605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` 45615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` 45625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 45635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 45645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dlsyms= 45655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then 45665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$NM" && test -n "$global_symbol_pipe"; then 45675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dlsyms="${outputname}S.c" 45685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 45695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2 45705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 45715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 45725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 45735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$dlsyms"; then 45745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $dlsyms in 45755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) "") ;; 45765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *.c) 45775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Discover the nlist of each of the dlfiles. 45785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) nlist="$output_objdir/${outputname}.nm" 45795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 45805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $show "$rm $nlist ${nlist}S ${nlist}T" 45815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $run $rm "$nlist" "${nlist}S" "${nlist}T" 45825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 45835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Parse the name list into a source file. 45845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $show "creating $output_objdir/$dlsyms" 45855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 45865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test -z "$run" && $echo > "$output_objdir/$dlsyms" "\ 45875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */ 45885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */ 45895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 45905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef __cplusplus 45915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern \"C\" { 45925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 45935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 45945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* Prevent the only kind of declaration conflicts we can make. */ 45955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define lt_preloaded_symbols some_other_symbol 45965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 45975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* External symbol declarations for the compiler. */\ 45985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)" 45995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 46005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$dlself" = yes; then 46015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $show "generating symbol list for \`$output'" 46025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 46035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist" 46045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 46055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Add our own program objects to the symbol list. 46065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` 46075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for arg in $progfiles; do 46085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $show "extracting global C symbols from \`$arg'" 46095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" 46105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 46115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 46125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$exclude_expsyms"; then 46135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $run eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' 46145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $run eval '$mv "$nlist"T "$nlist"' 46155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 46165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 46175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$export_symbols_regex"; then 46185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $run eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' 46195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $run eval '$mv "$nlist"T "$nlist"' 46205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 46215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 46225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Prepare the list of exported symbols 46235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -z "$export_symbols"; then 46245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) export_symbols="$output_objdir/$outputname.exp" 46255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $run $rm $export_symbols 46265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $run eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' 46275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $host in 46285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *cygwin* | *mingw* ) 46295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' 46305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $run eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' 46315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 46325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 46335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 46345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $run eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' 46355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $run eval 'grep -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' 46365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $run eval 'mv "$nlist"T "$nlist"' 46375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $host in 46385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *cygwin* | *mingw* ) 46395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' 46405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $run eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' 46415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 46425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 46435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 46445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 46455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 46465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for arg in $dlprefiles; do 46475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $show "extracting global C symbols from \`$arg'" 46485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) name=`$echo "$arg" | ${SED} -e 's%^.*/%%'` 46495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $run eval '$echo ": $name " >> "$nlist"' 46505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" 46515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 46525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 46535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -z "$run"; then 46545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Make sure we have at least an empty file. 46555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test -f "$nlist" || : > "$nlist" 46565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 46575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$exclude_expsyms"; then 46585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T 46595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $mv "$nlist"T "$nlist" 46605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 46615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 46625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Try sorting and uniquifying the output. 46635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if grep -v "^: " < "$nlist" | 46645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if sort -k 3 </dev/null >/dev/null 2>&1; then 46655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) sort -k 3 46665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 46675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) sort +2 46685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi | 46695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) uniq > "$nlist"S; then 46705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) : 46715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 46725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) grep -v "^: " < "$nlist" > "$nlist"S 46735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 46745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 46755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -f "$nlist"S; then 46765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"' 46775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 46785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo '/* NONE */' >> "$output_objdir/$dlsyms" 46795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 46805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 46815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo >> "$output_objdir/$dlsyms" "\ 46825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 46835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#undef lt_preloaded_symbols 46845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 46855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined (__STDC__) && __STDC__ 46865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define lt_ptr void * 46875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else 46885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define lt_ptr char * 46895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define const 46905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 46915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 46925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* The mapping between symbol names and symbols. */ 46935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)" 46945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 46955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $host in 46965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *cygwin* | *mingw* ) 46975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo >> "$output_objdir/$dlsyms" "\ 46985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* DATA imports from DLLs on WIN32 can't be const, because 46995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) runtime relocations are performed -- see ld's documentation 47005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) on pseudo-relocs */ 47015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct { 47025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)" 47035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 47045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * ) 47055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo >> "$output_objdir/$dlsyms" "\ 47065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const struct { 47075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)" 47085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 47095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 47105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 47115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 47125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo >> "$output_objdir/$dlsyms" "\ 47135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const char *name; 47145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lt_ptr address; 47155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 47165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)lt_preloaded_symbols[] = 47175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){\ 47185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)" 47195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 47205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms" 47215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 47225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo >> "$output_objdir/$dlsyms" "\ 47235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) {0, (lt_ptr) 0} 47245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 47255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 47265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* This works around a problem in FreeBSD linker */ 47275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef FREEBSD_WORKAROUND 47285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)static const void *lt_preloaded_setup() { 47295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return lt_preloaded_symbols; 47305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 47315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 47325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 47335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef __cplusplus 47345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 47355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif\ 47365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)" 47375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 47385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 47395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) pic_flag_for_symtable= 47405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $host in 47415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # compiling the symbol table file with pic_flag works around 47425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # a FreeBSD bug that causes programs to crash when -lm is 47435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # linked before any other PIC object. But we must not use 47445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # pic_flag when linking with -static. The problem exists in 47455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. 47465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) 47475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case "$compile_command " in 47485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *" -static "*) ;; 47495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND";; 47505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac;; 47515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *-*-hpux*) 47525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case "$compile_command " in 47535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *" -static "*) ;; 47545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) pic_flag_for_symtable=" $pic_flag";; 47555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 47565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 47575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 47585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Now compile the dynamic symbol file. 47595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $show "(cd $output_objdir && $LTCC $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")" 47605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $run eval '(cd $output_objdir && $LTCC $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $? 47615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 47625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Clean up the generated files. 47635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T" 47645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T" 47655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 47665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Transform the symbol file into the correct name. 47675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $host in 47685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *cygwin* | *mingw* ) 47695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -f "$output_objdir/${outputname}.def" ; then 47705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%" | $NL2SP` 47715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%" | $NL2SP` 47725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 47735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP` 47745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP` 47755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 47765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 47775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * ) 47785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP` 47795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP` 47805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 47815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 47825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 47835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) 47845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2 47855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit $EXIT_FAILURE 47865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 47875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 47885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 47895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # We keep going just in case the user didn't refer to 47905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # lt_preloaded_symbols. The linker will fail if global_symbol_pipe 47915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # really was required. 47925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 47935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Nullify the symbol file. 47945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s% @SYMFILE@%%" | $NL2SP` 47955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s% @SYMFILE@%%" | $NL2SP` 47965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 47975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 47985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$need_relink" = no || test "$build_libtool_libs" != yes; then 47995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Replace the output file specification. 48005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e 's%@OUTPUT@%'"$output"'%g' | $NL2SP` 48015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) link_command="$compile_command$compile_rpath" 48025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 48035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # We have no uninstalled library dependencies, so finalize right now. 48045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $show "$link_command" 48055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $run eval "$link_command" 48065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit_status=$? 48075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 48085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Delete the generated files. 48095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$dlsyms"; then 48105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $show "$rm $output_objdir/${outputname}S.${objext}" 48115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $run $rm "$output_objdir/${outputname}S.${objext}" 48125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 48135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 48145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit $exit_status 48155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 48165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 48175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$shlibpath_var"; then 48185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # We should set the shlibpath_var 48195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) rpath= 48205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for dir in $temp_rpath; do 48215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $dir in 48225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) [\\/]* | [A-Za-z]:[\\/]*) 48235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Absolute path. 48245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) rpath="$rpath$dir:" 48255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 48265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) 48275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Relative path: add a thisdir entry. 48285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) rpath="$rpath\$thisdir/$dir:" 48295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 48305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 48315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 48325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) temp_rpath="$rpath" 48335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 48345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 48355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$compile_shlibpath$finalize_shlibpath"; then 48365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" 48375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 48385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$finalize_shlibpath"; then 48395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" 48405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 48415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 48425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) compile_var= 48435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) finalize_var= 48445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$runpath_var"; then 48455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$perm_rpath"; then 48465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # We should set the runpath_var. 48475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) rpath= 48485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for dir in $perm_rpath; do 48495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) rpath="$rpath$dir:" 48505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 48515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) compile_var="$runpath_var=\"$rpath\$$runpath_var\" " 48525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 48535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$finalize_perm_rpath"; then 48545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # We should set the runpath_var. 48555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) rpath= 48565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for dir in $finalize_perm_rpath; do 48575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) rpath="$rpath$dir:" 48585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 48595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " 48605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 48615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 48625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 48635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$no_install" = yes; then 48645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # We don't need to create a wrapper script. 48655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) link_command="$compile_var$compile_command$compile_rpath" 48665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Replace the output file specification. 48675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` 48685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Delete the old output file. 48695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $run $rm $output 48705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Link the executable and exit 48715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $show "$link_command" 48725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $run eval "$link_command" || exit $? 48735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit $EXIT_SUCCESS 48745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 48755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 48765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$hardcode_action" = relink; then 48775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Fast installation is not supported 48785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) link_command="$compile_var$compile_command$compile_rpath" 48795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) relink_command="$finalize_var$finalize_command$finalize_rpath" 48805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 48815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2 48825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: \`$output' will be relinked during installation" 1>&2 48835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 48845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$fast_install" != no; then 48855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) link_command="$finalize_var$compile_command$finalize_rpath" 48865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$fast_install" = yes; then 48875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $SP2NL | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g' | $NL2SP` 48885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 48895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # fast_install is set to needless 48905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) relink_command= 48915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 48925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 48935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) link_command="$compile_var$compile_command$compile_rpath" 48945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) relink_command="$finalize_var$finalize_command$finalize_rpath" 48955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 48965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 48975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 48985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Replace the output file specification. 48995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` 49005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 49015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Delete the old output files. 49025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname 49035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 49045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $show "$link_command" 49055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $run eval "$link_command" || exit $? 49065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 49075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Now create the wrapper script. 49085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $show "creating $output" 49095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 49105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Quote the relink command for shipping. 49115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$relink_command"; then 49125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Preserve any variables that may affect compiler behavior 49135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for var in $variables_saved_for_relink; do 49145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if eval test -z \"\${$var+set}\"; then 49155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command" 49165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) elif eval var_value=\$$var; test -z "$var_value"; then 49175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) relink_command="$var=; export $var; $relink_command" 49185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 49195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` 49205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) relink_command="$var=\"$var_value\"; export $var; $relink_command" 49215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 49225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 49235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) relink_command="(cd `pwd`; $relink_command)" 49245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e "$sed_quote_subst" | $NL2SP` 49255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 49265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 49275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Quote $echo for shipping. 49285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "X$echo" = "X$SHELL $progpath --fallback-echo"; then 49295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $progpath in 49305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";; 49315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) qecho="$SHELL `pwd`/$progpath --fallback-echo";; 49325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 49335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"` 49345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 49355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"` 49365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 49375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 49385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Only actually do things if our run command is non-null. 49395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -z "$run"; then 49405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # win32 will think the script is a binary if it has 49415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # a .exe suffix, so we strip it off here. 49425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $output in 49435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *.exe) output=`$echo $output|${SED} 's,.exe$,,'` ;; 49445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 49455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # test for cygwin because mv fails w/o .exe extensions 49465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $host in 49475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *cygwin*) 49485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exeext=.exe 49495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) outputname=`$echo $outputname|${SED} 's,.exe$,,'` ;; 49505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) exeext= ;; 49515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 49525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $host in 49535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *cygwin* | *mingw* ) 49545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) output_name=`basename $output` 49555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) output_path=`dirname $output` 49565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) cwrappersource="$output_path/$objdir/lt-$output_name.c" 49575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) cwrapper="$output_path/$output_name.exe" 49585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $rm $cwrappersource $cwrapper 49595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) trap "$rm $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 49605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 49615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) cat > $cwrappersource <<EOF 49625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 49635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* $cwrappersource - temporary wrapper executable for $objdir/$outputname 49645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP 49655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 49665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) The $output program cannot be directly executed until all the libtool 49675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) libraries that it depends on are installed. 49685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 49695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) This wrapper executable should never be moved out of the build directory. 49705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) If it is, it will not operate correctly. 49715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 49725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) Currently, it simply execs the wrapper *script* "/bin/sh $output", 49735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) but could eventually absorb all of the scripts functionality and 49745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exec $objdir/$outputname directly. 49755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*/ 49765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)EOF 49775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) cat >> $cwrappersource<<"EOF" 49785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <stdio.h> 49795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <stdlib.h> 49805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <unistd.h> 49815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <malloc.h> 49825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <stdarg.h> 49835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <assert.h> 49845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <string.h> 49855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <ctype.h> 49865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <sys/stat.h> 49875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 49885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(PATH_MAX) 49895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define LT_PATHMAX PATH_MAX 49905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#elif defined(MAXPATHLEN) 49915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define LT_PATHMAX MAXPATHLEN 49925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else 49935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define LT_PATHMAX 1024 49945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 49955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 49965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef DIR_SEPARATOR 49975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define DIR_SEPARATOR '/' 49985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PATH_SEPARATOR ':' 49995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 50005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 50015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ 50025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) defined (__OS2__) 50035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define HAVE_DOS_BASED_FILE_SYSTEM 50045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef DIR_SEPARATOR_2 50055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define DIR_SEPARATOR_2 '\\' 50065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 50075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef PATH_SEPARATOR_2 50085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PATH_SEPARATOR_2 ';' 50095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 50105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 50115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 50125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef DIR_SEPARATOR_2 50135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) 50145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else /* DIR_SEPARATOR_2 */ 50155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define IS_DIR_SEPARATOR(ch) \ 50165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) 50175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif /* DIR_SEPARATOR_2 */ 50185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 50195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef PATH_SEPARATOR_2 50205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) 50215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else /* PATH_SEPARATOR_2 */ 50225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) 50235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif /* PATH_SEPARATOR_2 */ 50245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 50255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) 50265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define XFREE(stale) do { \ 50275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (stale) { free ((void *) stale); stale = 0; } \ 50285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} while (0) 50295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 50305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* -DDEBUG is fairly common in CFLAGS. */ 50315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#undef DEBUG 50325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined DEBUGWRAPPER 50335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define DEBUG(format, ...) fprintf(stderr, format, __VA_ARGS__) 50345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else 50355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define DEBUG(format, ...) 50365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 50375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 50385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char *program_name = NULL; 50395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 50405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void * xmalloc (size_t num); 50415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)char * xstrdup (const char *string); 50425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char * base_name (const char *name); 50435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)char * find_executable(const char *wrapper); 50445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int check_executable(const char *path); 50455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)char * strendzap(char *str, const char *pat); 50465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void lt_fatal (const char *message, ...); 50475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 50485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int 50495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)main (int argc, char *argv[]) 50505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){ 50515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) char **newargz; 50525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int i; 50535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 50545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) program_name = (char *) xstrdup (base_name (argv[0])); 50555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DEBUG("(main) argv[0] : %s\n",argv[0]); 50565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DEBUG("(main) program_name : %s\n",program_name); 50575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) newargz = XMALLOC(char *, argc+2); 50585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)EOF 50595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 50605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) cat >> $cwrappersource <<EOF 50615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) newargz[0] = (char *) xstrdup("$SHELL"); 50625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)EOF 50635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 50645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) cat >> $cwrappersource <<"EOF" 50655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) newargz[1] = find_executable(argv[0]); 50665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (newargz[1] == NULL) 50675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lt_fatal("Couldn't find %s", argv[0]); 50685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DEBUG("(main) found exe at : %s\n",newargz[1]); 50695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /* we know the script has the same name, without the .exe */ 50705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /* so make sure newargz[1] doesn't end in .exe */ 50715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) strendzap(newargz[1],".exe"); 50725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for (i = 1; i < argc; i++) 50735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) newargz[i+1] = xstrdup(argv[i]); 50745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) newargz[argc+1] = NULL; 50755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 50765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for (i=0; i<argc+1; i++) 50775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) { 50785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DEBUG("(main) newargz[%d] : %s\n",i,newargz[i]); 50795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ; 50805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 50815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 50825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)EOF 50835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 50845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $host_os in 50855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) mingw*) 50865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) cat >> $cwrappersource <<EOF 50875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) execv("$SHELL",(char const **)newargz); 50885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)EOF 50895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 50905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) 50915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) cat >> $cwrappersource <<EOF 50925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) execv("$SHELL",newargz); 50935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)EOF 50945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 50955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 50965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 50975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) cat >> $cwrappersource <<"EOF" 50985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return 127; 50995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 51005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 51015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void * 51025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)xmalloc (size_t num) 51035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){ 51045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void * p = (void *) malloc (num); 51055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (!p) 51065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lt_fatal ("Memory exhausted"); 51075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 51085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return p; 51095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 51105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 51115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)char * 51125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)xstrdup (const char *string) 51135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){ 51145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL 51155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles); 51165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 51175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 51185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char * 51195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)base_name (const char *name) 51205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){ 51215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const char *base; 51225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 51235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined (HAVE_DOS_BASED_FILE_SYSTEM) 51245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /* Skip over the disk name in MSDOS pathnames. */ 51255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (isalpha ((unsigned char)name[0]) && name[1] == ':') 51265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) name += 2; 51275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 51285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 51295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for (base = name; *name; name++) 51305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (IS_DIR_SEPARATOR (*name)) 51315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) base = name + 1; 51325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return base; 51335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 51345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 51355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int 51365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)check_executable(const char * path) 51375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){ 51385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) struct stat st; 51395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 51405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DEBUG("(check_executable) : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!"); 51415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if ((!path) || (!*path)) 51425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return 0; 51435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 51445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if ((stat (path, &st) >= 0) && 51455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ( 51465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /* MinGW & native WIN32 do not support S_IXOTH or S_IXGRP */ 51475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined (S_IXOTH) 51485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ((st.st_mode & S_IXOTH) == S_IXOTH) || 51495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 51505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined (S_IXGRP) 51515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ((st.st_mode & S_IXGRP) == S_IXGRP) || 51525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 51535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ((st.st_mode & S_IXUSR) == S_IXUSR)) 51545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ) 51555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return 1; 51565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 51575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return 0; 51585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 51595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 51605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* Searches for the full path of the wrapper. Returns 51615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) newly allocated full path name if found, NULL otherwise */ 51625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)char * 51635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)find_executable (const char* wrapper) 51645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){ 51655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int has_slash = 0; 51665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const char* p; 51675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const char* p_next; 51685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /* static buffer for getcwd */ 51695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) char tmp[LT_PATHMAX + 1]; 51705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int tmp_len; 51715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) char* concat_name; 51725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 51735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DEBUG("(find_executable) : %s\n", wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!"); 51745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 51755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if ((wrapper == NULL) || (*wrapper == '\0')) 51765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return NULL; 51775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 51785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /* Absolute path? */ 51795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined (HAVE_DOS_BASED_FILE_SYSTEM) 51805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (isalpha ((unsigned char)wrapper[0]) && wrapper[1] == ':') 51815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) { 51825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) concat_name = xstrdup (wrapper); 51835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (check_executable(concat_name)) 51845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return concat_name; 51855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) XFREE(concat_name); 51865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 51875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 51885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) { 51895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 51905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (IS_DIR_SEPARATOR (wrapper[0])) 51915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) { 51925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) concat_name = xstrdup (wrapper); 51935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (check_executable(concat_name)) 51945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return concat_name; 51955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) XFREE(concat_name); 51965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 51975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined (HAVE_DOS_BASED_FILE_SYSTEM) 51985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 51995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 52005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 52015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for (p = wrapper; *p; p++) 52025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (*p == '/') 52035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) { 52045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) has_slash = 1; 52055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) break; 52065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 52075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (!has_slash) 52085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) { 52095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /* no slashes; search PATH */ 52105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const char* path = getenv ("PATH"); 52115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (path != NULL) 52125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) { 52135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for (p = path; *p; p = p_next) 52145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) { 52155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const char* q; 52165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) size_t p_len; 52175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for (q = p; *q; q++) 52185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (IS_PATH_SEPARATOR(*q)) 52195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) break; 52205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) p_len = q - p; 52215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) p_next = (*q == '\0' ? q : q + 1); 52225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (p_len == 0) 52235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) { 52245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /* empty path: current directory */ 52255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (getcwd (tmp, LT_PATHMAX) == NULL) 52265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lt_fatal ("getcwd failed"); 52275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) tmp_len = strlen(tmp); 52285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1); 52295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) memcpy (concat_name, tmp, tmp_len); 52305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) concat_name[tmp_len] = '/'; 52315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) strcpy (concat_name + tmp_len + 1, wrapper); 52325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 52335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 52345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) { 52355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) concat_name = XMALLOC(char, p_len + 1 + strlen(wrapper) + 1); 52365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) memcpy (concat_name, p, p_len); 52375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) concat_name[p_len] = '/'; 52385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) strcpy (concat_name + p_len + 1, wrapper); 52395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 52405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (check_executable(concat_name)) 52415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return concat_name; 52425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) XFREE(concat_name); 52435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 52445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 52455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /* not found in PATH; assume curdir */ 52465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 52475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /* Relative path | not found in path: prepend cwd */ 52485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (getcwd (tmp, LT_PATHMAX) == NULL) 52495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lt_fatal ("getcwd failed"); 52505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) tmp_len = strlen(tmp); 52515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1); 52525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) memcpy (concat_name, tmp, tmp_len); 52535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) concat_name[tmp_len] = '/'; 52545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) strcpy (concat_name + tmp_len + 1, wrapper); 52555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 52565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (check_executable(concat_name)) 52575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return concat_name; 52585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) XFREE(concat_name); 52595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return NULL; 52605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 52615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 52625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)char * 52635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)strendzap(char *str, const char *pat) 52645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){ 52655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) size_t len, patlen; 52665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 52675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) assert(str != NULL); 52685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) assert(pat != NULL); 52695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 52705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) len = strlen(str); 52715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) patlen = strlen(pat); 52725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 52735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (patlen <= len) 52745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) { 52755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) str += len - patlen; 52765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (strcmp(str, pat) == 0) 52775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *str = '\0'; 52785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 52795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return str; 52805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 52815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 52825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)static void 52835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)lt_error_core (int exit_status, const char * mode, 52845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const char * message, va_list ap) 52855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){ 52865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fprintf (stderr, "%s: %s: ", program_name, mode); 52875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) vfprintf (stderr, message, ap); 52885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fprintf (stderr, ".\n"); 52895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 52905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (exit_status >= 0) 52915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit (exit_status); 52925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 52935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 52945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void 52955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)lt_fatal (const char *message, ...) 52965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){ 52975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) va_list ap; 52985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) va_start (ap, message); 52995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lt_error_core (EXIT_FAILURE, "FATAL", message, ap); 53005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) va_end (ap); 53015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 53025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)EOF 53035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # we should really use a build-platform specific compiler 53045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # here, but OTOH, the wrappers (shell script and this C one) 53055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # are only useful if you want to execute the "real" binary. 53065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Since the "real" binary is built for $host, then this 53075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # wrapper might as well be built for $host, too. 53085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $run $LTCC $LTCFLAGS -s -o $cwrapper $cwrappersource 53095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 53105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 53115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $rm $output 53125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) trap "$rm $output; exit $EXIT_FAILURE" 1 2 15 53135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 53145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo > $output "\ 53155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#! $SHELL 53165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 53175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# $output - temporary wrapper script for $objdir/$outputname 53185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP 53195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# 53205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# The $output program cannot be directly executed until all the libtool 53215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# libraries that it depends on are installed. 53225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# 53235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# This wrapper script should never be moved out of the build directory. 53245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# If it is, it will not operate correctly. 53255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 53265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Sed substitution that helps us do robust quoting. It backslashifies 53275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# metacharacters that are still active within double-quoted strings. 53285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)Xsed='${SED} -e 1s/^X//' 53295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)sed_quote_subst='$sed_quote_subst' 53305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 53315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Be Bourne compatible (taken from Autoconf:_AS_BOURNE_COMPATIBLE). 53325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then 53335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) emulate sh 53345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) NULLCMD=: 53355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which 53365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # is contrary to our usage. Disable this feature. 53375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) alias -g '\${1+\"\$@\"}'='\"\$@\"' 53385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) setopt NO_GLOB_SUBST 53395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)else 53405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac 53415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)fi 53425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)BIN_SH=xpg4; export BIN_SH # for Tru64 53435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)DUALCASE=1; export DUALCASE # for MKS sh 53445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 53455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# The HP-UX ksh and POSIX shell print the target directory to stdout 53465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# if CDPATH is set. 53475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)(unset CDPATH) >/dev/null 2>&1 && unset CDPATH 53485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 53495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)relink_command=\"$relink_command\" 53505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 53515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# This environment variable determines our operation mode. 53525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)if test \"\$libtool_install_magic\" = \"$magic\"; then 53535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # install mode needs the following variable: 53545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) notinst_deplibs='$notinst_deplibs' 53555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)else 53565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # When we are sourced in execute mode, \$file and \$echo are already set. 53575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test \"\$libtool_execute_magic\" != \"$magic\"; then 53585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) echo=\"$qecho\" 53595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) file=\"\$0\" 53605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Make sure echo works. 53615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test \"X\$1\" = X--no-reexec; then 53625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Discard the --no-reexec flag, and continue. 53635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) shift 53645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then 53655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Yippee, \$echo works! 53665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) : 53675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 53685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Restart under the correct shell, and then maybe \$echo will work. 53695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"} 53705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 53715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi\ 53725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)" 53735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo >> $output "\ 53745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 53755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Find the directory that this script lives in. 53765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\` 53775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test \"x\$thisdir\" = \"x\$file\" && thisdir=. 53785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 53795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Follow symbolic links until we get to the real thisdir. 53805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\` 53815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) while test -n \"\$file\"; do 53825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\` 53835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 53845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # If there was a directory component, then change thisdir. 53855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test \"x\$destdir\" != \"x\$file\"; then 53865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case \"\$destdir\" in 53875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; 53885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) thisdir=\"\$thisdir/\$destdir\" ;; 53895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 53905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 53915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 53925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\` 53935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\` 53945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 53955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 53965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Try to get the absolute directory name. 53975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) absdir=\`cd \"\$thisdir\" && pwd\` 53985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test -n \"\$absdir\" && thisdir=\"\$absdir\" 53995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)" 54005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 54015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$fast_install" = yes; then 54025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo >> $output "\ 54035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) program=lt-'$outputname'$exeext 54045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) progdir=\"\$thisdir/$objdir\" 54055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 54065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test ! -f \"\$progdir/\$program\" || \\ 54075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ 54085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test \"X\$file\" != \"X\$progdir/\$program\"; }; then 54095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 54105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) file=\"\$\$-\$program\" 54115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 54125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test ! -d \"\$progdir\"; then 54135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $mkdir \"\$progdir\" 54145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 54155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $rm \"\$progdir/\$file\" 54165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi" 54175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 54185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo >> $output "\ 54195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 54205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # relink executable if necessary 54215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n \"\$relink_command\"; then 54225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if relink_command_output=\`eval \$relink_command 2>&1\`; then : 54235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 54245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo \"\$relink_command_output\" >&2 54255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $rm \"\$progdir/\$file\" 54265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit $EXIT_FAILURE 54275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 54285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 54295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 54305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || 54315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) { $rm \"\$progdir/\$program\"; 54325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; } 54335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $rm \"\$progdir/\$file\" 54345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi" 54355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 54365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo >> $output "\ 54375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) program='$outputname' 54385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) progdir=\"\$thisdir/$objdir\" 54395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)" 54405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 54415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 54425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo >> $output "\ 54435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 54445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -f \"\$progdir/\$program\"; then" 54455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 54465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Export our shlibpath_var if we have one. 54475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then 54485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo >> $output "\ 54495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Add our own library path to $shlibpath_var 54505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" 54515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 54525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Some systems cannot cope with colon-terminated $shlibpath_var 54535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # The second colon is a workaround for a bug in BeOS R4 sed 54545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\` 54555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 54565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) export $shlibpath_var 54575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)" 54585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 54595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 54605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # fixup the dll searchpath if we need to. 54615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$dllsearchpath"; then 54625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo >> $output "\ 54635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Add the dll search path components to the executable PATH 54645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PATH=$dllsearchpath:\$PATH 54655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)" 54665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 54675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 54685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo >> $output "\ 54695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test \"\$libtool_execute_magic\" != \"$magic\"; then 54705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Run the actual program with our arguments. 54715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)" 54725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $host in 54735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Backslashes separate directories on plain windows 54745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *-*-mingw | *-*-os2*) 54755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo >> $output "\ 54765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} 54775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)" 54785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 54795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 54805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) 54815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo >> $output "\ 54825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exec \"\$progdir/\$program\" \${1+\"\$@\"} 54835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)" 54845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 54855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 54865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo >> $output "\ 54875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) \$echo \"\$0: cannot exec \$program \$*\" 54885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit $EXIT_FAILURE 54895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 54905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 54915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # The program doesn't exist. 54925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) \$echo \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 54935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) \$echo \"This script is just a wrapper for \$program.\" 1>&2 54945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo \"See the $PACKAGE documentation for more information.\" 1>&2 54955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit $EXIT_FAILURE 54965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 54975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)fi\ 54985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)" 54995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) chmod +x $output 55005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 55015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit $EXIT_SUCCESS 55025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 55035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 55045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # See if we need to build an old-fashioned archive. 55065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for oldlib in $oldlibs; do 55075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$build_libtool_libs" = convenience; then 55095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) oldobjs="$libobjs_save" 55105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) addlibs="$convenience" 55115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) build_libtool_libs=no 55125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 55135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$build_libtool_libs" = module; then 55145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) oldobjs="$libobjs_save" 55155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) build_libtool_libs=no 55165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 55175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) oldobjs="$old_deplibs $non_pic_objects" 55185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 55195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) addlibs="$old_convenience" 55205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 55215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$addlibs"; then 55235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) gentop="$output_objdir/${outputname}x" 55245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) generated="$generated $gentop" 55255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) func_extract_archives $gentop $addlibs 55275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) oldobjs="$oldobjs $func_extract_archives_result" 55285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 55295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Do each command in the archive commands. 55315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then 55325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) cmds=$old_archive_from_new_cmds 55335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 55345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # POSIX demands no paths to be encoded in archives. We have 55355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # to avoid creating archives with duplicate basenames if we 55365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # might have to extract them afterwards, e.g., when creating a 55375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # static archive out of a convenience library, or when linking 55385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # the entirety of a libtool archive into another (currently 55395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # not supported by libtool). 55405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (for obj in $oldobjs 55415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) do 55425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "X$obj" | $Xsed -e 's%^.*/%%' 55435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done | sort | sort -uc >/dev/null 2>&1); then 55445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) : 55455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 55465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "copying selected object files to avoid basename conflicts..." 55475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -z "$gentop"; then 55495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) gentop="$output_objdir/${outputname}x" 55505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) generated="$generated $gentop" 55515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $show "${rm}r $gentop" 55535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $run ${rm}r "$gentop" 55545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $show "$mkdir $gentop" 55555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $run $mkdir "$gentop" 55565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit_status=$? 55575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$exit_status" -ne 0 && test ! -d "$gentop"; then 55585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit $exit_status 55595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 55605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 55615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) save_oldobjs=$oldobjs 55635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) oldobjs= 55645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) counter=1 55655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for obj in $save_oldobjs 55665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) do 55675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) objbase=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` 55685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case " $oldobjs " in 55695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) " ") oldobjs=$obj ;; 55705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *[\ /]"$objbase "*) 55715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) while :; do 55725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Make sure we don't pick an alternate name that also 55735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # overlaps. 55745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) newobj=lt$counter-$objbase 55755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) counter=`expr $counter + 1` 55765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case " $oldobjs " in 55775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *[\ /]"$newobj "*) ;; 55785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) if test ! -f "$gentop/$newobj"; then break; fi ;; 55795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 55805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 55815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $show "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" 55825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $run ln "$obj" "$gentop/$newobj" || 55835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $run cp "$obj" "$gentop/$newobj" 55845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) oldobjs="$oldobjs $gentop/$newobj" 55855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 55865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) oldobjs="$oldobjs $obj" ;; 55875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 55885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 55895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 55905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eval cmds=\"$old_archive_cmds\" 55925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if len=`expr "X$cmds" : ".*"` && 55945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then 55955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) cmds=$old_archive_cmds 55965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 55975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # the command line is too long to link in one step, link in parts 55985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "using piecewise archive linking..." 55995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) save_RANLIB=$RANLIB 56005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) RANLIB=: 56015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) objlist= 56025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) concat_cmds= 56035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) save_oldobjs=$oldobjs 56045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 56055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Is there a better way of finding the last object in the list? 56065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for obj in $save_oldobjs 56075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) do 56085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) last_oldobj=$obj 56095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 56105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for obj in $save_oldobjs 56115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) do 56125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) oldobjs="$objlist $obj" 56135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) objlist="$objlist $obj" 56145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eval test_cmds=\"$old_archive_cmds\" 56155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if len=`expr "X$test_cmds" : ".*" 2>/dev/null` && 56165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test "$len" -le "$max_cmd_len"; then 56175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) : 56185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 56195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # the above command should be used before it gets too long 56205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) oldobjs=$objlist 56215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$obj" = "$last_oldobj" ; then 56225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) RANLIB=$save_RANLIB 56235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 56245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test -z "$concat_cmds" || concat_cmds=$concat_cmds~ 56255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" 56265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) objlist= 56275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 56285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 56295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) RANLIB=$save_RANLIB 56305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) oldobjs=$objlist 56315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "X$oldobjs" = "X" ; then 56325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eval cmds=\"\$concat_cmds\" 56335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 56345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eval cmds=\"\$concat_cmds~\$old_archive_cmds\" 56355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 56365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 56375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 56385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) save_ifs="$IFS"; IFS='~' 56395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for cmd in $cmds; do 56405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eval cmd=\"$cmd\" 56415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) IFS="$save_ifs" 56425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $show "$cmd" 56435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $run eval "$cmd" || exit $? 56445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 56455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) IFS="$save_ifs" 56465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 56475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 56485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$generated"; then 56495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $show "${rm}r$generated" 56505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $run ${rm}r$generated 56515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 56525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 56535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Now create the libtool archive. 56545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $output in 56555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *.la) 56565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) old_library= 56575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test "$build_old_libs" = yes && old_library="$libname.$libext" 56585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $show "creating $output" 56595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 56605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Preserve any variables that may affect compiler behavior 56615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for var in $variables_saved_for_relink; do 56625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if eval test -z \"\${$var+set}\"; then 56635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command" 56645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) elif eval var_value=\$$var; test -z "$var_value"; then 56655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) relink_command="$var=; export $var; $relink_command" 56665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 56675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` 56685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) relink_command="$var=\"$var_value\"; export $var; $relink_command" 56695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 56705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 56715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Quote the link command for shipping. 56725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" 56735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e "$sed_quote_subst" | $NL2SP` 56745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$hardcode_automatic" = yes ; then 56755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) relink_command= 56765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 56775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 56785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 56795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Only create the output if not a dry run. 56805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -z "$run"; then 56815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for installed in no yes; do 56825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$installed" = yes; then 56835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -z "$install_libdir"; then 56845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) break 56855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 56865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) output="$output_objdir/$outputname"i 56875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Replace all uninstalled libtool libraries with the installed ones 56885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) newdependency_libs= 56895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for deplib in $dependency_libs; do 56905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $deplib in 56915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *.la) 56925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'` 56935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` 56945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -z "$libdir"; then 56955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 56965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit $EXIT_FAILURE 56975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 56985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) newdependency_libs="$newdependency_libs $libdir/$name" 56995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 57005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) newdependency_libs="$newdependency_libs $deplib" ;; 57015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 57025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 57035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dependency_libs="$newdependency_libs" 57045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) newdlfiles= 57055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for lib in $dlfiles; do 57065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` 57075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` 57085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -z "$libdir"; then 57095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 57105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit $EXIT_FAILURE 57115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 57125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) newdlfiles="$newdlfiles $libdir/$name" 57135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 57145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dlfiles="$newdlfiles" 57155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) newdlprefiles= 57165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for lib in $dlprefiles; do 57175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` 57185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` 57195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -z "$libdir"; then 57205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 57215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit $EXIT_FAILURE 57225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 57235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) newdlprefiles="$newdlprefiles $libdir/$name" 57245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 57255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dlprefiles="$newdlprefiles" 57265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 57275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) newdlfiles= 57285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for lib in $dlfiles; do 57295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $lib in 57305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; 57315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) abs=`pwd`"/$lib" ;; 57325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 57335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) newdlfiles="$newdlfiles $abs" 57345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 57355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dlfiles="$newdlfiles" 57365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) newdlprefiles= 57375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for lib in $dlprefiles; do 57385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $lib in 57395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; 57405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) abs=`pwd`"/$lib" ;; 57415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 57425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) newdlprefiles="$newdlprefiles $abs" 57435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 57445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dlprefiles="$newdlprefiles" 57455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 57465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $rm $output 57475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # place dlname in correct position for cygwin 57485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) tdlname=$dlname 57495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $host,$output,$installed,$module,$dlname in 57505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;; 57515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 57525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo > $output "\ 57535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# $outputname - a libtool library file 57545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP 57555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# 57565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Please DO NOT delete this file! 57575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# It is necessary for linking the library. 57585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 57595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# The name that we can dlopen(3). 57605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)dlname='$tdlname' 57615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 57625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Names of this library. 57635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)library_names='$library_names' 57645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 57655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# The name of the static archive. 57665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)old_library='$old_library' 57675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 57685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Libraries that this one depends upon. 57695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)dependency_libs='$dependency_libs' 57705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 57715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Version information for $libname. 57725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)current=$current 57735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)age=$age 57745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)revision=$revision 57755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 57765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Is this an already installed library? 57775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)installed=$installed 57785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 57795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Should we warn about portability when linking against -modules? 57805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)shouldnotlink=$module 57815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 57825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Files to dlopen/dlpreopen 57835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)dlopen='$dlfiles' 57845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)dlpreopen='$dlprefiles' 57855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 57865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Directory that this library needs to be installed in: 57875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)libdir='$install_libdir'" 57885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$installed" = no && test "$need_relink" = yes; then 57895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo >> $output "\ 57905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)relink_command=\"$relink_command\"" 57915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 57925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 57935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 57945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 57955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Do a symbolic link so that the libtool archive can be found in 57965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # LD_LIBRARY_PATH before the program is installed. 57975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)" 57985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $? 57995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 58005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 58015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit $EXIT_SUCCESS 58025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 58035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 58045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # libtool install mode 58055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) install) 58065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) modename="$modename: install" 58075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 58085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # There may be an optional sh(1) argument at the beginning of 58095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # install_prog (especially on Windows NT). 58105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || 58115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Allow the use of GNU shtool's install command. 58125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "X$nonopt" | grep shtool > /dev/null; then 58135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Aesthetically quote it. 58145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"` 58155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $arg in 58165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 58175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) arg="\"$arg\"" 58185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 58195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 58205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) install_prog="$arg " 58215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) arg="$1" 58225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) shift 58235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 58245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) install_prog= 58255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) arg=$nonopt 58265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 58275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 58285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # The real first argument should be the name of the installation program. 58295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Aesthetically quote it. 58305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` 58315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $arg in 58325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 58335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) arg="\"$arg\"" 58345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 58355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 58365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) install_prog="$install_prog$arg" 58375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 58385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # We need to accept at least all the BSD install flags. 58395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dest= 58405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) files= 58415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) opts= 58425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) prev= 58435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) install_type= 58445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) isdir=no 58455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) stripme= 58465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for arg 58475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) do 58485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$dest"; then 58495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) files="$files $dest" 58505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dest=$arg 58515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) continue 58525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 58535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 58545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $arg in 58555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -d) isdir=yes ;; 58565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -f) 58575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case " $install_prog " in 58585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *[\\\ /]cp\ *) ;; 58595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) prev=$arg ;; 58605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 58615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 58625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -g | -m | -o) prev=$arg ;; 58635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -s) 58645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) stripme=" -s" 58655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) continue 58665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 58675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -*) 58685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 58695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) 58705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # If the previous option needed an argument, then skip it. 58715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$prev"; then 58725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) prev= 58735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 58745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dest=$arg 58755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) continue 58765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 58775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 58785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 58795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 58805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Aesthetically quote the argument. 58815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` 58825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $arg in 58835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 58845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) arg="\"$arg\"" 58855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 58865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 58875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) install_prog="$install_prog $arg" 58885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 58895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 58905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -z "$install_prog"; then 58915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: you must specify an install program" 1>&2 58925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$help" 1>&2 58935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit $EXIT_FAILURE 58945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 58955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 58965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$prev"; then 58975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: the \`$prev' option requires an argument" 1>&2 58985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$help" 1>&2 58995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit $EXIT_FAILURE 59005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 59015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 59025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -z "$files"; then 59035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -z "$dest"; then 59045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: no file or destination specified" 1>&2 59055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 59065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: you must specify a destination" 1>&2 59075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 59085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$help" 1>&2 59095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit $EXIT_FAILURE 59105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 59115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 59125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Strip any trailing slash from the destination. 59135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dest=`$echo "X$dest" | $Xsed -e 's%/$%%'` 59145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 59155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Check to see that the destination is a directory. 59165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test -d "$dest" && isdir=yes 59175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$isdir" = yes; then 59185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) destdir="$dest" 59195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) destname= 59205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 59215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'` 59225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test "X$destdir" = "X$dest" && destdir=. 59235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'` 59245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 59255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Not a directory, so check to see that there is only one file specified. 59265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) set dummy $files 59275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$#" -gt 2; then 59285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: \`$dest' is not a directory" 1>&2 59295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$help" 1>&2 59305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit $EXIT_FAILURE 59315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 59325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 59335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $destdir in 59345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) [\\/]* | [A-Za-z]:[\\/]*) ;; 59355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) 59365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for file in $files; do 59375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $file in 59385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *.lo) ;; 59395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) 59405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2 59415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$help" 1>&2 59425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit $EXIT_FAILURE 59435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 59445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 59455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 59465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 59475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 59485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 59495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # This variable tells wrapper scripts just to set variables rather 59505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # than running their programs. 59515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) libtool_install_magic="$magic" 59525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 59535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) staticlibs= 59545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) future_libdirs= 59555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) current_libdirs= 59565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for file in $files; do 59575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 59585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Do each installation. 59595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $file in 59605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *.$libext) 59615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Do the static libraries later. 59625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) staticlibs="$staticlibs $file" 59635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 59645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 59655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *.la) 59665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Check to see that this really is a libtool archive. 59675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : 59685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 59695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: \`$file' is not a valid libtool archive" 1>&2 59705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$help" 1>&2 59715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit $EXIT_FAILURE 59725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 59735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 59745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) library_names= 59755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) old_library= 59765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) relink_command= 59775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # If there is no directory component, then add one. 59785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $file in 59795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */* | *\\*) . $file ;; 59805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) . ./$file ;; 59815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 59825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 59835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Add the libdir to current_libdirs if it is the destination. 59845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "X$destdir" = "X$libdir"; then 59855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case "$current_libdirs " in 59865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *" $libdir "*) ;; 59875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) current_libdirs="$current_libdirs $libdir" ;; 59885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 59895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 59905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Note the libdir as a future libdir. 59915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case "$future_libdirs " in 59925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *" $libdir "*) ;; 59935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) future_libdirs="$future_libdirs $libdir" ;; 59945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 59955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 59965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 59975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/ 59985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test "X$dir" = "X$file/" && dir= 59995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dir="$dir$objdir" 60005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 60015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$relink_command"; then 60025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Determine the prefix the user has applied to our future dir. 60035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) inst_prefix_dir=`$echo "$destdir" | $SED "s%$libdir\$%%"` 60045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 60055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Don't allow the user to place us outside of our expected 60065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # location b/c this prevents finding dependent libraries that 60075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # are installed to the same prefix. 60085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # At present, this check doesn't affect windows .dll's that 60095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # are installed into $libdir/../bin (currently, that works fine) 60105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # but it's something to keep an eye on. 60115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$inst_prefix_dir" = "$destdir"; then 60125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2 60135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit $EXIT_FAILURE 60145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 60155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 60165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$inst_prefix_dir"; then 60175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Stick the inst_prefix_dir data into the link command. 60185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) relink_command=`$echo "$relink_command" | $SP2NL | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%" | $NL2SP` 60195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 60205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) relink_command=`$echo "$relink_command" | $SP2NL | $SED "s%@inst_prefix_dir@%%" | $NL2SP` 60215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 60225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 60235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: warning: relinking \`$file'" 1>&2 60245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $show "$relink_command" 60255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if $run eval "$relink_command"; then : 60265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 60275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 60285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit $EXIT_FAILURE 60295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 60305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 60315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 60325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # See the names of the shared library. 60335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) set dummy $library_names 60345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$2"; then 60355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) realname="$2" 60365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) shift 60375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) shift 60385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 60395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) srcname="$realname" 60405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test -n "$relink_command" && srcname="$realname"T 60415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 60425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Install the shared library and build the symlinks. 60435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $show "$install_prog $dir/$srcname $destdir/$realname" 60445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $? 60455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$stripme" && test -n "$striplib"; then 60465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $show "$striplib $destdir/$realname" 60475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $run eval "$striplib $destdir/$realname" || exit $? 60485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 60495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 60505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$#" -gt 0; then 60515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Delete the old symlinks, and create new ones. 60525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Try `ln -sf' first, because the `ln' binary might depend on 60535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # the symlink we replace! Solaris /bin/ln does not understand -f, 60545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # so we also need to try rm && ln -s. 60555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for linkname 60565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) do 60575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$linkname" != "$realname"; then 60585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $show "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })" 60595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $run eval "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })" 60605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 60615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 60625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 60635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 60645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Do each command in the postinstall commands. 60655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib="$destdir/$realname" 60665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) cmds=$postinstall_cmds 60675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) save_ifs="$IFS"; IFS='~' 60685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for cmd in $cmds; do 60695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) IFS="$save_ifs" 60705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eval cmd=\"$cmd\" 60715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $show "$cmd" 60725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $run eval "$cmd" || { 60735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lt_exit=$? 60745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 60755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Restore the uninstalled library and exit 60765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$mode" = relink; then 60775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)' 60785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 60795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 60805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit $lt_exit 60815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 60825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 60835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) IFS="$save_ifs" 60845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 60855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 60865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Install the pseudo-library for information purposes. 60875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` 60885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) instname="$dir/$name"i 60895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $show "$install_prog $instname $destdir/$name" 60905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $run eval "$install_prog $instname $destdir/$name" || exit $? 60915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 60925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Maybe install the static library, too. 60935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library" 60945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 60955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 60965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *.lo) 60975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Install (i.e. copy) a libtool object. 60985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 60995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Figure out destination file name, if it wasn't already specified. 61005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$destname"; then 61015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) destfile="$destdir/$destname" 61025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 61035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` 61045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) destfile="$destdir/$destfile" 61055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 61065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 61075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Deduce the name of the destination old-style object file. 61085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $destfile in 61095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *.lo) 61105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"` 61115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 61125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *.$objext) 61135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) staticdest="$destfile" 61145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) destfile= 61155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 61165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) 61175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2 61185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$help" 1>&2 61195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit $EXIT_FAILURE 61205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 61215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 61225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 61235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Install the libtool object if requested. 61245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$destfile"; then 61255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $show "$install_prog $file $destfile" 61265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $run eval "$install_prog $file $destfile" || exit $? 61275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 61285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 61295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Install the old object if enabled. 61305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$build_old_libs" = yes; then 61315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Deduce the name of the old-style object file. 61325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) staticobj=`$echo "X$file" | $Xsed -e "$lo2o"` 61335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 61345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $show "$install_prog $staticobj $staticdest" 61355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $run eval "$install_prog \$staticobj \$staticdest" || exit $? 61365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 61375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit $EXIT_SUCCESS 61385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 61395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 61405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) 61415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Figure out destination file name, if it wasn't already specified. 61425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$destname"; then 61435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) destfile="$destdir/$destname" 61445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 61455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` 61465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) destfile="$destdir/$destfile" 61475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 61485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 61495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # If the file is missing, and there is a .exe on the end, strip it 61505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # because it is most likely a libtool script we actually want to 61515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # install 61525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) stripped_ext="" 61535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $file in 61545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *.exe) 61555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test ! -f "$file"; then 61565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) file=`$echo $file|${SED} 's,.exe$,,'` 61575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) stripped_ext=".exe" 61585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 61595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 61605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 61615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 61625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Do a test to see if this is really a libtool program. 61635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $host in 61645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *cygwin*|*mingw*) 61655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) wrapper=`$echo $file | ${SED} -e 's,.exe$,,'` 61665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 61675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) 61685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) wrapper=$file 61695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 61705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 61715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (${SED} -e '4q' $wrapper | grep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then 61725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) notinst_deplibs= 61735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) relink_command= 61745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 61755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Note that it is not necessary on cygwin/mingw to append a dot to 61765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # foo even if both foo and FILE.exe exist: automatic-append-.exe 61775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # behavior happens only for exec(3), not for open(2)! Also, sourcing 61785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # `FILE.' does not work on cygwin managed mounts. 61795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # 61805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # If there is no directory component, then add one. 61815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $wrapper in 61825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */* | *\\*) . ${wrapper} ;; 61835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) . ./${wrapper} ;; 61845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 61855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 61865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Check the variables that should have been set. 61875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -z "$notinst_deplibs"; then 61885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2 61895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit $EXIT_FAILURE 61905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 61915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 61925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) finalize=yes 61935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for lib in $notinst_deplibs; do 61945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Check to see that each library is installed. 61955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) libdir= 61965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -f "$lib"; then 61975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # If there is no directory component, then add one. 61985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $lib in 61995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */* | *\\*) . $lib ;; 62005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) . ./$lib ;; 62015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 62025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 62035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test 62045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$libdir" && test ! -f "$libfile"; then 62055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2 62065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) finalize=no 62075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 62085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 62095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 62105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) relink_command= 62115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Note that it is not necessary on cygwin/mingw to append a dot to 62125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # foo even if both foo and FILE.exe exist: automatic-append-.exe 62135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # behavior happens only for exec(3), not for open(2)! Also, sourcing 62145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # `FILE.' does not work on cygwin managed mounts. 62155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # 62165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # If there is no directory component, then add one. 62175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $wrapper in 62185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */* | *\\*) . ${wrapper} ;; 62195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) . ./${wrapper} ;; 62205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 62215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 62225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) outputname= 62235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$fast_install" = no && test -n "$relink_command"; then 62245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$finalize" = yes && test -z "$run"; then 62255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) tmpdir=`func_mktempdir` 62265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'` 62275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) outputname="$tmpdir/$file" 62285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Replace the output file specification. 62295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g' | $NL2SP` 62305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 62315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $show "$relink_command" 62325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if $run eval "$relink_command"; then : 62335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 62345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 62355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ${rm}r "$tmpdir" 62365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) continue 62375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 62385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) file="$outputname" 62395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 62405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: warning: cannot relink \`$file'" 1>&2 62415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 62425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 62435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Install the binary that we compiled earlier. 62445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) file=`$echo "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"` 62455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 62465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 62475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 62485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # remove .exe since cygwin /usr/bin/install will append another 62495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # one anyway 62505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $install_prog,$host in 62515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */usr/bin/install*,*cygwin*) 62525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $file:$destfile in 62535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *.exe:*.exe) 62545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # this is ok 62555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 62565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *.exe:*) 62575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) destfile=$destfile.exe 62585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 62595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *:*.exe) 62605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) destfile=`$echo $destfile | ${SED} -e 's,.exe$,,'` 62615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 62625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 62635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 62645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 62655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $show "$install_prog$stripme $file $destfile" 62665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $run eval "$install_prog\$stripme \$file \$destfile" || exit $? 62675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test -n "$outputname" && ${rm}r "$tmpdir" 62685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 62695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 62705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 62715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 62725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for file in $staticlibs; do 62735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` 62745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 62755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Set up the ranlib parameters. 62765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) oldlib="$destdir/$name" 62775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 62785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $show "$install_prog $file $oldlib" 62795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $run eval "$install_prog \$file \$oldlib" || exit $? 62805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 62815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$stripme" && test -n "$old_striplib"; then 62825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $show "$old_striplib $oldlib" 62835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $run eval "$old_striplib $oldlib" || exit $? 62845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 62855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 62865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Do each command in the postinstall commands. 62875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) cmds=$old_postinstall_cmds 62885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) save_ifs="$IFS"; IFS='~' 62895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for cmd in $cmds; do 62905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) IFS="$save_ifs" 62915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eval cmd=\"$cmd\" 62925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $show "$cmd" 62935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $run eval "$cmd" || exit $? 62945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 62955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) IFS="$save_ifs" 62965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 62975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 62985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$future_libdirs"; then 62995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2 63005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 63015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 63025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$current_libdirs"; then 63035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Maybe just do a dry run. 63045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test -n "$run" && current_libdirs=" -n$current_libdirs" 63055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' 63065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 63075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit $EXIT_SUCCESS 63085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 63095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 63105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 63115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # libtool finish mode 63125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) finish) 63135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) modename="$modename: finish" 63145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) libdirs="$nonopt" 63155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) admincmds= 63165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 63175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then 63185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for dir 63195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) do 63205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) libdirs="$libdirs $dir" 63215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 63225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 63235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for libdir in $libdirs; do 63245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$finish_cmds"; then 63255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Do each command in the finish commands. 63265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) cmds=$finish_cmds 63275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) save_ifs="$IFS"; IFS='~' 63285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for cmd in $cmds; do 63295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) IFS="$save_ifs" 63305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eval cmd=\"$cmd\" 63315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $show "$cmd" 63325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $run eval "$cmd" || admincmds="$admincmds 63335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $cmd" 63345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 63355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) IFS="$save_ifs" 63365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 63375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$finish_eval"; then 63385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Do the single finish_eval. 63395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eval cmds=\"$finish_eval\" 63405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $run eval "$cmds" || admincmds="$admincmds 63415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $cmds" 63425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 63435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 63445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 63455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 63465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Exit here if they wanted silent mode. 63475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test "$show" = : && exit $EXIT_SUCCESS 63485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 63495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "X----------------------------------------------------------------------" | $Xsed 63505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "Libraries have been installed in:" 63515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for libdir in $libdirs; do 63525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo " $libdir" 63535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 63545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo 63555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "If you ever happen to want to link against installed libraries" 63565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "in a given directory, LIBDIR, you must either use libtool, and" 63575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "specify the full pathname of the library, or use the \`-LLIBDIR'" 63585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "flag during linking and do at least one of the following:" 63595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$shlibpath_var"; then 63605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo " - add LIBDIR to the \`$shlibpath_var' environment variable" 63615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo " during execution" 63625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 63635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$runpath_var"; then 63645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo " - add LIBDIR to the \`$runpath_var' environment variable" 63655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo " during linking" 63665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 63675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$hardcode_libdir_flag_spec"; then 63685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) libdir=LIBDIR 63695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eval flag=\"$hardcode_libdir_flag_spec\" 63705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 63715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo " - use the \`$flag' linker flag" 63725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 63735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$admincmds"; then 63745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo " - have your system administrator run these commands:$admincmds" 63755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 63765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -f /etc/ld.so.conf; then 63775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" 63785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 63795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo 63805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "See any operating system documentation about shared libraries for" 63815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "more information, such as the ld(1) and ld.so(8) manual pages." 63825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "X----------------------------------------------------------------------" | $Xsed 63835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit $EXIT_SUCCESS 63845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 63855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 63865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # libtool execute mode 63875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) execute) 63885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) modename="$modename: execute" 63895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 63905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # The first argument is the command name. 63915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) cmd="$nonopt" 63925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -z "$cmd"; then 63935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: you must specify a COMMAND" 1>&2 63945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$help" 63955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit $EXIT_FAILURE 63965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 63975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 63985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Handle -dlopen flags immediately. 63995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for file in $execute_dlfiles; do 64005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test ! -f "$file"; then 64015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: \`$file' is not a file" 1>&2 64025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$help" 1>&2 64035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit $EXIT_FAILURE 64045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 64055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 64065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dir= 64075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $file in 64085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *.la) 64095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Check to see that this really is a libtool archive. 64105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : 64115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 64125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 64135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$help" 1>&2 64145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit $EXIT_FAILURE 64155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 64165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 64175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Read the libtool library. 64185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dlname= 64195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) library_names= 64205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 64215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # If there is no directory component, then add one. 64225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $file in 64235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */* | *\\*) . $file ;; 64245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) . ./$file ;; 64255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 64265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 64275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Skip this library if it cannot be dlopened. 64285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -z "$dlname"; then 64295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Warn if it was a shared library. 64305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'" 64315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) continue 64325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 64335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 64345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` 64355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test "X$dir" = "X$file" && dir=. 64365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 64375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -f "$dir/$objdir/$dlname"; then 64385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dir="$dir/$objdir" 64395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 64405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test ! -f "$dir/$dlname"; then 64415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2 64425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit $EXIT_FAILURE 64435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 64445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 64455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 64465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 64475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *.lo) 64485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Just add the directory containing the .lo file. 64495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` 64505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test "X$dir" = "X$file" && dir=. 64515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 64525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 64535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) 64545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2 64555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) continue 64565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 64575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 64585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 64595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Get the absolute pathname. 64605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) absdir=`cd "$dir" && pwd` 64615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test -n "$absdir" && dir="$absdir" 64625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 64635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Now add the directory to shlibpath_var. 64645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if eval "test -z \"\$$shlibpath_var\""; then 64655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eval "$shlibpath_var=\"\$dir\"" 64665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 64675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" 64685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 64695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 64705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 64715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # This variable tells wrapper scripts just to set shlibpath_var 64725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # rather than running their programs. 64735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) libtool_execute_magic="$magic" 64745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 64755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Check if any of the arguments is a wrapper script. 64765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) args= 64775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for file 64785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) do 64795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $file in 64805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -*) ;; 64815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) 64825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Do a test to see if this is really a libtool program. 64835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then 64845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # If there is no directory component, then add one. 64855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $file in 64865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */* | *\\*) . $file ;; 64875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) . ./$file ;; 64885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 64895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 64905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Transform arg to wrapped name. 64915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) file="$progdir/$program" 64925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 64935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 64945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 64955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Quote arguments (to preserve shell metacharacters). 64965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"` 64975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) args="$args \"$file\"" 64985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 64995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 65005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -z "$run"; then 65015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$shlibpath_var"; then 65025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Export the shlibpath_var. 65035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eval "export $shlibpath_var" 65045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 65055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 65065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Restore saved environment variables 65075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES 65085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) do 65095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eval "if test \"\${save_$lt_var+set}\" = set; then 65105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $lt_var=\$save_$lt_var; export $lt_var 65115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi" 65125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 65135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 65145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Now prepare to actually exec the command. 65155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exec_cmd="\$cmd$args" 65165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 65175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Display what would be done. 65185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$shlibpath_var"; then 65195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\"" 65205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "export $shlibpath_var" 65215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 65225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$cmd$args" 65235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit $EXIT_SUCCESS 65245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 65255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 65265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 65275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # libtool clean and uninstall mode 65285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) clean | uninstall) 65295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) modename="$modename: $mode" 65305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) rm="$nonopt" 65315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) files= 65325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) rmforce= 65335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit_status=0 65345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 65355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # This variable tells wrapper scripts just to set variables rather 65365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # than running their programs. 65375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) libtool_install_magic="$magic" 65385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 65395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for arg 65405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) do 65415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $arg in 65425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -f) rm="$rm $arg"; rmforce=yes ;; 65435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -*) rm="$rm $arg" ;; 65445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) files="$files $arg" ;; 65455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 65465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 65475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 65485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -z "$rm"; then 65495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: you must specify an RM program" 1>&2 65505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$help" 1>&2 65515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit $EXIT_FAILURE 65525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 65535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 65545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) rmdirs= 65555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 65565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) origobjdir="$objdir" 65575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for file in $files; do 65585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` 65595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "X$dir" = "X$file"; then 65605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dir=. 65615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) objdir="$origobjdir" 65625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 65635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) objdir="$dir/$origobjdir" 65645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 65655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` 65665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test "$mode" = uninstall && objdir="$dir" 65675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 65685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Remember objdir for removal later, being careful to avoid duplicates 65695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$mode" = clean; then 65705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case " $rmdirs " in 65715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *" $objdir "*) ;; 65725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) rmdirs="$rmdirs $objdir" ;; 65735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 65745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 65755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 65765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Don't error if the file doesn't exist and rm -f was used. 65775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (test -L "$file") >/dev/null 2>&1 \ 65785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) || (test -h "$file") >/dev/null 2>&1 \ 65795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) || test -f "$file"; then 65805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) : 65815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) elif test -d "$file"; then 65825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit_status=1 65835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) continue 65845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) elif test "$rmforce" = yes; then 65855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) continue 65865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 65875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 65885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) rmfiles="$file" 65895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 65905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $name in 65915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *.la) 65925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Possibly a libtool archive, so verify it. 65935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then 65945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) . $dir/$name 65955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 65965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Delete the libtool libraries and symlinks. 65975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for n in $library_names; do 65985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) rmfiles="$rmfiles $objdir/$n" 65995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 66005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library" 66015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 66025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case "$mode" in 66035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) clean) 66045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case " $library_names " in 66055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # " " in the beginning catches empty $dlname 66065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *" $dlname "*) ;; 66075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) rmfiles="$rmfiles $objdir/$dlname" ;; 66085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 66095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" 66105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 66115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) uninstall) 66125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$library_names"; then 66135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Do each command in the postuninstall commands. 66145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) cmds=$postuninstall_cmds 66155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) save_ifs="$IFS"; IFS='~' 66165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for cmd in $cmds; do 66175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) IFS="$save_ifs" 66185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eval cmd=\"$cmd\" 66195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $show "$cmd" 66205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $run eval "$cmd" 66215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$?" -ne 0 && test "$rmforce" != yes; then 66225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit_status=1 66235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 66245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 66255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) IFS="$save_ifs" 66265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 66275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 66285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$old_library"; then 66295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Do each command in the old_postuninstall commands. 66305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) cmds=$old_postuninstall_cmds 66315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) save_ifs="$IFS"; IFS='~' 66325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for cmd in $cmds; do 66335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) IFS="$save_ifs" 66345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eval cmd=\"$cmd\" 66355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $show "$cmd" 66365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $run eval "$cmd" 66375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$?" -ne 0 && test "$rmforce" != yes; then 66385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit_status=1 66395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 66405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 66415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) IFS="$save_ifs" 66425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 66435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # FIXME: should reinstall the best remaining shared library. 66445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 66455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 66465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 66475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 66485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 66495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *.lo) 66505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Possibly a libtool object, so verify it. 66515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then 66525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 66535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Read the .lo file 66545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) . $dir/$name 66555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 66565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Add PIC object to the list of files to remove. 66575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$pic_object" \ 66585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) && test "$pic_object" != none; then 66595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) rmfiles="$rmfiles $dir/$pic_object" 66605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 66615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 66625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Add non-PIC object to the list of files to remove. 66635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -n "$non_pic_object" \ 66645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) && test "$non_pic_object" != none; then 66655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) rmfiles="$rmfiles $dir/$non_pic_object" 66665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 66675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 66685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 66695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 66705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) 66715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$mode" = clean ; then 66725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) noexename=$name 66735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case $file in 66745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *.exe) 66755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) file=`$echo $file|${SED} 's,.exe$,,'` 66765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) noexename=`$echo $name|${SED} 's,.exe$,,'` 66775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # $file with .exe has already been added to rmfiles, 66785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # add $file without .exe 66795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) rmfiles="$rmfiles $file" 66805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 66815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 66825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Do a test to see if this is a libtool program. 66835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then 66845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) relink_command= 66855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) . $dir/$noexename 66865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 66875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # note $name still contains .exe if it was in $file originally 66885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # as does the version of $file that was added into $rmfiles 66895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}" 66905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "$fast_install" = yes && test -n "$relink_command"; then 66915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) rmfiles="$rmfiles $objdir/lt-$name" 66925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 66935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test "X$noexename" != "X$name" ; then 66945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) rmfiles="$rmfiles $objdir/lt-${noexename}.c" 66955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 66965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 66975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 66985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 66995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 67005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $show "$rm $rmfiles" 67015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $run $rm $rmfiles || exit_status=1 67025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 67035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) objdir="$origobjdir" 67045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 67055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Try to remove the ${objdir}s in the directories where we deleted files 67065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for dir in $rmdirs; do 67075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -d "$dir"; then 67085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $show "rmdir $dir" 67095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $run rmdir $dir >/dev/null 2>&1 67105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 67115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) done 67125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 67135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit $exit_status 67145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 67155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 67165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) "") 67175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: you must specify a MODE" 1>&2 67185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$generic_help" 1>&2 67195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit $EXIT_FAILURE 67205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 67215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) esac 67225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 67235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if test -z "$exec_cmd"; then 67245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: invalid operation mode \`$mode'" 1>&2 67255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$generic_help" 1>&2 67265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit $EXIT_FAILURE 67275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fi 67285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)fi # test -z "$show_help" 67295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 67305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)if test -n "$exec_cmd"; then 67315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eval exec $exec_cmd 67325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit $EXIT_FAILURE 67335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)fi 67345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 67355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# We need to display help for each of the modes. 67365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)case $mode in 67375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)"") $echo \ 67385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)"Usage: $modename [OPTION]... [MODE-ARG]... 67395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 67405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)Provide generalized library-building support services. 67415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 67425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) --config show all configuration variables 67435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) --debug enable verbose shell tracing 67445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)-n, --dry-run display commands without modifying any files 67455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) --features display basic configuration information and exit 67465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) --finish same as \`--mode=finish' 67475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) --help display this help message and exit 67485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) --mode=MODE use operation mode MODE [default=inferred from MODE-ARGS] 67495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) --quiet same as \`--silent' 67505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) --silent don't print informational messages 67515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) --tag=TAG use configuration variables from tag TAG 67525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) --version print version information 67535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 67545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)MODE must be one of the following: 67555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 67565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) clean remove files from the build directory 67575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) compile compile a source file into a libtool object 67585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) execute automatically set library path, then run a program 67595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) finish complete the installation of libtool libraries 67605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) install install libraries or executables 67615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) link create a library or an executable 67625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) uninstall remove libraries from an installed directory 67635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 67645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)MODE-ARGS vary depending on the MODE. Try \`$modename --help --mode=MODE' for 67655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)a more detailed description of MODE. 67665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 67675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)Report bugs to <bug-libtool@gnu.org>." 67685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit $EXIT_SUCCESS 67695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 67705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 67715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)clean) 67725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo \ 67735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)"Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE... 67745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 67755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)Remove files from the build directory. 67765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 67775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)RM is the name of the program to use to delete files associated with each FILE 67785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed 67795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)to RM. 67805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 67815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)If FILE is a libtool library, object or program, all the files associated 67825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)with it are deleted. Otherwise, only FILE itself is deleted using RM." 67835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 67845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 67855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)compile) 67865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo \ 67875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)"Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE 67885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 67895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)Compile a source file into a libtool library object. 67905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 67915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)This mode accepts the following additional options: 67925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 67935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -o OUTPUT-FILE set the output file name to OUTPUT-FILE 67945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -prefer-pic try to building PIC objects only 67955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -prefer-non-pic try to building non-PIC objects only 67965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -static always build a \`.o' file suitable for static linking 67975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 67985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)COMPILE-COMMAND is a command to be used in creating a \`standard' object file 67995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)from the given SOURCEFILE. 68005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 68015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)The output file name is determined by removing the directory component from 68025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)SOURCEFILE, then substituting the C source code suffix \`.c' with the 68035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)library object suffix, \`.lo'." 68045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 68055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 68065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)execute) 68075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo \ 68085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)"Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]... 68095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 68105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)Automatically set library path, then run a program. 68115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 68125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)This mode accepts the following additional options: 68135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 68145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -dlopen FILE add the directory containing FILE to the library path 68155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 68165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)This mode sets the library path environment variable according to \`-dlopen' 68175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)flags. 68185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 68195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)If any of the ARGS are libtool executable wrappers, then they are translated 68205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)into their corresponding uninstalled binary, and any of their required library 68215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)directories are added to the library path. 68225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 68235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)Then, COMMAND is executed, with ARGS as arguments." 68245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 68255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 68265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)finish) 68275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo \ 68285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)"Usage: $modename [OPTION]... --mode=finish [LIBDIR]... 68295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 68305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)Complete the installation of libtool libraries. 68315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 68325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)Each LIBDIR is a directory that contains libtool libraries. 68335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 68345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)The commands that this mode executes may require superuser privileges. Use 68355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)the \`--dry-run' option if you just want to see what would be executed." 68365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 68375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 68385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)install) 68395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo \ 68405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)"Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND... 68415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 68425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)Install executables or libraries. 68435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 68445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)INSTALL-COMMAND is the installation command. The first component should be 68455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)either the \`install' or \`cp' program. 68465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 68475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)The rest of the components are interpreted as arguments to that command (only 68485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)BSD-compatible install options are recognized)." 68495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 68505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 68515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)link) 68525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo \ 68535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)"Usage: $modename [OPTION]... --mode=link LINK-COMMAND... 68545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 68555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)Link object files or libraries together to form another library, or to 68565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)create an executable program. 68575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 68585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)LINK-COMMAND is a command using the C compiler that you would use to create 68595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)a program from several object files. 68605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 68615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)The following components of LINK-COMMAND are treated specially: 68625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 68635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -all-static do not do any dynamic linking at all 68645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -avoid-version do not add a version suffix if possible 68655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime 68665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols 68675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) 68685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -export-symbols SYMFILE 68695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) try to export only the symbols listed in SYMFILE 68705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -export-symbols-regex REGEX 68715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) try to export only the symbols matching REGEX 68725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -LLIBDIR search LIBDIR for required installed libraries 68735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -lNAME OUTPUT-FILE requires the installed library libNAME 68745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -module build a library that can dlopened 68755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -no-fast-install disable the fast-install mode 68765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -no-install link a not-installable executable 68775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -no-undefined declare that a library does not refer to external symbols 68785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -o OUTPUT-FILE create OUTPUT-FILE from the specified objects 68795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -objectlist FILE Use a list of object files found in FILE to specify objects 68805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -precious-files-regex REGEX 68815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) don't remove output files matching REGEX 68825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -release RELEASE specify package release information 68835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -rpath LIBDIR the created library will eventually be installed in LIBDIR 68845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries 68855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -static do not do any dynamic linking of uninstalled libtool libraries 68865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -static-libtool-libs 68875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) do not do any dynamic linking of libtool libraries 68885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -version-info CURRENT[:REVISION[:AGE]] 68895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) specify library version info [each variable defaults to 0] 68905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 68915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)All other options (arguments beginning with \`-') are ignored. 68925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 68935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)Every other argument is treated as a filename. Files ending in \`.la' are 68945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)treated as uninstalled libtool libraries, other files are standard or library 68955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)object files. 68965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 68975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)If the OUTPUT-FILE ends in \`.la', then a libtool library is created, 68985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)only library objects (\`.lo' files) may be specified, and \`-rpath' is 68995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)required, except when creating a convenience library. 69005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 69015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created 69025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)using \`ar' and \`ranlib', or on Windows using \`lib'. 69035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 69045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file 69055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)is created, otherwise an executable program is created." 69065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 69075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 69085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)uninstall) 69095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo \ 69105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)"Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... 69115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 69125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)Remove libraries from an installation directory. 69135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 69145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)RM is the name of the program to use to delete files associated with each FILE 69155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed 69165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)to RM. 69175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 69185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)If FILE is a libtool library, all the files associated with it are deleted. 69195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)Otherwise, only FILE itself is deleted using RM." 69205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 69215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 69225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*) 69235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$modename: invalid operation mode \`$mode'" 1>&2 69245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $echo "$help" 1>&2 69255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit $EXIT_FAILURE 69265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ;; 69275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)esac 69285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 69295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)$echo 69305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)$echo "Try \`$modename --help' for more information about other modes." 69315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 69325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)exit $? 69335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 69345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# The TAGs below are defined such that we never get into a situation 69355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# in which we disable both kinds of libraries. Given conflicting 69365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# choices, we go for a static library, that is the most portable, 69375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# since we can't tell whether shared libraries were disabled because 69385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# the user asked for that or because the platform doesn't support 69395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# them. This is particularly important on AIX, because we don't 69405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# support having both static and shared libraries enabled at the same 69415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# time on that platform, so we default to a shared-only configuration. 69425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# If a disable-shared tag is given, we'll fallback to a static-only 69435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# configuration. But we'll never go from static-only to shared-only. 69445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 69455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ### BEGIN LIBTOOL TAG CONFIG: disable-shared 69465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)disable_libs=shared 69475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ### END LIBTOOL TAG CONFIG: disable-shared 69485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 69495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ### BEGIN LIBTOOL TAG CONFIG: disable-static 69505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)disable_libs=static 69515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ### END LIBTOOL TAG CONFIG: disable-static 69525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 69535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Local Variables: 69545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# mode:shell-script 69555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# sh-indentation:2 69565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# End: 6957