ltmain.sh | ltmain.sh | |||
---|---|---|---|---|
# ltmain.sh - Provide generalized library-building support services. | # ltmain.sh - Provide generalized library-building support services. | |||
# NOTE: Changing this file will not affect anything until you rerun configu re. | # NOTE: Changing this file will not affect anything until you rerun configu re. | |||
# | # | |||
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005 | # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001 | |||
# Free Software Foundation, Inc. | # Free Software Foundation, Inc. | |||
# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996 | # Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996 | |||
# | # | |||
# This program is free software; you can redistribute it and/or modify | # This program is free software; you can redistribute it and/or modify | |||
# it under the terms of the GNU General Public License as published by | # it under the terms of the GNU General Public License as published by | |||
# the Free Software Foundation; either version 2 of the License, or | # the Free Software Foundation; either version 2 of the License, or | |||
# (at your option) any later version. | # (at your option) any later version. | |||
# | # | |||
# This program is distributed in the hope that it will be useful, but | # This program is distributed in the hope that it will be useful, but | |||
# WITHOUT ANY WARRANTY; without even the implied warranty of | # WITHOUT ANY WARRANTY; without even the implied warranty of | |||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |||
# General Public License for more details. | # General Public License for more details. | |||
# | # | |||
# You should have received a copy of the GNU General Public License | # You should have received a copy of the GNU General Public License | |||
# along with this program; if not, write to the Free Software | # along with this program; if not, write to the Free Software | |||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA . | |||
# | # | |||
# As a special exception to the GNU General Public License, if you | # As a special exception to the GNU General Public License, if you | |||
# distribute this file as part of a program that contains a | # distribute this file as part of a program that contains a | |||
# configuration script generated by Autoconf, you may include it under | # configuration script generated by Autoconf, you may include it under | |||
# the same distribution terms that you use for the rest of that program. | # the same distribution terms that you use for the rest of that program. | |||
basename="s,^.*/,,g" | ||||
# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh | ||||
# is ksh but when the shell is invoked as "sh" and the current value of | ||||
# the _XPG environment variable is not equal to 1 (one), the special | ||||
# positional parameter $0, within a function call, is the name of the | ||||
# function. | ||||
progpath="$0" | ||||
# define SED for historic ltconfig's generated by Libtool 1.3 | ||||
test -z "$SED" && SED=sed | ||||
# The name of this program: | ||||
progname=`echo "$progpath" | $SED $basename` | ||||
modename="$progname" | ||||
# Global variables: | ||||
EXIT_SUCCESS=0 | ||||
EXIT_FAILURE=1 | ||||
PROGRAM=ltmain.sh | ||||
PACKAGE=libtool | ||||
VERSION=1.5.22 | ||||
TIMESTAMP=" (1.1220.2.365 2005/12/18 22:14:06)" | ||||
# See if we are running on zsh, and set the options which allow our | ||||
# commands through without removal of \ escapes. | ||||
if test -n "${ZSH_VERSION+set}" ; then | ||||
setopt NO_GLOB_SUBST | ||||
fi | ||||
# Same for EGREP, and just to be sure, do LTCC as well | ||||
if test "X$EGREP" = X ; then | ||||
EGREP=egrep | ||||
fi | ||||
if test "X$LTCC" = X ; then | ||||
LTCC=${CC-gcc} | ||||
fi | ||||
# Check that we have a working $echo. | # Check that we have a working $echo. | |||
if test "X$1" = X--no-reexec; then | if test "X$1" = X--no-reexec; then | |||
# Discard the --no-reexec flag, and continue. | # Discard the --no-reexec flag, and continue. | |||
shift | shift | |||
elif test "X$1" = X--fallback-echo; then | elif test "X$1" = X--fallback-echo; then | |||
# Avoid inline document here, it may be left over | # Avoid inline document here, it may be left over | |||
: | : | |||
elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then | elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then | |||
# Yippee, $echo works! | # Yippee, $echo works! | |||
: | : | |||
else | else | |||
# Restart under the correct shell, and then maybe $echo will work. | # Restart under the correct shell, and then maybe $echo will work. | |||
exec $SHELL "$progpath" --no-reexec ${1+"$@"} | exec $SHELL "$0" --no-reexec ${1+"$@"} | |||
fi | fi | |||
if test "X$1" = X--fallback-echo; then | if test "X$1" = X--fallback-echo; then | |||
# used as fallback echo | # used as fallback echo | |||
shift | shift | |||
cat <<EOF | cat <<EOF | |||
$* | $* | |||
EOF | EOF | |||
exit $EXIT_SUCCESS | exit 0 | |||
fi | fi | |||
# define SED for historic ltconfig's generated by Libtool 1.3 | ||||
test -z "$SED" && SED=sed | ||||
# The name of this program. | ||||
progname=`$echo "$0" | ${SED} 's%^.*/%%'` | ||||
modename="$progname" | ||||
# Constants. | ||||
PROGRAM=ltmain.sh | ||||
PACKAGE=libtool | ||||
VERSION=1.4.3 | ||||
TIMESTAMP=" (1.922.2.111 2002/10/23 02:54:36)" | ||||
default_mode= | default_mode= | |||
help="Try \`$progname --help' for more information." | help="Try \`$progname --help' for more information." | |||
magic="%%%MAGIC variable%%%" | magic="%%%MAGIC variable%%%" | |||
mkdir="mkdir" | mkdir="mkdir" | |||
mv="mv -f" | mv="mv -f" | |||
rm="rm -f" | rm="rm -f" | |||
# Sed substitution that helps us do robust quoting. It backslashifies | # Sed substitution that helps us do robust quoting. It backslashifies | |||
# metacharacters that are still active within double-quoted strings. | # metacharacters that are still active within double-quoted strings. | |||
Xsed="${SED}"' -e 1s/^X//' | Xsed="${SED}"' -e 1s/^X//' | |||
sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g' | sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g' | |||
# test EBCDIC or ASCII | # test EBCDIC or ASCII | |||
case `echo X|tr X '\101'` in | case `echo A|od -x` in | |||
A) # ASCII based system | *[Cc]1*) # EBCDIC based system | |||
# \n is not interpreted correctly by Solaris 8 /usr/ucb/tr | SP2NL="tr '\100' '\n'" | |||
SP2NL='tr \040 \012' | NL2SP="tr '\r\n' '\100\100'" | |||
NL2SP='tr \015\012 \040\040' | ||||
;; | ;; | |||
*) # EBCDIC based system | *) # Assume ASCII based system | |||
SP2NL='tr \100 \n' | SP2NL="tr '\040' '\012'" | |||
NL2SP='tr \r\n \100\100' | NL2SP="tr '\015\012' '\040\040'" | |||
;; | ;; | |||
esac | esac | |||
# NLS nuisances. | # NLS nuisances. | |||
# Only set LANG and LC_ALL to C if already set. | # Only set LANG and LC_ALL to C if already set. | |||
# These must not be set unconditionally because not all systems understand | # These must not be set unconditionally because not all systems understand | |||
# e.g. LANG=C (notably SCO). | # e.g. LANG=C (notably SCO). | |||
# We save the old values to restore during execute mode. | # We save the old values to restore during execute mode. | |||
if test "${LC_ALL+set}" = set; then | if test "${LC_ALL+set}" = set; then | |||
save_LC_ALL="$LC_ALL"; LC_ALL=C; export LC_ALL | save_LC_ALL="$LC_ALL"; LC_ALL=C; export LC_ALL | |||
fi | fi | |||
if test "${LANG+set}" = set; then | if test "${LANG+set}" = set; then | |||
save_LANG="$LANG"; LANG=C; export LANG | save_LANG="$LANG"; LANG=C; export LANG | |||
fi | fi | |||
# Make sure IFS has a sensible default | # Make sure IFS has a sensible default | |||
lt_nl=' | : ${IFS=" "} | |||
' | ||||
IFS=" $lt_nl" | ||||
if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then | if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then | |||
$echo "$modename: not configured to build any kind of library" 1>&2 | echo "$modename: not configured to build any kind of library" 1>&2 | |||
$echo "Fatal configuration error. See the $PACKAGE docs for more informa tion." 1>&2 | echo "Fatal configuration error. See the $PACKAGE docs for more informat ion." 1>&2 | |||
exit $EXIT_FAILURE | exit 1 | |||
fi | fi | |||
# Global variables. | # Global variables. | |||
mode=$default_mode | mode=$default_mode | |||
nonopt= | nonopt= | |||
prev= | prev= | |||
prevopt= | prevopt= | |||
run= | run= | |||
show="$echo" | show="$echo" | |||
show_help= | show_help= | |||
execute_dlfiles= | execute_dlfiles= | |||
duplicate_deps=no | ||||
preserve_args= | ||||
lo2o="s/\\.lo\$/.${objext}/" | lo2o="s/\\.lo\$/.${objext}/" | |||
o2lo="s/\\.${objext}\$/.lo/" | o2lo="s/\\.${objext}\$/.lo/" | |||
if test -z "$max_cmd_len"; then | ||||
i=0 | ||||
testring="ABCD" | ||||
new_result= | ||||
# If test is not a shell built-in, we'll probably end up computing a | ||||
# maximum length that is only half of the actual maximum length, but | ||||
# we can't tell. | ||||
while (test "X"`$SHELL $0 --fallback-echo "X$testring" 2>/dev/null` \ | ||||
= "XX$testring") >/dev/null 2>&1 && | ||||
new_result=`expr "X$testring" : ".*" 2>&1` && | ||||
max_cmd_len="$new_result" && | ||||
test "$i" != 17 # 1/2 MB should be enough | ||||
do | ||||
i=`expr $i + 1` | ||||
testring="$testring$testring" | ||||
done | ||||
testring= | ||||
# Add a significant safety factor because C++ compilers can tack on massi ve | ||||
# amounts of additional arguments before passing them to the linker. | ||||
# It appears as though 1/2 is a usable value. | ||||
max_cmd_len=`expr $max_cmd_len \/ 2` | ||||
fi | ||||
##################################### | ||||
# Shell function definitions: | ||||
# This seems to be the best place for them | ||||
# func_mktempdir [string] | ||||
# Make a temporary directory that won't clash with other running | ||||
# libtool processes, and avoids race conditions if possible. If | ||||
# given, STRING is the basename for that directory. | ||||
func_mktempdir () | ||||
{ | ||||
my_template="${TMPDIR-/tmp}/${1-$progname}" | ||||
if test "$run" = ":"; then | ||||
# Return a directory name, but don't create it in dry-run mode | ||||
my_tmpdir="${my_template}-$$" | ||||
else | ||||
# If mktemp works, use that first and foremost | ||||
my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` | ||||
if test ! -d "$my_tmpdir"; then | ||||
# Failing that, at least try and use $RANDOM to avoid a race | ||||
my_tmpdir="${my_template}-${RANDOM-0}$$" | ||||
save_mktempdir_umask=`umask` | ||||
umask 0077 | ||||
$mkdir "$my_tmpdir" | ||||
umask $save_mktempdir_umask | ||||
fi | ||||
# If we're not in dry-run mode, bomb out on failure | ||||
test -d "$my_tmpdir" || { | ||||
$echo "cannot create temporary directory \`$my_tmpdir'" 1>&2 | ||||
exit $EXIT_FAILURE | ||||
} | ||||
fi | ||||
$echo "X$my_tmpdir" | $Xsed | ||||
} | ||||
# func_win32_libid arg | ||||
# return the library type of file 'arg' | ||||
# | ||||
# Need a lot of goo to handle *both* DLLs and import libs | ||||
# Has to be a shell function in order to 'eat' the argument | ||||
# that is supplied when $file_magic_command is called. | ||||
func_win32_libid () | ||||
{ | ||||
win32_libid_type="unknown" | ||||
win32_fileres=`file -L $1 2>/dev/null` | ||||
case $win32_fileres in | ||||
*ar\ archive\ import\ library*) # definitely import | ||||
win32_libid_type="x86 archive import" | ||||
;; | ||||
*ar\ archive*) # could be an import, or static | ||||
if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \ | ||||
$EGREP -e 'file format pe-i386(.*architecture: i386)?' >/dev/null ; t hen | ||||
win32_nmres=`eval $NM -f posix -A $1 | \ | ||||
$SED -n -e '1,100{/ I /{s,.*,import,;p;q;};}'` | ||||
case $win32_nmres in | ||||
import*) win32_libid_type="x86 archive import";; | ||||
*) win32_libid_type="x86 archive static";; | ||||
esac | ||||
fi | ||||
;; | ||||
*DLL*) | ||||
win32_libid_type="x86 DLL" | ||||
;; | ||||
*executable*) # but shell scripts are "executable" too... | ||||
case $win32_fileres in | ||||
*MS\ Windows\ PE\ Intel*) | ||||
win32_libid_type="x86 DLL" | ||||
;; | ||||
esac | ||||
;; | ||||
esac | ||||
$echo $win32_libid_type | ||||
} | ||||
# func_infer_tag arg | ||||
# Infer tagged configuration to use if any are available and | ||||
# if one wasn't chosen via the "--tag" command line option. | ||||
# Only attempt this if the compiler in the base compile | ||||
# command doesn't match the default compiler. | ||||
# arg is usually of the form 'gcc ...' | ||||
func_infer_tag () | ||||
{ | ||||
if test -n "$available_tags" && test -z "$tagname"; then | ||||
CC_quoted= | ||||
for arg in $CC; do | ||||
case $arg in | ||||
*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") | ||||
arg="\"$arg\"" | ||||
;; | ||||
esac | ||||
CC_quoted="$CC_quoted $arg" | ||||
done | ||||
case $@ in | ||||
# Blanks in the command may have been stripped by the calling shell, | ||||
# but not from the CC environment variable when configure was run. | ||||
" $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quote d"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) ;; | ||||
# Blanks at the start of $base_compile will cause this to fail | ||||
# if we don't check for them as well. | ||||
*) | ||||
for z in $available_tags; do | ||||
if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /de v/null; then | ||||
# Evaluate the configuration. | ||||
eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^ # ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" | ||||
CC_quoted= | ||||
for arg in $CC; do | ||||
# Double-quote args containing other shell metacharacters. | ||||
case $arg in | ||||
*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") | ||||
arg="\"$arg\"" | ||||
;; | ||||
esac | ||||
CC_quoted="$CC_quoted $arg" | ||||
done | ||||
# user sometimes does CC=<HOST>-gcc so we need to match that to 'gcc' | ||||
trimedcc=`echo ${CC} | $SED -e "s/${host}-//g"` | ||||
# and sometimes libtool has CC=<HOST>-gcc but user does CC=gcc | ||||
extendcc=${host}-${CC} | ||||
# and sometimes libtool has CC=<OLDHOST>-gcc but user has CC=<NE WHOST>-gcc | ||||
# (Gentoo-specific hack because we always export $CHOST) | ||||
mungedcc=${CHOST-${host}}-${trimedcc} | ||||
case "$@ " in | ||||
"cc "* | " cc "* | "${host}-cc "* | " ${host}-cc "*|\ | ||||
"gcc "* | " gcc "* | "${host}-gcc "* | " ${host}-gcc "*) | ||||
tagname=CC | ||||
break ;; | ||||
"$trimedcc "* | " $trimedcc "* | "`$echo $trimedcc` "* | " `$e cho $trimedcc` "*|\ | ||||
"$extendcc "* | " $extendcc "* | "`$echo $extendcc` "* | " `$e cho $extendcc` "*|\ | ||||
"$mungedcc "* | " $mungedcc "* | "`$echo $mungedcc` "* | " `$e cho $mungedcc` "*|\ | ||||
" $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $C C_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) | ||||
# The compiler in the base compile command matches | ||||
# the one in the tagged configuration. | ||||
# Assume this is the tagged configuration we want. | ||||
tagname=$z | ||||
break | ||||
;; | ||||
esac | ||||
fi | ||||
done | ||||
# If $tagname still isn't set, then no tagged configuration | ||||
# was found and let the user know that the "--tag" command | ||||
# line option must be used. | ||||
if test -z "$tagname"; then | ||||
$echo "$modename: unable to infer tagged configuration" | ||||
$echo "$modename: specify a tag with \`--tag'" 1>&2 | ||||
exit $EXIT_FAILURE | ||||
# else | ||||
# $echo "$modename: using $tagname tagged configuration" | ||||
fi | ||||
;; | ||||
esac | ||||
fi | ||||
} | ||||
# func_extract_an_archive dir oldlib | ||||
func_extract_an_archive () | ||||
{ | ||||
f_ex_an_ar_dir="$1"; shift | ||||
f_ex_an_ar_oldlib="$1" | ||||
$show "(cd $f_ex_an_ar_dir && $AR x $f_ex_an_ar_oldlib)" | ||||
$run eval "(cd \$f_ex_an_ar_dir && $AR x \$f_ex_an_ar_oldlib)" || exit $? | ||||
if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then | ||||
: | ||||
else | ||||
$echo "$modename: ERROR: object name conflicts: $f_ex_an_ar_dir/$f_ex _an_ar_oldlib" 1>&2 | ||||
exit $EXIT_FAILURE | ||||
fi | ||||
} | ||||
# func_extract_archives gentop oldlib ... | ||||
func_extract_archives () | ||||
{ | ||||
my_gentop="$1"; shift | ||||
my_oldlibs=${1+"$@"} | ||||
my_oldobjs="" | ||||
my_xlib="" | ||||
my_xabs="" | ||||
my_xdir="" | ||||
my_status="" | ||||
$show "${rm}r $my_gentop" | ||||
$run ${rm}r "$my_gentop" | ||||
$show "$mkdir $my_gentop" | ||||
$run $mkdir "$my_gentop" | ||||
my_status=$? | ||||
if test "$my_status" -ne 0 && test ! -d "$my_gentop"; then | ||||
exit $my_status | ||||
fi | ||||
for my_xlib in $my_oldlibs; do | ||||
# Extract the objects. | ||||
case $my_xlib in | ||||
[\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; | ||||
*) my_xabs=`pwd`"/$my_xlib" ;; | ||||
esac | ||||
my_xlib=`$echo "X$my_xlib" | $Xsed -e 's%^.*/%%'` | ||||
my_xdir="$my_gentop/$my_xlib" | ||||
$show "${rm}r $my_xdir" | ||||
$run ${rm}r "$my_xdir" | ||||
$show "$mkdir $my_xdir" | ||||
$run $mkdir "$my_xdir" | ||||
exit_status=$? | ||||
if test "$exit_status" -ne 0 && test ! -d "$my_xdir"; then | ||||
exit $exit_status | ||||
fi | ||||
case $host in | ||||
*-darwin*) | ||||
$show "Extracting $my_xabs" | ||||
# Do not bother doing anything if just a dry run | ||||
if test -z "$run"; then | ||||
darwin_orig_dir=`pwd` | ||||
cd $my_xdir || exit $? | ||||
darwin_archive=$my_xabs | ||||
darwin_curdir=`pwd` | ||||
darwin_base_archive=`$echo "X$darwin_archive" | $Xsed -e 's%^.*/%% '` | ||||
darwin_arches=`lipo -info "$darwin_archive" 2>/dev/null | $EGREP A rchitectures 2>/dev/null` | ||||
if test -n "$darwin_arches"; then | ||||
darwin_arches=`echo "$darwin_arches" | $SED -e 's/.*are://'` | ||||
darwin_arch= | ||||
$show "$darwin_base_archive has multiple architectures $darwin_a rches" | ||||
for darwin_arch in $darwin_arches ; do | ||||
mkdir -p "unfat-$$/${darwin_base_archive}-${darwin_arch}" | ||||
lipo -thin $darwin_arch -output "unfat-$$/${darwin_base_archiv e}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" | ||||
cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" | ||||
func_extract_an_archive "`pwd`" "${darwin_base_archive}" | ||||
cd "$darwin_curdir" | ||||
$rm "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_b ase_archive}" | ||||
done # $darwin_arches | ||||
## Okay now we have a bunch of thin objects, gotta fatten them up :) | ||||
darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -nam e \*.lo -print| xargs basename | sort -u | $NL2SP` | ||||
darwin_file= | ||||
darwin_files= | ||||
for darwin_file in $darwin_filelist; do | ||||
darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP ` | ||||
lipo -create -output "$darwin_file" $darwin_files | ||||
done # $darwin_filelist | ||||
${rm}r unfat-$$ | ||||
cd "$darwin_orig_dir" | ||||
else | ||||
cd "$darwin_orig_dir" | ||||
func_extract_an_archive "$my_xdir" "$my_xabs" | ||||
fi # $darwin_arches | ||||
fi # $run | ||||
;; | ||||
*) | ||||
func_extract_an_archive "$my_xdir" "$my_xabs" | ||||
;; | ||||
esac | ||||
my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -n ame \*.lo -print | $NL2SP` | ||||
done | ||||
func_extract_archives_result="$my_oldobjs" | ||||
} | ||||
# End of Shell function definitions | ||||
##################################### | ||||
# Darwin sucks | ||||
eval std_shrext=\"$shrext_cmds\" | ||||
disable_libs=no | ||||
# Parse our command line options once, thoroughly. | # Parse our command line options once, thoroughly. | |||
while test "$#" -gt 0 | while test $# -gt 0 | |||
do | do | |||
arg="$1" | arg="$1" | |||
shift | shift | |||
case $arg in | case $arg in | |||
-*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;; | -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;; | |||
*) optarg= ;; | *) optarg= ;; | |||
esac | esac | |||
# If the previous option needs an argument, assign it. | # If the previous option needs an argument, assign it. | |||
if test -n "$prev"; then | if test -n "$prev"; then | |||
case $prev in | case $prev in | |||
execute_dlfiles) | execute_dlfiles) | |||
execute_dlfiles="$execute_dlfiles $arg" | execute_dlfiles="$execute_dlfiles $arg" | |||
;; | ;; | |||
tag) | ||||
tagname="$arg" | ||||
preserve_args="${preserve_args}=$arg" | ||||
# Check whether tagname contains only valid characters | ||||
case $tagname in | ||||
*[!-_A-Za-z0-9,/]*) | ||||
$echo "$progname: invalid tag name: $tagname" 1>&2 | ||||
exit $EXIT_FAILURE | ||||
;; | ||||
esac | ||||
case $tagname in | ||||
CC) | ||||
# Don't test for the "default" C tag, as we know, it's there, but | ||||
# not specially marked. | ||||
;; | ||||
*) | ||||
if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$progpath" > /dev/null; then | ||||
taglist="$taglist $tagname" | ||||
# Evaluate the configuration. | ||||
eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$ /,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $progpath`" | ||||
else | ||||
$echo "$progname: ignoring unknown tag $tagname" 1>&2 | ||||
fi | ||||
;; | ||||
esac | ||||
;; | ||||
*) | *) | |||
eval "$prev=\$arg" | eval "$prev=\$arg" | |||
;; | ;; | |||
esac | esac | |||
prev= | prev= | |||
prevopt= | prevopt= | |||
continue | continue | |||
fi | fi | |||
# Have we seen a non-optional argument yet? | # Have we seen a non-optional argument yet? | |||
case $arg in | case $arg in | |||
--help) | --help) | |||
show_help=yes | show_help=yes | |||
;; | ;; | |||
--version) | --version) | |||
$echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP" | echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP" | |||
$echo | exit 0 | |||
$echo "Copyright (C) 2005 Free Software Foundation, Inc." | ||||
$echo "This is free software; see the source for copying conditions. T here is NO" | ||||
$echo "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICUL AR PURPOSE." | ||||
exit $? | ||||
;; | ;; | |||
--config) | --config) | |||
${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CO NFIG/,$d' $progpath | ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CO NFIG/,$d' $0 | |||
# Now print the configurations for the tags. | exit 0 | |||
for tagname in $taglist; do | ||||
${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### EN D LIBTOOL TAG CONFIG: $tagname$/p" < "$progpath" | ||||
done | ||||
exit $? | ||||
;; | ;; | |||
--debug) | --debug) | |||
$echo "$progname: enabling shell trace mode" | echo "$progname: enabling shell trace mode" | |||
set -x | set -x | |||
preserve_args="$preserve_args $arg" | ||||
;; | ;; | |||
--dry-run | -n) | --dry-run | -n) | |||
run=: | run=: | |||
;; | ;; | |||
--features) | --features) | |||
$echo "host: $host" | echo "host: $host" | |||
if test "$build_libtool_libs" = yes; then | if test "$build_libtool_libs" = yes; then | |||
$echo "enable shared libraries" | echo "enable shared libraries" | |||
else | else | |||
$echo "disable shared libraries" | echo "disable shared libraries" | |||
fi | fi | |||
if test "$build_old_libs" = yes; then | if test "$build_old_libs" = yes; then | |||
$echo "enable static libraries" | echo "enable static libraries" | |||
else | else | |||
$echo "disable static libraries" | echo "disable static libraries" | |||
fi | fi | |||
exit $? | exit 0 | |||
;; | ;; | |||
--finish) mode="finish" ;; | --finish) mode="finish" ;; | |||
--mode) prevopt="--mode" prev=mode ;; | --mode) prevopt="--mode" prev=mode ;; | |||
--mode=*) mode="$optarg" ;; | --mode=*) mode="$optarg" ;; | |||
--preserve-dup-deps) duplicate_deps="yes" ;; | --preserve-dup-deps) duplicate_deps="yes" ;; | |||
--quiet | --silent) | --quiet | --silent) | |||
show=: | show=: | |||
preserve_args="$preserve_args $arg" | ||||
;; | ||||
--tag) | ||||
prevopt="--tag" | ||||
prev=tag | ||||
preserve_args="$preserve_args --tag" | ||||
;; | ||||
--tag=*) | ||||
set tag "$optarg" ${1+"$@"} | ||||
shift | ||||
prev=tag | ||||
preserve_args="$preserve_args --tag" | ||||
;; | ;; | |||
-dlopen) | -dlopen) | |||
prevopt="-dlopen" | prevopt="-dlopen" | |||
prev=execute_dlfiles | prev=execute_dlfiles | |||
;; | ;; | |||
-*) | -*) | |||
$echo "$modename: unrecognized option \`$arg'" 1>&2 | $echo "$modename: unrecognized option \`$arg'" 1>&2 | |||
$echo "$help" 1>&2 | $echo "$help" 1>&2 | |||
exit $EXIT_FAILURE | exit 1 | |||
;; | ;; | |||
*) | *) | |||
nonopt="$arg" | nonopt="$arg" | |||
break | break | |||
;; | ;; | |||
esac | esac | |||
done | done | |||
if test -n "$prevopt"; then | if test -n "$prevopt"; then | |||
$echo "$modename: option \`$prevopt' requires an argument" 1>&2 | $echo "$modename: option \`$prevopt' requires an argument" 1>&2 | |||
$echo "$help" 1>&2 | $echo "$help" 1>&2 | |||
exit $EXIT_FAILURE | exit 1 | |||
fi | fi | |||
case $disable_libs in | ||||
no) | ||||
;; | ||||
shared) | ||||
build_libtool_libs=no | ||||
build_old_libs=yes | ||||
;; | ||||
static) | ||||
build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` | ||||
;; | ||||
esac | ||||
# If this variable is set in any of the actions, the command in it | # If this variable is set in any of the actions, the command in it | |||
# will be execed at the end. This prevents here-documents from being | # will be execed at the end. This prevents here-documents from being | |||
# left over by shells. | # left over by shells. | |||
exec_cmd= | exec_cmd= | |||
if test -z "$show_help"; then | if test -z "$show_help"; then | |||
# Infer the operation mode. | # Infer the operation mode. | |||
if test -z "$mode"; then | if test -z "$mode"; then | |||
$echo "*** Warning: inferring the mode of operation is deprecated." 1>& 2 | ||||
$echo "*** Future versions of Libtool will require --mode=MODE be speci fied." 1>&2 | ||||
case $nonopt in | case $nonopt in | |||
*cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*) | *cc | *++ | gcc* | *-gcc* | xlc*) | |||
mode=link | mode=link | |||
for arg | for arg | |||
do | do | |||
case $arg in | case $arg in | |||
-c) | -c) | |||
mode=compile | mode=compile | |||
break | break | |||
;; | ;; | |||
esac | esac | |||
done | done | |||
skipping to change at line 657 | skipping to change at line 273 | |||
fi | fi | |||
fi | fi | |||
;; | ;; | |||
esac | esac | |||
fi | fi | |||
# Only execute mode is allowed to have -dlopen flags. | # Only execute mode is allowed to have -dlopen flags. | |||
if test -n "$execute_dlfiles" && test "$mode" != execute; then | if test -n "$execute_dlfiles" && test "$mode" != execute; then | |||
$echo "$modename: unrecognized option \`-dlopen'" 1>&2 | $echo "$modename: unrecognized option \`-dlopen'" 1>&2 | |||
$echo "$help" 1>&2 | $echo "$help" 1>&2 | |||
exit $EXIT_FAILURE | exit 1 | |||
fi | fi | |||
# Change the help message to a mode-specific one. | # Change the help message to a mode-specific one. | |||
generic_help="$help" | generic_help="$help" | |||
help="Try \`$modename --help --mode=$mode' for more information." | help="Try \`$modename --help --mode=$mode' for more information." | |||
# These modes are in order of execution frequency so that they run quickl y. | # These modes are in order of execution frequency so that they run quickl y. | |||
case $mode in | case $mode in | |||
# libtool compile mode | # libtool compile mode | |||
compile) | compile) | |||
modename="$modename: compile" | modename="$modename: compile" | |||
# Get the compilation command and the source file. | # Get the compilation command and the source file. | |||
base_compile= | base_compile= | |||
srcfile="$nonopt" # always keep a non-empty value in "srcfile" | prev= | |||
suppress_opt=yes | lastarg= | |||
srcfile="$nonopt" | ||||
suppress_output= | suppress_output= | |||
arg_mode=normal | ||||
libobj= | ||||
later= | ||||
user_target=no | ||||
for arg | for arg | |||
do | do | |||
case $arg_mode in | case $prev in | |||
arg ) | "") ;; | |||
# do not "continue". Instead, add this to base_compile | xcompiler) | |||
lastarg="$arg" | # Aesthetically quote the previous argument. | |||
arg_mode=normal | prev= | |||
;; | lastarg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` | |||
target ) | case $arg in | |||
libobj="$arg" | # Double-quote args containing other shell metacharacters. | |||
arg_mode=normal | # Many Bourne shells cannot handle close brackets correctly | |||
# in scan sets, so we specify it separately. | ||||
*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") | ||||
arg="\"$arg\"" | ||||
;; | ||||
esac | ||||
# Add the previous argument to base_compile. | ||||
if test -z "$base_compile"; then | ||||
base_compile="$lastarg" | ||||
else | ||||
base_compile="$base_compile $lastarg" | ||||
fi | ||||
continue | continue | |||
;; | ;; | |||
esac | ||||
normal ) | # Accept any command-line options. | |||
# Accept any command-line options. | case $arg in | |||
case $arg in | -o) | |||
-o) | if test "$user_target" != "no"; then | |||
if test -n "$libobj" ; then | $echo "$modename: you cannot specify \`-o' more than once" 1>&2 | |||
$echo "$modename: you cannot specify \`-o' more than once" 1>&2 | exit 1 | |||
exit $EXIT_FAILURE | fi | |||
fi | user_target=next | |||
arg_mode=target | ;; | |||
continue | ||||
;; | ||||
-static | -prefer-pic | -prefer-non-pic) | -static) | |||
later="$later $arg" | build_old_libs=yes | |||
continue | continue | |||
;; | ;; | |||
-no-suppress) | -prefer-pic) | |||
suppress_opt=no | pic_mode=yes | |||
continue | continue | |||
;; | ;; | |||
-Xcompiler) | -prefer-non-pic) | |||
arg_mode=arg # the next one goes into the "base_compile" arg lis t | pic_mode=no | |||
continue # The current "srcfile" will either be retained or | continue | |||
;; # replaced later. I would guess that would be a bu g. | ;; | |||
-Wc,*) | ||||
args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"` | ||||
lastarg= | ||||
save_ifs="$IFS"; IFS=',' | ||||
for arg in $args; do | ||||
IFS="$save_ifs" | ||||
# Double-quote args containing other shell metacharacters. | -Xcompiler) | |||
# Many Bourne shells cannot handle close brackets correctly | prev=xcompiler | |||
# in scan sets, so we specify it separately. | continue | |||
case $arg in | ;; | |||
*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") | ||||
arg="\"$arg\"" | -Wc,*) | |||
;; | args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"` | |||
esac | lastarg= | |||
lastarg="$lastarg $arg" | save_ifs="$IFS"; IFS=',' | |||
done | for arg in $args; do | |||
IFS="$save_ifs" | IFS="$save_ifs" | |||
lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"` | ||||
# Add the arguments to base_compile. | # Double-quote args containing other shell metacharacters. | |||
# Many Bourne shells cannot handle close brackets correctly | ||||
# in scan sets, so we specify it separately. | ||||
case $arg in | ||||
*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") | ||||
arg="\"$arg\"" | ||||
;; | ||||
esac | ||||
lastarg="$lastarg $arg" | ||||
done | ||||
IFS="$save_ifs" | ||||
lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"` | ||||
# Add the arguments to base_compile. | ||||
if test -z "$base_compile"; then | ||||
base_compile="$lastarg" | ||||
else | ||||
base_compile="$base_compile $lastarg" | base_compile="$base_compile $lastarg" | |||
continue | fi | |||
;; | continue | |||
;; | ||||
esac | ||||
* ) | case $user_target in | |||
# Accept the current argument as the source file. | next) | |||
# The previous "srcfile" becomes the current argument. | # The next one is the -o target name | |||
# | user_target=yes | |||
lastarg="$srcfile" | continue | |||
srcfile="$arg" | ;; | |||
;; | yes) | |||
esac # case $arg | # We got the output file | |||
user_target=set | ||||
libobj="$arg" | ||||
continue | ||||
;; | ;; | |||
esac # case $arg_mode | esac | |||
# Accept the current argument as the source file. | ||||
lastarg="$srcfile" | ||||
srcfile="$arg" | ||||
# Aesthetically quote the previous argument. | # Aesthetically quote the previous argument. | |||
# Backslashify any backslashes, double quotes, and dollar signs. | ||||
# These are the only characters that are still specially | ||||
# interpreted inside of double-quoted scrings. | ||||
lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"` | lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"` | |||
case $lastarg in | ||||
# Double-quote args containing other shell metacharacters. | # Double-quote args containing other shell metacharacters. | |||
# Many Bourne shells cannot handle close brackets correctly | # Many Bourne shells cannot handle close brackets correctly | |||
# in scan sets, and some SunOS ksh mistreat backslash-escaping | # in scan sets, so we specify it separately. | |||
# in scan sets (worked around with variable expansion), | case $lastarg in | |||
# and furthermore cannot handle '|' '&' '(' ')' in scan sets | ||||
# at all, so we specify them separately. | ||||
*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") | *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") | |||
lastarg="\"$lastarg\"" | lastarg="\"$lastarg\"" | |||
;; | ;; | |||
esac | esac | |||
base_compile="$base_compile $lastarg" | # Add the previous argument to base_compile. | |||
done # for arg | if test -z "$base_compile"; then | |||
base_compile="$lastarg" | ||||
else | ||||
base_compile="$base_compile $lastarg" | ||||
fi | ||||
done | ||||
case $arg_mode in | case $user_target in | |||
arg) | set) | |||
$echo "$modename: you must specify an argument for -Xcompile" | ||||
exit $EXIT_FAILURE | ||||
;; | ;; | |||
target) | no) | |||
$echo "$modename: you must specify a target with \`-o'" 1>&2 | # Get the name of the library object. | |||
exit $EXIT_FAILURE | libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'` | |||
;; | ;; | |||
*) | *) | |||
# Get the name of the library object. | $echo "$modename: you must specify a target with \`-o'" 1>&2 | |||
[ -z "$libobj" ] && libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'` | exit 1 | |||
;; | ;; | |||
esac | esac | |||
# Recognize several different file suffixes. | # Recognize several different file suffixes. | |||
# If the user specifies -o file.o, it is replaced with file.lo | # If the user specifies -o file.o, it is replaced with file.lo | |||
xform='[cCFSifmso]' | xform='[cCFSfmso]' | |||
case $libobj in | case $libobj in | |||
*.ada) xform=ada ;; | *.ada) xform=ada ;; | |||
*.adb) xform=adb ;; | *.adb) xform=adb ;; | |||
*.ads) xform=ads ;; | *.ads) xform=ads ;; | |||
*.asm) xform=asm ;; | *.asm) xform=asm ;; | |||
*.c++) xform=c++ ;; | *.c++) xform=c++ ;; | |||
*.cc) xform=cc ;; | *.cc) xform=cc ;; | |||
*.ii) xform=ii ;; | ||||
*.class) xform=class ;; | ||||
*.cpp) xform=cpp ;; | *.cpp) xform=cpp ;; | |||
*.cxx) xform=cxx ;; | *.cxx) xform=cxx ;; | |||
*.f90) xform=f90 ;; | *.f90) xform=f90 ;; | |||
*.for) xform=for ;; | *.for) xform=for ;; | |||
*.java) xform=java ;; | ||||
esac | esac | |||
libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"` | libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"` | |||
case $libobj in | case $libobj in | |||
*.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;; | *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;; | |||
*) | *) | |||
$echo "$modename: cannot determine name of library object from \`$lib obj'" 1>&2 | $echo "$modename: cannot determine name of library object from \`$lib obj'" 1>&2 | |||
exit $EXIT_FAILURE | exit 1 | |||
;; | ;; | |||
esac | esac | |||
func_infer_tag $base_compile | ||||
for arg in $later; do | ||||
case $arg in | ||||
-static) | ||||
build_old_libs=yes | ||||
continue | ||||
;; | ||||
-prefer-pic) | ||||
pic_mode=yes | ||||
continue | ||||
;; | ||||
-prefer-non-pic) | ||||
pic_mode=no | ||||
continue | ||||
;; | ||||
esac | ||||
done | ||||
qlibobj=`$echo "X$libobj" | $Xsed -e "$sed_quote_subst"` | ||||
case $qlibobj in | ||||
*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") | ||||
qlibobj="\"$qlibobj\"" ;; | ||||
esac | ||||
test "X$libobj" != "X$qlibobj" \ | ||||
&& $echo "X$libobj" | grep '[]~#^*{};<>?"'"'"' &()|`$[]' \ | ||||
&& $echo "$modename: libobj name \`$libobj' may not contain shell sp ecial characters." | ||||
objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` | ||||
xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'` | ||||
if test "X$xdir" = "X$obj"; then | ||||
xdir= | ||||
else | ||||
xdir=$xdir/ | ||||
fi | ||||
lobj=${xdir}$objdir/$objname | ||||
if test -z "$base_compile"; then | if test -z "$base_compile"; then | |||
$echo "$modename: you must specify a compilation command" 1>&2 | $echo "$modename: you must specify a compilation command" 1>&2 | |||
$echo "$help" 1>&2 | $echo "$help" 1>&2 | |||
exit $EXIT_FAILURE | exit 1 | |||
fi | fi | |||
# Delete any leftover library objects. | # Delete any leftover library objects. | |||
if test "$build_old_libs" = yes; then | if test "$build_old_libs" = yes; then | |||
removelist="$obj $lobj $libobj ${libobj}T" | removelist="$obj $libobj" | |||
else | else | |||
removelist="$lobj $libobj ${libobj}T" | removelist="$libobj" | |||
fi | fi | |||
$run $rm $removelist | $run $rm $removelist | |||
trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15 | trap "$run $rm $removelist; exit 1" 1 2 15 | |||
# On Cygwin there's no "real" PIC flag so we must build both object typ es | # On Cygwin there's no "real" PIC flag so we must build both object typ es | |||
case $host_os in | case $host_os in | |||
cygwin* | mingw* | pw32* | os2*) | cygwin* | mingw* | pw32* | os2*) | |||
pic_mode=default | pic_mode=default | |||
;; | ;; | |||
esac | esac | |||
if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; t hen | if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; t hen | |||
# non-PIC code in shared libraries is not supported | # non-PIC code in shared libraries is not supported | |||
pic_mode=default | pic_mode=default | |||
fi | fi | |||
# Calculate the filename of the output object if compiler does | # Calculate the filename of the output object if compiler does | |||
# not support -o with -c | # not support -o with -c | |||
if test "$compiler_c_o" = no; then | if test "$compiler_c_o" = no; then | |||
output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%' `.${objext} | output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%' `.${objext} | |||
lockfile="$output_obj.lock" | lockfile="$output_obj.lock" | |||
removelist="$removelist $output_obj $lockfile" | removelist="$removelist $output_obj $lockfile" | |||
trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15 | trap "$run $rm $removelist; exit 1" 1 2 15 | |||
else | else | |||
output_obj= | ||||
need_locks=no | need_locks=no | |||
lockfile= | lockfile= | |||
fi | fi | |||
# Lock this critical section if it is needed | # Lock this critical section if it is needed | |||
# We use this script file to make the link, it avoids creating a new fi le | # We use this script file to make the link, it avoids creating a new fi le | |||
if test "$need_locks" = yes; then | if test "$need_locks" = yes; then | |||
until $run ln "$srcfile" "$lockfile" 2>/dev/null; do | until $run ln "$0" "$lockfile" 2>/dev/null; do | |||
$show "Waiting for $lockfile to be removed" | $show "Waiting for $lockfile to be removed" | |||
sleep 2 | sleep 2 | |||
done | done | |||
elif test "$need_locks" = warn; then | elif test "$need_locks" = warn; then | |||
if test -f "$lockfile"; then | if test -f "$lockfile"; then | |||
$echo "\ | echo "\ | |||
*** ERROR, $lockfile exists and contains: | *** ERROR, $lockfile exists and contains: | |||
`cat $lockfile 2>/dev/null` | `cat $lockfile 2>/dev/null` | |||
This indicates that another process is trying to use the same | This indicates that another process is trying to use the same | |||
temporary object file, and libtool could not work around it because | temporary object file, and libtool could not work around it because | |||
your compiler does not support \`-c' and \`-o' together. If you | your compiler does not support \`-c' and \`-o' together. If you | |||
repeat this compilation, it may succeed, by chance, but you had better | repeat this compilation, it may succeed, by chance, but you had better | |||
avoid parallel builds (make -j) in this platform, or get a better | avoid parallel builds (make -j) in this platform, or get a better | |||
compiler." | compiler." | |||
$run $rm $removelist | $run $rm $removelist | |||
exit $EXIT_FAILURE | exit 1 | |||
fi | fi | |||
$echo "$srcfile" > "$lockfile" | echo $srcfile > "$lockfile" | |||
fi | fi | |||
if test -n "$fix_srcfile_path"; then | if test -n "$fix_srcfile_path"; then | |||
eval srcfile=\"$fix_srcfile_path\" | eval srcfile=\"$fix_srcfile_path\" | |||
fi | fi | |||
qsrcfile=`$echo "X$srcfile" | $Xsed -e "$sed_quote_subst"` | ||||
case $qsrcfile in | ||||
*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") | ||||
qsrcfile="\"$qsrcfile\"" ;; | ||||
esac | ||||
$run $rm "$libobj" "${libobj}T" | ||||
# Create a libtool object file (analogous to a ".la" file), | ||||
# but don't create it if we're doing a dry run. | ||||
test -z "$run" && cat > ${libobj}T <<EOF | ||||
# $libobj - a libtool object file | ||||
# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP | ||||
# | ||||
# Please DO NOT delete this file! | ||||
# It is necessary for linking the library. | ||||
# Name of the PIC object. | ||||
EOF | ||||
# Only build a PIC object if we are building libtool libraries. | # Only build a PIC object if we are building libtool libraries. | |||
if test "$build_libtool_libs" = yes; then | if test "$build_libtool_libs" = yes; then | |||
# Without this assignment, base_compile gets emptied. | # Without this assignment, base_compile gets emptied. | |||
fbsd_hideous_sh_bug=$base_compile | fbsd_hideous_sh_bug=$base_compile | |||
if test "$pic_mode" != no; then | if test "$pic_mode" != no; then | |||
command="$base_compile $qsrcfile $pic_flag" | # All platforms use -DPIC, to notify preprocessed assembler code. | |||
command="$base_compile $srcfile $pic_flag -DPIC" | ||||
else | else | |||
# Don't build PIC code | # Don't build PIC code | |||
command="$base_compile $qsrcfile" | command="$base_compile $srcfile" | |||
fi | fi | |||
if test "$build_old_libs" = yes; then | ||||
lo_libobj="$libobj" | ||||
dir=`$echo "X$libobj" | $Xsed -e 's%/[^/]*$%%'` | ||||
if test "X$dir" = "X$libobj"; then | ||||
dir="$objdir" | ||||
else | ||||
dir="$dir/$objdir" | ||||
fi | ||||
libobj="$dir/"`$echo "X$libobj" | $Xsed -e 's%^.*/%%'` | ||||
if test ! -d "${xdir}$objdir"; then | if test -d "$dir"; then | |||
$show "$mkdir ${xdir}$objdir" | $show "$rm $libobj" | |||
$run $mkdir ${xdir}$objdir | $run $rm $libobj | |||
exit_status=$? | else | |||
if test "$exit_status" -ne 0 && test ! -d "${xdir}$objdir"; then | $show "$mkdir $dir" | |||
exit $exit_status | $run $mkdir $dir | |||
status=$? | ||||
if test $status -ne 0 && test ! -d $dir; then | ||||
exit $status | ||||
fi | ||||
fi | fi | |||
fi | fi | |||
if test "$compiler_o_lo" = yes; then | ||||
if test -z "$output_obj"; then | output_obj="$libobj" | |||
# Place PIC objects in $objdir | command="$command -o $output_obj" | |||
command="$command -o $lobj" | elif test "$compiler_c_o" = yes; then | |||
output_obj="$obj" | ||||
command="$command -o $output_obj" | ||||
fi | fi | |||
$run $rm "$lobj" "$output_obj" | $run $rm "$output_obj" | |||
$show "$command" | $show "$command" | |||
if $run eval "$command"; then : | if $run eval "$command"; then : | |||
else | else | |||
test -n "$output_obj" && $run $rm $removelist | test -n "$output_obj" && $run $rm $removelist | |||
exit $EXIT_FAILURE | exit 1 | |||
fi | fi | |||
if test "$need_locks" = warn && | if test "$need_locks" = warn && | |||
test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then | test x"`cat $lockfile 2>/dev/null`" != x"$srcfile"; then | |||
$echo "\ | echo "\ | |||
*** ERROR, $lockfile contains: | *** ERROR, $lockfile contains: | |||
`cat $lockfile 2>/dev/null` | `cat $lockfile 2>/dev/null` | |||
but it should contain: | but it should contain: | |||
$srcfile | $srcfile | |||
This indicates that another process is trying to use the same | This indicates that another process is trying to use the same | |||
temporary object file, and libtool could not work around it because | temporary object file, and libtool could not work around it because | |||
your compiler does not support \`-c' and \`-o' together. If you | your compiler does not support \`-c' and \`-o' together. If you | |||
repeat this compilation, it may succeed, by chance, but you had better | repeat this compilation, it may succeed, by chance, but you had better | |||
avoid parallel builds (make -j) in this platform, or get a better | avoid parallel builds (make -j) in this platform, or get a better | |||
compiler." | compiler." | |||
$run $rm $removelist | $run $rm $removelist | |||
exit $EXIT_FAILURE | exit 1 | |||
fi | fi | |||
# Just move the object if needed, then go on to compile the next one | # Just move the object if needed, then go on to compile the next one | |||
if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then | if test x"$output_obj" != x"$libobj"; then | |||
$show "$mv $output_obj $lobj" | $show "$mv $output_obj $libobj" | |||
if $run $mv $output_obj $lobj; then : | if $run $mv $output_obj $libobj; then : | |||
else | else | |||
error=$? | error=$? | |||
$run $rm $removelist | $run $rm $removelist | |||
exit $error | exit $error | |||
fi | fi | |||
fi | fi | |||
# Append the name of the PIC object to the libtool object file. | # If we have no pic_flag, then copy the object into place and finish. | |||
test -z "$run" && cat >> ${libobj}T <<EOF | if (test -z "$pic_flag" || test "$pic_mode" != default) && | |||
pic_object='$objdir/$objname' | test "$build_old_libs" = yes; then | |||
# Rename the .lo from within objdir to obj | ||||
if test -f $obj; then | ||||
$show $rm $obj | ||||
$run $rm $obj | ||||
fi | ||||
EOF | $show "$mv $libobj $obj" | |||
if $run $mv $libobj $obj; then : | ||||
else | ||||
error=$? | ||||
$run $rm $removelist | ||||
exit $error | ||||
fi | ||||
# Allow error messages only from the first compilation. | xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'` | |||
if test "$suppress_opt" = yes; then | if test "X$xdir" = "X$obj"; then | |||
suppress_output=' >/dev/null 2>&1' | xdir="." | |||
else | ||||
xdir="$xdir" | ||||
fi | ||||
baseobj=`$echo "X$obj" | $Xsed -e "s%.*/%%"` | ||||
libobj=`$echo "X$baseobj" | $Xsed -e "$o2lo"` | ||||
# Now arrange that obj and lo_libobj become the same file | ||||
$show "(cd $xdir && $LN_S $baseobj $libobj)" | ||||
if $run eval '(cd $xdir && $LN_S $baseobj $libobj)'; then | ||||
# Unlock the critical section if it was locked | ||||
if test "$need_locks" != no; then | ||||
$run $rm "$lockfile" | ||||
fi | ||||
exit 0 | ||||
else | ||||
error=$? | ||||
$run $rm $removelist | ||||
exit $error | ||||
fi | ||||
fi | fi | |||
else | ||||
# No PIC object so indicate it doesn't exist in the libtool | ||||
# object file. | ||||
test -z "$run" && cat >> ${libobj}T <<EOF | ||||
pic_object=none | ||||
EOF | # Allow error messages only from the first compilation. | |||
suppress_output=' >/dev/null 2>&1' | ||||
fi | fi | |||
# Only build a position-dependent object if we build old libraries. | # Only build a position-dependent object if we build old libraries. | |||
if test "$build_old_libs" = yes; then | if test "$build_old_libs" = yes; then | |||
if test "$pic_mode" != yes; then | if test "$pic_mode" != yes; then | |||
# Don't build PIC code | # Don't build PIC code | |||
command="$base_compile $qsrcfile" | command="$base_compile $srcfile" | |||
else | else | |||
command="$base_compile $qsrcfile $pic_flag" | # All platforms use -DPIC, to notify preprocessed assembler code. | |||
command="$base_compile $srcfile $pic_flag -DPIC" | ||||
fi | fi | |||
if test "$compiler_c_o" = yes; then | if test "$compiler_c_o" = yes; then | |||
command="$command -o $obj" | command="$command -o $obj" | |||
output_obj="$obj" | ||||
fi | fi | |||
# Suppress compiler output if we already did a PIC compilation. | # Suppress compiler output if we already did a PIC compilation. | |||
command="$command$suppress_output" | command="$command$suppress_output" | |||
$run $rm "$obj" "$output_obj" | $run $rm "$output_obj" | |||
$show "$command" | $show "$command" | |||
if $run eval "$command"; then : | if $run eval "$command"; then : | |||
else | else | |||
$run $rm $removelist | $run $rm $removelist | |||
exit $EXIT_FAILURE | exit 1 | |||
fi | fi | |||
if test "$need_locks" = warn && | if test "$need_locks" = warn && | |||
test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then | test x"`cat $lockfile 2>/dev/null`" != x"$srcfile"; then | |||
$echo "\ | echo "\ | |||
*** ERROR, $lockfile contains: | *** ERROR, $lockfile contains: | |||
`cat $lockfile 2>/dev/null` | `cat $lockfile 2>/dev/null` | |||
but it should contain: | but it should contain: | |||
$srcfile | $srcfile | |||
This indicates that another process is trying to use the same | This indicates that another process is trying to use the same | |||
temporary object file, and libtool could not work around it because | temporary object file, and libtool could not work around it because | |||
your compiler does not support \`-c' and \`-o' together. If you | your compiler does not support \`-c' and \`-o' together. If you | |||
repeat this compilation, it may succeed, by chance, but you had better | repeat this compilation, it may succeed, by chance, but you had better | |||
avoid parallel builds (make -j) in this platform, or get a better | avoid parallel builds (make -j) in this platform, or get a better | |||
compiler." | compiler." | |||
$run $rm $removelist | $run $rm $removelist | |||
exit $EXIT_FAILURE | exit 1 | |||
fi | fi | |||
# Just move the object if needed | # Just move the object if needed | |||
if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then | if test x"$output_obj" != x"$obj"; then | |||
$show "$mv $output_obj $obj" | $show "$mv $output_obj $obj" | |||
if $run $mv $output_obj $obj; then : | if $run $mv $output_obj $obj; then : | |||
else | else | |||
error=$? | error=$? | |||
$run $rm $removelist | $run $rm $removelist | |||
exit $error | exit $error | |||
fi | fi | |||
fi | fi | |||
# Append the name of the non-PIC object the libtool object file. | # Create an invalid libtool object if no PIC, so that we do not | |||
# Only append if the libtool object file exists. | # accidentally link it into a program. | |||
test -z "$run" && cat >> ${libobj}T <<EOF | if test "$build_libtool_libs" != yes; then | |||
# Name of the non-PIC object. | $show "echo timestamp > $libobj" | |||
non_pic_object='$objname' | $run eval "echo timestamp > \$libobj" || exit $? | |||
else | ||||
EOF | # Move the .lo from within objdir | |||
else | $show "$mv $libobj $lo_libobj" | |||
# Append the name of the non-PIC object the libtool object file. | if $run $mv $libobj $lo_libobj; then : | |||
# Only append if the libtool object file exists. | else | |||
test -z "$run" && cat >> ${libobj}T <<EOF | error=$? | |||
# Name of the non-PIC object. | $run $rm $removelist | |||
non_pic_object=none | exit $error | |||
fi | ||||
EOF | fi | |||
fi | fi | |||
$run $mv "${libobj}T" "${libobj}" | ||||
# Unlock the critical section if it was locked | # Unlock the critical section if it was locked | |||
if test "$need_locks" != no; then | if test "$need_locks" != no; then | |||
$run $rm "$lockfile" | $run $rm "$lockfile" | |||
fi | fi | |||
exit $EXIT_SUCCESS | exit 0 | |||
;; | ;; | |||
# libtool link mode | # libtool link mode | |||
link | relink) | link | relink) | |||
modename="$modename: link" | modename="$modename: link" | |||
case $host in | case $host in | |||
*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) | *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) | |||
# It is impossible to link a dll without this setting, and | # It is impossible to link a dll without this setting, and | |||
# we shouldn't force the makefile maintainer to figure out | # we shouldn't force the makefile maintainer to figure out | |||
# which system we are compiling for in order to pass an extra | # which system we are compiling for in order to pass an extra | |||
# flag for every libtool invocation. | # flag for every libtool invokation. | |||
# allow_undefined=no | # allow_undefined=no | |||
# FIXME: Unfortunately, there are problems with the above when trying | # FIXME: Unfortunately, there are problems with the above when trying | |||
# to make a dll which has undefined symbols, in which case not | # to make a dll which has undefined symbols, in which case not | |||
# even a static library is built. For now, we need to specify | # even a static library is built. For now, we need to specify | |||
# -no-undefined on the libtool link line when we can be certain | # -no-undefined on the libtool link line when we can be certain | |||
# that all symbols are satisfied, otherwise we get a static library. | # that all symbols are satisfied, otherwise we get a static library. | |||
allow_undefined=yes | allow_undefined=yes | |||
;; | ;; | |||
*) | *) | |||
allow_undefined=yes | allow_undefined=yes | |||
;; | ;; | |||
esac | esac | |||
libtool_args="$nonopt" | libtool_args="$nonopt" | |||
base_compile="$nonopt $@" | ||||
compile_command="$nonopt" | compile_command="$nonopt" | |||
finalize_command="$nonopt" | finalize_command="$nonopt" | |||
compile_rpath= | compile_rpath= | |||
finalize_rpath= | finalize_rpath= | |||
compile_shlibpath= | compile_shlibpath= | |||
finalize_shlibpath= | finalize_shlibpath= | |||
convenience= | convenience= | |||
old_convenience= | old_convenience= | |||
deplibs= | deplibs= | |||
skipping to change at line 1164 | skipping to change at line 789 | |||
dlself=no | dlself=no | |||
export_dynamic=no | export_dynamic=no | |||
export_symbols= | export_symbols= | |||
export_symbols_regex= | export_symbols_regex= | |||
generated= | generated= | |||
libobjs= | libobjs= | |||
ltlibs= | ltlibs= | |||
module=no | module=no | |||
no_install=no | no_install=no | |||
objs= | objs= | |||
non_pic_objects= | ||||
notinst_path= # paths that contain not-installed libtool libraries | ||||
precious_files_regex= | ||||
prefer_static_libs=no | prefer_static_libs=no | |||
preload=no | preload=no | |||
prev= | prev= | |||
prevarg= | prevarg= | |||
release= | release= | |||
rpath= | rpath= | |||
xrpath= | xrpath= | |||
perm_rpath= | perm_rpath= | |||
temp_rpath= | temp_rpath= | |||
thread_safe=no | thread_safe=no | |||
vinfo= | vinfo= | |||
vinfo_number=no | ||||
func_infer_tag $base_compile | ||||
# We need to know -static, to get the right output filenames. | # We need to know -static, to get the right output filenames. | |||
for arg | for arg | |||
do | do | |||
case $arg in | case $arg in | |||
-all-static | -static) | -all-static | -static) | |||
if test "X$arg" = "X-all-static"; then | if test "X$arg" = "X-all-static"; then | |||
if test "$build_libtool_libs" = yes && test -z "$link_static_flag" ; then | if test "$build_libtool_libs" = yes && test -z "$link_static_flag" ; then | |||
$echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2 | $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2 | |||
fi | fi | |||
if test -n "$link_static_flag"; then | if test -n "$link_static_flag"; then | |||
dlopen_self=$dlopen_self_static | dlopen_self=$dlopen_self_static | |||
fi | fi | |||
prefer_static_libs=yes | ||||
else | else | |||
if test -z "$pic_flag" && test -n "$link_static_flag"; then | if test -z "$pic_flag" && test -n "$link_static_flag"; then | |||
dlopen_self=$dlopen_self_static | dlopen_self=$dlopen_self_static | |||
fi | fi | |||
prefer_static_libs=built | ||||
fi | fi | |||
build_libtool_libs=no | build_libtool_libs=no | |||
build_old_libs=yes | build_old_libs=yes | |||
prefer_static_libs=yes | ||||
break | break | |||
;; | ;; | |||
esac | esac | |||
done | done | |||
# See if our shared archives depend on static archives. | # See if our shared archives depend on static archives. | |||
test -n "$old_archive_from_new_cmds" && build_old_libs=yes | test -n "$old_archive_from_new_cmds" && build_old_libs=yes | |||
# Go through the arguments, transforming them on the way. | # Go through the arguments, transforming them on the way. | |||
while test "$#" -gt 0; do | while test $# -gt 0; do | |||
arg="$1" | arg="$1" | |||
shift | shift | |||
case $arg in | case $arg in | |||
*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") | *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") | |||
qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite : skip nested quoting test | qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite : skip nested quoting test | |||
;; | ;; | |||
*) qarg=$arg ;; | *) qarg=$arg ;; | |||
esac | esac | |||
libtool_args="$libtool_args $qarg" | libtool_args="$libtool_args $qarg" | |||
skipping to change at line 1277 | skipping to change at line 895 | |||
fi | fi | |||
prev= | prev= | |||
continue | continue | |||
;; | ;; | |||
esac | esac | |||
;; | ;; | |||
expsyms) | expsyms) | |||
export_symbols="$arg" | export_symbols="$arg" | |||
if test ! -f "$arg"; then | if test ! -f "$arg"; then | |||
$echo "$modename: symbol file \`$arg' does not exist" | $echo "$modename: symbol file \`$arg' does not exist" | |||
exit $EXIT_FAILURE | exit 1 | |||
fi | fi | |||
prev= | prev= | |||
continue | continue | |||
;; | ;; | |||
expsyms_regex) | expsyms_regex) | |||
export_symbols_regex="$arg" | export_symbols_regex="$arg" | |||
prev= | prev= | |||
continue | continue | |||
;; | ;; | |||
inst_prefix) | inst_prefix) | |||
inst_prefix_dir="$arg" | inst_prefix_dir="$arg" | |||
prev= | prev= | |||
continue | continue | |||
;; | ;; | |||
precious_regex) | ||||
precious_files_regex="$arg" | ||||
prev= | ||||
continue | ||||
;; | ||||
release) | release) | |||
release="-$arg" | release="-$arg" | |||
prev= | prev= | |||
continue | continue | |||
;; | ;; | |||
objectlist) | ||||
if test -f "$arg"; then | ||||
save_arg=$arg | ||||
moreargs= | ||||
for fil in `cat $save_arg` | ||||
do | ||||
# moreargs="$moreargs $fil" | ||||
arg=$fil | ||||
# A libtool-controlled object. | ||||
# Check to see that this really is a libtool object. | ||||
if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") > /dev/null 2>&1; then | ||||
pic_object= | ||||
non_pic_object= | ||||
# Read the .lo file | ||||
# If there is no directory component, then add one. | ||||
case $arg in | ||||
*/* | *\\*) . $arg ;; | ||||
*) . ./$arg ;; | ||||
esac | ||||
if test -z "$pic_object" || \ | ||||
test -z "$non_pic_object" || | ||||
test "$pic_object" = none && \ | ||||
test "$non_pic_object" = none; then | ||||
$echo "$modename: cannot find name of object for \`$arg'" 1>&2 | ||||
exit $EXIT_FAILURE | ||||
fi | ||||
# Extract subdirectory from the argument. | ||||
xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` | ||||
if test "X$xdir" = "X$arg"; then | ||||
xdir= | ||||
else | ||||
xdir="$xdir/" | ||||
fi | ||||
if test "$pic_object" != none; then | ||||
# Prepend the subdirectory the object is found in. | ||||
pic_object="$xdir$pic_object" | ||||
if test "$prev" = dlfiles; then | ||||
if test "$build_libtool_libs" = yes && test "$dlopen_sup port" = yes; then | ||||
dlfiles="$dlfiles $pic_object" | ||||
prev= | ||||
continue | ||||
else | ||||
# If libtool objects are unsupported, then we need to preload. | ||||
prev=dlprefiles | ||||
fi | ||||
fi | ||||
# CHECK ME: I think I busted this. -Ossama | ||||
if test "$prev" = dlprefiles; then | ||||
# Preload the old-style object. | ||||
dlprefiles="$dlprefiles $pic_object" | ||||
prev= | ||||
fi | ||||
# A PIC object. | ||||
libobjs="$libobjs $pic_object" | ||||
arg="$pic_object" | ||||
fi | ||||
# Non-PIC object. | ||||
if test "$non_pic_object" != none; then | ||||
# Prepend the subdirectory the object is found in. | ||||
non_pic_object="$xdir$non_pic_object" | ||||
# A standard non-PIC object | ||||
non_pic_objects="$non_pic_objects $non_pic_object" | ||||
if test -z "$pic_object" || test "$pic_object" = none ; th en | ||||
arg="$non_pic_object" | ||||
fi | ||||
else | ||||
# If the PIC object exists, use it instead. | ||||
# $xdir was prepended to $pic_object above. | ||||
non_pic_object="$pic_object" | ||||
non_pic_objects="$non_pic_objects $non_pic_object" | ||||
fi | ||||
else | ||||
# Only an error if not doing a dry-run. | ||||
if test -z "$run"; then | ||||
$echo "$modename: \`$arg' is not a valid libtool object" 1 >&2 | ||||
exit $EXIT_FAILURE | ||||
else | ||||
# Dry-run case. | ||||
# Extract subdirectory from the argument. | ||||
xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` | ||||
if test "X$xdir" = "X$arg"; then | ||||
xdir= | ||||
else | ||||
xdir="$xdir/" | ||||
fi | ||||
pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$ lo2o"` | ||||
non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"` | ||||
libobjs="$libobjs $pic_object" | ||||
non_pic_objects="$non_pic_objects $non_pic_object" | ||||
fi | ||||
fi | ||||
done | ||||
else | ||||
$echo "$modename: link input file \`$save_arg' does not exist" | ||||
exit $EXIT_FAILURE | ||||
fi | ||||
arg=$save_arg | ||||
prev= | ||||
continue | ||||
;; | ||||
rpath | xrpath) | rpath | xrpath) | |||
# We need an absolute path. | # We need an absolute path. | |||
case $arg in | case $arg in | |||
[\\/]* | [A-Za-z]:[\\/]*) ;; | [\\/]* | [A-Za-z]:[\\/]*) ;; | |||
*) | *) | |||
$echo "$modename: only absolute run-paths are allowed" 1>&2 | $echo "$modename: only absolute run-paths are allowed" 1>&2 | |||
exit $EXIT_FAILURE | exit 1 | |||
;; | ;; | |||
esac | esac | |||
if test "$prev" = rpath; then | if test "$prev" = rpath; then | |||
case "$rpath " in | case "$rpath " in | |||
*" $arg "*) ;; | *" $arg "*) ;; | |||
*) rpath="$rpath $arg" ;; | *) rpath="$rpath $arg" ;; | |||
esac | esac | |||
else | else | |||
case "$xrpath " in | case "$xrpath " in | |||
*" $arg "*) ;; | *" $arg "*) ;; | |||
skipping to change at line 1452 | skipping to change at line 953 | |||
continue | continue | |||
;; | ;; | |||
xlinker) | xlinker) | |||
linker_flags="$linker_flags $qarg" | linker_flags="$linker_flags $qarg" | |||
compiler_flags="$compiler_flags $wl$qarg" | compiler_flags="$compiler_flags $wl$qarg" | |||
prev= | prev= | |||
compile_command="$compile_command $wl$qarg" | compile_command="$compile_command $wl$qarg" | |||
finalize_command="$finalize_command $wl$qarg" | finalize_command="$finalize_command $wl$qarg" | |||
continue | continue | |||
;; | ;; | |||
xcclinker) | ||||
linker_flags="$linker_flags $qarg" | ||||
compiler_flags="$compiler_flags $qarg" | ||||
prev= | ||||
compile_command="$compile_command $qarg" | ||||
finalize_command="$finalize_command $qarg" | ||||
continue | ||||
;; | ||||
shrext) | ||||
shrext_cmds="$arg" | ||||
prev= | ||||
continue | ||||
;; | ||||
darwin_framework|darwin_framework_skip) | ||||
test "$prev" = "darwin_framework" && compiler_flags="$compiler_fla gs $arg" | ||||
compile_command="$compile_command $arg" | ||||
finalize_command="$finalize_command $arg" | ||||
prev= | ||||
continue | ||||
;; | ||||
*) | *) | |||
eval "$prev=\"\$arg\"" | eval "$prev=\"\$arg\"" | |||
prev= | prev= | |||
continue | continue | |||
;; | ;; | |||
esac | esac | |||
fi # test -n "$prev" | fi # test -n $prev | |||
prevarg="$arg" | prevarg="$arg" | |||
case $arg in | case $arg in | |||
-all-static) | -all-static) | |||
if test -n "$link_static_flag"; then | if test -n "$link_static_flag"; then | |||
compile_command="$compile_command $link_static_flag" | compile_command="$compile_command $link_static_flag" | |||
finalize_command="$finalize_command $link_static_flag" | finalize_command="$finalize_command $link_static_flag" | |||
fi | fi | |||
continue | continue | |||
skipping to change at line 1520 | skipping to change at line 1001 | |||
;; | ;; | |||
-export-dynamic) | -export-dynamic) | |||
export_dynamic=yes | export_dynamic=yes | |||
continue | continue | |||
;; | ;; | |||
-export-symbols | -export-symbols-regex) | -export-symbols | -export-symbols-regex) | |||
if test -n "$export_symbols" || test -n "$export_symbols_regex"; the n | if test -n "$export_symbols" || test -n "$export_symbols_regex"; the n | |||
$echo "$modename: more than one -exported-symbols argument is not allowed" | $echo "$modename: more than one -exported-symbols argument is not allowed" | |||
exit $EXIT_FAILURE | exit 1 | |||
fi | fi | |||
if test "X$arg" = "X-export-symbols"; then | if test "X$arg" = "X-export-symbols"; then | |||
prev=expsyms | prev=expsyms | |||
else | else | |||
prev=expsyms_regex | prev=expsyms_regex | |||
fi | fi | |||
continue | continue | |||
;; | ;; | |||
-framework|-arch|-isysroot) | ||||
case " $CC " in | ||||
*" ${arg} ${1} "* | *" ${arg} ${1} "*) | ||||
prev=darwin_framework_skip ;; | ||||
*) compiler_flags="$compiler_flags $arg" | ||||
prev=darwin_framework ;; | ||||
esac | ||||
compile_command="$compile_command $arg" | ||||
finalize_command="$finalize_command $arg" | ||||
continue | ||||
;; | ||||
-inst-prefix-dir) | -inst-prefix-dir) | |||
prev=inst_prefix | prev=inst_prefix | |||
continue | continue | |||
;; | ;; | |||
# The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* | # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* | |||
# so, if we see these flags be careful not to treat them like -L | # so, if we see these flags be careful not to treat them like -L | |||
-L[A-Z][A-Z]*:*) | -L[A-Z][A-Z]*:*) | |||
case $with_gcc/$host in | case $with_gcc/$host in | |||
no/*-*-irix* | /*-*-irix*) | no/*-*-irix* | no/*-*-nonstopux*) | |||
compile_command="$compile_command $arg" | compile_command="$compile_command $arg" | |||
finalize_command="$finalize_command $arg" | finalize_command="$finalize_command $arg" | |||
;; | ;; | |||
esac | esac | |||
continue | continue | |||
;; | ;; | |||
-L*) | -L*) | |||
dir=`$echo "X$arg" | $Xsed -e 's/^-L//'` | dir=`$echo "X$arg" | $Xsed -e 's/^-L//'` | |||
# We need an absolute path. | # We need an absolute path. | |||
case $dir in | case $dir in | |||
[\\/]* | [A-Za-z]:[\\/]*) ;; | [\\/]* | [A-Za-z]:[\\/]*) ;; | |||
*) | *) | |||
absdir=`cd "$dir" && pwd` | absdir=`cd "$dir" && pwd` | |||
if test -z "$absdir"; then | if test -z "$absdir"; then | |||
$echo "$modename: cannot determine absolute directory name of \` $dir'" 1>&2 | $echo "$modename: cannot determine absolute directory name of \` $dir'" 1>&2 | |||
absdir="$dir" | exit 1 | |||
notinst_path="$notinst_path $dir" | ||||
fi | fi | |||
dir="$absdir" | dir="$absdir" | |||
;; | ;; | |||
esac | esac | |||
case "$deplibs " in | case "$deplibs " in | |||
*" -L$dir "*) ;; | *" -L$dir "*) ;; | |||
*) | *) | |||
deplibs="$deplibs -L$dir" | deplibs="$deplibs -L$dir" | |||
lib_search_path="$lib_search_path $dir" | lib_search_path="$lib_search_path $dir" | |||
;; | ;; | |||
esac | esac | |||
case $host in | case $host in | |||
*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) | *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) | |||
testbindir=`$echo "X$dir" | $Xsed -e 's*/lib$*/bin*'` | ||||
case :$dllsearchpath: in | case :$dllsearchpath: in | |||
*":$dir:"*) ;; | *":$dir:"*) ;; | |||
*) dllsearchpath="$dllsearchpath:$dir";; | *) dllsearchpath="$dllsearchpath:$dir";; | |||
esac | esac | |||
case :$dllsearchpath: in | ||||
*":$testbindir:"*) ;; | ||||
*) dllsearchpath="$dllsearchpath:$testbindir";; | ||||
esac | ||||
;; | ;; | |||
esac | esac | |||
continue | continue | |||
;; | ;; | |||
-l*) | -l*) | |||
if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then | if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then | |||
case $host in | case $host in | |||
*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos*) | *-*-cygwin* | *-*-pw32* | *-*-beos*) | |||
# These systems don't actually have a C or math library (as such ) | # These systems don't actually have a C or math library (as such ) | |||
continue | continue | |||
;; | ;; | |||
*-*-os2*) | *-*-mingw* | *-*-os2*) | |||
# These systems don't actually have a C library (as such) | # These systems don't actually have a C library (as such) | |||
test "X$arg" = "X-lc" && continue | test "X$arg" = "X-lc" && continue | |||
;; | ;; | |||
*-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) | *-*-openbsd* | *-*-freebsd*) | |||
# Do not include libc due to us having libc/libc_r. | # Do not include libc due to us having libc/libc_r. | |||
test "X$arg" = "X-lc" && continue | test "X$arg" = "X-lc" && continue | |||
;; | ;; | |||
*-*-rhapsody* | *-*-darwin1.[012]) | esac | |||
# Rhapsody C and math libraries are in the System framework | elif test "X$arg" = "X-lc_r"; then | |||
deplibs="$deplibs -framework System" | case $host in | |||
*-*-openbsd* | *-*-freebsd*) | ||||
# Do not include libc_r directly, use -pthread flag. | ||||
continue | continue | |||
;; | ;; | |||
*-*-sco3.2v5* | *-*-sco5v6*) | ||||
# Causes problems with __ctype | ||||
test "X$arg" = "X-lc" && continue | ||||
;; | ||||
*-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) | ||||
# Compiler inserts libc in the correct place for threads to work | ||||
test "X$arg" = "X-lc" && continue | ||||
;; | ||||
esac | esac | |||
elif test "X$arg" = "X-lc_r"; then | ||||
case $host in | ||||
*-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) | ||||
# Do not include libc_r directly, use -pthread flag. | ||||
continue | ||||
;; | ||||
esac | ||||
fi | fi | |||
deplibs="$deplibs $arg" | deplibs="$deplibs $arg" | |||
continue | continue | |||
;; | ;; | |||
# Tru64 UNIX uses -model [arg] to determine the layout of C++ | ||||
# classes, name mangling, and exception handling. | ||||
-model) | ||||
compile_command="$compile_command $arg" | ||||
compiler_flags="$compiler_flags $arg" | ||||
finalize_command="$finalize_command $arg" | ||||
prev=xcompiler | ||||
continue | ||||
;; | ||||
-mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe) | ||||
compiler_flags="$compiler_flags $arg" | ||||
compile_command="$compile_command $arg" | ||||
finalize_command="$finalize_command $arg" | ||||
continue | ||||
;; | ||||
-module) | -module) | |||
module=yes | module=yes | |||
continue | continue | |||
;; | ;; | |||
# -64, -mips[0-9] enable 64-bit mode on the SGI compiler | ||||
# -r[0-9][0-9]* specifies the processor on the SGI compiler | ||||
# -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler | ||||
# +DA*, +DD* enable 64-bit mode on the HP compiler | ||||
# -q* pass through compiler args for the IBM compiler | ||||
# -m* pass through architecture-specific compiler args for GCC | ||||
# -m*, -t[45]*, -txscale* pass through architecture-specific | ||||
# compiler args for GCC | ||||
# -pg pass through profiling flag for GCC | ||||
# @file GCC response files | ||||
-64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*|-p g| \ | ||||
-t[45]*|-txscale*|@*) | ||||
# Unknown arguments in both finalize_command and compile_command nee d | ||||
# to be aesthetically quoted because they are evaled later. | ||||
arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` | ||||
case $arg in | ||||
*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") | ||||
arg="\"$arg\"" | ||||
;; | ||||
esac | ||||
compile_command="$compile_command $arg" | ||||
finalize_command="$finalize_command $arg" | ||||
compiler_flags="$compiler_flags $arg" | ||||
continue | ||||
;; | ||||
-shrext) | ||||
prev=shrext | ||||
continue | ||||
;; | ||||
-no-fast-install) | -no-fast-install) | |||
fast_install=no | fast_install=no | |||
continue | continue | |||
;; | ;; | |||
-no-install) | -no-install) | |||
case $host in | case $host in | |||
*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) | *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) | |||
# The PATH hackery in wrapper scripts is required on Windows | # The PATH hackery in wrapper scripts is required on Windows | |||
# in order for the loader to find any dlls it needs. | # in order for the loader to find any dlls it needs. | |||
skipping to change at line 1716 | skipping to change at line 1117 | |||
*) no_install=yes ;; | *) no_install=yes ;; | |||
esac | esac | |||
continue | continue | |||
;; | ;; | |||
-no-undefined) | -no-undefined) | |||
allow_undefined=no | allow_undefined=no | |||
continue | continue | |||
;; | ;; | |||
-objectlist) | ||||
prev=objectlist | ||||
continue | ||||
;; | ||||
-o) prev=output ;; | -o) prev=output ;; | |||
-precious-files-regex) | ||||
prev=precious_regex | ||||
continue | ||||
;; | ||||
-release) | -release) | |||
prev=release | prev=release | |||
continue | continue | |||
;; | ;; | |||
-rpath) | -rpath) | |||
prev=rpath | prev=rpath | |||
continue | continue | |||
;; | ;; | |||
skipping to change at line 1750 | skipping to change at line 1141 | |||
continue | continue | |||
;; | ;; | |||
-R*) | -R*) | |||
dir=`$echo "X$arg" | $Xsed -e 's/^-R//'` | dir=`$echo "X$arg" | $Xsed -e 's/^-R//'` | |||
# We need an absolute path. | # We need an absolute path. | |||
case $dir in | case $dir in | |||
[\\/]* | [A-Za-z]:[\\/]*) ;; | [\\/]* | [A-Za-z]:[\\/]*) ;; | |||
*) | *) | |||
$echo "$modename: only absolute run-paths are allowed" 1>&2 | $echo "$modename: only absolute run-paths are allowed" 1>&2 | |||
exit $EXIT_FAILURE | exit 1 | |||
;; | ;; | |||
esac | esac | |||
case "$xrpath " in | case "$xrpath " in | |||
*" $dir "*) ;; | *" $dir "*) ;; | |||
*) xrpath="$xrpath $dir" ;; | *) xrpath="$xrpath $dir" ;; | |||
esac | esac | |||
continue | continue | |||
;; | ;; | |||
-static) | -static) | |||
skipping to change at line 1778 | skipping to change at line 1169 | |||
-thread-safe) | -thread-safe) | |||
thread_safe=yes | thread_safe=yes | |||
continue | continue | |||
;; | ;; | |||
-version-info) | -version-info) | |||
prev=vinfo | prev=vinfo | |||
continue | continue | |||
;; | ;; | |||
-version-number) | ||||
prev=vinfo | ||||
vinfo_number=yes | ||||
continue | ||||
;; | ||||
-Wc,*) | -Wc,*) | |||
args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'` | args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'` | |||
arg= | arg= | |||
save_ifs="$IFS"; IFS=',' | save_ifs="$IFS"; IFS=',' | |||
for flag in $args; do | for flag in $args; do | |||
IFS="$save_ifs" | IFS="$save_ifs" | |||
case $flag in | case $flag in | |||
*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") | *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") | |||
flag="\"$flag\"" | flag="\"$flag\"" | |||
skipping to change at line 1831 | skipping to change at line 1217 | |||
-Xcompiler) | -Xcompiler) | |||
prev=xcompiler | prev=xcompiler | |||
continue | continue | |||
;; | ;; | |||
-Xlinker) | -Xlinker) | |||
prev=xlinker | prev=xlinker | |||
continue | continue | |||
;; | ;; | |||
-XCClinker) | -Kthread | -mthreads | -mt | -pthread | -pthreads | -threads | -qthre aded | -kthread ) | |||
prev=xcclinker | compiler_flags="$compiler_flags $arg" | |||
continue | continue | |||
;; | ;; | |||
# Some other compiler flag. | # Some other compiler flag. | |||
-* | +*) | -* | +*) | |||
# Unknown arguments in both finalize_command and compile_command nee d | # Unknown arguments in both finalize_command and compile_command nee d | |||
# to be aesthetically quoted because they are evaled later. | # to be aesthetically quoted because they are evaled later. | |||
arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` | arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` | |||
case $arg in | case $arg in | |||
*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") | *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") | |||
arg="\"$arg\"" | arg="\"$arg\"" | |||
;; | ;; | |||
esac | esac | |||
;; | ;; | |||
*.$objext) | ||||
# A standard object. | ||||
objs="$objs $arg" | ||||
;; | ||||
*.lo) | ||||
# A libtool-controlled object. | ||||
# Check to see that this really is a libtool object. | ||||
if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/n ull 2>&1; then | ||||
pic_object= | ||||
non_pic_object= | ||||
# Read the .lo file | ||||
# If there is no directory component, then add one. | ||||
case $arg in | ||||
*/* | *\\*) . $arg ;; | ||||
*) . ./$arg ;; | ||||
esac | ||||
if test -z "$pic_object" || \ | ||||
test -z "$non_pic_object" || | ||||
test "$pic_object" = none && \ | ||||
test "$non_pic_object" = none; then | ||||
$echo "$modename: cannot find name of object for \`$arg'" 1>&2 | ||||
exit $EXIT_FAILURE | ||||
fi | ||||
# Extract subdirectory from the argument. | ||||
xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` | ||||
if test "X$xdir" = "X$arg"; then | ||||
xdir= | ||||
else | ||||
xdir="$xdir/" | ||||
fi | ||||
if test "$pic_object" != none; then | ||||
# Prepend the subdirectory the object is found in. | ||||
pic_object="$xdir$pic_object" | ||||
if test "$prev" = dlfiles; then | ||||
if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then | ||||
dlfiles="$dlfiles $pic_object" | ||||
prev= | ||||
continue | ||||
else | ||||
# If libtool objects are unsupported, then we need to preloa d. | ||||
prev=dlprefiles | ||||
fi | ||||
fi | ||||
# CHECK ME: I think I busted this. -Ossama | ||||
if test "$prev" = dlprefiles; then | ||||
# Preload the old-style object. | ||||
dlprefiles="$dlprefiles $pic_object" | ||||
prev= | ||||
fi | ||||
# A PIC object. | ||||
libobjs="$libobjs $pic_object" | ||||
arg="$pic_object" | ||||
fi | ||||
# Non-PIC object. | ||||
if test "$non_pic_object" != none; then | ||||
# Prepend the subdirectory the object is found in. | ||||
non_pic_object="$xdir$non_pic_object" | ||||
# A standard non-PIC object | *.lo | *.$objext) | |||
non_pic_objects="$non_pic_objects $non_pic_object" | # A library or standard object. | |||
if test -z "$pic_object" || test "$pic_object" = none ; then | if test "$prev" = dlfiles; then | |||
arg="$non_pic_object" | # This file was specified with -dlopen. | |||
fi | if test "$build_libtool_libs" = yes && test "$dlopen_support" = ye s; then | |||
dlfiles="$dlfiles $arg" | ||||
prev= | ||||
continue | ||||
else | else | |||
# If the PIC object exists, use it instead. | # If libtool objects are unsupported, then we need to preload. | |||
# $xdir was prepended to $pic_object above. | prev=dlprefiles | |||
non_pic_object="$pic_object" | ||||
non_pic_objects="$non_pic_objects $non_pic_object" | ||||
fi | fi | |||
else | fi | |||
# Only an error if not doing a dry-run. | ||||
if test -z "$run"; then | ||||
$echo "$modename: \`$arg' is not a valid libtool object" 1>&2 | ||||
exit $EXIT_FAILURE | ||||
else | ||||
# Dry-run case. | ||||
# Extract subdirectory from the argument. | ||||
xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` | ||||
if test "X$xdir" = "X$arg"; then | ||||
xdir= | ||||
else | ||||
xdir="$xdir/" | ||||
fi | ||||
pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"` | if test "$prev" = dlprefiles; then | |||
non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"` | # Preload the old-style object. | |||
libobjs="$libobjs $pic_object" | dlprefiles="$dlprefiles "`$echo "X$arg" | $Xsed -e "$lo2o"` | |||
non_pic_objects="$non_pic_objects $non_pic_object" | prev= | |||
fi | else | |||
case $arg in | ||||
*.lo) libobjs="$libobjs $arg" ;; | ||||
*) objs="$objs $arg" ;; | ||||
esac | ||||
fi | fi | |||
;; | ;; | |||
*.$libext) | *.$libext) | |||
# An archive. | # An archive. | |||
deplibs="$deplibs $arg" | deplibs="$deplibs $arg" | |||
old_deplibs="$old_deplibs $arg" | old_deplibs="$old_deplibs $arg" | |||
continue | continue | |||
;; | ;; | |||
skipping to change at line 1998 | skipping to change at line 1307 | |||
# Now actually substitute the argument into the commands. | # Now actually substitute the argument into the commands. | |||
if test -n "$arg"; then | if test -n "$arg"; then | |||
compile_command="$compile_command $arg" | compile_command="$compile_command $arg" | |||
finalize_command="$finalize_command $arg" | finalize_command="$finalize_command $arg" | |||
fi | fi | |||
done # argument parsing loop | done # argument parsing loop | |||
if test -n "$prev"; then | if test -n "$prev"; then | |||
$echo "$modename: the \`$prevarg' option requires an argument" 1>&2 | $echo "$modename: the \`$prevarg' option requires an argument" 1>&2 | |||
$echo "$help" 1>&2 | $echo "$help" 1>&2 | |||
exit $EXIT_FAILURE | exit 1 | |||
fi | fi | |||
if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then | if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then | |||
eval arg=\"$export_dynamic_flag_spec\" | eval arg=\"$export_dynamic_flag_spec\" | |||
compile_command="$compile_command $arg" | compile_command="$compile_command $arg" | |||
finalize_command="$finalize_command $arg" | finalize_command="$finalize_command $arg" | |||
fi | fi | |||
oldlibs= | ||||
# calculate the name of the file, without its directory | # calculate the name of the file, without its directory | |||
outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'` | outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'` | |||
libobjs_save="$libobjs" | libobjs_save="$libobjs" | |||
if test -n "$shlibpath_var"; then | if test -n "$shlibpath_var"; then | |||
# get the directories listed in $shlibpath_var | # get the directories listed in $shlibpath_var | |||
eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\` | eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\` | |||
else | else | |||
shlib_search_path= | shlib_search_path= | |||
fi | fi | |||
eval sys_lib_search_path=\"$sys_lib_search_path_spec\" | eval sys_lib_search_path=\"$sys_lib_search_path_spec\" | |||
eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" | eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" | |||
output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'` | output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'` | |||
if test "X$output_objdir" = "X$output"; then | if test "X$output_objdir" = "X$output"; then | |||
output_objdir="$objdir" | output_objdir="$objdir" | |||
else | else | |||
output_objdir="$output_objdir/$objdir" | output_objdir="$output_objdir/$objdir" | |||
fi | fi | |||
# Create the object directory. | # Create the object directory. | |||
if test ! -d "$output_objdir"; then | if test ! -d $output_objdir; then | |||
$show "$mkdir $output_objdir" | $show "$mkdir $output_objdir" | |||
$run $mkdir $output_objdir | $run $mkdir $output_objdir | |||
exit_status=$? | status=$? | |||
if test "$exit_status" -ne 0 && test ! -d "$output_objdir"; then | if test $status -ne 0 && test ! -d $output_objdir; then | |||
exit $exit_status | exit $status | |||
fi | fi | |||
fi | fi | |||
# Determine the type of output | # Determine the type of output | |||
case $output in | case $output in | |||
"") | "") | |||
$echo "$modename: you must specify an output file" 1>&2 | $echo "$modename: you must specify an output file" 1>&2 | |||
$echo "$help" 1>&2 | $echo "$help" 1>&2 | |||
exit $EXIT_FAILURE | exit 1 | |||
;; | ;; | |||
*.$libext) linkmode=oldlib ;; | *.$libext) linkmode=oldlib ;; | |||
*.lo | *.$objext) linkmode=obj ;; | *.lo | *.$objext) linkmode=obj ;; | |||
*.la) linkmode=lib ;; | *.la) linkmode=lib ;; | |||
*) linkmode=prog ;; # Anything else should be a program. | *) linkmode=prog ;; # Anything else should be a program. | |||
esac | esac | |||
case $host in | ||||
*cygwin* | *mingw* | *pw32*) | ||||
# don't eliminate duplications in $postdeps and $predeps | ||||
duplicate_compiler_generated_deps=yes | ||||
;; | ||||
*) | ||||
duplicate_compiler_generated_deps=$duplicate_deps | ||||
;; | ||||
esac | ||||
specialdeplibs= | specialdeplibs= | |||
libs= | libs= | |||
# Find all interdependent deplibs by searching for libraries | # Find all interdependent deplibs by searching for libraries | |||
# that are linked more than once (e.g. -la -lb -la) | # that are linked more than once (e.g. -la -lb -la) | |||
for deplib in $deplibs; do | for deplib in $deplibs; do | |||
if test "X$duplicate_deps" = "Xyes" ; then | if test "X$duplicate_deps" = "Xyes" ; then | |||
case "$libs " in | case "$libs " in | |||
*" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; | *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; | |||
esac | esac | |||
fi | fi | |||
libs="$libs $deplib" | libs="$libs $deplib" | |||
done | done | |||
if test "$linkmode" = lib; then | ||||
libs="$predeps $libs $compiler_lib_search_path $postdeps" | ||||
# Compute libraries that are listed more than once in $predeps | ||||
# $postdeps and mark them as special (i.e., whose duplicates are | ||||
# not to be eliminated). | ||||
pre_post_deps= | ||||
if test "X$duplicate_compiler_generated_deps" = "Xyes" ; then | ||||
for pre_post_dep in $predeps $postdeps; do | ||||
case "$pre_post_deps " in | ||||
*" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_dep s" ;; | ||||
esac | ||||
pre_post_deps="$pre_post_deps $pre_post_dep" | ||||
done | ||||
fi | ||||
pre_post_deps= | ||||
fi | ||||
deplibs= | deplibs= | |||
newdependency_libs= | newdependency_libs= | |||
newlib_search_path= | newlib_search_path= | |||
need_relink=no # whether we're linking any uninstalled libtool librarie s | need_relink=no # whether we're linking any uninstalled libtool librarie s | |||
notinst_deplibs= # not-installed libtool libraries | notinst_deplibs= # not-installed libtool libraries | |||
notinst_path= # paths that contain not-installed libtool libraries | ||||
case $linkmode in | case $linkmode in | |||
lib) | lib) | |||
passes="conv link" | passes="conv link" | |||
for file in $dlfiles $dlprefiles; do | for file in $dlfiles $dlprefiles; do | |||
case $file in | case $file in | |||
*.la) ;; | *.la) ;; | |||
*) | *) | |||
$echo "$modename: libraries can \`-dlopen' only libtool librarie s: $file" 1>&2 | $echo "$modename: libraries can \`-dlopen' only libtool librarie s: $file" 1>&2 | |||
exit $EXIT_FAILURE | exit 1 | |||
;; | ;; | |||
esac | esac | |||
done | done | |||
;; | ;; | |||
prog) | prog) | |||
compile_deplibs= | compile_deplibs= | |||
finalize_deplibs= | finalize_deplibs= | |||
alldeplibs=no | alldeplibs=no | |||
newdlfiles= | newdlfiles= | |||
newdlprefiles= | newdlprefiles= | |||
passes="conv scan dlopen dlpreopen link" | passes="conv scan dlopen dlpreopen link" | |||
;; | ;; | |||
*) passes="conv" | *) passes="conv" | |||
;; | ;; | |||
esac | esac | |||
for pass in $passes; do | for pass in $passes; do | |||
if test "$linkmode,$pass" = "lib,link" || | ||||
test "$linkmode,$pass" = "prog,scan"; then | ||||
libs="$deplibs" | ||||
deplibs= | ||||
fi | ||||
if test "$linkmode" = prog; then | if test "$linkmode" = prog; then | |||
# Determine which files to process | ||||
case $pass in | case $pass in | |||
dlopen) libs="$dlfiles" ;; | dlopen) | |||
libs="$dlfiles" | ||||
save_deplibs="$deplibs" # Collect dlpreopened libraries | ||||
deplibs= | ||||
;; | ||||
dlpreopen) libs="$dlprefiles" ;; | dlpreopen) libs="$dlprefiles" ;; | |||
link) libs="$deplibs %DEPLIBS% $dependency_libs" ;; | link) libs="$deplibs %DEPLIBS% $dependency_libs" ;; | |||
esac | esac | |||
fi | fi | |||
if test "$pass" = dlopen; then | ||||
# Collect dlpreopened libraries | ||||
save_deplibs="$deplibs" | ||||
deplibs= | ||||
fi | ||||
for deplib in $libs; do | for deplib in $libs; do | |||
lib= | lib= | |||
found=no | found=no | |||
case $deplib in | case $deplib in | |||
-mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe) | ||||
if test "$linkmode,$pass" = "prog,link"; then | ||||
compile_deplibs="$deplib $compile_deplibs" | ||||
finalize_deplibs="$deplib $finalize_deplibs" | ||||
else | ||||
compiler_flags="$compiler_flags $deplib" | ||||
fi | ||||
continue | ||||
;; | ||||
-l*) | -l*) | |||
if test "$linkmode" != lib && test "$linkmode" != prog; then | if test "$linkmode" = oldlib && test "$linkmode" = obj; then | |||
$echo "$modename: warning: \`-l' is ignored for archives/objects " 1>&2 | $echo "$modename: warning: \`-l' is ignored for archives/objects : $deplib" 1>&2 | |||
continue | ||||
fi | ||||
if test "$pass" = conv; then | ||||
deplibs="$deplib $deplibs" | ||||
continue | continue | |||
fi | fi | |||
name=`$echo "X$deplib" | $Xsed -e 's/^-l//'` | name=`$echo "X$deplib" | $Xsed -e 's/^-l//'` | |||
for searchdir in $newlib_search_path $lib_search_path $sys_lib_sea rch_path $shlib_search_path; do | for searchdir in $newlib_search_path $lib_search_path $sys_lib_sea rch_path $shlib_search_path; do | |||
for search_ext in .la $std_shrext .so .a; do | # Search the libtool library | |||
# Search the libtool library | lib="$searchdir/lib${name}.la" | |||
lib="$searchdir/lib${name}${search_ext}" | if test -f "$lib"; then | |||
if test -f "$lib"; then | found=yes | |||
if test "$search_ext" = ".la"; then | break | |||
found=yes | fi | |||
else | ||||
found=no | ||||
fi | ||||
break 2 | ||||
fi | ||||
done | ||||
done | done | |||
if test "$found" != yes; then | if test "$found" != yes; then | |||
# deplib doesn't seem to be a libtool library | # deplib doesn't seem to be a libtool library | |||
if test "$linkmode,$pass" = "prog,link"; then | if test "$linkmode,$pass" = "prog,link"; then | |||
compile_deplibs="$deplib $compile_deplibs" | compile_deplibs="$deplib $compile_deplibs" | |||
finalize_deplibs="$deplib $finalize_deplibs" | finalize_deplibs="$deplib $finalize_deplibs" | |||
else | else | |||
deplibs="$deplib $deplibs" | deplibs="$deplib $deplibs" | |||
test "$linkmode" = lib && newdependency_libs="$deplib $newdepe ndency_libs" | test "$linkmode" = lib && newdependency_libs="$deplib $newdepe ndency_libs" | |||
fi | fi | |||
continue | continue | |||
else # deplib is a libtool library | ||||
# If $allow_libtool_libs_with_static_runtimes && $deplib is a st dlib, | ||||
# We need to do some special things here, and not later. | ||||
if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; t hen | ||||
case " $predeps $postdeps " in | ||||
*" $deplib "*) | ||||
if (${SED} -e '2q' $lib | | ||||
grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; the n | ||||
library_names= | ||||
old_library= | ||||
case $lib in | ||||
*/* | *\\*) . $lib ;; | ||||
*) . ./$lib ;; | ||||
esac | ||||
for l in $old_library $library_names; do | ||||
ll="$l" | ||||
done | ||||
if test "X$ll" = "X$old_library" ; then # only static vers ion available | ||||
found=no | ||||
ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` | ||||
test "X$ladir" = "X$lib" && ladir="." | ||||
lib=$ladir/$old_library | ||||
if test "$linkmode,$pass" = "prog,link"; then | ||||
compile_deplibs="$deplib $compile_deplibs" | ||||
finalize_deplibs="$deplib $finalize_deplibs" | ||||
else | ||||
deplibs="$deplib $deplibs" | ||||
test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" | ||||
fi | ||||
continue | ||||
fi | ||||
fi | ||||
;; | ||||
*) ;; | ||||
esac | ||||
fi | ||||
fi | fi | |||
;; # -l | ;; # -l | |||
-L*) | -L*) | |||
case $linkmode in | case $linkmode in | |||
lib) | lib) | |||
deplibs="$deplib $deplibs" | deplibs="$deplib $deplibs" | |||
test "$pass" = conv && continue | test "$pass" = conv && continue | |||
newdependency_libs="$deplib $newdependency_libs" | newdependency_libs="$deplib $newdependency_libs" | |||
newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xs ed -e 's/^-L//'` | newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xs ed -e 's/^-L//'` | |||
;; | ;; | |||
prog) | prog) | |||
if test "$pass" = conv; then | if test "$pass" = conv; then | |||
deplibs="$deplib $deplibs" | deplibs="$deplib $deplibs" | |||
continue | continue | |||
fi | fi | |||
if test "$pass" = scan; then | if test "$pass" = scan; then | |||
deplibs="$deplib $deplibs" | deplibs="$deplib $deplibs" | |||
newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $ Xsed -e 's/^-L//'` | ||||
else | else | |||
compile_deplibs="$deplib $compile_deplibs" | compile_deplibs="$deplib $compile_deplibs" | |||
finalize_deplibs="$deplib $finalize_deplibs" | finalize_deplibs="$deplib $finalize_deplibs" | |||
fi | fi | |||
newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xs ed -e 's/^-L//'` | ||||
;; | ;; | |||
*) | *) | |||
$echo "$modename: warning: \`-L' is ignored for archives/objects " 1>&2 | $echo "$modename: warning: \`-L' is ignored for archives/objects : $deplib" 1>&2 | |||
;; | ;; | |||
esac # linkmode | esac # linkmode | |||
continue | continue | |||
;; # -L | ;; # -L | |||
-R*) | -R*) | |||
if test "$pass" = link; then | if test "$pass" = link; then | |||
dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'` | dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'` | |||
# Make sure the xrpath contains only unique directories. | # Make sure the xrpath contains only unique directories. | |||
case "$xrpath " in | case "$xrpath " in | |||
*" $dir "*) ;; | *" $dir "*) ;; | |||
skipping to change at line 2266 | skipping to change at line 1494 | |||
continue | continue | |||
;; | ;; | |||
*.la) lib="$deplib" ;; | *.la) lib="$deplib" ;; | |||
*.$libext) | *.$libext) | |||
if test "$pass" = conv; then | if test "$pass" = conv; then | |||
deplibs="$deplib $deplibs" | deplibs="$deplib $deplibs" | |||
continue | continue | |||
fi | fi | |||
case $linkmode in | case $linkmode in | |||
lib) | lib) | |||
valid_a_lib=no | if test "$deplibs_check_method" != pass_all; then | |||
case $deplibs_check_method in | echo | |||
match_pattern*) | echo "*** Warning: Trying to link with static lib archive $dep lib." | |||
set dummy $deplibs_check_method | echo "*** I have the capability to make that library automatic ally link in when" | |||
match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.* \)"` | echo "*** you link to this library. But I can only do this if you have a" | |||
if eval $echo \"$deplib\" 2>/dev/null \ | echo "*** shared version of the library, which you do not appe ar to have" | |||
| $SED 10q \ | echo "*** because the file extensions .$libext of this argumen t makes me believe" | |||
| $EGREP "$match_pattern_regex" > /dev/null; then | echo "*** that it is just a static archive that I should not u sed here." | |||
valid_a_lib=yes | ||||
fi | ||||
;; | ||||
pass_all) | ||||
valid_a_lib=yes | ||||
;; | ||||
esac | ||||
if test "$valid_a_lib" != yes; then | ||||
$echo | ||||
$echo "*** Warning: Trying to link with static lib archive $de plib." | ||||
$echo "*** I have the capability to make that library automati cally link in when" | ||||
$echo "*** you link to this library. But I can only do this i f you have a" | ||||
$echo "*** shared version of the library, which you do not app ear to have" | ||||
$echo "*** because the file extensions .$libext of this argume nt makes me believe" | ||||
$echo "*** that it is just a static archive that I should not used here." | ||||
else | else | |||
$echo | echo | |||
$echo "*** Warning: Linking the shared library $output against the" | echo "*** Warning: Linking the shared library $output against the" | |||
$echo "*** static library $deplib is not portable!" | echo "*** static library $deplib is not portable!" | |||
deplibs="$deplib $deplibs" | deplibs="$deplib $deplibs" | |||
fi | fi | |||
continue | continue | |||
;; | ;; | |||
prog) | prog) | |||
if test "$pass" != link; then | if test "$pass" != link; then | |||
deplibs="$deplib $deplibs" | deplibs="$deplib $deplibs" | |||
else | else | |||
compile_deplibs="$deplib $compile_deplibs" | compile_deplibs="$deplib $compile_deplibs" | |||
finalize_deplibs="$deplib $finalize_deplibs" | finalize_deplibs="$deplib $finalize_deplibs" | |||
fi | fi | |||
continue | continue | |||
;; | ;; | |||
esac # linkmode | esac # linkmode | |||
;; # *.$libext | ;; # *.$libext | |||
*.lo | *.$objext) | *.lo | *.$objext) | |||
if test "$pass" = conv; then | if test "$pass" = dlpreopen || test "$dlopen_support" != yes || te st "$build_libtool_libs" = no; then | |||
deplibs="$deplib $deplibs" | # If there is no dlopen support or we're linking statically, | |||
elif test "$linkmode" = prog; then | # we need to preload. | |||
if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then | newdlprefiles="$newdlprefiles $deplib" | |||
# If there is no dlopen support or we're linking statically, | compile_deplibs="$deplib $compile_deplibs" | |||
# we need to preload. | finalize_deplibs="$deplib $finalize_deplibs" | |||
newdlprefiles="$newdlprefiles $deplib" | else | |||
compile_deplibs="$deplib $compile_deplibs" | newdlfiles="$newdlfiles $deplib" | |||
finalize_deplibs="$deplib $finalize_deplibs" | ||||
else | ||||
newdlfiles="$newdlfiles $deplib" | ||||
fi | ||||
fi | fi | |||
continue | continue | |||
;; | ;; | |||
%DEPLIBS%) | %DEPLIBS%) | |||
alldeplibs=yes | alldeplibs=yes | |||
continue | continue | |||
;; | ;; | |||
esac # case $deplib | esac # case $deplib | |||
if test "$found" = yes || test -f "$lib"; then : | if test "$found" = yes || test -f "$lib"; then : | |||
else | else | |||
$echo "$modename: cannot find the library \`$lib' or unhandled arg ument \`$deplib'" 1>&2 | $echo "$modename: cannot find the library \`$lib'" 1>&2 | |||
exit $EXIT_FAILURE | exit 1 | |||
fi | fi | |||
# Check to see that this really is a libtool archive. | # Check to see that this really is a libtool archive. | |||
if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/n ull 2>&1; then : | if (${SED} -e '2q' $lib | egrep "^# Generated by .*$PACKAGE") >/dev/ null 2>&1; then : | |||
else | else | |||
$echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 | $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 | |||
exit $EXIT_FAILURE | exit 1 | |||
fi | fi | |||
ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` | ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` | |||
test "X$ladir" = "X$lib" && ladir="." | test "X$ladir" = "X$lib" && ladir="." | |||
dlname= | dlname= | |||
dlopen= | dlopen= | |||
dlpreopen= | dlpreopen= | |||
libdir= | libdir= | |||
library_names= | library_names= | |||
old_library= | old_library= | |||
# If the library was installed with an old release of libtool, | # If the library was installed with an old release of libtool, | |||
# it will not redefine variables installed, or shouldnotlink | # it will not redefine variable installed. | |||
installed=yes | installed=yes | |||
shouldnotlink=no | ||||
avoidtemprpath= | ||||
# Read the .la file | # Read the .la file | |||
case $lib in | case $lib in | |||
*/* | *\\*) . $lib ;; | */* | *\\*) . $lib ;; | |||
*) . ./$lib ;; | *) . ./$lib ;; | |||
esac | esac | |||
if test "$linkmode,$pass" = "lib,link" || | if test "$linkmode,$pass" = "lib,link" || | |||
test "$linkmode,$pass" = "prog,scan" || | test "$linkmode,$pass" = "prog,scan" || | |||
{ test "$linkmode" != prog && test "$linkmode" != lib; }; then | { test "$linkmode" = oldlib && test "$linkmode" = obj; }; then | |||
# Add dl[pre]opened files of deplib | ||||
test -n "$dlopen" && dlfiles="$dlfiles $dlopen" | test -n "$dlopen" && dlfiles="$dlfiles $dlopen" | |||
test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen" | test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen" | |||
fi | fi | |||
if test "$pass" = conv; then | if test "$pass" = conv; then | |||
# Only check for convenience libraries | # Only check for convenience libraries | |||
deplibs="$lib $deplibs" | deplibs="$lib $deplibs" | |||
if test -z "$libdir"; then | if test -z "$libdir"; then | |||
if test -z "$old_library"; then | if test -z "$old_library"; then | |||
$echo "$modename: cannot find name of link library for \`$lib' " 1>&2 | $echo "$modename: cannot find name of link library for \`$lib' " 1>&2 | |||
exit $EXIT_FAILURE | exit 1 | |||
fi | fi | |||
# It is a libtool convenience library, so add in its objects. | # It is a libtool convenience library, so add in its objects. | |||
convenience="$convenience $ladir/$objdir/$old_library" | convenience="$convenience $ladir/$objdir/$old_library" | |||
old_convenience="$old_convenience $ladir/$objdir/$old_library" | old_convenience="$old_convenience $ladir/$objdir/$old_library" | |||
tmp_libs= | tmp_libs= | |||
for deplib in $dependency_libs; do | for deplib in $dependency_libs; do | |||
deplibs="$deplib $deplibs" | deplibs="$deplib $deplibs" | |||
if test "X$duplicate_deps" = "Xyes" ; then | if test "X$duplicate_deps" = "Xyes" ; then | |||
case "$tmp_libs " in | case "$tmp_libs " in | |||
*" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; | *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; | |||
esac | esac | |||
fi | fi | |||
tmp_libs="$tmp_libs $deplib" | tmp_libs="$tmp_libs $deplib" | |||
done | done | |||
elif test "$linkmode" != prog && test "$linkmode" != lib; then | elif test "$linkmode" != prog && test "$linkmode" != lib; then | |||
$echo "$modename: \`$lib' is not a convenience library" 1>&2 | $echo "$modename: \`$lib' is not a convenience library" 1>&2 | |||
exit $EXIT_FAILURE | exit 1 | |||
fi | fi | |||
continue | continue | |||
fi # $pass = conv | fi # $pass = conv | |||
# Get the name of the library we link against. | # Get the name of the library we link against. | |||
linklib= | linklib= | |||
for l in $old_library $library_names; do | for l in $old_library $library_names; do | |||
linklib="$l" | linklib="$l" | |||
done | done | |||
if test -z "$linklib"; then | if test -z "$linklib"; then | |||
$echo "$modename: cannot find name of link library for \`$lib'" 1> &2 | $echo "$modename: cannot find name of link library for \`$lib'" 1> &2 | |||
exit $EXIT_FAILURE | exit 1 | |||
fi | fi | |||
# This library was specified with -dlopen. | # This library was specified with -dlopen. | |||
if test "$pass" = dlopen; then | if test "$pass" = dlopen; then | |||
if test -z "$libdir"; then | if test -z "$libdir"; then | |||
$echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2 | $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2 | |||
exit $EXIT_FAILURE | exit 1 | |||
fi | fi | |||
if test -z "$dlname" || | if test -z "$dlname" || test "$dlopen_support" != yes || test "$bu ild_libtool_libs" = no; then | |||
test "$dlopen_support" != yes || | ||||
test "$build_libtool_libs" = no; then | ||||
# If there is no dlname, no dlopen support or we're linking | # If there is no dlname, no dlopen support or we're linking | |||
# statically, we need to preload. We also need to preload any | # statically, we need to preload. | |||
# dependent libraries so libltdl's deplib preloader doesn't | dlprefiles="$dlprefiles $lib" | |||
# bomb out in the load deplibs phase. | ||||
dlprefiles="$dlprefiles $lib $dependency_libs" | ||||
else | else | |||
newdlfiles="$newdlfiles $lib" | newdlfiles="$newdlfiles $lib" | |||
fi | fi | |||
continue | continue | |||
fi # $pass = dlopen | fi # $pass = dlopen | |||
# We need an absolute path. | # We need an absolute path. | |||
case $ladir in | case $ladir in | |||
[\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; | [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; | |||
*) | *) | |||
skipping to change at line 2453 | skipping to change at line 1657 | |||
if test "X$installed" = Xyes; then | if test "X$installed" = Xyes; then | |||
if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then | if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then | |||
$echo "$modename: warning: library \`$lib' was moved." 1>&2 | $echo "$modename: warning: library \`$lib' was moved." 1>&2 | |||
dir="$ladir" | dir="$ladir" | |||
absdir="$abs_ladir" | absdir="$abs_ladir" | |||
libdir="$abs_ladir" | libdir="$abs_ladir" | |||
else | else | |||
dir="$libdir" | dir="$libdir" | |||
absdir="$libdir" | absdir="$libdir" | |||
fi | fi | |||
test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes | ||||
else | else | |||
if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$lin klib"; then | dir="$ladir/$objdir" | |||
dir="$ladir" | absdir="$abs_ladir/$objdir" | |||
absdir="$abs_ladir" | # Remove this search path later | |||
# Remove this search path later | notinst_path="$notinst_path $abs_ladir" | |||
notinst_path="$notinst_path $abs_ladir" | ||||
else | ||||
dir="$ladir/$objdir" | ||||
absdir="$abs_ladir/$objdir" | ||||
# Remove this search path later | ||||
notinst_path="$notinst_path $abs_ladir" | ||||
fi | ||||
fi # $installed = yes | fi # $installed = yes | |||
name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` | name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` | |||
# This library was specified with -dlpreopen. | # This library was specified with -dlpreopen. | |||
if test "$pass" = dlpreopen; then | if test "$pass" = dlpreopen; then | |||
if test -z "$libdir"; then | if test -z "$libdir"; then | |||
$echo "$modename: cannot -dlpreopen a convenience library: \`$li b'" 1>&2 | $echo "$modename: cannot -dlpreopen a convenience library: \`$li b'" 1>&2 | |||
exit $EXIT_FAILURE | exit 1 | |||
fi | fi | |||
# Prefer using a static library (so that no silly _DYNAMIC symbols | # Prefer using a static library (so that no silly _DYNAMIC symbols | |||
# are required to link). | # are required to link). | |||
if test -n "$old_library"; then | if test -n "$old_library"; then | |||
newdlprefiles="$newdlprefiles $dir/$old_library" | newdlprefiles="$newdlprefiles $dir/$old_library" | |||
# Otherwise, use the dlname, so that lt_dlopen finds it. | # Otherwise, use the dlname, so that lt_dlopen finds it. | |||
elif test -n "$dlname"; then | elif test -n "$dlname"; then | |||
newdlprefiles="$newdlprefiles $dir/$dlname" | newdlprefiles="$newdlprefiles $dir/$dlname" | |||
else | else | |||
newdlprefiles="$newdlprefiles $dir/$linklib" | newdlprefiles="$newdlprefiles $dir/$linklib" | |||
skipping to change at line 2495 | skipping to change at line 1691 | |||
fi # $pass = dlpreopen | fi # $pass = dlpreopen | |||
if test -z "$libdir"; then | if test -z "$libdir"; then | |||
# Link the convenience library | # Link the convenience library | |||
if test "$linkmode" = lib; then | if test "$linkmode" = lib; then | |||
deplibs="$dir/$old_library $deplibs" | deplibs="$dir/$old_library $deplibs" | |||
elif test "$linkmode,$pass" = "prog,link"; then | elif test "$linkmode,$pass" = "prog,link"; then | |||
compile_deplibs="$dir/$old_library $compile_deplibs" | compile_deplibs="$dir/$old_library $compile_deplibs" | |||
finalize_deplibs="$dir/$old_library $finalize_deplibs" | finalize_deplibs="$dir/$old_library $finalize_deplibs" | |||
else | else | |||
deplibs="$lib $deplibs" # used for prog,scan pass | deplibs="$lib $deplibs" | |||
fi | fi | |||
continue | continue | |||
fi | fi | |||
if test "$linkmode" = prog && test "$pass" != link; then | if test "$linkmode" = prog && test "$pass" != link; then | |||
newlib_search_path="$newlib_search_path $ladir" | newlib_search_path="$newlib_search_path $ladir" | |||
deplibs="$lib $deplibs" | deplibs="$lib $deplibs" | |||
linkalldeplibs=no | linkalldeplibs=no | |||
if test "$link_all_deplibs" != no || test -z "$library_names" || | if test "$link_all_deplibs" != no || test -z "$library_names" || | |||
skipping to change at line 2533 | skipping to change at line 1729 | |||
if test "X$duplicate_deps" = "Xyes" ; then | if test "X$duplicate_deps" = "Xyes" ; then | |||
case "$tmp_libs " in | case "$tmp_libs " in | |||
*" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; | *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; | |||
esac | esac | |||
fi | fi | |||
tmp_libs="$tmp_libs $deplib" | tmp_libs="$tmp_libs $deplib" | |||
done # for deplib | done # for deplib | |||
continue | continue | |||
fi # $linkmode = prog... | fi # $linkmode = prog... | |||
if test "$linkmode,$pass" = "prog,link"; then | link_static=no # Whether the deplib will be linked statically | |||
if test -n "$library_names" && | if test -n "$library_names" && | |||
{ test "$prefer_static_libs" = no || test -z "$old_library"; }; then | { test "$prefer_static_libs" = no || test -z "$old_library"; }; t hen | |||
# We need to hardcode the library path | # Link against this shared library | |||
if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then | ||||
# Make sure the rpath contains only unique directories. | ||||
case "$temp_rpath " in | ||||
*" $dir "*) ;; | ||||
*" $absdir "*) ;; | ||||
*) temp_rpath="$temp_rpath $absdir" ;; | ||||
esac | ||||
fi | ||||
if test "$linkmode,$pass" = "prog,link" || | ||||
{ test "$linkmode" = lib && test "$hardcode_into_libs" = yes; }; then | ||||
# Hardcode the library path. | # Hardcode the library path. | |||
# Skip directories that are in the system default run-time | # Skip directories that are in the system default run-time | |||
# search path. | # search path. | |||
case " $sys_lib_dlsearch_path " in | case " $sys_lib_dlsearch_path " in | |||
*" $absdir "*) ;; | *" $absdir "*) ;; | |||
*) | *) | |||
case "$compile_rpath " in | case "$compile_rpath " in | |||
*" $absdir "*) ;; | *" $absdir "*) ;; | |||
*) compile_rpath="$compile_rpath $absdir" | *) compile_rpath="$compile_rpath $absdir" | |||
esac | esac | |||
skipping to change at line 2567 | skipping to change at line 1757 | |||
esac | esac | |||
case " $sys_lib_dlsearch_path " in | case " $sys_lib_dlsearch_path " in | |||
*" $libdir "*) ;; | *" $libdir "*) ;; | |||
*) | *) | |||
case "$finalize_rpath " in | case "$finalize_rpath " in | |||
*" $libdir "*) ;; | *" $libdir "*) ;; | |||
*) finalize_rpath="$finalize_rpath $libdir" | *) finalize_rpath="$finalize_rpath $libdir" | |||
esac | esac | |||
;; | ;; | |||
esac | esac | |||
if test "$linkmode" = prog; then | ||||
# We need to hardcode the library path | ||||
if test -n "$shlibpath_var"; then | ||||
# Make sure the rpath contains only unique directories. | ||||
case "$temp_rpath " in | ||||
*" $dir "*) ;; | ||||
*" $absdir "*) ;; | ||||
*) temp_rpath="$temp_rpath $dir" ;; | ||||
esac | ||||
fi | ||||
fi | ||||
fi # $linkmode,$pass = prog,link... | fi # $linkmode,$pass = prog,link... | |||
if test "$alldeplibs" = yes && | if test "$alldeplibs" = yes && | |||
{ test "$deplibs_check_method" = pass_all || | { test "$deplibs_check_method" = pass_all || | |||
{ test "$build_libtool_libs" = yes && | { test "$build_libtool_libs" = yes && | |||
test -n "$library_names"; }; }; then | test -n "$library_names"; }; }; then | |||
# We only need to search for static libraries | # We only need to search for static libraries | |||
continue | continue | |||
fi | fi | |||
fi | ||||
link_static=no # Whether the deplib will be linked statically | ||||
use_static_libs=$prefer_static_libs | ||||
if test "$use_static_libs" = built && test "$installed" = yes ; then | ||||
use_static_libs=no | ||||
fi | ||||
if test -n "$library_names" && | ||||
{ test "$use_static_libs" = no || test -z "$old_library"; }; then | ||||
if test "$installed" = no; then | if test "$installed" = no; then | |||
notinst_deplibs="$notinst_deplibs $lib" | notinst_deplibs="$notinst_deplibs $lib" | |||
need_relink=yes | need_relink=yes | |||
fi | fi | |||
# This is a shared library | ||||
# Warn about portability, can't link against -module's on | ||||
# some systems (darwin) | ||||
if test "$shouldnotlink" = yes && test "$pass" = link ; then | ||||
$echo | ||||
if test "$linkmode" = prog; then | ||||
$echo "*** Warning: Linking the executable $output against the loadable module" | ||||
else | ||||
$echo "*** Warning: Linking the shared library $output against the loadable module" | ||||
fi | ||||
$echo "*** $linklib is not portable!" | ||||
fi | ||||
if test "$linkmode" = lib && | ||||
test "$hardcode_into_libs" = yes; then | ||||
# Hardcode the library path. | ||||
# Skip directories that are in the system default run-time | ||||
# search path. | ||||
case " $sys_lib_dlsearch_path " in | ||||
*" $absdir "*) ;; | ||||
*) | ||||
case "$compile_rpath " in | ||||
*" $absdir "*) ;; | ||||
*) compile_rpath="$compile_rpath $absdir" | ||||
esac | ||||
;; | ||||
esac | ||||
case " $sys_lib_dlsearch_path " in | ||||
*" $libdir "*) ;; | ||||
*) | ||||
case "$finalize_rpath " in | ||||
*" $libdir "*) ;; | ||||
*) finalize_rpath="$finalize_rpath $libdir" | ||||
esac | ||||
;; | ||||
esac | ||||
fi | ||||
if test -n "$old_archive_from_expsyms_cmds"; then | if test -n "$old_archive_from_expsyms_cmds"; then | |||
# figure out the soname | # figure out the soname | |||
set dummy $library_names | set dummy $library_names | |||
realname="$2" | realname="$2" | |||
shift; shift | shift; shift | |||
libname=`eval \\$echo \"$libname_spec\"` | libname=`eval \\$echo \"$libname_spec\"` | |||
# use dlname if we got it. it's perfectly good, no? | # use dlname if we got it. it's perfectly good, no? | |||
if test -n "$dlname"; then | if test -n "$dlname"; then | |||
soname="$dlname" | soname="$dlname" | |||
elif test -n "$soname_spec"; then | elif test -n "$soname_spec"; then | |||
# bleh windows | # bleh windows | |||
case $host in | case $host in | |||
*cygwin* | mingw*) | *cygwin*) | |||
major=`expr $current - $age` | major=`expr $current - $age` | |||
versuffix="-$major" | versuffix="-$major" | |||
;; | ;; | |||
esac | esac | |||
eval soname=\"$soname_spec\" | eval soname=\"$soname_spec\" | |||
else | else | |||
soname="$realname" | soname="$realname" | |||
fi | fi | |||
# Make a new name for the extract_expsyms_cmds to use | # Make a new name for the extract_expsyms_cmds to use | |||
soroot="$soname" | soroot="$soname" | |||
soname=`$echo $soroot | ${SED} -e 's/^.*\///'` | soname=`echo $soroot | ${SED} -e 's/^.*\///'` | |||
newlib="libimp-`$echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a" | newlib="libimp-`echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a" | |||
# If the library has no export list, then create one now | # If the library has no export list, then create one now | |||
if test -f "$output_objdir/$soname-def"; then : | if test -f "$output_objdir/$soname-def"; then : | |||
else | else | |||
$show "extracting exported symbol list from \`$soname'" | $show "extracting exported symbol list from \`$soname'" | |||
save_ifs="$IFS"; IFS='~' | save_ifs="$IFS"; IFS='~' | |||
cmds=$extract_expsyms_cmds | eval cmds=\"$extract_expsyms_cmds\" | |||
for cmd in $cmds; do | for cmd in $cmds; do | |||
IFS="$save_ifs" | IFS="$save_ifs" | |||
eval cmd=\"$cmd\" | ||||
$show "$cmd" | $show "$cmd" | |||
$run eval "$cmd" || exit $? | $run eval "$cmd" || exit $? | |||
done | done | |||
IFS="$save_ifs" | IFS="$save_ifs" | |||
fi | fi | |||
# Create $newlib | # Create $newlib | |||
if test -f "$output_objdir/$newlib"; then :; else | if test -f "$output_objdir/$newlib"; then :; else | |||
$show "generating import library for \`$soname'" | $show "generating import library for \`$soname'" | |||
save_ifs="$IFS"; IFS='~' | save_ifs="$IFS"; IFS='~' | |||
cmds=$old_archive_from_expsyms_cmds | eval cmds=\"$old_archive_from_expsyms_cmds\" | |||
for cmd in $cmds; do | for cmd in $cmds; do | |||
IFS="$save_ifs" | IFS="$save_ifs" | |||
eval cmd=\"$cmd\" | ||||
$show "$cmd" | $show "$cmd" | |||
$run eval "$cmd" || exit $? | $run eval "$cmd" || exit $? | |||
done | done | |||
IFS="$save_ifs" | IFS="$save_ifs" | |||
fi | fi | |||
# make sure the library variables are pointing to the new librar y | # make sure the library variables are pointing to the new librar y | |||
dir=$output_objdir | dir=$output_objdir | |||
linklib=$newlib | linklib=$newlib | |||
fi # test -n "$old_archive_from_expsyms_cmds" | fi # test -n $old_archive_from_expsyms_cmds | |||
if test "$linkmode" = prog || test "$mode" != relink; then | if test "$linkmode" = prog || test "$mode" != relink; then | |||
add_shlibpath= | add_shlibpath= | |||
add_dir= | add_dir= | |||
add= | add= | |||
lib_linked=yes | lib_linked=yes | |||
case $hardcode_action in | case $hardcode_action in | |||
immediate | unsupported) | immediate | unsupported) | |||
if test "$hardcode_direct" = no; then | if test "$hardcode_direct" = no; then | |||
add="$dir/$linklib" | add="$dir/$linklib" | |||
case $host in | ||||
*-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;; | ||||
*-*-sysv4*uw2*) add_dir="-L$dir" ;; | ||||
*-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ | ||||
*-*-unixware7*) add_dir="-L$dir" ;; | ||||
*-*-darwin* ) | ||||
# if the lib is a module then we can not link against | ||||
# it, someone is ignoring the new warnings I added | ||||
if /usr/bin/file -L $add 2> /dev/null | | ||||
$EGREP ": [^:]* bundle" >/dev/null ; then | ||||
$echo "** Warning, lib $linklib is a module, not a sha red library" | ||||
if test -z "$old_library" ; then | ||||
$echo | ||||
$echo "** And there doesn't seem to be a static arch ive available" | ||||
$echo "** The link will probably fail, sorry" | ||||
else | ||||
add="$dir/$old_library" | ||||
fi | ||||
fi | ||||
esac | ||||
elif test "$hardcode_minus_L" = no; then | elif test "$hardcode_minus_L" = no; then | |||
case $host in | case $host in | |||
*-*-sunos*) add_shlibpath="$dir" ;; | *-*-sunos*) add_shlibpath="$dir" ;; | |||
esac | esac | |||
add_dir="-L$dir" | add_dir="-L$dir" | |||
add="-l$name" | add="-l$name" | |||
elif test "$hardcode_shlibpath_var" = no; then | elif test "$hardcode_shlibpath_var" = no; then | |||
add_shlibpath="$dir" | add_shlibpath="$dir" | |||
add="-l$name" | add="-l$name" | |||
else | else | |||
lib_linked=no | lib_linked=no | |||
fi | fi | |||
;; | ;; | |||
relink) | relink) | |||
if test "$hardcode_direct" = yes; then | if test "$hardcode_direct" = yes; then | |||
add="$dir/$linklib" | add="$dir/$linklib" | |||
elif test "$hardcode_minus_L" = yes; then | elif test "$hardcode_minus_L" = yes; then | |||
add_dir="-L$dir" | add_dir="-L$dir" | |||
# Try looking first in the location we're being installed to . | ||||
if test -n "$inst_prefix_dir"; then | ||||
case $libdir in | ||||
[\\/]*) | ||||
add_dir="$add_dir -L$inst_prefix_dir$libdir" | ||||
;; | ||||
esac | ||||
fi | ||||
add="-l$name" | add="-l$name" | |||
elif test "$hardcode_shlibpath_var" = yes; then | elif test "$hardcode_shlibpath_var" = yes; then | |||
add_shlibpath="$dir" | add_shlibpath="$dir" | |||
add="-l$name" | add="-l$name" | |||
else | else | |||
lib_linked=no | lib_linked=no | |||
fi | fi | |||
;; | ;; | |||
*) lib_linked=no ;; | *) lib_linked=no ;; | |||
esac | esac | |||
if test "$lib_linked" != yes; then | if test "$lib_linked" != yes; then | |||
$echo "$modename: configuration error: unsupported hardcode pr operties" | $echo "$modename: configuration error: unsupported hardcode pr operties" | |||
exit $EXIT_FAILURE | exit 1 | |||
fi | fi | |||
if test -n "$add_shlibpath"; then | if test -n "$add_shlibpath"; then | |||
case :$compile_shlibpath: in | case :$compile_shlibpath: in | |||
*":$add_shlibpath:"*) ;; | *":$add_shlibpath:"*) ;; | |||
*) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;; | *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;; | |||
esac | esac | |||
fi | fi | |||
if test "$linkmode" = prog; then | if test "$linkmode" = prog; then | |||
test -n "$add_dir" && compile_deplibs="$add_dir $compile_depli bs" | test -n "$add_dir" && compile_deplibs="$add_dir $compile_depli bs" | |||
skipping to change at line 2789 | skipping to change at line 1915 | |||
fi | fi | |||
if test "$linkmode" = prog || test "$mode" = relink; then | if test "$linkmode" = prog || test "$mode" = relink; then | |||
add_shlibpath= | add_shlibpath= | |||
add_dir= | add_dir= | |||
add= | add= | |||
# Finalize command for both is simple: just hardcode it. | # Finalize command for both is simple: just hardcode it. | |||
if test "$hardcode_direct" = yes; then | if test "$hardcode_direct" = yes; then | |||
add="$libdir/$linklib" | add="$libdir/$linklib" | |||
elif test "$hardcode_minus_L" = yes; then | elif test "$hardcode_minus_L" = yes; then | |||
add_dir="-L$libdir" | # Try looking first in the location we're being installed to. | |||
add_dir= | ||||
if test -n "$inst_prefix_dir"; then | ||||
case "$libdir" in | ||||
[\\/]*) | ||||
add_dir="-L$inst_prefix_dir$libdir" | ||||
;; | ||||
esac | ||||
fi | ||||
add_dir="$add_dir -L$libdir" | ||||
add="-l$name" | add="-l$name" | |||
elif test "$hardcode_shlibpath_var" = yes; then | elif test "$hardcode_shlibpath_var" = yes; then | |||
case :$finalize_shlibpath: in | case :$finalize_shlibpath: in | |||
*":$libdir:"*) ;; | *":$libdir:"*) ;; | |||
*) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; | *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; | |||
esac | esac | |||
add="-l$name" | add="-l$name" | |||
elif test "$hardcode_automatic" = yes; then | ||||
if test -n "$inst_prefix_dir" && | ||||
test -f "$inst_prefix_dir$libdir/$linklib" ; then | ||||
add="$inst_prefix_dir$libdir/$linklib" | ||||
else | ||||
add="$libdir/$linklib" | ||||
fi | ||||
else | else | |||
# We cannot seem to hardcode it, guess we'll fake it. | # We cannot seem to hardcode it, guess we'll fake it. | |||
add_dir="-L$libdir" | ||||
# Try looking first in the location we're being installed to. | # Try looking first in the location we're being installed to. | |||
add_dir= | ||||
if test -n "$inst_prefix_dir"; then | if test -n "$inst_prefix_dir"; then | |||
case $libdir in | case "$libdir" in | |||
[\\/]*) | [\\/]*) | |||
add_dir="$add_dir -L$inst_prefix_dir$libdir" | add_dir="-L$inst_prefix_dir$libdir" | |||
;; | ;; | |||
esac | esac | |||
fi | fi | |||
add_dir="$add_dir -L$libdir" | ||||
add="-l$name" | add="-l$name" | |||
fi | fi | |||
if test "$linkmode" = prog; then | if test "$linkmode" = prog; then | |||
test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_dep libs" | test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_dep libs" | |||
test -n "$add" && finalize_deplibs="$add $finalize_deplibs" | test -n "$add" && finalize_deplibs="$add $finalize_deplibs" | |||
else | else | |||
test -n "$add_dir" && deplibs="$add_dir $deplibs" | test -n "$add_dir" && deplibs="$add_dir $deplibs" | |||
test -n "$add" && deplibs="$add $deplibs" | test -n "$add" && deplibs="$add $deplibs" | |||
fi | fi | |||
fi | fi | |||
elif test "$linkmode" = prog; then | elif test "$linkmode" = prog; then | |||
if test "$alldeplibs" = yes && | ||||
{ test "$deplibs_check_method" = pass_all || | ||||
{ test "$build_libtool_libs" = yes && | ||||
test -n "$library_names"; }; }; then | ||||
# We only need to search for static libraries | ||||
continue | ||||
fi | ||||
# Try to link the static library | ||||
# Here we assume that one of hardcode_direct or hardcode_minus_L | # Here we assume that one of hardcode_direct or hardcode_minus_L | |||
# is not unsupported. This is valid on all known static and | # is not unsupported. This is valid on all known static and | |||
# shared platforms. | # shared platforms. | |||
if test "$hardcode_direct" != unsupported; then | if test "$hardcode_direct" != unsupported; then | |||
test -n "$old_library" && linklib="$old_library" | test -n "$old_library" && linklib="$old_library" | |||
compile_deplibs="$dir/$linklib $compile_deplibs" | compile_deplibs="$dir/$linklib $compile_deplibs" | |||
finalize_deplibs="$dir/$linklib $finalize_deplibs" | finalize_deplibs="$dir/$linklib $finalize_deplibs" | |||
else | else | |||
compile_deplibs="-l$name -L$dir $compile_deplibs" | compile_deplibs="-l$name -L$dir $compile_deplibs" | |||
finalize_deplibs="-l$name -L$dir $finalize_deplibs" | finalize_deplibs="-l$name -L$dir $finalize_deplibs" | |||
fi | fi | |||
elif test "$build_libtool_libs" = yes; then | elif test "$build_libtool_libs" = yes; then | |||
# Not a shared library | # Not a shared library | |||
if test "$deplibs_check_method" != pass_all; then | if test "$deplibs_check_method" != pass_all; then | |||
# We're trying link a shared library against a static one | # We're trying link a shared library against a static one | |||
# but the system doesn't support it. | # but the system doesn't support it. | |||
# Just print a warning and add the library to dependency_libs so | # Just print a warning and add the library to dependency_libs so | |||
# that the program can be linked against the static library. | # that the program can be linked against the static library. | |||
$echo | echo | |||
$echo "*** Warning: This system can not link to static lib archi ve $lib." | echo "*** Warning: This system can not link to static lib archiv e $lib." | |||
$echo "*** I have the capability to make that library automatica lly link in when" | echo "*** I have the capability to make that library automatical ly link in when" | |||
$echo "*** you link to this library. But I can only do this if you have a" | echo "*** you link to this library. But I can only do this if y ou have a" | |||
$echo "*** shared version of the library, which you do not appea r to have." | echo "*** shared version of the library, which you do not appear to have." | |||
if test "$module" = yes; then | if test "$module" = yes; then | |||
$echo "*** But as you try to build a module library, libtool w ill still create " | echo "*** But as you try to build a module library, libtool wi ll still create " | |||
$echo "*** a static module, that should work as long as the dl opening application" | echo "*** a static module, that should work as long as the dlo pening application" | |||
$echo "*** is linked with the -dlopen flag to resolve symbols at runtime." | echo "*** is linked with the -dlopen flag to resolve symbols a t runtime." | |||
if test -z "$global_symbol_pipe"; then | if test -z "$global_symbol_pipe"; then | |||
$echo | echo | |||
$echo "*** However, this would only work if libtool was able to extract symbol" | echo "*** However, this would only work if libtool was able to extract symbol" | |||
$echo "*** lists from a program, using \`nm' or equivalent, but libtool could" | echo "*** lists from a program, using \`nm' or equivalent, b ut libtool could" | |||
$echo "*** not find such a program. So, this module is prob ably useless." | echo "*** not find such a program. So, this module is proba bly useless." | |||
$echo "*** \`nm' from GNU binutils and a full rebuild may he lp." | echo "*** \`nm' from GNU binutils and a full rebuild may hel p." | |||
fi | fi | |||
if test "$build_old_libs" = no; then | if test "$build_old_libs" = no; then | |||
build_libtool_libs=module | build_libtool_libs=module | |||
build_old_libs=yes | build_old_libs=yes | |||
else | else | |||
build_libtool_libs=no | build_libtool_libs=no | |||
fi | fi | |||
fi | fi | |||
else | else | |||
convenience="$convenience $dir/$old_library" | ||||
old_convenience="$old_convenience $dir/$old_library" | ||||
deplibs="$dir/$old_library $deplibs" | deplibs="$dir/$old_library $deplibs" | |||
link_static=yes | link_static=yes | |||
fi | fi | |||
fi # link shared/static library? | fi # link shared/static library? | |||
if test "$linkmode" = lib; then | if test "$linkmode" = lib; then | |||
if test -n "$dependency_libs" && | if test -n "$dependency_libs" && | |||
{ test "$hardcode_into_libs" != yes || | { test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes || | |||
test "$build_old_libs" = yes || | ||||
test "$link_static" = yes; }; then | test "$link_static" = yes; }; then | |||
# Extract -R from dependency_libs | # Extract -R from dependency_libs | |||
temp_deplibs= | temp_deplibs= | |||
for libdir in $dependency_libs; do | for libdir in $dependency_libs; do | |||
case $libdir in | case $libdir in | |||
-R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'` | -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'` | |||
case " $xrpath " in | case " $xrpath " in | |||
*" $temp_xrpath "*) ;; | *" $temp_xrpath "*) ;; | |||
*) xrpath="$xrpath $temp_xrpath";; | *) xrpath="$xrpath $temp_xrpath";; | |||
esac;; | esac;; | |||
skipping to change at line 2930 | skipping to change at line 2069 | |||
[\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; | [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; | |||
*) | *) | |||
absdir=`cd "$dir" && pwd` | absdir=`cd "$dir" && pwd` | |||
if test -z "$absdir"; then | if test -z "$absdir"; then | |||
$echo "$modename: warning: cannot determine absolute dir ectory name of \`$dir'" 1>&2 | $echo "$modename: warning: cannot determine absolute dir ectory name of \`$dir'" 1>&2 | |||
absdir="$dir" | absdir="$dir" | |||
fi | fi | |||
;; | ;; | |||
esac | esac | |||
if grep "^installed=no" $deplib > /dev/null; then | if grep "^installed=no" $deplib > /dev/null; then | |||
path="$absdir/$objdir" | path="-L$absdir/$objdir" | |||
else | else | |||
eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib ` | eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib ` | |||
if test -z "$libdir"; then | if test -z "$libdir"; then | |||
$echo "$modename: \`$deplib' is not a valid libtool arch ive" 1>&2 | $echo "$modename: \`$deplib' is not a valid libtool arch ive" 1>&2 | |||
exit $EXIT_FAILURE | exit 1 | |||
fi | fi | |||
if test "$absdir" != "$libdir"; then | if test "$absdir" != "$libdir"; then | |||
$echo "$modename: warning: \`$deplib' seems to be moved" 1>&2 | $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2 | |||
fi | fi | |||
path="$absdir" | path="-L$absdir" | |||
fi | fi | |||
depdepl= | ||||
case $host in | ||||
*-*-darwin*) | ||||
# we do not want to link against static libs, | ||||
# but need to link against shared | ||||
eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.* \)$/\1/p' $deplib` | ||||
if test -n "$deplibrary_names" ; then | ||||
for tmp in $deplibrary_names ; do | ||||
depdepl=$tmp | ||||
done | ||||
if test -f "$path/$depdepl" ; then | ||||
depdepl="$path/$depdepl" | ||||
fi | ||||
# do not add paths which are already there | ||||
case " $newlib_search_path " in | ||||
*" $path "*) ;; | ||||
*) newlib_search_path="$newlib_search_path $path";; | ||||
esac | ||||
fi | ||||
path="" | ||||
;; | ||||
*) | ||||
path="-L$path" | ||||
;; | ||||
esac | ||||
;; | ||||
-l*) | ||||
case $host in | ||||
*-*-darwin*) | ||||
# Again, we only want to link against shared libraries | ||||
eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"` | ||||
for tmp in $newlib_search_path ; do | ||||
if test -f "$tmp/lib$tmp_libs.dylib" ; then | ||||
eval depdepl="$tmp/lib$tmp_libs.dylib" | ||||
break | ||||
fi | ||||
done | ||||
path="" | ||||
;; | ||||
*) continue ;; | ||||
esac | ||||
;; | ;; | |||
*) continue ;; | *) continue ;; | |||
esac | esac | |||
case " $deplibs " in | case " $deplibs " in | |||
*" $path "*) ;; | *" $path "*) ;; | |||
*) deplibs="$path $deplibs" ;; | *) deplibs="$deplibs $path" ;; | |||
esac | ||||
case " $deplibs " in | ||||
*" $depdepl "*) ;; | ||||
*) deplibs="$depdepl $deplibs" ;; | ||||
esac | esac | |||
done | done | |||
fi # link_all_deplibs != no | fi # link_all_deplibs != no | |||
fi # linkmode = lib | fi # linkmode = lib | |||
done # for deplib in $libs | done # for deplib in $libs | |||
dependency_libs="$newdependency_libs" | ||||
if test "$pass" = dlpreopen; then | if test "$pass" = dlpreopen; then | |||
# Link the dlpreopened libraries before other libraries | # Link the dlpreopened libraries before other libraries | |||
for deplib in $save_deplibs; do | for deplib in $save_deplibs; do | |||
deplibs="$deplib $deplibs" | deplibs="$deplib $deplibs" | |||
done | done | |||
fi | fi | |||
if test "$pass" != dlopen; then | if test "$pass" != dlopen; then | |||
test "$pass" != scan && dependency_libs="$newdependency_libs" | ||||
if test "$pass" != conv; then | if test "$pass" != conv; then | |||
# Make sure lib_search_path contains only unique directories. | # Make sure lib_search_path contains only unique directories. | |||
lib_search_path= | lib_search_path= | |||
for dir in $newlib_search_path; do | for dir in $newlib_search_path; do | |||
case "$lib_search_path " in | case "$lib_search_path " in | |||
*" $dir "*) ;; | *" $dir "*) ;; | |||
*) lib_search_path="$lib_search_path $dir" ;; | *) lib_search_path="$lib_search_path $dir" ;; | |||
esac | esac | |||
done | done | |||
newlib_search_path= | newlib_search_path= | |||
skipping to change at line 3028 | skipping to change at line 2122 | |||
if test "$linkmode,$pass" != "prog,link"; then | if test "$linkmode,$pass" != "prog,link"; then | |||
vars="deplibs" | vars="deplibs" | |||
else | else | |||
vars="compile_deplibs finalize_deplibs" | vars="compile_deplibs finalize_deplibs" | |||
fi | fi | |||
for var in $vars dependency_libs; do | for var in $vars dependency_libs; do | |||
# Add libraries to $var in reverse order | # Add libraries to $var in reverse order | |||
eval tmp_libs=\"\$$var\" | eval tmp_libs=\"\$$var\" | |||
new_libs= | new_libs= | |||
for deplib in $tmp_libs; do | for deplib in $tmp_libs; do | |||
# FIXME: Pedantically, this is the right thing to do, so | ||||
# that some nasty dependency loop isn't accidentally | ||||
# broken: | ||||
#new_libs="$deplib $new_libs" | ||||
# Pragmatically, this seems to cause very few problems in | ||||
# practice: | ||||
case $deplib in | case $deplib in | |||
-L*) new_libs="$deplib $new_libs" ;; | -L*) new_libs="$deplib $new_libs" ;; | |||
-R*) ;; | ||||
*) | *) | |||
# And here is the reason: when a library appears more | ||||
# than once as an explicit dependence of a library, or | ||||
# is implicitly linked in more than once by the | ||||
# compiler, it is considered special, and multiple | ||||
# occurrences thereof are not removed. Compare this | ||||
# with having the same library being listed as a | ||||
# dependency of multiple other libraries: in this case, | ||||
# we know (pedantically, we assume) the library does not | ||||
# need to be listed more than once, so we keep only the | ||||
# last copy. This is not always right, but it is rare | ||||
# enough that we require users that really mean to play | ||||
# such unportable linking tricks to link the library | ||||
# using -Wl,-lname, so that libtool does not consider it | ||||
# for duplicate removal. | ||||
case " $specialdeplibs " in | case " $specialdeplibs " in | |||
*" $deplib "*) new_libs="$deplib $new_libs" ;; | *" $deplib "*) new_libs="$deplib $new_libs" ;; | |||
*) | *) | |||
case " $new_libs " in | case " $new_libs " in | |||
*" $deplib "*) ;; | *" $deplib "*) ;; | |||
*) new_libs="$deplib $new_libs" ;; | *) new_libs="$deplib $new_libs" ;; | |||
esac | esac | |||
;; | ;; | |||
esac | esac | |||
;; | ;; | |||
skipping to change at line 3079 | skipping to change at line 2152 | |||
*" $deplib "*) ;; | *" $deplib "*) ;; | |||
*) tmp_libs="$tmp_libs $deplib" ;; | *) tmp_libs="$tmp_libs $deplib" ;; | |||
esac | esac | |||
;; | ;; | |||
*) tmp_libs="$tmp_libs $deplib" ;; | *) tmp_libs="$tmp_libs $deplib" ;; | |||
esac | esac | |||
done | done | |||
eval $var=\"$tmp_libs\" | eval $var=\"$tmp_libs\" | |||
done # for var | done # for var | |||
fi | fi | |||
# Last step: remove runtime libs from dependency_libs | if test "$pass" = "conv" && | |||
# (they stay in deplibs) | { test "$linkmode" = "lib" || test "$linkmode" = "prog"; }; then | |||
tmp_libs= | libs="$deplibs" # reset libs | |||
for i in $dependency_libs ; do | deplibs= | |||
case " $predeps $postdeps $compiler_lib_search_path " in | fi | |||
*" $i "*) | ||||
i="" | ||||
;; | ||||
esac | ||||
if test -n "$i" ; then | ||||
tmp_libs="$tmp_libs $i" | ||||
fi | ||||
done | ||||
dependency_libs=$tmp_libs | ||||
done # for pass | done # for pass | |||
if test "$linkmode" = prog; then | if test "$linkmode" = prog; then | |||
dlfiles="$newdlfiles" | dlfiles="$newdlfiles" | |||
dlprefiles="$newdlprefiles" | dlprefiles="$newdlprefiles" | |||
fi | fi | |||
case $linkmode in | case $linkmode in | |||
oldlib) | oldlib) | |||
if test -n "$deplibs"; then | ||||
$echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2 | ||||
fi | ||||
if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then | if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then | |||
$echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2 | $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2 | |||
fi | fi | |||
if test -n "$rpath"; then | if test -n "$rpath"; then | |||
$echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2 | $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2 | |||
fi | fi | |||
if test -n "$xrpath"; then | if test -n "$xrpath"; then | |||
$echo "$modename: warning: \`-R' is ignored for archives" 1>&2 | $echo "$modename: warning: \`-R' is ignored for archives" 1>&2 | |||
fi | fi | |||
if test -n "$vinfo"; then | if test -n "$vinfo"; then | |||
$echo "$modename: warning: \`-version-info/-version-number' is ignor ed for archives" 1>&2 | $echo "$modename: warning: \`-version-info' is ignored for archives" 1>&2 | |||
fi | fi | |||
if test -n "$release"; then | if test -n "$release"; then | |||
$echo "$modename: warning: \`-release' is ignored for archives" 1>&2 | $echo "$modename: warning: \`-release' is ignored for archives" 1>&2 | |||
fi | fi | |||
if test -n "$export_symbols" || test -n "$export_symbols_regex"; then | if test -n "$export_symbols" || test -n "$export_symbols_regex"; then | |||
$echo "$modename: warning: \`-export-symbols' is ignored for archive s" 1>&2 | $echo "$modename: warning: \`-export-symbols' is ignored for archive s" 1>&2 | |||
fi | fi | |||
skipping to change at line 3140 | skipping to change at line 2200 | |||
build_libtool_libs=no | build_libtool_libs=no | |||
oldlibs="$output" | oldlibs="$output" | |||
objs="$objs$old_deplibs" | objs="$objs$old_deplibs" | |||
;; | ;; | |||
lib) | lib) | |||
# Make sure we only generate libraries of the form `libNAME.la'. | # Make sure we only generate libraries of the form `libNAME.la'. | |||
case $outputname in | case $outputname in | |||
lib*) | lib*) | |||
name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` | name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` | |||
eval shared_ext=\"$shrext_cmds\" | ||||
eval libname=\"$libname_spec\" | eval libname=\"$libname_spec\" | |||
;; | ;; | |||
*) | *) | |||
if test "$module" = no; then | if test "$module" = no; then | |||
$echo "$modename: libtool library \`$output' must begin with \`lib '" 1>&2 | $echo "$modename: libtool library \`$output' must begin with \`lib '" 1>&2 | |||
$echo "$help" 1>&2 | $echo "$help" 1>&2 | |||
exit $EXIT_FAILURE | exit 1 | |||
fi | fi | |||
if test "$need_lib_prefix" != no; then | if test "$need_lib_prefix" != no; then | |||
# Add the "lib" prefix for modules if required | # Add the "lib" prefix for modules if required | |||
name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` | name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` | |||
eval shared_ext=\"$shrext_cmds\" | ||||
eval libname=\"$libname_spec\" | eval libname=\"$libname_spec\" | |||
else | else | |||
libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` | libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` | |||
fi | fi | |||
;; | ;; | |||
esac | esac | |||
if test -n "$objs"; then | if test -n "$objs"; then | |||
if test "$deplibs_check_method" != pass_all; then | if test "$deplibs_check_method" != pass_all; then | |||
$echo "$modename: cannot build libtool library \`$output' from non -libtool objects on this host:$objs" 2>&1 | $echo "$modename: cannot build libtool library \`$output' from non -libtool objects on this host:$objs" 2>&1 | |||
exit $EXIT_FAILURE | exit 1 | |||
else | else | |||
$echo | echo | |||
$echo "*** Warning: Linking the shared library $output against the non-libtool" | echo "*** Warning: Linking the shared library $output against the non-libtool" | |||
$echo "*** objects $objs is not portable!" | echo "*** objects $objs is not portable!" | |||
libobjs="$libobjs $objs" | libobjs="$libobjs $objs" | |||
fi | fi | |||
fi | fi | |||
if test "$dlself" != no; then | if test "$dlself" != no; then | |||
$echo "$modename: warning: \`-dlopen self' is ignored for libtool li braries" 1>&2 | $echo "$modename: warning: \`-dlopen self' is ignored for libtool li braries" 1>&2 | |||
fi | fi | |||
set dummy $rpath | set dummy $rpath | |||
if test "$#" -gt 2; then | if test $# -gt 2; then | |||
$echo "$modename: warning: ignoring multiple \`-rpath's for a libtoo l library" 1>&2 | $echo "$modename: warning: ignoring multiple \`-rpath's for a libtoo l library" 1>&2 | |||
fi | fi | |||
install_libdir="$2" | install_libdir="$2" | |||
oldlibs= | oldlibs= | |||
if test -z "$rpath"; then | if test -z "$rpath"; then | |||
if test "$build_libtool_libs" = yes; then | if test "$build_libtool_libs" = yes; then | |||
# Building a libtool convenience library. | # Building a libtool convenience library. | |||
# Some compilers have problems with a `.al' extension so | libext=al | |||
# convenience libraries should have the same extension an | ||||
# archive normally would. | ||||
oldlibs="$output_objdir/$libname.$libext $oldlibs" | oldlibs="$output_objdir/$libname.$libext $oldlibs" | |||
build_libtool_libs=convenience | build_libtool_libs=convenience | |||
build_old_libs=yes | build_old_libs=yes | |||
fi | fi | |||
if test -n "$vinfo"; then | if test -n "$vinfo"; then | |||
$echo "$modename: warning: \`-version-info/-version-number' is ign ored for convenience libraries" 1>&2 | $echo "$modename: warning: \`-version-info' is ignored for conveni ence libraries" 1>&2 | |||
fi | fi | |||
if test -n "$release"; then | if test -n "$release"; then | |||
$echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2 | $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2 | |||
fi | fi | |||
else | else | |||
# Parse the version information argument. | # Parse the version information argument. | |||
save_ifs="$IFS"; IFS=':' | save_ifs="$IFS"; IFS=':' | |||
set dummy $vinfo 0 0 0 | set dummy $vinfo 0 0 0 | |||
IFS="$save_ifs" | IFS="$save_ifs" | |||
if test -n "$8"; then | if test -n "$8"; then | |||
$echo "$modename: too many parameters to \`-version-info'" 1>&2 | $echo "$modename: too many parameters to \`-version-info'" 1>&2 | |||
$echo "$help" 1>&2 | $echo "$help" 1>&2 | |||
exit $EXIT_FAILURE | exit 1 | |||
fi | fi | |||
# convert absolute version numbers to libtool ages | current="$2" | |||
# this retains compatibility with .la files and attempts | revision="$3" | |||
# to make the code below a bit more comprehensible | age="$4" | |||
case $vinfo_number in | ||||
yes) | ||||
number_major="$2" | ||||
number_minor="$3" | ||||
number_revision="$4" | ||||
# | ||||
# There are really only two kinds -- those that | ||||
# use the current revision as the major version | ||||
# and those that subtract age and use age as | ||||
# a minor version. But, then there is irix | ||||
# which has an extra 1 added just for fun | ||||
# | ||||
case $version_type in | ||||
darwin|linux|osf|windows) | ||||
current=`expr $number_major + $number_minor` | ||||
age="$number_minor" | ||||
revision="$number_revision" | ||||
;; | ||||
freebsd-aout|freebsd-elf|sunos) | ||||
current="$number_major" | ||||
revision="$number_minor" | ||||
age="0" | ||||
;; | ||||
irix|nonstopux) | ||||
current=`expr $number_major + $number_minor - 1` | ||||
age="$number_minor" | ||||
revision="$number_minor" | ||||
;; | ||||
esac | ||||
;; | ||||
no) | ||||
current="$2" | ||||
revision="$3" | ||||
age="$4" | ||||
;; | ||||
esac | ||||
# Check that each of the things are valid numbers. | # Check that each of the things are valid numbers. | |||
case $current in | case $current in | |||
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]) ;; | [0-9]*) ;; | |||
*) | *) | |||
$echo "$modename: CURRENT \`$current' must be a nonnegative intege r" 1>&2 | $echo "$modename: CURRENT \`$current' is not a nonnegative integer " 1>&2 | |||
$echo "$modename: \`$vinfo' is not valid version information" 1>&2 | $echo "$modename: \`$vinfo' is not valid version information" 1>&2 | |||
exit $EXIT_FAILURE | exit 1 | |||
;; | ;; | |||
esac | esac | |||
case $revision in | case $revision in | |||
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]) ;; | [0-9]*) ;; | |||
*) | *) | |||
$echo "$modename: REVISION \`$revision' must be a nonnegative inte ger" 1>&2 | $echo "$modename: REVISION \`$revision' is not a nonnegative integ er" 1>&2 | |||
$echo "$modename: \`$vinfo' is not valid version information" 1>&2 | $echo "$modename: \`$vinfo' is not valid version information" 1>&2 | |||
exit $EXIT_FAILURE | exit 1 | |||
;; | ;; | |||
esac | esac | |||
case $age in | case $age in | |||
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]) ;; | [0-9]*) ;; | |||
*) | *) | |||
$echo "$modename: AGE \`$age' must be a nonnegative integer" 1>&2 | $echo "$modename: AGE \`$age' is not a nonnegative integer" 1>&2 | |||
$echo "$modename: \`$vinfo' is not valid version information" 1>&2 | $echo "$modename: \`$vinfo' is not valid version information" 1>&2 | |||
exit $EXIT_FAILURE | exit 1 | |||
;; | ;; | |||
esac | esac | |||
if test "$age" -gt "$current"; then | if test $age -gt $current; then | |||
$echo "$modename: AGE \`$age' is greater than the current interfac e number \`$current'" 1>&2 | $echo "$modename: AGE \`$age' is greater than the current interfac e number \`$current'" 1>&2 | |||
$echo "$modename: \`$vinfo' is not valid version information" 1>&2 | $echo "$modename: \`$vinfo' is not valid version information" 1>&2 | |||
exit $EXIT_FAILURE | exit 1 | |||
fi | fi | |||
# Calculate the version variables. | # Calculate the version variables. | |||
major= | major= | |||
versuffix= | versuffix= | |||
verstring= | verstring= | |||
case $version_type in | case $version_type in | |||
none) ;; | none) ;; | |||
darwin) | darwin) | |||
# Like Linux, but with the current version available in | # Like Linux, but with the current version available in | |||
# verstring for coding it into the library header | # verstring for coding it into the library header | |||
major=.`expr $current - $age` | major=.`expr $current - $age` | |||
versuffix="$major.$age.$revision" | versuffix="$major.$age.$revision" | |||
# Darwin ld doesn't like 0 for these options... | # Darwin ld doesn't like 0 for these options... | |||
minor_current=`expr $current + 1` | minor_current=`expr $current + 1` | |||
verstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-c urrent_version ${wl}$minor_current.$revision" | verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" | |||
;; | ;; | |||
freebsd-aout) | freebsd-aout) | |||
major=".$current" | major=".$current" | |||
versuffix=".$current.$revision"; | versuffix=".$current.$revision"; | |||
;; | ;; | |||
freebsd-elf) | freebsd-elf) | |||
major=".$current" | major=".$current" | |||
versuffix=".$current"; | versuffix=".$current"; | |||
skipping to change at line 3327 | skipping to change at line 2346 | |||
major=`expr $current - $age + 1` | major=`expr $current - $age + 1` | |||
case $version_type in | case $version_type in | |||
nonstopux) verstring_prefix=nonstopux ;; | nonstopux) verstring_prefix=nonstopux ;; | |||
*) verstring_prefix=sgi ;; | *) verstring_prefix=sgi ;; | |||
esac | esac | |||
verstring="$verstring_prefix$major.$revision" | verstring="$verstring_prefix$major.$revision" | |||
# Add in all the interfaces that we are compatible with. | # Add in all the interfaces that we are compatible with. | |||
loop=$revision | loop=$revision | |||
while test "$loop" -ne 0; do | while test $loop != 0; do | |||
iface=`expr $revision - $loop` | iface=`expr $revision - $loop` | |||
loop=`expr $loop - 1` | loop=`expr $loop - 1` | |||
verstring="$verstring_prefix$major.$iface:$verstring" | verstring="$verstring_prefix$major.$iface:$verstring" | |||
done | done | |||
# Before this point, $major must not contain `.'. | # Before this point, $major must not contain `.'. | |||
major=.$major | major=.$major | |||
versuffix="$major.$revision" | versuffix="$major.$revision" | |||
;; | ;; | |||
skipping to change at line 3350 | skipping to change at line 2369 | |||
versuffix="$major.$age.$revision" | versuffix="$major.$age.$revision" | |||
;; | ;; | |||
osf) | osf) | |||
major=.`expr $current - $age` | major=.`expr $current - $age` | |||
versuffix=".$current.$age.$revision" | versuffix=".$current.$age.$revision" | |||
verstring="$current.$age.$revision" | verstring="$current.$age.$revision" | |||
# Add in all the interfaces that we are compatible with. | # Add in all the interfaces that we are compatible with. | |||
loop=$age | loop=$age | |||
while test "$loop" -ne 0; do | while test $loop != 0; do | |||
iface=`expr $current - $loop` | iface=`expr $current - $loop` | |||
loop=`expr $loop - 1` | loop=`expr $loop - 1` | |||
verstring="$verstring:${iface}.0" | verstring="$verstring:${iface}.0" | |||
done | done | |||
# Make executables depend on our current version. | # Make executables depend on our current version. | |||
verstring="$verstring:${current}.0" | verstring="$verstring:${current}.0" | |||
;; | ;; | |||
sunos) | sunos) | |||
skipping to change at line 3374 | skipping to change at line 2393 | |||
windows) | windows) | |||
# Use '-' rather than '.', since we only want one | # Use '-' rather than '.', since we only want one | |||
# extension on DOS 8.3 filesystems. | # extension on DOS 8.3 filesystems. | |||
major=`expr $current - $age` | major=`expr $current - $age` | |||
versuffix="-$major" | versuffix="-$major" | |||
;; | ;; | |||
*) | *) | |||
$echo "$modename: unknown library version type \`$version_type'" 1 >&2 | $echo "$modename: unknown library version type \`$version_type'" 1 >&2 | |||
$echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 | echo "Fatal configuration error. See the $PACKAGE docs for more i nformation." 1>&2 | |||
exit $EXIT_FAILURE | exit 1 | |||
;; | ;; | |||
esac | esac | |||
# Clear the version info if we defaulted, and they specified a relea se. | # Clear the version info if we defaulted, and they specified a relea se. | |||
if test -z "$vinfo" && test -n "$release"; then | if test -z "$vinfo" && test -n "$release"; then | |||
major= | major= | |||
verstring="0.0" | ||||
case $version_type in | case $version_type in | |||
darwin) | darwin) | |||
# we can't check for "0.0" in archive_cmds due to quoting | # we can't check for "0.0" in archive_cmds due to quoting | |||
# problems, so we reset it completely | # problems, so we reset it completely | |||
verstring= | verstring="" | |||
;; | ;; | |||
*) | *) | |||
verstring="0.0" | verstring="0.0" | |||
;; | ;; | |||
esac | esac | |||
if test "$need_version" = no; then | if test "$need_version" = no; then | |||
versuffix= | versuffix= | |||
else | else | |||
versuffix=".0.0" | versuffix=".0.0" | |||
fi | fi | |||
skipping to change at line 3420 | skipping to change at line 2440 | |||
build_libtool_libs=no | build_libtool_libs=no | |||
build_old_libs=yes | build_old_libs=yes | |||
fi | fi | |||
else | else | |||
# Don't allow undefined symbols. | # Don't allow undefined symbols. | |||
allow_undefined_flag="$no_undefined_flag" | allow_undefined_flag="$no_undefined_flag" | |||
fi | fi | |||
fi | fi | |||
if test "$mode" != relink; then | if test "$mode" != relink; then | |||
# Remove our outputs, but don't remove object files since they | # Remove our outputs. | |||
# may have been created when compiling PIC objects. | $show "${rm}r $output_objdir/$outputname $output_objdir/$libname.* $ output_objdir/${libname}${release}.*" | |||
removelist= | $run ${rm}r $output_objdir/$outputname $output_objdir/$libname.* $ou tput_objdir/${libname}${release}.* | |||
tempremovelist=`$echo "$output_objdir/*"` | ||||
for p in $tempremovelist; do | ||||
case $p in | ||||
*.$objext) | ||||
;; | ||||
$output_objdir/$outputname | $output_objdir/$libname.* | $output _objdir/${libname}${release}.*) | ||||
if test "X$precious_files_regex" != "X"; then | ||||
if echo $p | $EGREP -e "$precious_files_regex" >/dev/null 2 >&1 | ||||
then | ||||
continue | ||||
fi | ||||
fi | ||||
removelist="$removelist $p" | ||||
;; | ||||
*) ;; | ||||
esac | ||||
done | ||||
if test -n "$removelist"; then | ||||
$show "${rm}r $removelist" | ||||
$run ${rm}r $removelist | ||||
fi | ||||
fi | fi | |||
# Now set the variables for building old libraries. | # Now set the variables for building old libraries. | |||
if test "$build_old_libs" = yes && test "$build_libtool_libs" != conv enience ; then | if test "$build_old_libs" = yes && test "$build_libtool_libs" != conv enience ; then | |||
oldlibs="$oldlibs $output_objdir/$libname.$libext" | oldlibs="$oldlibs $output_objdir/$libname.$libext" | |||
# Transform .lo files to .o files. | # Transform .lo files to .o files. | |||
oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext }'$/d' -e "$lo2o" | $NL2SP` | oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext }'$/d' -e "$lo2o" | $NL2SP` | |||
fi | fi | |||
# Eliminate all temporary directories. | # Eliminate all temporary directories. | |||
for path in $notinst_path; do | for path in $notinst_path; do | |||
lib_search_path=`$echo "$lib_search_path " | ${SED} -e "s% $path % % g"` | lib_search_path=`echo "$lib_search_path " | ${SED} -e 's% $path % %g '` | |||
deplibs=`$echo "$deplibs " | ${SED} -e "s% -L$path % %g"` | deplibs=`echo "$deplibs " | ${SED} -e 's% -L$path % %g'` | |||
dependency_libs=`$echo "$dependency_libs " | ${SED} -e "s% -L$path % %g"` | dependency_libs=`echo "$dependency_libs " | ${SED} -e 's% -L$path % %g'` | |||
done | done | |||
if test -n "$xrpath"; then | if test -n "$xrpath"; then | |||
# If the user specified any rpath flags, then add them. | # If the user specified any rpath flags, then add them. | |||
temp_xrpath= | temp_xrpath= | |||
for libdir in $xrpath; do | for libdir in $xrpath; do | |||
temp_xrpath="$temp_xrpath -R$libdir" | temp_xrpath="$temp_xrpath -R$libdir" | |||
case "$finalize_rpath " in | case "$finalize_rpath " in | |||
*" $libdir "*) ;; | *" $libdir "*) ;; | |||
*) finalize_rpath="$finalize_rpath $libdir" ;; | *) finalize_rpath="$finalize_rpath $libdir" ;; | |||
skipping to change at line 3509 | skipping to change at line 2508 | |||
*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*) | *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*) | |||
# these systems don't actually have a c library (as such)! | # these systems don't actually have a c library (as such)! | |||
;; | ;; | |||
*-*-rhapsody* | *-*-darwin1.[012]) | *-*-rhapsody* | *-*-darwin1.[012]) | |||
# Rhapsody C library is in the System framework | # Rhapsody C library is in the System framework | |||
deplibs="$deplibs -framework System" | deplibs="$deplibs -framework System" | |||
;; | ;; | |||
*-*-netbsd*) | *-*-netbsd*) | |||
# Don't link with libc until the a.out ld.so is fixed. | # Don't link with libc until the a.out ld.so is fixed. | |||
;; | ;; | |||
*-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) | *-*-openbsd* | *-*-freebsd*) | |||
# Do not include libc due to us having libc/libc_r. | # Do not include libc due to us having libc/libc_r. | |||
;; | ;; | |||
*-*-sco3.2v5* | *-*-sco5v6*) | *) | |||
# Causes problems with __ctype | ||||
;; | ||||
*-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) | ||||
# Compiler inserts libc in the correct place for threads to work | ||||
;; | ||||
*) | ||||
# Add libc to deplibs on all other systems if necessary. | # Add libc to deplibs on all other systems if necessary. | |||
if test "$build_libtool_need_lc" = "yes"; then | if test "$build_libtool_need_lc" = "yes"; then | |||
deplibs="$deplibs -lc" | deplibs="$deplibs -lc" | |||
fi | fi | |||
;; | ;; | |||
esac | esac | |||
fi | fi | |||
# Transform deplibs into only deplibs that can be linked in shared. | # Transform deplibs into only deplibs that can be linked in shared. | |||
name_save=$name | name_save=$name | |||
skipping to change at line 3547 | skipping to change at line 2540 | |||
versuffix="" | versuffix="" | |||
major="" | major="" | |||
newdeplibs= | newdeplibs= | |||
droppeddeps=no | droppeddeps=no | |||
case $deplibs_check_method in | case $deplibs_check_method in | |||
pass_all) | pass_all) | |||
# Don't check for shared/static. Everything works. | # Don't check for shared/static. Everything works. | |||
# This might be a little naive. We might want to check | # This might be a little naive. We might want to check | |||
# whether the library exists or not. But this is on | # whether the library exists or not. But this is on | |||
# osf3 & osf4 and I'm not really sure... Just | # osf3 & osf4 and I'm not really sure... Just | |||
# implementing what was already the behavior. | # implementing what was already the behaviour. | |||
newdeplibs=$deplibs | newdeplibs=$deplibs | |||
;; | ;; | |||
test_compile) | test_compile) | |||
# This code stresses the "libraries are programs" paradigm to its | # This code stresses the "libraries are programs" paradigm to its | |||
# limits. Maybe even breaks it. We compile a program, linking it | # limits. Maybe even breaks it. We compile a program, linking it | |||
# against the deplibs as a proxy for the library. Then we can che ck | # against the deplibs as a proxy for the library. Then we can che ck | |||
# whether they linked in statically or dynamically with ldd. | # whether they linked in statically or dynamically with ldd. | |||
$rm conftest.c | $rm conftest.c | |||
cat > conftest.c <<EOF | cat > conftest.c <<EOF | |||
int main() { return 0; } | int main() { return 0; } | |||
EOF | EOF | |||
$rm conftest | $rm conftest | |||
$LTCC $LTCFLAGS -o conftest conftest.c $deplibs | $CC -o conftest conftest.c $deplibs | |||
if test "$?" -eq 0 ; then | if test $? -eq 0 ; then | |||
ldd_output=`ldd conftest` | ldd_output=`ldd conftest` | |||
for i in $deplibs; do | for i in $deplibs; do | |||
name=`expr $i : '-l\(.*\)'` | name="`expr $i : '-l\(.*\)'`" | |||
# If $name is empty we are operating on a -L argument. | # If $name is empty we are operating on a -L argument. | |||
if test "$name" != "" && test "$name" -ne "0"; then | if test -n "$name" && test "$name" != "0"; then | |||
if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then | libname=`eval \\$echo \"$libname_spec\"` | |||
case " $predeps $postdeps " in | deplib_matches=`eval \\$echo \"$library_names_spec\"` | |||
*" $i "*) | set dummy $deplib_matches | |||
newdeplibs="$newdeplibs $i" | deplib_match=$2 | |||
i="" | if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; the n | |||
;; | newdeplibs="$newdeplibs $i" | |||
esac | else | |||
fi | droppeddeps=yes | |||
if test -n "$i" ; then | echo | |||
libname=`eval \\$echo \"$libname_spec\"` | echo "*** Warning: dynamic linker does not accept needed l ibrary $i." | |||
deplib_matches=`eval \\$echo \"$library_names_spec\"` | echo "*** I have the capability to make that library autom atically link in when" | |||
set dummy $deplib_matches | echo "*** you link to this library. But I can only do thi s if you have a" | |||
deplib_match=$2 | echo "*** shared version of the library, which I believe y ou do not have" | |||
if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; t hen | echo "*** because a test_compile did reveal that the linke r did not use it for" | |||
newdeplibs="$newdeplibs $i" | echo "*** its dynamic dependency list that programs get re solved with at runtime." | |||
else | ||||
droppeddeps=yes | ||||
$echo | ||||
$echo "*** Warning: dynamic linker does not accept neede d library $i." | ||||
$echo "*** I have the capability to make that library au tomatically link in when" | ||||
$echo "*** you link to this library. But I can only do this if you have a" | ||||
$echo "*** shared version of the library, which I believ e you do not have" | ||||
$echo "*** because a test_compile did reveal that the li nker did not use it for" | ||||
$echo "*** its dynamic dependency list that programs get resolved with at runtime." | ||||
fi | ||||
fi | fi | |||
else | else | |||
newdeplibs="$newdeplibs $i" | newdeplibs="$newdeplibs $i" | |||
fi | fi | |||
done | done | |||
else | else | |||
# Error occurred in the first compile. Let's try to salvage | # Error occured in the first compile. Let's try to salvage | |||
# the situation: Compile a separate program for each library. | # the situation: Compile a separate program for each library. | |||
for i in $deplibs; do | for i in $deplibs; do | |||
name=`expr $i : '-l\(.*\)'` | name="`expr $i : '-l\(.*\)'`" | |||
# If $name is empty we are operating on a -L argument. | # If $name is empty we are operating on a -L argument. | |||
if test "$name" != "" && test "$name" != "0"; then | if test -n "$name" && test "$name" != "0"; then | |||
$rm conftest | $rm conftest | |||
$LTCC $LTCFLAGS -o conftest conftest.c $i | $CC -o conftest conftest.c $i | |||
# Did it work? | # Did it work? | |||
if test "$?" -eq 0 ; then | if test $? -eq 0 ; then | |||
ldd_output=`ldd conftest` | ldd_output=`ldd conftest` | |||
if test "X$allow_libtool_libs_with_static_runtimes" = "Xye s" ; then | libname=`eval \\$echo \"$libname_spec\"` | |||
case " $predeps $postdeps " in | deplib_matches=`eval \\$echo \"$library_names_spec\"` | |||
*" $i "*) | set dummy $deplib_matches | |||
newdeplibs="$newdeplibs $i" | deplib_match=$2 | |||
i="" | if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; t hen | |||
;; | newdeplibs="$newdeplibs $i" | |||
esac | else | |||
fi | droppeddeps=yes | |||
if test -n "$i" ; then | echo | |||
libname=`eval \\$echo \"$libname_spec\"` | echo "*** Warning: dynamic linker does not accept needed library $i." | |||
deplib_matches=`eval \\$echo \"$library_names_spec\"` | echo "*** I have the capability to make that library aut omatically link in when" | |||
set dummy $deplib_matches | echo "*** you link to this library. But I can only do t his if you have a" | |||
deplib_match=$2 | echo "*** shared version of the library, which you do no t appear to have" | |||
if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then | echo "*** because a test_compile did reveal that the lin ker did not use this one" | |||
newdeplibs="$newdeplibs $i" | echo "*** as a dynamic dependency that programs can get resolved with at runtime." | |||
else | ||||
droppeddeps=yes | ||||
$echo | ||||
$echo "*** Warning: dynamic linker does not accept nee ded library $i." | ||||
$echo "*** I have the capability to make that library automatically link in when" | ||||
$echo "*** you link to this library. But I can only d o this if you have a" | ||||
$echo "*** shared version of the library, which you do not appear to have" | ||||
$echo "*** because a test_compile did reveal that the linker did not use this one" | ||||
$echo "*** as a dynamic dependency that programs can g et resolved with at runtime." | ||||
fi | ||||
fi | fi | |||
else | else | |||
droppeddeps=yes | droppeddeps=yes | |||
$echo | echo | |||
$echo "*** Warning! Library $i is needed by this library but I was not able to" | echo "*** Warning! Library $i is needed by this library b ut I was not able to" | |||
$echo "*** make it link in! You will probably need to in stall it or some" | echo "*** make it link in! You will probably need to ins tall it or some" | |||
$echo "*** library that it depends on before this library will be fully" | echo "*** library that it depends on before this library w ill be fully" | |||
$echo "*** functional. Installing it before continuing wo uld be even better." | echo "*** functional. Installing it before continuing wou ld be even better." | |||
fi | fi | |||
else | else | |||
newdeplibs="$newdeplibs $i" | newdeplibs="$newdeplibs $i" | |||
fi | fi | |||
done | done | |||
fi | fi | |||
;; | ;; | |||
file_magic*) | file_magic*) | |||
set dummy $deplibs_check_method | set dummy $deplibs_check_method | |||
file_magic_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` | file_magic_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` | |||
for a_deplib in $deplibs; do | for a_deplib in $deplibs; do | |||
name=`expr $a_deplib : '-l\(.*\)'` | name="`expr $a_deplib : '-l\(.*\)'`" | |||
# If $name is empty we are operating on a -L argument. | # If $name is empty we are operating on a -L argument. | |||
if test "$name" != "" && test "$name" != "0"; then | if test -n "$name" && test "$name" != "0"; then | |||
if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then | libname=`eval \\$echo \"$libname_spec\"` | |||
case " $predeps $postdeps " in | for i in $lib_search_path $sys_lib_search_path $shlib_search_p ath; do | |||
*" $a_deplib "*) | potential_libs=`ls $i/$libname[.-]* 2>/dev/null` | |||
newdeplibs="$newdeplibs $a_deplib" | for potent_lib in $potential_libs; do | |||
a_deplib="" | ||||
;; | ||||
esac | ||||
fi | ||||
if test -n "$a_deplib" ; then | ||||
libname=`eval \\$echo \"$libname_spec\"` | ||||
for i in $lib_search_path $sys_lib_search_path $shlib_search _path; do | ||||
potential_libs=`ls $i/$libname[.-]* 2>/dev/null` | ||||
for potent_lib in $potential_libs; do | ||||
# Follow soft links. | # Follow soft links. | |||
if ls -lLd "$potent_lib" 2>/dev/null \ | if ls -lLd "$potent_lib" 2>/dev/null \ | |||
| grep " -> " >/dev/null; then | | grep " -> " >/dev/null; then | |||
continue | continue | |||
fi | fi | |||
# The statement above tries to avoid entering an | # The statement above tries to avoid entering an | |||
# endless loop below, in case of cyclic links. | # endless loop below, in case of cyclic links. | |||
# We might still enter an endless loop, since a link | # We might still enter an endless loop, since a link | |||
# loop can be closed while we follow links, | # loop can be closed while we follow links, | |||
# but so what? | # but so what? | |||
skipping to change at line 3696 | skipping to change at line 2660 | |||
done | done | |||
# It is ok to link against an archive when | # It is ok to link against an archive when | |||
# building a shared library. | # building a shared library. | |||
if $AR -t $potlib > /dev/null 2>&1; then | if $AR -t $potlib > /dev/null 2>&1; then | |||
newdeplibs="$newdeplibs $a_deplib" | newdeplibs="$newdeplibs $a_deplib" | |||
a_deplib="" | a_deplib="" | |||
break 2 | break 2 | |||
fi | fi | |||
if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \ | if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \ | |||
| ${SED} 10q \ | | ${SED} 10q \ | |||
| $EGREP "$file_magic_regex" > /dev/null; then | | egrep "$file_magic_regex" > /dev/null; then | |||
newdeplibs="$newdeplibs $a_deplib" | newdeplibs="$newdeplibs $a_deplib" | |||
a_deplib="" | a_deplib="" | |||
break 2 | break 2 | |||
fi | fi | |||
done | done | |||
done | done | |||
fi | ||||
if test -n "$a_deplib" ; then | if test -n "$a_deplib" ; then | |||
droppeddeps=yes | droppeddeps=yes | |||
$echo | echo | |||
$echo "*** Warning: linker path does not have real file for library $a_deplib." | echo "*** Warning: linker path does not have real file for l ibrary $a_deplib." | |||
$echo "*** I have the capability to make that library automa tically link in when" | echo "*** I have the capability to make that library automat ically link in when" | |||
$echo "*** you link to this library. But I can only do this if you have a" | echo "*** you link to this library. But I can only do this if you have a" | |||
$echo "*** shared version of the library, which you do not a ppear to have" | echo "*** shared version of the library, which you do not ap pear to have" | |||
$echo "*** because I did check the linker path looking for a file starting" | echo "*** because I did check the linker path looking for a file starting" | |||
if test -z "$potlib" ; then | if test -z "$potlib" ; then | |||
$echo "*** with $libname but no candidates were found. (.. .for file magic test)" | echo "*** with $libname but no candidates were found. (... for file magic test)" | |||
else | else | |||
$echo "*** with $libname and none of the candidates passed a file format test" | echo "*** with $libname and none of the candidates passed a file format test" | |||
$echo "*** using a file magic. Last file checked: $potlib" | echo "*** using a file magic. Last file checked: $potlib" | |||
fi | fi | |||
fi | fi | |||
else | else | |||
# Add a -L argument. | # Add a -L argument. | |||
newdeplibs="$newdeplibs $a_deplib" | newdeplibs="$newdeplibs $a_deplib" | |||
fi | fi | |||
done # Gone through all deplibs. | done # Gone through all deplibs. | |||
;; | ;; | |||
match_pattern*) | match_pattern*) | |||
set dummy $deplibs_check_method | set dummy $deplibs_check_method | |||
match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` | match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` | |||
for a_deplib in $deplibs; do | for a_deplib in $deplibs; do | |||
name=`expr $a_deplib : '-l\(.*\)'` | name="`expr $a_deplib : '-l\(.*\)'`" | |||
# If $name is empty we are operating on a -L argument. | # If $name is empty we are operating on a -L argument. | |||
if test -n "$name" && test "$name" != "0"; then | if test -n "$name" && test "$name" != "0"; then | |||
if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then | libname=`eval \\$echo \"$libname_spec\"` | |||
case " $predeps $postdeps " in | for i in $lib_search_path $sys_lib_search_path $shlib_search_p ath; do | |||
*" $a_deplib "*) | potential_libs=`ls $i/$libname[.-]* 2>/dev/null` | |||
newdeplibs="$newdeplibs $a_deplib" | for potent_lib in $potential_libs; do | |||
a_deplib="" | potlib="$potent_lib" # see symlink-check below in file_mag ic test | |||
;; | if eval echo \"$potent_lib\" 2>/dev/null \ | |||
esac | | ${SED} 10q \ | |||
fi | | egrep "$match_pattern_regex" > /dev/null; then | |||
if test -n "$a_deplib" ; then | newdeplibs="$newdeplibs $a_deplib" | |||
libname=`eval \\$echo \"$libname_spec\"` | a_deplib="" | |||
for i in $lib_search_path $sys_lib_search_path $shlib_search _path; do | break 2 | |||
potential_libs=`ls $i/$libname[.-]* 2>/dev/null` | fi | |||
for potent_lib in $potential_libs; do | ||||
potlib="$potent_lib" # see symlink-check above in file_m agic test | ||||
if eval $echo \"$potent_lib\" 2>/dev/null \ | ||||
| ${SED} 10q \ | ||||
| $EGREP "$match_pattern_regex" > /dev/null; then | ||||
newdeplibs="$newdeplibs $a_deplib" | ||||
a_deplib="" | ||||
break 2 | ||||
fi | ||||
done | ||||
done | done | |||
fi | done | |||
if test -n "$a_deplib" ; then | if test -n "$a_deplib" ; then | |||
droppeddeps=yes | droppeddeps=yes | |||
$echo | echo | |||
$echo "*** Warning: linker path does not have real file for library $a_deplib." | echo "*** Warning: linker path does not have real file for l ibrary $a_deplib." | |||
$echo "*** I have the capability to make that library automa tically link in when" | echo "*** I have the capability to make that library automat ically link in when" | |||
$echo "*** you link to this library. But I can only do this if you have a" | echo "*** you link to this library. But I can only do this if you have a" | |||
$echo "*** shared version of the library, which you do not a ppear to have" | echo "*** shared version of the library, which you do not ap pear to have" | |||
$echo "*** because I did check the linker path looking for a file starting" | echo "*** because I did check the linker path looking for a file starting" | |||
if test -z "$potlib" ; then | if test -z "$potlib" ; then | |||
$echo "*** with $libname but no candidates were found. (.. .for regex pattern test)" | echo "*** with $libname but no candidates were found. (... for regex pattern test)" | |||
else | else | |||
$echo "*** with $libname and none of the candidates passed a file format test" | echo "*** with $libname and none of the candidates passed a file format test" | |||
$echo "*** using a regex pattern. Last file checked: $potl ib" | echo "*** using a regex pattern. Last file checked: $potli b" | |||
fi | fi | |||
fi | fi | |||
else | else | |||
# Add a -L argument. | # Add a -L argument. | |||
newdeplibs="$newdeplibs $a_deplib" | newdeplibs="$newdeplibs $a_deplib" | |||
fi | fi | |||
done # Gone through all deplibs. | done # Gone through all deplibs. | |||
;; | ;; | |||
none | unknown | *) | none | unknown | *) | |||
newdeplibs="" | newdeplibs="" | |||
tmp_deplibs=`$echo "X $deplibs" | $Xsed -e 's/ -lc$//' \ | if $echo "X $deplibs" | $Xsed -e 's/ -lc$//' \ | |||
-e 's/ -[LR][^ ]*//g'` | -e 's/ -[LR][^ ]*//g' -e 's/[ ]//g' | | |||
if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; the n | grep . >/dev/null; then | |||
for i in $predeps $postdeps ; do | echo | |||
# can't use Xsed below, because $i might contain '/' | ||||
tmp_deplibs=`$echo "X $tmp_deplibs" | ${SED} -e "1s,^X,," -e " s,$i,,"` | ||||
done | ||||
fi | ||||
if $echo "X $tmp_deplibs" | $Xsed -e 's/[ ]//g' \ | ||||
| grep . >/dev/null; then | ||||
$echo | ||||
if test "X$deplibs_check_method" = "Xnone"; then | if test "X$deplibs_check_method" = "Xnone"; then | |||
$echo "*** Warning: inter-library dependencies are not support ed in this platform." | echo "*** Warning: inter-library dependencies are not supporte d in this platform." | |||
else | else | |||
$echo "*** Warning: inter-library dependencies are not known t o be supported." | echo "*** Warning: inter-library dependencies are not known to be supported." | |||
fi | fi | |||
$echo "*** All declared inter-library dependencies are being dro pped." | echo "*** All declared inter-library dependencies are being drop ped." | |||
droppeddeps=yes | droppeddeps=yes | |||
fi | fi | |||
;; | ;; | |||
esac | esac | |||
versuffix=$versuffix_save | versuffix=$versuffix_save | |||
major=$major_save | major=$major_save | |||
release=$release_save | release=$release_save | |||
libname=$libname_save | libname=$libname_save | |||
name=$name_save | name=$name_save | |||
case $host in | case $host in | |||
*-*-rhapsody* | *-*-darwin1.[012]) | *-*-rhapsody* | *-*-darwin1.[012]) | |||
# On Rhapsody replace the C library is the System framework | # On Rhapsody replace the C library is the System framework | |||
newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'` | newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'` | |||
;; | ;; | |||
esac | esac | |||
if test "$droppeddeps" = yes; then | if test "$droppeddeps" = yes; then | |||
if test "$module" = yes; then | if test "$module" = yes; then | |||
$echo | echo | |||
$echo "*** Warning: libtool could not satisfy all declared inter -library" | echo "*** Warning: libtool could not satisfy all declared inter- library" | |||
$echo "*** dependencies of module $libname. Therefore, libtool will create" | echo "*** dependencies of module $libname. Therefore, libtool w ill create" | |||
$echo "*** a static module, that should work as long as the dlop ening" | echo "*** a static module, that should work as long as the dlope ning" | |||
$echo "*** application is linked with the -dlopen flag." | echo "*** application is linked with the -dlopen flag." | |||
if test -z "$global_symbol_pipe"; then | if test -z "$global_symbol_pipe"; then | |||
$echo | echo | |||
$echo "*** However, this would only work if libtool was able t o extract symbol" | echo "*** However, this would only work if libtool was able to extract symbol" | |||
$echo "*** lists from a program, using \`nm' or equivalent, bu t libtool could" | echo "*** lists from a program, using \`nm' or equivalent, but libtool could" | |||
$echo "*** not find such a program. So, this module is probab ly useless." | echo "*** not find such a program. So, this module is probabl y useless." | |||
$echo "*** \`nm' from GNU binutils and a full rebuild may help ." | echo "*** \`nm' from GNU binutils and a full rebuild may help. " | |||
fi | fi | |||
if test "$build_old_libs" = no; then | if test "$build_old_libs" = no; then | |||
oldlibs="$output_objdir/$libname.$libext" | oldlibs="$output_objdir/$libname.$libext" | |||
build_libtool_libs=module | build_libtool_libs=module | |||
build_old_libs=yes | build_old_libs=yes | |||
else | else | |||
build_libtool_libs=no | build_libtool_libs=no | |||
fi | fi | |||
else | else | |||
$echo "*** The inter-library dependencies that have been dropped here will be" | echo "*** The inter-library dependencies that have been dropped here will be" | |||
$echo "*** automatically added whenever a program is linked with this library" | echo "*** automatically added whenever a program is linked with this library" | |||
$echo "*** or is declared to -dlopen it." | echo "*** or is declared to -dlopen it." | |||
if test "$allow_undefined" = no; then | if test "$allow_undefined" = no; then | |||
$echo | echo | |||
$echo "*** Since this library must not contain undefined symbo ls," | echo "*** Since this library must not contain undefined symbol s," | |||
$echo "*** because either the platform does not support them o r" | echo "*** because either the platform does not support them or " | |||
$echo "*** it was explicitly requested with -no-undefined," | echo "*** it was explicitly requested with -no-undefined," | |||
$echo "*** libtool will only create a static version of it." | echo "*** libtool will only create a static version of it." | |||
if test "$build_old_libs" = no; then | if test "$build_old_libs" = no; then | |||
oldlibs="$output_objdir/$libname.$libext" | oldlibs="$output_objdir/$libname.$libext" | |||
build_libtool_libs=module | build_libtool_libs=module | |||
build_old_libs=yes | build_old_libs=yes | |||
else | else | |||
build_libtool_libs=no | build_libtool_libs=no | |||
fi | fi | |||
fi | fi | |||
fi | fi | |||
fi | fi | |||
# Done checking deplibs! | # Done checking deplibs! | |||
deplibs=$newdeplibs | deplibs=$newdeplibs | |||
fi | fi | |||
# move library search paths that coincide with paths to not yet | ||||
# installed libraries to the beginning of the library search list | ||||
new_libs= | ||||
for path in $notinst_path; do | ||||
case " $new_libs " in | ||||
*" -L$path/$objdir "*) ;; | ||||
*) | ||||
case " $deplibs " in | ||||
*" -L$path/$objdir "*) | ||||
new_libs="$new_libs -L$path/$objdir" ;; | ||||
esac | ||||
;; | ||||
esac | ||||
done | ||||
for deplib in $deplibs; do | ||||
case $deplib in | ||||
-L*) | ||||
case " $new_libs " in | ||||
*" $deplib "*) ;; | ||||
*) new_libs="$new_libs $deplib" ;; | ||||
esac | ||||
;; | ||||
*) new_libs="$new_libs $deplib" ;; | ||||
esac | ||||
done | ||||
deplibs="$new_libs" | ||||
# All the library-specific variables (install_libdir is set above). | # All the library-specific variables (install_libdir is set above). | |||
library_names= | library_names= | |||
old_library= | old_library= | |||
dlname= | dlname= | |||
# Test again, we may have decided not to build it any more | # Test again, we may have decided not to build it any more | |||
if test "$build_libtool_libs" = yes; then | if test "$build_libtool_libs" = yes; then | |||
if test "$hardcode_into_libs" = yes; then | if test "$hardcode_into_libs" = yes; then | |||
# Hardcode the library paths | # Hardcode the library paths | |||
hardcode_libdirs= | hardcode_libdirs= | |||
skipping to change at line 3929 | skipping to change at line 2848 | |||
case "$perm_rpath " in | case "$perm_rpath " in | |||
*" $libdir "*) ;; | *" $libdir "*) ;; | |||
*) perm_rpath="$perm_rpath $libdir" ;; | *) perm_rpath="$perm_rpath $libdir" ;; | |||
esac | esac | |||
fi | fi | |||
done | done | |||
# Substitute the hardcoded libdirs into the rpath. | # Substitute the hardcoded libdirs into the rpath. | |||
if test -n "$hardcode_libdir_separator" && | if test -n "$hardcode_libdir_separator" && | |||
test -n "$hardcode_libdirs"; then | test -n "$hardcode_libdirs"; then | |||
libdir="$hardcode_libdirs" | libdir="$hardcode_libdirs" | |||
if test -n "$hardcode_libdir_flag_spec_ld"; then | eval dep_rpath=\"$hardcode_libdir_flag_spec\" | |||
eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" | ||||
else | ||||
eval dep_rpath=\"$hardcode_libdir_flag_spec\" | ||||
fi | ||||
fi | fi | |||
if test -n "$runpath_var" && test -n "$perm_rpath"; then | if test -n "$runpath_var" && test -n "$perm_rpath"; then | |||
# We should set the runpath_var. | # We should set the runpath_var. | |||
rpath= | rpath= | |||
for dir in $perm_rpath; do | for dir in $perm_rpath; do | |||
rpath="$rpath$dir:" | rpath="$rpath$dir:" | |||
done | done | |||
eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" | eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" | |||
fi | fi | |||
test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" | test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" | |||
fi | fi | |||
shlibpath="$finalize_shlibpath" | shlibpath="$finalize_shlibpath" | |||
test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath" | test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath" | |||
if test -n "$shlibpath"; then | if test -n "$shlibpath"; then | |||
eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpa th_var" | eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpa th_var" | |||
fi | fi | |||
# Get the real and link names of the library. | # Get the real and link names of the library. | |||
eval shared_ext=\"$shrext_cmds\" | ||||
eval library_names=\"$library_names_spec\" | eval library_names=\"$library_names_spec\" | |||
set dummy $library_names | set dummy $library_names | |||
realname="$2" | realname="$2" | |||
shift; shift | shift; shift | |||
if test -n "$soname_spec"; then | if test -n "$soname_spec"; then | |||
eval soname=\"$soname_spec\" | eval soname=\"$soname_spec\" | |||
else | else | |||
soname="$realname" | soname="$realname" | |||
fi | fi | |||
if test -z "$dlname"; then | test -z "$dlname" && dlname=$soname | |||
dlname=$soname | ||||
fi | ||||
lib="$output_objdir/$realname" | lib="$output_objdir/$realname" | |||
linknames= | ||||
for link | for link | |||
do | do | |||
linknames="$linknames $link" | linknames="$linknames $link" | |||
done | done | |||
# Ensure that we have .o objects for linkers which dislike .lo | ||||
# (e.g. aix) in case we are running --disable-static | ||||
for obj in $libobjs; do | ||||
xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'` | ||||
if test "X$xdir" = "X$obj"; then | ||||
xdir="." | ||||
else | ||||
xdir="$xdir" | ||||
fi | ||||
baseobj=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` | ||||
oldobj=`$echo "X$baseobj" | $Xsed -e "$lo2o"` | ||||
if test ! -f $xdir/$oldobj; then | ||||
$show "(cd $xdir && ${LN_S} $baseobj $oldobj)" | ||||
$run eval '(cd $xdir && ${LN_S} $baseobj $oldobj)' || exit $? | ||||
fi | ||||
done | ||||
# Use standard objects if they are pic | # Use standard objects if they are pic | |||
test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed - e "$lo2o" | $NL2SP` | test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed - e "$lo2o" | $NL2SP` | |||
# Prepare the list of exported symbols | # Prepare the list of exported symbols | |||
if test -z "$export_symbols"; then | if test -z "$export_symbols"; then | |||
if test "$always_export_symbols" = yes || test -n "$export_symbols _regex"; then | if test "$always_export_symbols" = yes || test -n "$export_symbols _regex"; then | |||
$show "generating symbol list for \`$libname.la'" | $show "generating symbol list for \`$libname.la'" | |||
export_symbols="$output_objdir/$libname.exp" | export_symbols="$output_objdir/$libname.exp" | |||
$run $rm $export_symbols | $run $rm $export_symbols | |||
cmds=$export_symbols_cmds | eval cmds=\"$export_symbols_cmds\" | |||
save_ifs="$IFS"; IFS='~' | save_ifs="$IFS"; IFS='~' | |||
for cmd in $cmds; do | for cmd in $cmds; do | |||
IFS="$save_ifs" | IFS="$save_ifs" | |||
eval cmd=\"$cmd\" | $show "$cmd" | |||
if len=`expr "X$cmd" : ".*"` && | $run eval "$cmd" || exit $? | |||
test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then | ||||
$show "$cmd" | ||||
$run eval "$cmd" || exit $? | ||||
skipped_export=false | ||||
else | ||||
# The command line is too long to execute in one step. | ||||
$show "using reloadable object file for export list..." | ||||
skipped_export=: | ||||
# Break out early, otherwise skipped_export may be | ||||
# set to false by a later but shorter cmd. | ||||
break | ||||
fi | ||||
done | done | |||
IFS="$save_ifs" | IFS="$save_ifs" | |||
if test -n "$export_symbols_regex"; then | if test -n "$export_symbols_regex"; then | |||
$show "$EGREP -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\"" | $show "egrep -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\"" | |||
$run eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' | $run eval 'egrep -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' | |||
$show "$mv \"${export_symbols}T\" \"$export_symbols\"" | $show "$mv \"${export_symbols}T\" \"$export_symbols\"" | |||
$run eval '$mv "${export_symbols}T" "$export_symbols"' | $run eval '$mv "${export_symbols}T" "$export_symbols"' | |||
fi | fi | |||
fi | fi | |||
fi | fi | |||
if test -n "$export_symbols" && test -n "$include_expsyms"; then | if test -n "$export_symbols" && test -n "$include_expsyms"; then | |||
$run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols" ' | $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols" ' | |||
fi | fi | |||
tmp_deplibs= | ||||
for test_deplib in $deplibs; do | ||||
case " $convenience " in | ||||
*" $test_deplib "*) ;; | ||||
*) | ||||
tmp_deplibs="$tmp_deplibs $test_deplib" | ||||
;; | ||||
esac | ||||
done | ||||
deplibs="$tmp_deplibs" | ||||
if test -n "$convenience"; then | if test -n "$convenience"; then | |||
if test -n "$whole_archive_flag_spec"; then | if test -n "$whole_archive_flag_spec"; then | |||
save_libobjs=$libobjs | ||||
eval libobjs=\"\$libobjs $whole_archive_flag_spec\" | eval libobjs=\"\$libobjs $whole_archive_flag_spec\" | |||
else | else | |||
gentop="$output_objdir/${outputname}x" | gentop="$output_objdir/${outputname}x" | |||
$show "${rm}r $gentop" | ||||
$run ${rm}r "$gentop" | ||||
$show "mkdir $gentop" | ||||
$run mkdir "$gentop" | ||||
status=$? | ||||
if test $status -ne 0 && test ! -d "$gentop"; then | ||||
exit $status | ||||
fi | ||||
generated="$generated $gentop" | generated="$generated $gentop" | |||
func_extract_archives $gentop $convenience | for xlib in $convenience; do | |||
libobjs="$libobjs $func_extract_archives_result" | # Extract the objects. | |||
case $xlib in | ||||
[\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;; | ||||
*) xabs=`pwd`"/$xlib" ;; | ||||
esac | ||||
xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'` | ||||
xdir="$gentop/$xlib" | ||||
$show "${rm}r $xdir" | ||||
$run ${rm}r "$xdir" | ||||
$show "mkdir $xdir" | ||||
$run mkdir "$xdir" | ||||
status=$? | ||||
if test $status -ne 0 && test ! -d "$xdir"; then | ||||
exit $status | ||||
fi | ||||
$show "(cd $xdir && $AR x $xabs)" | ||||
$run eval "(cd \$xdir && $AR x \$xabs)" || exit $? | ||||
libobjs="$libobjs "`find $xdir -name \*.o -print -o -name \*.l o -print | $NL2SP` | ||||
done | ||||
fi | fi | |||
fi | fi | |||
if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; th en | if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; th en | |||
eval flag=\"$thread_safe_flag_spec\" | eval flag=\"$thread_safe_flag_spec\" | |||
linker_flags="$linker_flags $flag" | linker_flags="$linker_flags $flag" | |||
fi | fi | |||
# Make a backup of the uninstalled library when relinking | # Make a backup of the uninstalled library when relinking | |||
if test "$mode" = relink; then | if test "$mode" = relink; then | |||
$run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $? | $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $? | |||
fi | fi | |||
# Do each of the archive commands. | # Do each of the archive commands. | |||
if test "$module" = yes && test -n "$module_cmds" ; then | ||||
if test -n "$export_symbols" && test -n "$module_expsym_cmds"; the n | ||||
eval test_cmds=\"$module_expsym_cmds\" | ||||
cmds=$module_expsym_cmds | ||||
else | ||||
eval test_cmds=\"$module_cmds\" | ||||
cmds=$module_cmds | ||||
fi | ||||
else | ||||
if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then | if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then | |||
eval test_cmds=\"$archive_expsym_cmds\" | eval cmds=\"$archive_expsym_cmds\" | |||
cmds=$archive_expsym_cmds | ||||
else | ||||
eval test_cmds=\"$archive_cmds\" | ||||
cmds=$archive_cmds | ||||
fi | ||||
fi | ||||
if test "X$skipped_export" != "X:" && | ||||
len=`expr "X$test_cmds" : ".*" 2>/dev/null` && | ||||
test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; the n | ||||
: | ||||
else | else | |||
# The command line is too long to link in one step, link piecewise . | save_deplibs="$deplibs" | |||
$echo "creating reloadable object files..." | for conv in $convenience; do | |||
tmp_deplibs= | ||||
# Save the value of $output and $libobjs because we want to | for test_deplib in $deplibs; do | |||
# use them later. If we have whole_archive_flag_spec, we | if test "$test_deplib" != "$conv"; then | |||
# want to use save_libobjs as it was before | tmp_deplibs="$tmp_deplibs $test_deplib" | |||
# whole_archive_flag_spec was expanded, because we can't | ||||
# assume the linker understands whole_archive_flag_spec. | ||||
# This may have to be revisited, in case too many | ||||
# convenience libraries get linked in and end up exceeding | ||||
# the spec. | ||||
if test -z "$convenience" || test -z "$whole_archive_flag_spec"; t hen | ||||
save_libobjs=$libobjs | ||||
fi | ||||
save_output=$output | ||||
output_la=`$echo "X$output" | $Xsed -e "$basename"` | ||||
# Clear the reloadable object creation command queue and | ||||
# initialize k to one. | ||||
test_cmds= | ||||
concat_cmds= | ||||
objlist= | ||||
delfiles= | ||||
last_robj= | ||||
k=1 | ||||
output=$output_objdir/$output_la-${k}.$objext | ||||
# Loop over the list of objects to be linked. | ||||
for obj in $save_libobjs | ||||
do | ||||
eval test_cmds=\"$reload_cmds $objlist $last_robj\" | ||||
if test "X$objlist" = X || | ||||
{ len=`expr "X$test_cmds" : ".*" 2>/dev/null` && | ||||
test "$len" -le "$max_cmd_len"; }; then | ||||
objlist="$objlist $obj" | ||||
else | ||||
# The command $test_cmds is almost too long, add a | ||||
# command to the queue. | ||||
if test "$k" -eq 1 ; then | ||||
# The first file doesn't have a previous command to add. | ||||
eval concat_cmds=\"$reload_cmds $objlist $last_robj\" | ||||
else | ||||
# All subsequent reloadable object files will link in | ||||
# the last one created. | ||||
eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last _robj\" | ||||
fi | fi | |||
last_robj=$output_objdir/$output_la-${k}.$objext | done | |||
k=`expr $k + 1` | deplibs="$tmp_deplibs" | |||
output=$output_objdir/$output_la-${k}.$objext | ||||
objlist=$obj | ||||
len=1 | ||||
fi | ||||
done | ||||
# Handle the remaining objects by creating one last | ||||
# reloadable object file. All subsequent reloadable object | ||||
# files will link in the last one created. | ||||
test -z "$concat_cmds" || concat_cmds=$concat_cmds~ | ||||
eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj \" | ||||
if ${skipped_export-false}; then | ||||
$show "generating symbol list for \`$libname.la'" | ||||
export_symbols="$output_objdir/$libname.exp" | ||||
$run $rm $export_symbols | ||||
libobjs=$output | ||||
# Append the command to create the export file. | ||||
eval concat_cmds=\"\$concat_cmds~$export_symbols_cmds\" | ||||
fi | ||||
# Set up a command to remove the reloadable object files | ||||
# after they are used. | ||||
i=0 | ||||
while test "$i" -lt "$k" | ||||
do | ||||
i=`expr $i + 1` | ||||
delfiles="$delfiles $output_objdir/$output_la-${i}.$objext" | ||||
done | ||||
$echo "creating a temporary reloadable object file: $output" | ||||
# Loop through the commands generated above and execute them. | ||||
save_ifs="$IFS"; IFS='~' | ||||
for cmd in $concat_cmds; do | ||||
IFS="$save_ifs" | ||||
$show "$cmd" | ||||
$run eval "$cmd" || exit $? | ||||
done | done | |||
IFS="$save_ifs" | eval cmds=\"$archive_cmds\" | |||
deplibs="$save_deplibs" | ||||
libobjs=$output | ||||
# Restore the value of output. | ||||
output=$save_output | ||||
if test -n "$convenience" && test -n "$whole_archive_flag_spec"; t hen | ||||
eval libobjs=\"\$libobjs $whole_archive_flag_spec\" | ||||
fi | ||||
# Expand the library linking commands again to reset the | ||||
# value of $libobjs for piecewise linking. | ||||
# Do each of the archive commands. | ||||
if test "$module" = yes && test -n "$module_cmds" ; then | ||||
if test -n "$export_symbols" && test -n "$module_expsym_cmds"; t hen | ||||
cmds=$module_expsym_cmds | ||||
else | ||||
cmds=$module_cmds | ||||
fi | ||||
else | ||||
if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; th en | ||||
cmds=$archive_expsym_cmds | ||||
else | ||||
cmds=$archive_cmds | ||||
fi | ||||
fi | ||||
# Append the command to remove the reloadable object files | ||||
# to the just-reset $cmds. | ||||
eval cmds=\"\$cmds~\$rm $delfiles\" | ||||
fi | fi | |||
save_ifs="$IFS"; IFS='~' | save_ifs="$IFS"; IFS='~' | |||
for cmd in $cmds; do | for cmd in $cmds; do | |||
IFS="$save_ifs" | IFS="$save_ifs" | |||
eval cmd=\"$cmd\" | ||||
$show "$cmd" | $show "$cmd" | |||
$run eval "$cmd" || { | $run eval "$cmd" || exit $? | |||
lt_exit=$? | ||||
# Restore the uninstalled library and exit | ||||
if test "$mode" = relink; then | ||||
$run eval '(cd $output_objdir && $rm ${realname}T && $mv ${rea lname}U $realname)' | ||||
fi | ||||
exit $lt_exit | ||||
} | ||||
done | done | |||
IFS="$save_ifs" | IFS="$save_ifs" | |||
# Restore the uninstalled library and exit | # Restore the uninstalled library and exit | |||
if test "$mode" = relink; then | if test "$mode" = relink; then | |||
$run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $? | $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $? | |||
exit 0 | ||||
if test -n "$convenience"; then | ||||
if test -z "$whole_archive_flag_spec"; then | ||||
$show "${rm}r $gentop" | ||||
$run ${rm}r "$gentop" | ||||
fi | ||||
fi | ||||
exit $EXIT_SUCCESS | ||||
fi | fi | |||
# Create links to the real library. | # Create links to the real library. | |||
for linkname in $linknames; do | for linkname in $linknames; do | |||
if test "$realname" != "$linkname"; then | if test "$realname" != "$linkname"; then | |||
$show "(cd $output_objdir && $rm $linkname && $LN_S $realname $l inkname)" | $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $l inkname)" | |||
$run eval '(cd $output_objdir && $rm $linkname && $LN_S $realnam e $linkname)' || exit $? | $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realnam e $linkname)' || exit $? | |||
fi | fi | |||
done | done | |||
skipping to change at line 4268 | skipping to change at line 3059 | |||
fi | fi | |||
if test -n "$release"; then | if test -n "$release"; then | |||
$echo "$modename: warning: \`-release' is ignored for objects" 1>&2 | $echo "$modename: warning: \`-release' is ignored for objects" 1>&2 | |||
fi | fi | |||
case $output in | case $output in | |||
*.lo) | *.lo) | |||
if test -n "$objs$old_deplibs"; then | if test -n "$objs$old_deplibs"; then | |||
$echo "$modename: cannot build library object \`$output' from non- libtool objects" 1>&2 | $echo "$modename: cannot build library object \`$output' from non- libtool objects" 1>&2 | |||
exit $EXIT_FAILURE | exit 1 | |||
fi | fi | |||
libobj="$output" | libobj="$output" | |||
obj=`$echo "X$output" | $Xsed -e "$lo2o"` | obj=`$echo "X$output" | $Xsed -e "$lo2o"` | |||
;; | ;; | |||
*) | *) | |||
libobj= | libobj= | |||
obj="$output" | obj="$output" | |||
;; | ;; | |||
esac | esac | |||
skipping to change at line 4297 | skipping to change at line 3088 | |||
gentop= | gentop= | |||
# reload_cmds runs $LD directly, so let us get rid of | # reload_cmds runs $LD directly, so let us get rid of | |||
# -Wl from whole_archive_flag_spec | # -Wl from whole_archive_flag_spec | |||
wl= | wl= | |||
if test -n "$convenience"; then | if test -n "$convenience"; then | |||
if test -n "$whole_archive_flag_spec"; then | if test -n "$whole_archive_flag_spec"; then | |||
eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\" | eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\" | |||
else | else | |||
gentop="$output_objdir/${obj}x" | gentop="$output_objdir/${obj}x" | |||
$show "${rm}r $gentop" | ||||
$run ${rm}r "$gentop" | ||||
$show "mkdir $gentop" | ||||
$run mkdir "$gentop" | ||||
status=$? | ||||
if test $status -ne 0 && test ! -d "$gentop"; then | ||||
exit $status | ||||
fi | ||||
generated="$generated $gentop" | generated="$generated $gentop" | |||
func_extract_archives $gentop $convenience | for xlib in $convenience; do | |||
reload_conv_objs="$reload_objs $func_extract_archives_result" | # Extract the objects. | |||
case $xlib in | ||||
[\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;; | ||||
*) xabs=`pwd`"/$xlib" ;; | ||||
esac | ||||
xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'` | ||||
xdir="$gentop/$xlib" | ||||
$show "${rm}r $xdir" | ||||
$run ${rm}r "$xdir" | ||||
$show "mkdir $xdir" | ||||
$run mkdir "$xdir" | ||||
status=$? | ||||
if test $status -ne 0 && test ! -d "$xdir"; then | ||||
exit $status | ||||
fi | ||||
$show "(cd $xdir && $AR x $xabs)" | ||||
$run eval "(cd \$xdir && $AR x \$xabs)" || exit $? | ||||
reload_conv_objs="$reload_objs "`find $xdir -name \*.o -print -o -name \*.lo -print | $NL2SP` | ||||
done | ||||
fi | fi | |||
fi | fi | |||
# Create the old-style object. | # Create the old-style object. | |||
reload_objs="$objs$old_deplibs "`$echo "X$libobjs" | $SP2NL | $Xsed - e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_obj s" ### testsuite: skip nested quoting test | reload_objs="$objs$old_deplibs "`$echo "X$libobjs" | $SP2NL | $Xsed - e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_obj s" ### testsuite: skip nested quoting test | |||
output="$obj" | output="$obj" | |||
cmds=$reload_cmds | eval cmds=\"$reload_cmds\" | |||
save_ifs="$IFS"; IFS='~' | save_ifs="$IFS"; IFS='~' | |||
for cmd in $cmds; do | for cmd in $cmds; do | |||
IFS="$save_ifs" | IFS="$save_ifs" | |||
eval cmd=\"$cmd\" | ||||
$show "$cmd" | $show "$cmd" | |||
$run eval "$cmd" || exit $? | $run eval "$cmd" || exit $? | |||
done | done | |||
IFS="$save_ifs" | IFS="$save_ifs" | |||
# Exit if we aren't doing a library object file. | # Exit if we aren't doing a library object file. | |||
if test -z "$libobj"; then | if test -z "$libobj"; then | |||
if test -n "$gentop"; then | if test -n "$gentop"; then | |||
$show "${rm}r $gentop" | $show "${rm}r $gentop" | |||
$run ${rm}r $gentop | $run ${rm}r $gentop | |||
fi | fi | |||
exit $EXIT_SUCCESS | exit 0 | |||
fi | fi | |||
if test "$build_libtool_libs" != yes; then | if test "$build_libtool_libs" != yes; then | |||
if test -n "$gentop"; then | if test -n "$gentop"; then | |||
$show "${rm}r $gentop" | $show "${rm}r $gentop" | |||
$run ${rm}r $gentop | $run ${rm}r $gentop | |||
fi | fi | |||
# Create an invalid libtool object if no PIC, so that we don't | # Create an invalid libtool object if no PIC, so that we don't | |||
# accidentally link it into a program. | # accidentally link it into a program. | |||
# $show "echo timestamp > $libobj" | $show "echo timestamp > $libobj" | |||
# $run eval "echo timestamp > $libobj" || exit $? | $run eval "echo timestamp > $libobj" || exit $? | |||
exit $EXIT_SUCCESS | exit 0 | |||
fi | fi | |||
if test -n "$pic_flag" || test "$pic_mode" != default; then | if test -n "$pic_flag" || test "$pic_mode" != default; then | |||
# Only do commands if we really have different PIC objects. | # Only do commands if we really have different PIC objects. | |||
reload_objs="$libobjs $reload_conv_objs" | reload_objs="$libobjs $reload_conv_objs" | |||
output="$libobj" | output="$libobj" | |||
cmds=$reload_cmds | eval cmds=\"$reload_cmds\" | |||
save_ifs="$IFS"; IFS='~' | save_ifs="$IFS"; IFS='~' | |||
for cmd in $cmds; do | for cmd in $cmds; do | |||
IFS="$save_ifs" | IFS="$save_ifs" | |||
eval cmd=\"$cmd\" | ||||
$show "$cmd" | $show "$cmd" | |||
$run eval "$cmd" || exit $? | $run eval "$cmd" || exit $? | |||
done | done | |||
IFS="$save_ifs" | IFS="$save_ifs" | |||
else | ||||
# Just create a symlink. | ||||
$show $rm $libobj | ||||
$run $rm $libobj | ||||
xdir=`$echo "X$libobj" | $Xsed -e 's%/[^/]*$%%'` | ||||
if test "X$xdir" = "X$libobj"; then | ||||
xdir="." | ||||
else | ||||
xdir="$xdir" | ||||
fi | ||||
baseobj=`$echo "X$libobj" | $Xsed -e 's%^.*/%%'` | ||||
oldobj=`$echo "X$baseobj" | $Xsed -e "$lo2o"` | ||||
$show "(cd $xdir && $LN_S $oldobj $baseobj)" | ||||
$run eval '(cd $xdir && $LN_S $oldobj $baseobj)' || exit $? | ||||
fi | fi | |||
if test -n "$gentop"; then | if test -n "$gentop"; then | |||
$show "${rm}r $gentop" | $show "${rm}r $gentop" | |||
$run ${rm}r $gentop | $run ${rm}r $gentop | |||
fi | fi | |||
exit $EXIT_SUCCESS | exit 0 | |||
;; | ;; | |||
prog) | prog) | |||
case $host in | case $host in | |||
*cygwin*) output=`$echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ; ; | *cygwin*) output=`echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;; | |||
esac | esac | |||
if test -n "$vinfo"; then | if test -n "$vinfo"; then | |||
$echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2 | $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2 | |||
fi | fi | |||
if test -n "$release"; then | if test -n "$release"; then | |||
$echo "$modename: warning: \`-release' is ignored for programs" 1>&2 | $echo "$modename: warning: \`-release' is ignored for programs" 1>&2 | |||
fi | fi | |||
if test "$preload" = yes; then | if test "$preload" = yes; then | |||
skipping to change at line 4388 | skipping to change at line 3219 | |||
test "$dlopen_self_static" = unknown; then | test "$dlopen_self_static" = unknown; then | |||
$echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support." | $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support." | |||
fi | fi | |||
fi | fi | |||
case $host in | case $host in | |||
*-*-rhapsody* | *-*-darwin1.[012]) | *-*-rhapsody* | *-*-darwin1.[012]) | |||
# On Rhapsody replace the C library is the System framework | # On Rhapsody replace the C library is the System framework | |||
compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -fr amework System /'` | compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -fr amework System /'` | |||
finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / - framework System /'` | finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / - framework System /'` | |||
;; | case $host in | |||
esac | *darwin*) | |||
# Don't allow lazy linking, it breaks C++ global constructors | ||||
case $host in | compile_command="$compile_command ${wl}-bind_at_load" | |||
*darwin*) | finalize_command="$finalize_command ${wl}-bind_at_load" | |||
# Don't allow lazy linking, it breaks C++ global constructors | ||||
if test "$tagname" = CXX ; then | ||||
compile_command="$compile_command ${wl}-bind_at_load" | ||||
finalize_command="$finalize_command ${wl}-bind_at_load" | ||||
fi | ||||
;; | ||||
esac | ||||
# move library search paths that coincide with paths to not yet | ||||
# installed libraries to the beginning of the library search list | ||||
new_libs= | ||||
for path in $notinst_path; do | ||||
case " $new_libs " in | ||||
*" -L$path/$objdir "*) ;; | ||||
*) | ||||
case " $compile_deplibs " in | ||||
*" -L$path/$objdir "*) | ||||
new_libs="$new_libs -L$path/$objdir" ;; | ||||
esac | ||||
;; | ||||
esac | ||||
done | ||||
for deplib in $compile_deplibs; do | ||||
case $deplib in | ||||
-L*) | ||||
case " $new_libs " in | ||||
*" $deplib "*) ;; | ||||
*) new_libs="$new_libs $deplib" ;; | ||||
esac | ||||
;; | ;; | |||
*) new_libs="$new_libs $deplib" ;; | ||||
esac | esac | |||
done | ;; | |||
compile_deplibs="$new_libs" | esac | |||
compile_command="$compile_command $compile_deplibs" | compile_command="$compile_command $compile_deplibs" | |||
finalize_command="$finalize_command $finalize_deplibs" | finalize_command="$finalize_command $finalize_deplibs" | |||
if test -n "$rpath$xrpath"; then | if test -n "$rpath$xrpath"; then | |||
# If the user specified any rpath flags, then add them. | # If the user specified any rpath flags, then add them. | |||
for libdir in $rpath $xrpath; do | for libdir in $rpath $xrpath; do | |||
# This is the magic to use -rpath. | # This is the magic to use -rpath. | |||
case "$finalize_rpath " in | case "$finalize_rpath " in | |||
*" $libdir "*) ;; | *" $libdir "*) ;; | |||
skipping to change at line 4472 | skipping to change at line 3273 | |||
rpath="$rpath $flag" | rpath="$rpath $flag" | |||
fi | fi | |||
elif test -n "$runpath_var"; then | elif test -n "$runpath_var"; then | |||
case "$perm_rpath " in | case "$perm_rpath " in | |||
*" $libdir "*) ;; | *" $libdir "*) ;; | |||
*) perm_rpath="$perm_rpath $libdir" ;; | *) perm_rpath="$perm_rpath $libdir" ;; | |||
esac | esac | |||
fi | fi | |||
case $host in | case $host in | |||
*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) | *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) | |||
testbindir=`$echo "X$libdir" | $Xsed -e 's*/lib$*/bin*'` | ||||
case :$dllsearchpath: in | case :$dllsearchpath: in | |||
*":$libdir:"*) ;; | *":$libdir:"*) ;; | |||
*) dllsearchpath="$dllsearchpath:$libdir";; | *) dllsearchpath="$dllsearchpath:$libdir";; | |||
esac | esac | |||
case :$dllsearchpath: in | ||||
*":$testbindir:"*) ;; | ||||
*) dllsearchpath="$dllsearchpath:$testbindir";; | ||||
esac | ||||
;; | ;; | |||
esac | esac | |||
done | done | |||
# Substitute the hardcoded libdirs into the rpath. | # Substitute the hardcoded libdirs into the rpath. | |||
if test -n "$hardcode_libdir_separator" && | if test -n "$hardcode_libdir_separator" && | |||
test -n "$hardcode_libdirs"; then | test -n "$hardcode_libdirs"; then | |||
libdir="$hardcode_libdirs" | libdir="$hardcode_libdirs" | |||
eval rpath=\" $hardcode_libdir_flag_spec\" | eval rpath=\" $hardcode_libdir_flag_spec\" | |||
fi | fi | |||
compile_rpath="$rpath" | compile_rpath="$rpath" | |||
skipping to change at line 4583 | skipping to change at line 3379 | |||
test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist" | test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist" | |||
# Add our own program objects to the symbol list. | # Add our own program objects to the symbol list. | |||
progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o " | $NL2SP` | progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o " | $NL2SP` | |||
for arg in $progfiles; do | for arg in $progfiles; do | |||
$show "extracting global C symbols from \`$arg'" | $show "extracting global C symbols from \`$arg'" | |||
$run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" | $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" | |||
done | done | |||
if test -n "$exclude_expsyms"; then | if test -n "$exclude_expsyms"; then | |||
$run eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist "T' | $run eval 'egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist" T' | |||
$run eval '$mv "$nlist"T "$nlist"' | $run eval '$mv "$nlist"T "$nlist"' | |||
fi | fi | |||
if test -n "$export_symbols_regex"; then | if test -n "$export_symbols_regex"; then | |||
$run eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlis t"T' | $run eval 'egrep -e "$export_symbols_regex" "$nlist" > "$nlist "T' | |||
$run eval '$mv "$nlist"T "$nlist"' | $run eval '$mv "$nlist"T "$nlist"' | |||
fi | fi | |||
# Prepare the list of exported symbols | # Prepare the list of exported symbols | |||
if test -z "$export_symbols"; then | if test -z "$export_symbols"; then | |||
export_symbols="$output_objdir/$outputname.exp" | export_symbols="$output_objdir/$output.exp" | |||
$run $rm $export_symbols | $run $rm $export_symbols | |||
$run eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/ \1/p' "'< "$nlist" > "$export_symbols"' | $run eval "${SED} -n -e '/^: @PROGRAM@$/d' -e 's/^.* \(.*\)$/\ 1/p' "'< "$nlist" > "$export_symbols"' | |||
case $host in | ||||
*cygwin* | *mingw* ) | ||||
$run eval "echo EXPORTS "'> "$output_objdir/$outputname.def" ' | ||||
$run eval 'cat "$export_symbols" >> "$output_objdir/$outputn ame.def"' | ||||
;; | ||||
esac | ||||
else | else | |||
$run eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' | $run eval "${SED} -e 's/\([][.*^$]\)/\\\1/g' -e 's/^/ /' -e 's /$/$/'"' < "$export_symbols" > "$output_objdir/$output.exp"' | |||
$run eval 'grep -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' | $run eval 'grep -f "$output_objdir/$output.exp" < "$nlist" > " $nlist"T' | |||
$run eval 'mv "$nlist"T "$nlist"' | $run eval 'mv "$nlist"T "$nlist"' | |||
case $host in | ||||
*cygwin* | *mingw* ) | ||||
$run eval "echo EXPORTS "'> "$output_objdir/$outputname.def" ' | ||||
$run eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' | ||||
;; | ||||
esac | ||||
fi | fi | |||
fi | fi | |||
for arg in $dlprefiles; do | for arg in $dlprefiles; do | |||
$show "extracting global C symbols from \`$arg'" | $show "extracting global C symbols from \`$arg'" | |||
name=`$echo "$arg" | ${SED} -e 's%^.*/%%'` | name=`echo "$arg" | ${SED} -e 's%^.*/%%'` | |||
$run eval '$echo ": $name " >> "$nlist"' | $run eval 'echo ": $name " >> "$nlist"' | |||
$run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" | $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" | |||
done | done | |||
if test -z "$run"; then | if test -z "$run"; then | |||
# Make sure we have at least an empty file. | # Make sure we have at least an empty file. | |||
test -f "$nlist" || : > "$nlist" | test -f "$nlist" || : > "$nlist" | |||
if test -n "$exclude_expsyms"; then | if test -n "$exclude_expsyms"; then | |||
$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T | egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T | |||
$mv "$nlist"T "$nlist" | $mv "$nlist"T "$nlist" | |||
fi | fi | |||
# Try sorting and uniquifying the output. | # Try sorting and uniquifying the output. | |||
if grep -v "^: " < "$nlist" | | if grep -v "^: " < "$nlist" | | |||
if sort -k 3 </dev/null >/dev/null 2>&1; then | if sort -k 3 </dev/null >/dev/null 2>&1; then | |||
sort -k 3 | sort -k 3 | |||
else | else | |||
sort +2 | sort +2 | |||
fi | | fi | | |||
uniq > "$nlist"S; then | uniq > "$nlist"S; then | |||
: | : | |||
else | else | |||
grep -v "^: " < "$nlist" > "$nlist"S | grep -v "^: " < "$nlist" > "$nlist"S | |||
fi | fi | |||
if test -f "$nlist"S; then | if test -f "$nlist"S; then | |||
eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir /$dlsyms"' | eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir /$dlsyms"' | |||
else | else | |||
$echo '/* NONE */' >> "$output_objdir/$dlsyms" | echo '/* NONE */' >> "$output_objdir/$dlsyms" | |||
fi | fi | |||
$echo >> "$output_objdir/$dlsyms" "\ | $echo >> "$output_objdir/$dlsyms" "\ | |||
#undef lt_preloaded_symbols | #undef lt_preloaded_symbols | |||
#if defined (__STDC__) && __STDC__ | #if defined (__STDC__) && __STDC__ | |||
# define lt_ptr void * | # define lt_ptr void * | |||
#else | #else | |||
# define lt_ptr char * | # define lt_ptr char * | |||
# define const | # define const | |||
#endif | #endif | |||
/* The mapping between symbol names and symbols. */ | /* The mapping between symbol names and symbols. */ | |||
" | ||||
case $host in | ||||
*cygwin* | *mingw* ) | ||||
$echo >> "$output_objdir/$dlsyms" "\ | ||||
/* DATA imports from DLLs on WIN32 can't be const, because | ||||
runtime relocations are performed -- see ld's documentation | ||||
on pseudo-relocs */ | ||||
struct { | ||||
" | ||||
;; | ||||
* ) | ||||
$echo >> "$output_objdir/$dlsyms" "\ | ||||
const struct { | const struct { | |||
" | ||||
;; | ||||
esac | ||||
$echo >> "$output_objdir/$dlsyms" "\ | ||||
const char *name; | const char *name; | |||
lt_ptr address; | lt_ptr address; | |||
} | } | |||
lt_preloaded_symbols[] = | lt_preloaded_symbols[] = | |||
{\ | {\ | |||
" | " | |||
eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_o bjdir/$dlsyms" | eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_o bjdir/$dlsyms" | |||
$echo >> "$output_objdir/$dlsyms" "\ | $echo >> "$output_objdir/$dlsyms" "\ | |||
skipping to change at line 4718 | skipping to change at line 3484 | |||
pic_flag_for_symtable= | pic_flag_for_symtable= | |||
case $host in | case $host in | |||
# compiling the symbol table file with pic_flag works around | # compiling the symbol table file with pic_flag works around | |||
# a FreeBSD bug that causes programs to crash when -lm is | # a FreeBSD bug that causes programs to crash when -lm is | |||
# linked before any other PIC object. But we must not use | # linked before any other PIC object. But we must not use | |||
# pic_flag when linking with -static. The problem exists in | # pic_flag when linking with -static. The problem exists in | |||
# FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. | # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. | |||
*-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) | *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) | |||
case "$compile_command " in | case "$compile_command " in | |||
*" -static "*) ;; | *" -static "*) ;; | |||
*) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND";; | *) pic_flag_for_symtable=" $pic_flag -DPIC -DFREEBSD_WORKAROUND" ;; | |||
esac;; | esac;; | |||
*-*-hpux*) | *-*-hpux*) | |||
case "$compile_command " in | case "$compile_command " in | |||
*" -static "*) ;; | *" -static "*) ;; | |||
*) pic_flag_for_symtable=" $pic_flag";; | *) pic_flag_for_symtable=" $pic_flag -DPIC";; | |||
esac | esac | |||
esac | esac | |||
# Now compile the dynamic symbol file. | # Now compile the dynamic symbol file. | |||
$show "(cd $output_objdir && $LTCC $LTCFLAGS -c$no_builtin_flag$p ic_flag_for_symtable \"$dlsyms\")" | $show "(cd $output_objdir && $CC -c$no_builtin_flag$pic_flag_for_s ymtable \"$dlsyms\")" | |||
$run eval '(cd $output_objdir && $LTCC $LTCFLAGS -c$no_builtin_fl ag$pic_flag_for_symtable "$dlsyms")' || exit $? | $run eval '(cd $output_objdir && $CC -c$no_builtin_flag$pic_flag_f or_symtable "$dlsyms")' || exit $? | |||
# Clean up the generated files. | # Clean up the generated files. | |||
$show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T" | $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T" | |||
$run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T" | $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T" | |||
# Transform the symbol file into the correct name. | # Transform the symbol file into the correct name. | |||
case $host in | compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@ %$output_objdir/${outputname}S.${objext}%"` | |||
*cygwin* | *mingw* ) | finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFIL E@%$output_objdir/${outputname}S.${objext}%"` | |||
if test -f "$output_objdir/${outputname}.def" ; then | ||||
compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYM FILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${obje xt}%"` | ||||
finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@S YMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${ob jext}%"` | ||||
else | ||||
compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYM FILE@%$output_objdir/${outputname}S.${objext}%"` | ||||
finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@S YMFILE@%$output_objdir/${outputname}S.${objext}%"` | ||||
fi | ||||
;; | ||||
* ) | ||||
compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFI LE@%$output_objdir/${outputname}S.${objext}%"` | ||||
finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYM FILE@%$output_objdir/${outputname}S.${objext}%"` | ||||
;; | ||||
esac | ||||
;; | ;; | |||
*) | *) | |||
$echo "$modename: unknown suffix for \`$dlsyms'" 1>&2 | $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2 | |||
exit $EXIT_FAILURE | exit 1 | |||
;; | ;; | |||
esac | esac | |||
else | else | |||
# We keep going just in case the user didn't refer to | # We keep going just in case the user didn't refer to | |||
# lt_preloaded_symbols. The linker will fail if global_symbol_pipe | # lt_preloaded_symbols. The linker will fail if global_symbol_pipe | |||
# really was required. | # really was required. | |||
# Nullify the symbol file. | # Nullify the symbol file. | |||
compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@% %"` | compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@% %"` | |||
finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE @%%"` | finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE @%%"` | |||
fi | fi | |||
if test "$need_relink" = no || test "$build_libtool_libs" != yes; the n | if test "$need_relink" = no || test "$build_libtool_libs" != yes; the n | |||
# Replace the output file specification. | # Replace the output file specification. | |||
compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'" $output"'%g'` | compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'" $output"'%g'` | |||
link_command="$compile_command$compile_rpath" | link_command="$compile_command$compile_rpath" | |||
# We have no uninstalled library dependencies, so finalize right now . | # We have no uninstalled library dependencies, so finalize right now . | |||
$show "$link_command" | $show "$link_command" | |||
$run eval "$link_command" | $run eval "$link_command" | |||
exit_status=$? | status=$? | |||
# Delete the generated files. | # Delete the generated files. | |||
if test -n "$dlsyms"; then | if test -n "$dlsyms"; then | |||
$show "$rm $output_objdir/${outputname}S.${objext}" | $show "$rm $output_objdir/${outputname}S.${objext}" | |||
$run $rm "$output_objdir/${outputname}S.${objext}" | $run $rm "$output_objdir/${outputname}S.${objext}" | |||
fi | fi | |||
exit $exit_status | exit $status | |||
fi | fi | |||
if test -n "$shlibpath_var"; then | if test -n "$shlibpath_var"; then | |||
# We should set the shlibpath_var | # We should set the shlibpath_var | |||
rpath= | rpath= | |||
for dir in $temp_rpath; do | for dir in $temp_rpath; do | |||
case $dir in | case $dir in | |||
[\\/]* | [A-Za-z]:[\\/]*) | [\\/]* | [A-Za-z]:[\\/]*) | |||
# Absolute path. | # Absolute path. | |||
rpath="$rpath$dir:" | rpath="$rpath$dir:" | |||
skipping to change at line 4842 | skipping to change at line 3595 | |||
if test "$no_install" = yes; then | if test "$no_install" = yes; then | |||
# We don't need to create a wrapper script. | # We don't need to create a wrapper script. | |||
link_command="$compile_var$compile_command$compile_rpath" | link_command="$compile_var$compile_command$compile_rpath" | |||
# Replace the output file specification. | # Replace the output file specification. | |||
link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$outpu t"'%g'` | link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$outpu t"'%g'` | |||
# Delete the old output file. | # Delete the old output file. | |||
$run $rm $output | $run $rm $output | |||
# Link the executable and exit | # Link the executable and exit | |||
$show "$link_command" | $show "$link_command" | |||
$run eval "$link_command" || exit $? | $run eval "$link_command" || exit $? | |||
exit $EXIT_SUCCESS | exit 0 | |||
fi | fi | |||
if test "$hardcode_action" = relink; then | if test "$hardcode_action" = relink; then | |||
# Fast installation is not supported | # Fast installation is not supported | |||
link_command="$compile_var$compile_command$compile_rpath" | link_command="$compile_var$compile_command$compile_rpath" | |||
relink_command="$finalize_var$finalize_command$finalize_rpath" | relink_command="$finalize_var$finalize_command$finalize_rpath" | |||
$echo "$modename: warning: this platform does not like uninstalled s hared libraries" 1>&2 | $echo "$modename: warning: this platform does not like uninstalled s hared libraries" 1>&2 | |||
$echo "$modename: \`$output' will be relinked during installation" 1 >&2 | $echo "$modename: \`$output' will be relinked during installation" 1 >&2 | |||
else | else | |||
skipping to change at line 4897 | skipping to change at line 3650 | |||
else | else | |||
var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` | var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` | |||
relink_command="$var=\"$var_value\"; export $var; $relink_comman d" | relink_command="$var=\"$var_value\"; export $var; $relink_comman d" | |||
fi | fi | |||
done | done | |||
relink_command="(cd `pwd`; $relink_command)" | relink_command="(cd `pwd`; $relink_command)" | |||
relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subs t"` | relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subs t"` | |||
fi | fi | |||
# Quote $echo for shipping. | # Quote $echo for shipping. | |||
if test "X$echo" = "X$SHELL $progpath --fallback-echo"; then | if test "X$echo" = "X$SHELL $0 --fallback-echo"; then | |||
case $progpath in | case $0 in | |||
[\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";; | [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $0 --fallback-echo";; | |||
*) qecho="$SHELL `pwd`/$progpath --fallback-echo";; | *) qecho="$SHELL `pwd`/$0 --fallback-echo";; | |||
esac | esac | |||
qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"` | qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"` | |||
else | else | |||
qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"` | qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"` | |||
fi | fi | |||
# Only actually do things if our run command is non-null. | # Only actually do things if our run command is non-null. | |||
if test -z "$run"; then | if test -z "$run"; then | |||
# win32 will think the script is a binary if it has | # win32 will think the script is a binary if it has | |||
# a .exe suffix, so we strip it off here. | # a .exe suffix, so we strip it off here. | |||
case $output in | case $output in | |||
*.exe) output=`$echo $output|${SED} 's,.exe$,,'` ;; | *.exe) output=`echo $output|${SED} 's,.exe$,,'` ;; | |||
esac | esac | |||
# test for cygwin because mv fails w/o .exe extensions | # test for cygwin because mv fails w/o .exe extensions | |||
case $host in | case $host in | |||
*cygwin*) | *cygwin*) exeext=.exe ;; | |||
exeext=.exe | ||||
outputname=`$echo $outputname|${SED} 's,.exe$,,'` ;; | ||||
*) exeext= ;; | *) exeext= ;; | |||
esac | esac | |||
case $host in | $rm $output | |||
*cygwin* | *mingw* ) | trap "$rm $output; exit 1" 1 2 15 | |||
output_name=`basename $output` | ||||
output_path=`dirname $output` | ||||
cwrappersource="$output_path/$objdir/lt-$output_name.c" | ||||
cwrapper="$output_path/$output_name.exe" | ||||
$rm $cwrappersource $cwrapper | ||||
trap "$rm $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 | ||||
cat > $cwrappersource <<EOF | ||||
/* $cwrappersource - temporary wrapper executable for $objdir/$outputname | ||||
Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP | ||||
The $output program cannot be directly executed until all the libtool | ||||
libraries that it depends on are installed. | ||||
This wrapper executable should never be moved out of the build directory . | ||||
If it is, it will not operate correctly. | ||||
Currently, it simply execs the wrapper *script* "/bin/sh $output", | ||||
but could eventually absorb all of the scripts functionality and | ||||
exec $objdir/$outputname directly. | ||||
*/ | ||||
EOF | ||||
cat >> $cwrappersource<<"EOF" | ||||
#include <stdio.h> | ||||
#include <stdlib.h> | ||||
#include <unistd.h> | ||||
#include <malloc.h> | ||||
#include <stdarg.h> | ||||
#include <assert.h> | ||||
#include <string.h> | ||||
#include <ctype.h> | ||||
#include <sys/stat.h> | ||||
#if defined(PATH_MAX) | ||||
# define LT_PATHMAX PATH_MAX | ||||
#elif defined(MAXPATHLEN) | ||||
# define LT_PATHMAX MAXPATHLEN | ||||
#else | ||||
# define LT_PATHMAX 1024 | ||||
#endif | ||||
#ifndef DIR_SEPARATOR | ||||
# define DIR_SEPARATOR '/' | ||||
# define PATH_SEPARATOR ':' | ||||
#endif | ||||
#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ | ||||
defined (__OS2__) | ||||
# define HAVE_DOS_BASED_FILE_SYSTEM | ||||
# ifndef DIR_SEPARATOR_2 | ||||
# define DIR_SEPARATOR_2 '\\' | ||||
# endif | ||||
# ifndef PATH_SEPARATOR_2 | ||||
# define PATH_SEPARATOR_2 ';' | ||||
# endif | ||||
#endif | ||||
#ifndef DIR_SEPARATOR_2 | ||||
# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) | ||||
#else /* DIR_SEPARATOR_2 */ | ||||
# define IS_DIR_SEPARATOR(ch) \ | ||||
(((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) | ||||
#endif /* DIR_SEPARATOR_2 */ | ||||
#ifndef PATH_SEPARATOR_2 | ||||
# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) | ||||
#else /* PATH_SEPARATOR_2 */ | ||||
# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) | ||||
#endif /* PATH_SEPARATOR_2 */ | ||||
#define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) | ||||
#define XFREE(stale) do { \ | ||||
if (stale) { free ((void *) stale); stale = 0; } \ | ||||
} while (0) | ||||
/* -DDEBUG is fairly common in CFLAGS. */ | ||||
#undef DEBUG | ||||
#if defined DEBUGWRAPPER | ||||
# define DEBUG(format, ...) fprintf(stderr, format, __VA_ARGS__) | ||||
#else | ||||
# define DEBUG(format, ...) | ||||
#endif | ||||
const char *program_name = NULL; | ||||
void * xmalloc (size_t num); | ||||
char * xstrdup (const char *string); | ||||
const char * base_name (const char *name); | ||||
char * find_executable(const char *wrapper); | ||||
int check_executable(const char *path); | ||||
char * strendzap(char *str, const char *pat); | ||||
void lt_fatal (const char *message, ...); | ||||
int | ||||
main (int argc, char *argv[]) | ||||
{ | ||||
char **newargz; | ||||
int i; | ||||
program_name = (char *) xstrdup (base_name (argv[0])); | ||||
DEBUG("(main) argv[0] : %s\n",argv[0]); | ||||
DEBUG("(main) program_name : %s\n",program_name); | ||||
newargz = XMALLOC(char *, argc+2); | ||||
EOF | ||||
cat >> $cwrappersource <<EOF | ||||
newargz[0] = (char *) xstrdup("$SHELL"); | ||||
EOF | ||||
cat >> $cwrappersource <<"EOF" | ||||
newargz[1] = find_executable(argv[0]); | ||||
if (newargz[1] == NULL) | ||||
lt_fatal("Couldn't find %s", argv[0]); | ||||
DEBUG("(main) found exe at : %s\n",newargz[1]); | ||||
/* we know the script has the same name, without the .exe */ | ||||
/* so make sure newargz[1] doesn't end in .exe */ | ||||
strendzap(newargz[1],".exe"); | ||||
for (i = 1; i < argc; i++) | ||||
newargz[i+1] = xstrdup(argv[i]); | ||||
newargz[argc+1] = NULL; | ||||
for (i=0; i<argc+1; i++) | ||||
{ | ||||
DEBUG("(main) newargz[%d] : %s\n",i,newargz[i]); | ||||
; | ||||
} | ||||
EOF | ||||
case $host_os in | ||||
mingw*) | ||||
cat >> $cwrappersource <<EOF | ||||
execv("$SHELL",(char const **)newargz); | ||||
EOF | ||||
;; | ||||
*) | ||||
cat >> $cwrappersource <<EOF | ||||
execv("$SHELL",newargz); | ||||
EOF | ||||
;; | ||||
esac | ||||
cat >> $cwrappersource <<"EOF" | ||||
return 127; | ||||
} | ||||
void * | ||||
xmalloc (size_t num) | ||||
{ | ||||
void * p = (void *) malloc (num); | ||||
if (!p) | ||||
lt_fatal ("Memory exhausted"); | ||||
return p; | ||||
} | ||||
char * | ||||
xstrdup (const char *string) | ||||
{ | ||||
return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL | ||||
; | ||||
} | ||||
const char * | ||||
base_name (const char *name) | ||||
{ | ||||
const char *base; | ||||
#if defined (HAVE_DOS_BASED_FILE_SYSTEM) | ||||
/* Skip over the disk name in MSDOS pathnames. */ | ||||
if (isalpha ((unsigned char)name[0]) && name[1] == ':') | ||||
name += 2; | ||||
#endif | ||||
for (base = name; *name; name++) | ||||
if (IS_DIR_SEPARATOR (*name)) | ||||
base = name + 1; | ||||
return base; | ||||
} | ||||
int | ||||
check_executable(const char * path) | ||||
{ | ||||
struct stat st; | ||||
DEBUG("(check_executable) : %s\n", path ? (*path ? path : "EMPTY!") : "N ULL!"); | ||||
if ((!path) || (!*path)) | ||||
return 0; | ||||
if ((stat (path, &st) >= 0) && | ||||
( | ||||
/* MinGW & native WIN32 do not support S_IXOTH or S_IXGRP */ | ||||
#if defined (S_IXOTH) | ||||
((st.st_mode & S_IXOTH) == S_IXOTH) || | ||||
#endif | ||||
#if defined (S_IXGRP) | ||||
((st.st_mode & S_IXGRP) == S_IXGRP) || | ||||
#endif | ||||
((st.st_mode & S_IXUSR) == S_IXUSR)) | ||||
) | ||||
return 1; | ||||
else | ||||
return 0; | ||||
} | ||||
/* Searches for the full path of the wrapper. Returns | ||||
newly allocated full path name if found, NULL otherwise */ | ||||
char * | ||||
find_executable (const char* wrapper) | ||||
{ | ||||
int has_slash = 0; | ||||
const char* p; | ||||
const char* p_next; | ||||
/* static buffer for getcwd */ | ||||
char tmp[LT_PATHMAX + 1]; | ||||
int tmp_len; | ||||
char* concat_name; | ||||
DEBUG("(find_executable) : %s\n", wrapper ? (*wrapper ? wrapper : "EMPTY !") : "NULL!"); | ||||
if ((wrapper == NULL) || (*wrapper == '\0')) | ||||
return NULL; | ||||
/* Absolute path? */ | ||||
#if defined (HAVE_DOS_BASED_FILE_SYSTEM) | ||||
if (isalpha ((unsigned char)wrapper[0]) && wrapper[1] == ':') | ||||
{ | ||||
concat_name = xstrdup (wrapper); | ||||
if (check_executable(concat_name)) | ||||
return concat_name; | ||||
XFREE(concat_name); | ||||
} | ||||
else | ||||
{ | ||||
#endif | ||||
if (IS_DIR_SEPARATOR (wrapper[0])) | ||||
{ | ||||
concat_name = xstrdup (wrapper); | ||||
if (check_executable(concat_name)) | ||||
return concat_name; | ||||
XFREE(concat_name); | ||||
} | ||||
#if defined (HAVE_DOS_BASED_FILE_SYSTEM) | ||||
} | ||||
#endif | ||||
for (p = wrapper; *p; p++) | ||||
if (*p == '/') | ||||
{ | ||||
has_slash = 1; | ||||
break; | ||||
} | ||||
if (!has_slash) | ||||
{ | ||||
/* no slashes; search PATH */ | ||||
const char* path = getenv ("PATH"); | ||||
if (path != NULL) | ||||
{ | ||||
for (p = path; *p; p = p_next) | ||||
{ | ||||
const char* q; | ||||
size_t p_len; | ||||
for (q = p; *q; q++) | ||||
if (IS_PATH_SEPARATOR(*q)) | ||||
break; | ||||
p_len = q - p; | ||||
p_next = (*q == '\0' ? q : q + 1); | ||||
if (p_len == 0) | ||||
{ | ||||
/* empty path: current directory */ | ||||
if (getcwd (tmp, LT_PATHMAX) == NULL) | ||||
lt_fatal ("getcwd failed"); | ||||
tmp_len = strlen(tmp); | ||||
concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1); | ||||
memcpy (concat_name, tmp, tmp_len); | ||||
concat_name[tmp_len] = '/'; | ||||
strcpy (concat_name + tmp_len + 1, wrapper); | ||||
} | ||||
else | ||||
{ | ||||
concat_name = XMALLOC(char, p_len + 1 + strlen(wrapper) + 1); | ||||
memcpy (concat_name, p, p_len); | ||||
concat_name[p_len] = '/'; | ||||
strcpy (concat_name + p_len + 1, wrapper); | ||||
} | ||||
if (check_executable(concat_name)) | ||||
return concat_name; | ||||
XFREE(concat_name); | ||||
} | ||||
} | ||||
/* not found in PATH; assume curdir */ | ||||
} | ||||
/* Relative path | not found in path: prepend cwd */ | ||||
if (getcwd (tmp, LT_PATHMAX) == NULL) | ||||
lt_fatal ("getcwd failed"); | ||||
tmp_len = strlen(tmp); | ||||
concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1); | ||||
memcpy (concat_name, tmp, tmp_len); | ||||
concat_name[tmp_len] = '/'; | ||||
strcpy (concat_name + tmp_len + 1, wrapper); | ||||
if (check_executable(concat_name)) | ||||
return concat_name; | ||||
XFREE(concat_name); | ||||
return NULL; | ||||
} | ||||
char * | ||||
strendzap(char *str, const char *pat) | ||||
{ | ||||
size_t len, patlen; | ||||
assert(str != NULL); | ||||
assert(pat != NULL); | ||||
len = strlen(str); | ||||
patlen = strlen(pat); | ||||
if (patlen <= len) | ||||
{ | ||||
str += len - patlen; | ||||
if (strcmp(str, pat) == 0) | ||||
*str = '\0'; | ||||
} | ||||
return str; | ||||
} | ||||
static void | ||||
lt_error_core (int exit_status, const char * mode, | ||||
const char * message, va_list ap) | ||||
{ | ||||
fprintf (stderr, "%s: %s: ", program_name, mode); | ||||
vfprintf (stderr, message, ap); | ||||
fprintf (stderr, ".\n"); | ||||
if (exit_status >= 0) | ||||
exit (exit_status); | ||||
} | ||||
void | ||||
lt_fatal (const char *message, ...) | ||||
{ | ||||
va_list ap; | ||||
va_start (ap, message); | ||||
lt_error_core (EXIT_FAILURE, "FATAL", message, ap); | ||||
va_end (ap); | ||||
} | ||||
EOF | ||||
# we should really use a build-platform specific compiler | ||||
# here, but OTOH, the wrappers (shell script and this C one) | ||||
# are only useful if you want to execute the "real" binary. | ||||
# Since the "real" binary is built for $host, then this | ||||
# wrapper might as well be built for $host, too. | ||||
$run $LTCC $LTCFLAGS -s -o $cwrapper $cwrappersource | ||||
;; | ||||
esac | ||||
$rm $output | ||||
trap "$rm $output; exit $EXIT_FAILURE" 1 2 15 | ||||
$echo > $output "\ | $echo > $output "\ | |||
#! $SHELL | #! $SHELL | |||
# $output - temporary wrapper script for $objdir/$outputname | # $output - temporary wrapper script for $objdir/$outputname | |||
# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP | # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP | |||
# | # | |||
# The $output program cannot be directly executed until all the libtool | # The $output program cannot be directly executed until all the libtool | |||
# libraries that it depends on are installed. | # libraries that it depends on are installed. | |||
# | # | |||
# This wrapper script should never be moved out of the build directory. | # This wrapper script should never be moved out of the build directory. | |||
# If it is, it will not operate correctly. | # If it is, it will not operate correctly. | |||
# Sed substitution that helps us do robust quoting. It backslashifies | # Sed substitution that helps us do robust quoting. It backslashifies | |||
# metacharacters that are still active within double-quoted strings. | # metacharacters that are still active within double-quoted strings. | |||
Xsed='${SED} -e 1s/^X//' | Xsed="${SED}"' -e 1s/^X//' | |||
sed_quote_subst='$sed_quote_subst' | sed_quote_subst='$sed_quote_subst' | |||
# The HP-UX ksh and POSIX shell print the target directory to stdout | # The HP-UX ksh and POSIX shell print the target directory to stdout | |||
# if CDPATH is set. | # if CDPATH is set. | |||
(unset CDPATH) >/dev/null 2>&1 && unset CDPATH | if test \"\${CDPATH+set}\" = set; then CDPATH=:; export CDPATH; fi | |||
relink_command=\"$relink_command\" | relink_command=\"$relink_command\" | |||
# This environment variable determines our operation mode. | # This environment variable determines our operation mode. | |||
if test \"\$libtool_install_magic\" = \"$magic\"; then | if test \"\$libtool_install_magic\" = \"$magic\"; then | |||
# install mode needs the following variable: | # install mode needs the following variable: | |||
notinst_deplibs='$notinst_deplibs' | notinst_deplibs='$notinst_deplibs' | |||
else | else | |||
# When we are sourced in execute mode, \$file and \$echo are already set. | # When we are sourced in execute mode, \$file and \$echo are already set. | |||
if test \"\$libtool_execute_magic\" != \"$magic\"; then | if test \"\$libtool_execute_magic\" != \"$magic\"; then | |||
skipping to change at line 5357 | skipping to change at line 3749 | |||
file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\` | file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\` | |||
file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\` | file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\` | |||
done | done | |||
# Try to get the absolute directory name. | # Try to get the absolute directory name. | |||
absdir=\`cd \"\$thisdir\" && pwd\` | absdir=\`cd \"\$thisdir\" && pwd\` | |||
test -n \"\$absdir\" && thisdir=\"\$absdir\" | test -n \"\$absdir\" && thisdir=\"\$absdir\" | |||
" | " | |||
if test "$fast_install" = yes; then | if test "$fast_install" = yes; then | |||
$echo >> $output "\ | echo >> $output "\ | |||
program=lt-'$outputname'$exeext | program=lt-'$outputname'$exeext | |||
progdir=\"\$thisdir/$objdir\" | progdir=\"\$thisdir/$objdir\" | |||
if test ! -f \"\$progdir/\$program\" || \\ | if test ! -f \"\$progdir/\$program\" || \\ | |||
{ file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2> /dev/null | ${SED} 1q\`; \\ | { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2> /dev/null | ${SED} 1q\`; \\ | |||
test \"X\$file\" != \"X\$progdir/\$program\"; }; then | test \"X\$file\" != \"X\$progdir/\$program\"; }; then | |||
file=\"\$\$-\$program\" | file=\"\$\$-\$program\" | |||
if test ! -d \"\$progdir\"; then | if test ! -d \"\$progdir\"; then | |||
$mkdir \"\$progdir\" | $mkdir \"\$progdir\" | |||
else | else | |||
$rm \"\$progdir/\$file\" | $rm \"\$progdir/\$file\" | |||
fi" | fi" | |||
$echo >> $output "\ | echo >> $output "\ | |||
# relink executable if necessary | # relink executable if necessary | |||
if test -n \"\$relink_command\"; then | if test -n \"\$relink_command\"; then | |||
if relink_command_output=\`eval \$relink_command 2>&1\`; then : | if relink_command_output=\`eval \$relink_command 2>&1\`; then : | |||
else | else | |||
$echo \"\$relink_command_output\" >&2 | $echo \"\$relink_command_output\" >&2 | |||
$rm \"\$progdir/\$file\" | $rm \"\$progdir/\$file\" | |||
exit $EXIT_FAILURE | exit 1 | |||
fi | fi | |||
fi | fi | |||
$mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || | $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || | |||
{ $rm \"\$progdir/\$program\"; | { $rm \"\$progdir/\$program\"; | |||
$mv \"\$progdir/\$file\" \"\$progdir/\$program\"; } | $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; } | |||
$rm \"\$progdir/\$file\" | $rm \"\$progdir/\$file\" | |||
fi" | fi" | |||
else | else | |||
$echo >> $output "\ | echo >> $output "\ | |||
program='$outputname' | program='$outputname' | |||
progdir=\"\$thisdir/$objdir\" | progdir=\"\$thisdir/$objdir\" | |||
" | " | |||
fi | fi | |||
$echo >> $output "\ | echo >> $output "\ | |||
if test -f \"\$progdir/\$program\"; then" | if test -f \"\$progdir/\$program\"; then" | |||
# Export our shlibpath_var if we have one. | # Export our shlibpath_var if we have one. | |||
if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_ var" && test -n "$temp_rpath"; then | if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_ var" && test -n "$temp_rpath"; then | |||
$echo >> $output "\ | $echo >> $output "\ | |||
# Add our own library path to $shlibpath_var | # Add our own library path to $shlibpath_var | |||
$shlibpath_var=\"$temp_rpath\$$shlibpath_var\" | $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" | |||
# Some systems cannot cope with colon-terminated $shlibpath_var | # Some systems cannot cope with colon-terminated $shlibpath_var | |||
# The second colon is a workaround for a bug in BeOS R4 sed | # The second colon is a workaround for a bug in BeOS R4 ${SED} | |||
$shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\` | $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\` | |||
export $shlibpath_var | export $shlibpath_var | |||
" | " | |||
fi | fi | |||
# fixup the dll searchpath if we need to. | # fixup the dll searchpath if we need to. | |||
if test -n "$dllsearchpath"; then | if test -n "$dllsearchpath"; then | |||
$echo >> $output "\ | $echo >> $output "\ | |||
# Add the dll search path components to the executable PATH | # Add the dll search path components to the executable PATH | |||
PATH=$dllsearchpath:\$PATH | PATH=$dllsearchpath:\$PATH | |||
" | " | |||
fi | fi | |||
$echo >> $output "\ | $echo >> $output "\ | |||
if test \"\$libtool_execute_magic\" != \"$magic\"; then | if test \"\$libtool_execute_magic\" != \"$magic\"; then | |||
# Run the actual program with our arguments. | # Run the actual program with our arguments. | |||
# Make sure env LD_LIBRARY_PATH does not mess us up | ||||
if test -n \"\${LD_LIBRARY_PATH+set}\"; then | ||||
export LD_LIBRARY_PATH=\$progdir:\$LD_LIBRARY_PATH | ||||
fi | ||||
" | " | |||
case $host in | case $host in | |||
# win32 systems need to use the prog path for dll | ||||
# lookup to work | ||||
*-*-cygwin* | *-*-pw32*) | ||||
$echo >> $output "\ | ||||
exec \$progdir/\$program \${1+\"\$@\"} | ||||
" | ||||
;; | ||||
# Backslashes separate directories on plain windows | # Backslashes separate directories on plain windows | |||
*-*-mingw | *-*-os2*) | *-*-mingw | *-*-os2*) | |||
$echo >> $output "\ | $echo >> $output "\ | |||
exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} | exec \$progdir\\\\\$program \${1+\"\$@\"} | |||
" | " | |||
;; | ;; | |||
*) | *) | |||
$echo >> $output "\ | $echo >> $output "\ | |||
exec \"\$progdir/\$program\" \${1+\"\$@\"} | # Export the path to the program. | |||
PATH=\"\$progdir:\$PATH\" | ||||
export PATH | ||||
exec \$program \${1+\"\$@\"} | ||||
" | " | |||
;; | ;; | |||
esac | esac | |||
$echo >> $output "\ | $echo >> $output "\ | |||
\$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\" | \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\" | |||
exit $EXIT_FAILURE | exit 1 | |||
fi | fi | |||
else | else | |||
# The program doesn't exist. | # The program doesn't exist. | |||
\$echo \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 | \$echo \"\$0: error: \$progdir/\$program does not exist\" 1>&2 | |||
\$echo \"This script is just a wrapper for \$program.\" 1>&2 | \$echo \"This script is just a wrapper for \$program.\" 1>&2 | |||
$echo \"See the $PACKAGE documentation for more information.\" 1>&2 | echo \"See the $PACKAGE documentation for more information.\" 1>&2 | |||
exit $EXIT_FAILURE | exit 1 | |||
fi | fi | |||
fi\ | fi\ | |||
" | " | |||
chmod +x $output | chmod +x $output | |||
fi | fi | |||
exit $EXIT_SUCCESS | exit 0 | |||
;; | ;; | |||
esac | esac | |||
# See if we need to build an old-fashioned archive. | # See if we need to build an old-fashioned archive. | |||
for oldlib in $oldlibs; do | for oldlib in $oldlibs; do | |||
if test "$build_libtool_libs" = convenience; then | if test "$build_libtool_libs" = convenience; then | |||
oldobjs="$libobjs_save" | oldobjs="$libobjs_save" | |||
addlibs="$convenience" | addlibs="$convenience" | |||
build_libtool_libs=no | build_libtool_libs=no | |||
else | else | |||
if test "$build_libtool_libs" = module; then | if test "$build_libtool_libs" = module; then | |||
oldobjs="$libobjs_save" | oldobjs="$libobjs_save" | |||
build_libtool_libs=no | build_libtool_libs=no | |||
else | else | |||
oldobjs="$old_deplibs $non_pic_objects" | oldobjs="$objs$old_deplibs "`$echo "X$libobjs_save" | $SP2NL | $Xs ed -e '/\.'${libext}'$/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP` | |||
fi | fi | |||
addlibs="$old_convenience" | addlibs="$old_convenience" | |||
fi | fi | |||
if test -n "$addlibs"; then | if test -n "$addlibs"; then | |||
gentop="$output_objdir/${outputname}x" | gentop="$output_objdir/${outputname}x" | |||
$show "${rm}r $gentop" | ||||
$run ${rm}r "$gentop" | ||||
$show "mkdir $gentop" | ||||
$run mkdir "$gentop" | ||||
status=$? | ||||
if test $status -ne 0 && test ! -d "$gentop"; then | ||||
exit $status | ||||
fi | ||||
generated="$generated $gentop" | generated="$generated $gentop" | |||
func_extract_archives $gentop $addlibs | # Add in members from convenience archives. | |||
oldobjs="$oldobjs $func_extract_archives_result" | for xlib in $addlibs; do | |||
# Extract the objects. | ||||
case $xlib in | ||||
[\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;; | ||||
*) xabs=`pwd`"/$xlib" ;; | ||||
esac | ||||
xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'` | ||||
xdir="$gentop/$xlib" | ||||
$show "${rm}r $xdir" | ||||
$run ${rm}r "$xdir" | ||||
$show "mkdir $xdir" | ||||
$run mkdir "$xdir" | ||||
status=$? | ||||
if test $status -ne 0 && test ! -d "$xdir"; then | ||||
exit $status | ||||
fi | ||||
$show "(cd $xdir && $AR x $xabs)" | ||||
$run eval "(cd \$xdir && $AR x \$xabs)" || exit $? | ||||
oldobjs="$oldobjs "`find $xdir -name \*.${objext} -print -o -name \*.lo -print | $NL2SP` | ||||
done | ||||
fi | fi | |||
# Do each command in the archive commands. | # Do each command in the archive commands. | |||
if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then | if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then | |||
cmds=$old_archive_from_new_cmds | eval cmds=\"$old_archive_from_new_cmds\" | |||
else | else | |||
# POSIX demands no paths to be encoded in archives. We have | # Ensure that we have .o objects in place in case we decided | |||
# to avoid creating archives with duplicate basenames if we | # not to build a shared library, and have fallen back to building | |||
# might have to extract them afterwards, e.g., when creating a | # static libs even though --disable-static was passed! | |||
# static archive out of a convenience library, or when linking | for oldobj in $oldobjs; do | |||
# the entirety of a libtool archive into another (currently | if test ! -f $oldobj; then | |||
# not supported by libtool). | xdir=`$echo "X$oldobj" | $Xsed -e 's%/[^/]*$%%'` | |||
if (for obj in $oldobjs | if test "X$xdir" = "X$oldobj"; then | |||
do | xdir="." | |||
$echo "X$obj" | $Xsed -e 's%^.*/%%' | else | |||
done | sort | sort -uc >/dev/null 2>&1); then | xdir="$xdir" | |||
: | ||||
else | ||||
$echo "copying selected object files to avoid basename conflicts.. ." | ||||
if test -z "$gentop"; then | ||||
gentop="$output_objdir/${outputname}x" | ||||
generated="$generated $gentop" | ||||
$show "${rm}r $gentop" | ||||
$run ${rm}r "$gentop" | ||||
$show "$mkdir $gentop" | ||||
$run $mkdir "$gentop" | ||||
exit_status=$? | ||||
if test "$exit_status" -ne 0 && test ! -d "$gentop"; then | ||||
exit $exit_status | ||||
fi | fi | |||
baseobj=`$echo "X$oldobj" | $Xsed -e 's%^.*/%%'` | ||||
obj=`$echo "X$baseobj" | $Xsed -e "$o2lo"` | ||||
$show "(cd $xdir && ${LN_S} $obj $baseobj)" | ||||
$run eval '(cd $xdir && ${LN_S} $obj $baseobj)' || exit $? | ||||
fi | fi | |||
done | ||||
save_oldobjs=$oldobjs | ||||
oldobjs= | ||||
counter=1 | ||||
for obj in $save_oldobjs | ||||
do | ||||
objbase=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` | ||||
case " $oldobjs " in | ||||
" ") oldobjs=$obj ;; | ||||
*[\ /]"$objbase "*) | ||||
while :; do | ||||
# Make sure we don't pick an alternate name that also | ||||
# overlaps. | ||||
newobj=lt$counter-$objbase | ||||
counter=`expr $counter + 1` | ||||
case " $oldobjs " in | ||||
*[\ /]"$newobj "*) ;; | ||||
*) if test ! -f "$gentop/$newobj"; then break; fi ;; | ||||
esac | ||||
done | ||||
$show "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" | ||||
$run ln "$obj" "$gentop/$newobj" || | ||||
$run cp "$obj" "$gentop/$newobj" | ||||
oldobjs="$oldobjs $gentop/$newobj" | ||||
;; | ||||
*) oldobjs="$oldobjs $obj" ;; | ||||
esac | ||||
done | ||||
fi | ||||
eval cmds=\"$old_archive_cmds\" | eval cmds=\"$old_archive_cmds\" | |||
if len=`expr "X$cmds" : ".*"` && | ||||
test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; t hen | ||||
cmds=$old_archive_cmds | ||||
else | ||||
# the command line is too long to link in one step, link in parts | ||||
$echo "using piecewise archive linking..." | ||||
save_RANLIB=$RANLIB | ||||
RANLIB=: | ||||
objlist= | ||||
concat_cmds= | ||||
save_oldobjs=$oldobjs | ||||
# Is there a better way of finding the last object in the list? | ||||
for obj in $save_oldobjs | ||||
do | ||||
last_oldobj=$obj | ||||
done | ||||
for obj in $save_oldobjs | ||||
do | ||||
oldobjs="$objlist $obj" | ||||
objlist="$objlist $obj" | ||||
eval test_cmds=\"$old_archive_cmds\" | ||||
if len=`expr "X$test_cmds" : ".*" 2>/dev/null` && | ||||
test "$len" -le "$max_cmd_len"; then | ||||
: | ||||
else | ||||
# the above command should be used before it gets too long | ||||
oldobjs=$objlist | ||||
if test "$obj" = "$last_oldobj" ; then | ||||
RANLIB=$save_RANLIB | ||||
fi | ||||
test -z "$concat_cmds" || concat_cmds=$concat_cmds~ | ||||
eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" | ||||
objlist= | ||||
fi | ||||
done | ||||
RANLIB=$save_RANLIB | ||||
oldobjs=$objlist | ||||
if test "X$oldobjs" = "X" ; then | ||||
eval cmds=\"\$concat_cmds\" | ||||
else | ||||
eval cmds=\"\$concat_cmds~\$old_archive_cmds\" | ||||
fi | ||||
fi | ||||
fi | fi | |||
save_ifs="$IFS"; IFS='~' | save_ifs="$IFS"; IFS='~' | |||
for cmd in $cmds; do | for cmd in $cmds; do | |||
eval cmd=\"$cmd\" | ||||
IFS="$save_ifs" | IFS="$save_ifs" | |||
$show "$cmd" | $show "$cmd" | |||
$run eval "$cmd" || exit $? | $run eval "$cmd" || exit $? | |||
done | done | |||
IFS="$save_ifs" | IFS="$save_ifs" | |||
done | done | |||
if test -n "$generated"; then | if test -n "$generated"; then | |||
$show "${rm}r$generated" | $show "${rm}r$generated" | |||
$run ${rm}r$generated | $run ${rm}r$generated | |||
skipping to change at line 5632 | skipping to change at line 3975 | |||
if eval test -z \"\${$var+set}\"; then | if eval test -z \"\${$var+set}\"; then | |||
relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var =; export $var; }; }; $relink_command" | relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var =; export $var; }; }; $relink_command" | |||
elif eval var_value=\$$var; test -z "$var_value"; then | elif eval var_value=\$$var; test -z "$var_value"; then | |||
relink_command="$var=; export $var; $relink_command" | relink_command="$var=; export $var; $relink_command" | |||
else | else | |||
var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` | var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` | |||
relink_command="$var=\"$var_value\"; export $var; $relink_command" | relink_command="$var=\"$var_value\"; export $var; $relink_command" | |||
fi | fi | |||
done | done | |||
# Quote the link command for shipping. | # Quote the link command for shipping. | |||
relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=rel ink $libtool_args @inst_prefix_dir@)" | relink_command="(cd `pwd`; $SHELL $0 --mode=relink $libtool_args @ins t_prefix_dir@)" | |||
relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst "` | relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst "` | |||
if test "$hardcode_automatic" = yes ; then | ||||
relink_command= | ||||
fi | ||||
# Only create the output if not a dry run. | # Only create the output if not a dry run. | |||
if test -z "$run"; then | if test -z "$run"; then | |||
for installed in no yes; do | for installed in no yes; do | |||
if test "$installed" = yes; then | if test "$installed" = yes; then | |||
if test -z "$install_libdir"; then | if test -z "$install_libdir"; then | |||
break | break | |||
fi | fi | |||
output="$output_objdir/$outputname"i | output="$output_objdir/$outputname"i | |||
# Replace all uninstalled libtool libraries with the installed o nes | # Replace all uninstalled libtool libraries with the installed o nes | |||
newdependency_libs= | newdependency_libs= | |||
for deplib in $dependency_libs; do | for deplib in $dependency_libs; do | |||
case $deplib in | case $deplib in | |||
*.la) | *.la) | |||
name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'` | name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'` | |||
eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` | eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` | |||
if test -z "$libdir"; then | if test -z "$libdir"; then | |||
$echo "$modename: \`$deplib' is not a valid libtool archiv e" 1>&2 | $echo "$modename: \`$deplib' is not a valid libtool archiv e" 1>&2 | |||
exit $EXIT_FAILURE | exit 1 | |||
fi | ||||
if test "X$EGREP" = X ; then | ||||
EGREP=egrep | ||||
fi | fi | |||
# We do not want portage's install root ($D) present. Check only for | # We do not want portage's install root ($D) present. Check only for | |||
# this if the .la is being installed. | # this if the .la is being installed. | |||
if test "$installed" = yes && test "$D"; then | if test "$installed" = yes && test "$D"; then | |||
eval mynewdependency_lib=`echo "$libdir/$name" |sed -e "s: $D:/:g" -e 's:/\+:/:g'` | eval mynewdependency_lib="`echo "$libdir/$name" |sed -e "s :$D::g" -e 's://:/:g'`" | |||
else | else | |||
mynewdependency_lib="$libdir/$name" | mynewdependency_lib="$libdir/$name" | |||
fi | fi | |||
# Do not add duplicates | # Do not add duplicates | |||
if test "$mynewdependency_lib"; then | if test "$mynewdependency_lib"; then | |||
my_little_ninja_foo_1=`echo $newdependency_libs |$EGREP -e "$mynewdependency_lib"` | if test -z "`echo $newdependency_libs |grep -e "$mynewdepe ndency_lib"`"; then | |||
if test -z "$my_little_ninja_foo_1"; then | ||||
newdependency_libs="$newdependency_libs $mynewdependency _lib" | newdependency_libs="$newdependency_libs $mynewdependency _lib" | |||
fi | fi | |||
fi | fi | |||
;; | ;; | |||
*) | *) | |||
if test "$installed" = yes; then | if test "$installed" = yes; then | |||
# Rather use S=WORKDIR if our version of portage supports it. | # Rather use S=WORKDIR if our version of portage supports it. | |||
# This is because some ebuild (gcc) do not use $S as build root. | # This is because some ebuild (gcc) do not use $S as buildroot. | |||
if test "$PWORKDIR"; then | if test "$PWORKDIR"; then | |||
S="$PWORKDIR" | S="$PWORKDIR" | |||
fi | fi | |||
# We do not want portage's build root ($S) present. | # We do not want portage's build root ($S) present. | |||
my_little_ninja_foo_2=`echo $deplib |$EGREP -e "$S"` | if test -n "`echo $deplib |grep -e "$S"`" && test "$S"; th en | |||
# We do not want portage's install root ($D) present. | ||||
my_little_ninja_foo_3=`echo $deplib |$EGREP -e "$D"` | ||||
if test -n "$my_little_ninja_foo_2" && test "$S"; then | ||||
mynewdependency_lib="" | mynewdependency_lib="" | |||
elif test -n "$my_little_ninja_foo_3" && test "$D"; then | # We do not want portage's install root ($D) present. | |||
eval mynewdependency_lib=`echo "$deplib" |sed -e "s:$D:/ :g" -e 's:/\+:/:g'` | elif test -n "`echo $deplib |grep -e "$D"`" && test "$D"; then | |||
eval mynewdependency_lib="`echo "$deplib" |sed -e "s:$D: :g" -e 's://:/:g'`" | ||||
else | else | |||
mynewdependency_lib="$deplib" | mynewdependency_lib="$deplib" | |||
fi | fi | |||
else | else | |||
mynewdependency_lib="$deplib" | mynewdependency_lib="$deplib" | |||
fi | fi | |||
# Do not add duplicates | # Do not add duplicates | |||
if test "$mynewdependency_lib"; then | if test "$mynewdependency_lib"; then | |||
my_little_ninja_foo_4=`echo $newdependency_libs |$EGREP -e "$mynewdependency_lib"` | if test -z "`echo $newdependency_libs |grep -e "$mynewdepe ndency_lib"`"; then | |||
if test -z "$my_little_ninja_foo_4"; then | ||||
newdependency_libs="$newdependency_libs $mynewdepend ency_lib" | newdependency_libs="$newdependency_libs $mynewdepend ency_lib" | |||
fi | fi | |||
fi | fi | |||
;; | ;; | |||
esac | esac | |||
done | done | |||
dependency_libs="$newdependency_libs" | dependency_libs="$newdependency_libs" | |||
newdlfiles= | newdlfiles= | |||
for lib in $dlfiles; do | for lib in $dlfiles; do | |||
name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` | name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` | |||
eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` | eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` | |||
if test -z "$libdir"; then | if test -z "$libdir"; then | |||
$echo "$modename: \`$lib' is not a valid libtool archive" 1> &2 | $echo "$modename: \`$lib' is not a valid libtool archive" 1> &2 | |||
exit $EXIT_FAILURE | exit 1 | |||
fi | fi | |||
newdlfiles="$newdlfiles $libdir/$name" | newdlfiles="$newdlfiles $libdir/$name" | |||
done | done | |||
dlfiles="$newdlfiles" | dlfiles="$newdlfiles" | |||
newdlprefiles= | newdlprefiles= | |||
for lib in $dlprefiles; do | for lib in $dlprefiles; do | |||
name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` | name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` | |||
eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` | eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` | |||
if test -z "$libdir"; then | if test -z "$libdir"; then | |||
$echo "$modename: \`$lib' is not a valid libtool archive" 1> &2 | $echo "$modename: \`$lib' is not a valid libtool archive" 1> &2 | |||
exit $EXIT_FAILURE | exit 1 | |||
fi | fi | |||
newdlprefiles="$newdlprefiles $libdir/$name" | newdlprefiles="$newdlprefiles $libdir/$name" | |||
done | done | |||
dlprefiles="$newdlprefiles" | dlprefiles="$newdlprefiles" | |||
else | ||||
newdlfiles= | ||||
for lib in $dlfiles; do | ||||
case $lib in | ||||
[\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; | ||||
*) abs=`pwd`"/$lib" ;; | ||||
esac | ||||
newdlfiles="$newdlfiles $abs" | ||||
done | ||||
dlfiles="$newdlfiles" | ||||
newdlprefiles= | ||||
for lib in $dlprefiles; do | ||||
case $lib in | ||||
[\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; | ||||
*) abs=`pwd`"/$lib" ;; | ||||
esac | ||||
newdlprefiles="$newdlprefiles $abs" | ||||
done | ||||
dlprefiles="$newdlprefiles" | ||||
fi | fi | |||
$rm $output | $rm $output | |||
# place dlname in correct position for cygwin | # place dlname in correct position for cygwin | |||
tdlname=$dlname | tdlname=$dlname | |||
case $host,$output,$installed,$module,$dlname in | case $host,$output,$installed,$module,$dlname in | |||
*cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname= ../bin/$dlname ;; | *cygwin*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;; | |||
esac | esac | |||
# Do not add duplicates | # Do not add duplicates | |||
if test "$installed" = yes && test "$D"; then | if test "$installed" = yes && test "$D"; then | |||
install_libdir=`echo "$install_libdir" |sed -e "s:$D:/:g" -e 's: /\+:/:g'` | install_libdir="`echo "$install_libdir" |sed -e "s:$D::g" -e 's: //:/:g'`" | |||
fi | fi | |||
$echo > $output "\ | $echo > $output "\ | |||
# $outputname - a libtool library file | # $outputname - a libtool library file | |||
# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP | # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP | |||
# | # | |||
# Please DO NOT delete this file! | # Please DO NOT delete this file! | |||
# It is necessary for linking the library. | # It is necessary for linking the library. | |||
# The name that we can dlopen(3). | # The name that we can dlopen(3). | |||
dlname='$tdlname' | dlname='$tdlname' | |||
skipping to change at line 5786 | skipping to change at line 4100 | |||
dependency_libs='$dependency_libs' | dependency_libs='$dependency_libs' | |||
# Version information for $libname. | # Version information for $libname. | |||
current=$current | current=$current | |||
age=$age | age=$age | |||
revision=$revision | revision=$revision | |||
# Is this an already installed library? | # Is this an already installed library? | |||
installed=$installed | installed=$installed | |||
# Should we warn about portability when linking against -modules? | ||||
shouldnotlink=$module | ||||
# Files to dlopen/dlpreopen | # Files to dlopen/dlpreopen | |||
dlopen='$dlfiles' | dlopen='$dlfiles' | |||
dlpreopen='$dlprefiles' | dlpreopen='$dlprefiles' | |||
# Directory that this library needs to be installed in: | # Directory that this library needs to be installed in: | |||
libdir='$install_libdir'" | libdir='$install_libdir'" | |||
if test "$installed" = no && test "$need_relink" = yes; then | if test "$installed" = no && test "$need_relink" = yes; then | |||
$echo >> $output "\ | $echo >> $output "\ | |||
relink_command=\"$relink_command\"" | relink_command=\"$relink_command\"" | |||
fi | fi | |||
done | done | |||
fi | fi | |||
# Do a symbolic link so that the libtool archive can be found in | # Do a symbolic link so that the libtool archive can be found in | |||
# LD_LIBRARY_PATH before the program is installed. | # LD_LIBRARY_PATH before the program is installed. | |||
$show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)" | $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)" | |||
$run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputn ame $outputname)' || exit $? | $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputn ame $outputname)' || exit $? | |||
;; | ;; | |||
esac | esac | |||
exit $EXIT_SUCCESS | exit 0 | |||
;; | ;; | |||
# libtool install mode | # libtool install mode | |||
install) | install) | |||
modename="$modename: install" | modename="$modename: install" | |||
# There may be an optional sh(1) argument at the beginning of | # There may be an optional sh(1) argument at the beginning of | |||
# install_prog (especially on Windows NT). | # install_prog (especially on Windows NT). | |||
if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || | if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || | |||
# Allow the use of GNU shtool's install command. | # Allow the use of GNU shtool's install command. | |||
$echo "X$nonopt" | grep shtool > /dev/null; then | $echo "X$nonopt" | $Xsed | grep shtool > /dev/null; then | |||
# Aesthetically quote it. | # Aesthetically quote it. | |||
arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"` | arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"` | |||
case $arg in | case $arg in | |||
*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") | *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) | |||
arg="\"$arg\"" | arg="\"$arg\"" | |||
;; | ;; | |||
esac | esac | |||
install_prog="$arg " | install_prog="$arg " | |||
arg="$1" | arg="$1" | |||
shift | shift | |||
else | else | |||
install_prog= | install_prog= | |||
arg=$nonopt | arg="$nonopt" | |||
fi | fi | |||
# The real first argument should be the name of the installation progra m. | # The real first argument should be the name of the installation progra m. | |||
# Aesthetically quote it. | # Aesthetically quote it. | |||
arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` | arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` | |||
case $arg in | case $arg in | |||
*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") | *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) | |||
arg="\"$arg\"" | arg="\"$arg\"" | |||
;; | ;; | |||
esac | esac | |||
install_prog="$install_prog$arg" | install_prog="$install_prog$arg" | |||
# We need to accept at least all the BSD install flags. | # We need to accept at least all the BSD install flags. | |||
dest= | dest= | |||
files= | files= | |||
opts= | opts= | |||
prev= | prev= | |||
install_type= | install_type= | |||
isdir=no | isdir=no | |||
stripme= | stripme= | |||
for arg | for arg | |||
do | do | |||
if test -n "$dest"; then | if test -n "$dest"; then | |||
files="$files $dest" | files="$files $dest" | |||
dest=$arg | dest="$arg" | |||
continue | continue | |||
fi | fi | |||
case $arg in | case $arg in | |||
-d) isdir=yes ;; | -d) isdir=yes ;; | |||
-f) | -f) prev="-f" ;; | |||
case " $install_prog " in | -g) prev="-g" ;; | |||
*[\\\ /]cp\ *) ;; | -m) prev="-m" ;; | |||
*) prev=$arg ;; | -o) prev="-o" ;; | |||
esac | ||||
;; | ||||
-g | -m | -o) prev=$arg ;; | ||||
-s) | -s) | |||
stripme=" -s" | stripme=" -s" | |||
continue | continue | |||
;; | ;; | |||
-*) | -*) ;; | |||
;; | ||||
*) | *) | |||
# If the previous option needed an argument, then skip it. | # If the previous option needed an argument, then skip it. | |||
if test -n "$prev"; then | if test -n "$prev"; then | |||
prev= | prev= | |||
else | else | |||
dest=$arg | dest="$arg" | |||
continue | continue | |||
fi | fi | |||
;; | ;; | |||
esac | esac | |||
# Aesthetically quote the argument. | # Aesthetically quote the argument. | |||
arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` | arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` | |||
case $arg in | case $arg in | |||
*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") | *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) | |||
arg="\"$arg\"" | arg="\"$arg\"" | |||
;; | ;; | |||
esac | esac | |||
install_prog="$install_prog $arg" | install_prog="$install_prog $arg" | |||
done | done | |||
if test -z "$install_prog"; then | if test -z "$install_prog"; then | |||
$echo "$modename: you must specify an install program" 1>&2 | $echo "$modename: you must specify an install program" 1>&2 | |||
$echo "$help" 1>&2 | $echo "$help" 1>&2 | |||
exit $EXIT_FAILURE | exit 1 | |||
fi | fi | |||
if test -n "$prev"; then | if test -n "$prev"; then | |||
$echo "$modename: the \`$prev' option requires an argument" 1>&2 | $echo "$modename: the \`$prev' option requires an argument" 1>&2 | |||
$echo "$help" 1>&2 | $echo "$help" 1>&2 | |||
exit $EXIT_FAILURE | exit 1 | |||
fi | fi | |||
if test -z "$files"; then | if test -z "$files"; then | |||
if test -z "$dest"; then | if test -z "$dest"; then | |||
$echo "$modename: no file or destination specified" 1>&2 | $echo "$modename: no file or destination specified" 1>&2 | |||
else | else | |||
$echo "$modename: you must specify a destination" 1>&2 | $echo "$modename: you must specify a destination" 1>&2 | |||
fi | fi | |||
$echo "$help" 1>&2 | $echo "$help" 1>&2 | |||
exit $EXIT_FAILURE | exit 1 | |||
fi | fi | |||
# Strip any trailing slash from the destination. | # Strip any trailing slash from the destination. | |||
dest=`$echo "X$dest" | $Xsed -e 's%/$%%'` | dest=`$echo "X$dest" | $Xsed -e 's%/$%%'` | |||
# Check to see that the destination is a directory. | # Check to see that the destination is a directory. | |||
test -d "$dest" && isdir=yes | test -d "$dest" && isdir=yes | |||
if test "$isdir" = yes; then | if test "$isdir" = yes; then | |||
destdir="$dest" | destdir="$dest" | |||
destname= | destname= | |||
else | else | |||
destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'` | destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'` | |||
test "X$destdir" = "X$dest" && destdir=. | test "X$destdir" = "X$dest" && destdir=. | |||
destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'` | destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'` | |||
# Not a directory, so check to see that there is only one file specif ied. | # Not a directory, so check to see that there is only one file specif ied. | |||
set dummy $files | set dummy $files | |||
if test "$#" -gt 2; then | if test $# -gt 2; then | |||
$echo "$modename: \`$dest' is not a directory" 1>&2 | $echo "$modename: \`$dest' is not a directory" 1>&2 | |||
$echo "$help" 1>&2 | $echo "$help" 1>&2 | |||
exit $EXIT_FAILURE | exit 1 | |||
fi | fi | |||
fi | fi | |||
case $destdir in | case $destdir in | |||
[\\/]* | [A-Za-z]:[\\/]*) ;; | [\\/]* | [A-Za-z]:[\\/]*) ;; | |||
*) | *) | |||
for file in $files; do | for file in $files; do | |||
case $file in | case $file in | |||
*.lo) ;; | *.lo) ;; | |||
*) | *) | |||
$echo "$modename: \`$destdir' must be an absolute directory name" 1>&2 | $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2 | |||
$echo "$help" 1>&2 | $echo "$help" 1>&2 | |||
exit $EXIT_FAILURE | exit 1 | |||
;; | ;; | |||
esac | esac | |||
done | done | |||
;; | ;; | |||
esac | esac | |||
# This variable tells wrapper scripts just to set variables rather | # This variable tells wrapper scripts just to set variables rather | |||
# than running their programs. | # than running their programs. | |||
libtool_install_magic="$magic" | libtool_install_magic="$magic" | |||
skipping to change at line 5974 | skipping to change at line 4282 | |||
# Do each installation. | # Do each installation. | |||
case $file in | case $file in | |||
*.$libext) | *.$libext) | |||
# Do the static libraries later. | # Do the static libraries later. | |||
staticlibs="$staticlibs $file" | staticlibs="$staticlibs $file" | |||
;; | ;; | |||
*.la) | *.la) | |||
# Check to see that this really is a libtool archive. | # Check to see that this really is a libtool archive. | |||
if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/ null 2>&1; then : | if (${SED} -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev /null 2>&1; then : | |||
else | else | |||
$echo "$modename: \`$file' is not a valid libtool archive" 1>&2 | $echo "$modename: \`$file' is not a valid libtool archive" 1>&2 | |||
$echo "$help" 1>&2 | $echo "$help" 1>&2 | |||
exit $EXIT_FAILURE | exit 1 | |||
fi | fi | |||
library_names= | library_names= | |||
old_library= | old_library= | |||
relink_command= | relink_command= | |||
# If there is no directory component, then add one. | # If there is no directory component, then add one. | |||
case $file in | case $file in | |||
*/* | *\\*) . $file ;; | */* | *\\*) . $file ;; | |||
*) . ./$file ;; | *) . ./$file ;; | |||
esac | esac | |||
skipping to change at line 6010 | skipping to change at line 4318 | |||
*) future_libdirs="$future_libdirs $libdir" ;; | *) future_libdirs="$future_libdirs $libdir" ;; | |||
esac | esac | |||
fi | fi | |||
dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/ | dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/ | |||
test "X$dir" = "X$file/" && dir= | test "X$dir" = "X$file/" && dir= | |||
dir="$dir$objdir" | dir="$dir$objdir" | |||
if test -n "$relink_command"; then | if test -n "$relink_command"; then | |||
# Determine the prefix the user has applied to our future dir. | # Determine the prefix the user has applied to our future dir. | |||
inst_prefix_dir=`$echo "$destdir" | $SED "s%$libdir\$%%"` | inst_prefix_dir=`$echo "$destdir" | sed "s%$libdir\$%%"` | |||
# Don't allow the user to place us outside of our expected | # Don't allow the user to place us outside of our expected | |||
# location b/c this prevents finding dependent libraries that | # location b/c this prevents finding dependent libraries that | |||
# are installed to the same prefix. | # are installed to the same prefix. | |||
# At present, this check doesn't affect windows .dll's that | ||||
# are installed into $libdir/../bin (currently, that works fine) | ||||
# but it's something to keep an eye on. | ||||
if test "$inst_prefix_dir" = "$destdir"; then | if test "$inst_prefix_dir" = "$destdir"; then | |||
$echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2 | $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2 | |||
exit $EXIT_FAILURE | exit 1 | |||
fi | fi | |||
if test -n "$inst_prefix_dir"; then | if test -n "$inst_prefix_dir"; then | |||
# Stick the inst_prefix_dir data into the link command. | # Stick the inst_prefix_dir data into the link command. | |||
relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_d ir@%-inst-prefix-dir $inst_prefix_dir%"` | relink_command=`$echo "$relink_command" | sed "s%@inst_prefix_di r@%-inst-prefix-dir $inst_prefix_dir%"` | |||
else | else | |||
relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_d ir@%%"` | relink_command=`$echo "$relink_command" | sed "s%@inst_prefix_di r@%%"` | |||
fi | fi | |||
$echo "$modename: warning: relinking \`$file'" 1>&2 | $echo "$modename: warning: relinking \`$file'" 1>&2 | |||
$show "$relink_command" | $show "$relink_command" | |||
if $run eval "$relink_command"; then : | if $run eval "$relink_command"; then : | |||
else | else | |||
$echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 | $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 | |||
exit $EXIT_FAILURE | exit 1 | |||
fi | fi | |||
fi | fi | |||
# See the names of the shared library. | # See the names of the shared library. | |||
set dummy $library_names | set dummy $library_names | |||
if test -n "$2"; then | if test -n "$2"; then | |||
realname="$2" | realname="$2" | |||
shift | shift | |||
shift | shift | |||
skipping to change at line 6057 | skipping to change at line 4362 | |||
test -n "$relink_command" && srcname="$realname"T | test -n "$relink_command" && srcname="$realname"T | |||
# Install the shared library and build the symlinks. | # Install the shared library and build the symlinks. | |||
$show "$install_prog $dir/$srcname $destdir/$realname" | $show "$install_prog $dir/$srcname $destdir/$realname" | |||
$run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $? | $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $? | |||
if test -n "$stripme" && test -n "$striplib"; then | if test -n "$stripme" && test -n "$striplib"; then | |||
$show "$striplib $destdir/$realname" | $show "$striplib $destdir/$realname" | |||
$run eval "$striplib $destdir/$realname" || exit $? | $run eval "$striplib $destdir/$realname" || exit $? | |||
fi | fi | |||
if test "$#" -gt 0; then | if test $# -gt 0; then | |||
# Delete the old symlinks, and create new ones. | # Delete the old symlinks, and create new ones. | |||
# Try `ln -sf' first, because the `ln' binary might depend on | ||||
# the symlink we replace! Solaris /bin/ln does not understand - f, | ||||
# so we also need to try rm && ln -s. | ||||
for linkname | for linkname | |||
do | do | |||
if test "$linkname" != "$realname"; then | if test "$linkname" != "$realname"; then | |||
$show "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })" | $show "(cd $destdir && $rm $linkname && $LN_S $realname $lin kname)" | |||
$run eval "(cd $destdir && { $LN_S -f $realname $linkname | | { $rm $linkname && $LN_S $realname $linkname; }; })" | $run eval "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)" | |||
fi | fi | |||
done | done | |||
fi | fi | |||
# Do each command in the postinstall commands. | # Do each command in the postinstall commands. | |||
lib="$destdir/$realname" | lib="$destdir/$realname" | |||
cmds=$postinstall_cmds | eval cmds=\"$postinstall_cmds\" | |||
save_ifs="$IFS"; IFS='~' | save_ifs="$IFS"; IFS='~' | |||
for cmd in $cmds; do | for cmd in $cmds; do | |||
IFS="$save_ifs" | IFS="$save_ifs" | |||
eval cmd=\"$cmd\" | ||||
$show "$cmd" | $show "$cmd" | |||
$run eval "$cmd" || { | $run eval "$cmd" || exit $? | |||
lt_exit=$? | ||||
# Restore the uninstalled library and exit | ||||
if test "$mode" = relink; then | ||||
$run eval '(cd $output_objdir && $rm ${realname}T && $mv ${r ealname}U $realname)' | ||||
fi | ||||
exit $lt_exit | ||||
} | ||||
done | done | |||
IFS="$save_ifs" | IFS="$save_ifs" | |||
fi | fi | |||
# Install the pseudo-library for information purposes. | # Install the pseudo-library for information purposes. | |||
name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` | name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` | |||
instname="$dir/$name"i | instname="$dir/$name"i | |||
$show "$install_prog $instname $destdir/$name" | $show "$install_prog $instname $destdir/$name" | |||
$run eval "$install_prog $instname $destdir/$name" || exit $? | $run eval "$install_prog $instname $destdir/$name" || exit $? | |||
skipping to change at line 6126 | skipping to change at line 4418 | |||
*.lo) | *.lo) | |||
staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"` | staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"` | |||
;; | ;; | |||
*.$objext) | *.$objext) | |||
staticdest="$destfile" | staticdest="$destfile" | |||
destfile= | destfile= | |||
;; | ;; | |||
*) | *) | |||
$echo "$modename: cannot copy a libtool object to \`$destfile'" 1> &2 | $echo "$modename: cannot copy a libtool object to \`$destfile'" 1> &2 | |||
$echo "$help" 1>&2 | $echo "$help" 1>&2 | |||
exit $EXIT_FAILURE | exit 1 | |||
;; | ;; | |||
esac | esac | |||
# Install the libtool object if requested. | # Install the libtool object if requested. | |||
if test -n "$destfile"; then | if test -n "$destfile"; then | |||
$show "$install_prog $file $destfile" | $show "$install_prog $file $destfile" | |||
$run eval "$install_prog $file $destfile" || exit $? | $run eval "$install_prog $file $destfile" || exit $? | |||
fi | fi | |||
# Install the old object if enabled. | # Install the old object if enabled. | |||
if test "$build_old_libs" = yes; then | if test "$build_old_libs" = yes; then | |||
# Deduce the name of the old-style object file. | # Deduce the name of the old-style object file. | |||
staticobj=`$echo "X$file" | $Xsed -e "$lo2o"` | staticobj=`$echo "X$file" | $Xsed -e "$lo2o"` | |||
$show "$install_prog $staticobj $staticdest" | $show "$install_prog $staticobj $staticdest" | |||
$run eval "$install_prog \$staticobj \$staticdest" || exit $? | $run eval "$install_prog \$staticobj \$staticdest" || exit $? | |||
fi | fi | |||
exit $EXIT_SUCCESS | exit 0 | |||
;; | ;; | |||
*) | *) | |||
# Figure out destination file name, if it wasn't already specified. | # Figure out destination file name, if it wasn't already specified. | |||
if test -n "$destname"; then | if test -n "$destname"; then | |||
destfile="$destdir/$destname" | destfile="$destdir/$destname" | |||
else | else | |||
destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` | destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` | |||
destfile="$destdir/$destfile" | destfile="$destdir/$destfile" | |||
fi | fi | |||
# If the file is missing, and there is a .exe on the end, strip it | ||||
# because it is most likely a libtool script we actually want to | ||||
# install | ||||
stripped_ext="" | ||||
case $file in | ||||
*.exe) | ||||
if test ! -f "$file"; then | ||||
file=`$echo $file|${SED} 's,.exe$,,'` | ||||
stripped_ext=".exe" | ||||
fi | ||||
;; | ||||
esac | ||||
# Do a test to see if this is really a libtool program. | # Do a test to see if this is really a libtool program. | |||
case $host in | case $host in | |||
*cygwin*|*mingw*) | *cygwin*|*mingw*) | |||
wrapper=`$echo $file | ${SED} -e 's,.exe$,,'` | wrapper=`echo $file | ${SED} -e 's,.exe$,,'` | |||
;; | ;; | |||
*) | *) | |||
wrapper=$file | wrapper=$file | |||
;; | ;; | |||
esac | esac | |||
if (${SED} -e '4q' $wrapper | grep "^# Generated by .*$PACKAGE")>/de v/null 2>&1; then | if (${SED} -e '4q' $wrapper | egrep "^# Generated by .*$PACKAGE")>/d ev/null 2>&1; then | |||
notinst_deplibs= | notinst_deplibs= | |||
relink_command= | relink_command= | |||
# Note that it is not necessary on cygwin/mingw to append a dot to | ||||
# foo even if both foo and FILE.exe exist: automatic-append-.exe | ||||
# behavior happens only for exec(3), not for open(2)! Also, sourc ing | ||||
# `FILE.' does not work on cygwin managed mounts. | ||||
# | ||||
# If there is no directory component, then add one. | # If there is no directory component, then add one. | |||
case $wrapper in | case $file in | |||
*/* | *\\*) . ${wrapper} ;; | */* | *\\*) . $wrapper ;; | |||
*) . ./${wrapper} ;; | *) . ./$wrapper ;; | |||
esac | esac | |||
# Check the variables that should have been set. | # Check the variables that should have been set. | |||
if test -z "$notinst_deplibs"; then | if test -z "$notinst_deplibs"; then | |||
$echo "$modename: invalid libtool wrapper script \`$wrapper'" 1> &2 | $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1> &2 | |||
exit $EXIT_FAILURE | exit 1 | |||
fi | fi | |||
finalize=yes | finalize=yes | |||
for lib in $notinst_deplibs; do | for lib in $notinst_deplibs; do | |||
# Check to see that each library is installed. | # Check to see that each library is installed. | |||
libdir= | libdir= | |||
if test -f "$lib"; then | if test -f "$lib"; then | |||
# If there is no directory component, then add one. | # If there is no directory component, then add one. | |||
case $lib in | case $lib in | |||
*/* | *\\*) . $lib ;; | */* | *\\*) . $lib ;; | |||
skipping to change at line 6218 | skipping to change at line 4492 | |||
esac | esac | |||
fi | fi | |||
libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### tes tsuite: skip nested quoting test | libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### tes tsuite: skip nested quoting test | |||
if test -n "$libdir" && test ! -f "$libfile"; then | if test -n "$libdir" && test ! -f "$libfile"; then | |||
$echo "$modename: warning: \`$lib' has not been installed in \ `$libdir'" 1>&2 | $echo "$modename: warning: \`$lib' has not been installed in \ `$libdir'" 1>&2 | |||
finalize=no | finalize=no | |||
fi | fi | |||
done | done | |||
relink_command= | relink_command= | |||
# Note that it is not necessary on cygwin/mingw to append a dot to | ||||
# foo even if both foo and FILE.exe exist: automatic-append-.exe | ||||
# behavior happens only for exec(3), not for open(2)! Also, sourc ing | ||||
# `FILE.' does not work on cygwin managed mounts. | ||||
# | ||||
# If there is no directory component, then add one. | # If there is no directory component, then add one. | |||
case $wrapper in | case $file in | |||
*/* | *\\*) . ${wrapper} ;; | */* | *\\*) . $wrapper ;; | |||
*) . ./${wrapper} ;; | *) . ./$wrapper ;; | |||
esac | esac | |||
outputname= | outputname= | |||
if test "$fast_install" = no && test -n "$relink_command"; then | if test "$fast_install" = no && test -n "$relink_command"; then | |||
if test "$finalize" = yes && test -z "$run"; then | if test "$finalize" = yes && test -z "$run"; then | |||
tmpdir=`func_mktempdir` | tmpdir="/tmp" | |||
file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'` | test -n "$TMPDIR" && tmpdir="$TMPDIR" | |||
tmpdir=`mktemp -d $tmpdir/libtool-XXXXXX 2> /dev/null` | ||||
if test $? = 0 ; then : | ||||
else | ||||
tmpdir="$tmpdir/libtool-$$" | ||||
fi | ||||
if $mkdir -p "$tmpdir" && chmod 700 "$tmpdir"; then : | ||||
else | ||||
$echo "$modename: error: cannot create temporary directory \ `$tmpdir'" 1>&2 | ||||
continue | ||||
fi | ||||
file=`$echo "X$file" | $Xsed -e 's%^.*/%%'` | ||||
outputname="$tmpdir/$file" | outputname="$tmpdir/$file" | |||
# Replace the output file specification. | # Replace the output file specification. | |||
relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT @%'"$outputname"'%g'` | relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT @%'"$outputname"'%g'` | |||
$show "$relink_command" | $show "$relink_command" | |||
if $run eval "$relink_command"; then : | if $run eval "$relink_command"; then : | |||
else | else | |||
$echo "$modename: error: relink \`$file' with the above comm and before installing it" 1>&2 | $echo "$modename: error: relink \`$file' with the above comm and before installing it" 1>&2 | |||
${rm}r "$tmpdir" | ${rm}r "$tmpdir" | |||
continue | continue | |||
fi | fi | |||
file="$outputname" | file="$outputname" | |||
else | else | |||
$echo "$modename: warning: cannot relink \`$file'" 1>&2 | $echo "$modename: warning: cannot relink \`$file'" 1>&2 | |||
fi | fi | |||
else | else | |||
# Install the binary that we compiled earlier. | # Install the binary that we compiled earlier. | |||
file=`$echo "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objd ir/\1%"` | file=`$echo "X$file" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"` | |||
fi | fi | |||
fi | fi | |||
# remove .exe since cygwin /usr/bin/install will append another | # remove .exe since cygwin /usr/bin/install will append another | |||
# one anyway | # one anyways | |||
case $install_prog,$host in | case $install_prog,$host in | |||
*/usr/bin/install*,*cygwin*) | /usr/bin/install*,*cygwin*) | |||
case $file:$destfile in | case $file:$destfile in | |||
*.exe:*.exe) | *.exe:*.exe) | |||
# this is ok | # this is ok | |||
;; | ;; | |||
*.exe:*) | *.exe:*) | |||
destfile=$destfile.exe | destfile=$destfile.exe | |||
;; | ;; | |||
*:*.exe) | *:*.exe) | |||
destfile=`$echo $destfile | ${SED} -e 's,.exe$,,'` | destfile=`echo $destfile | ${SED} -e 's,.exe$,,'` | |||
;; | ;; | |||
esac | esac | |||
;; | ;; | |||
esac | esac | |||
$show "$install_prog$stripme $file $destfile" | $show "$install_prog$stripme $file $destfile" | |||
$run eval "$install_prog\$stripme \$file \$destfile" || exit $? | $run eval "$install_prog\$stripme \$file \$destfile" || exit $? | |||
test -n "$outputname" && ${rm}r "$tmpdir" | test -n "$outputname" && ${rm}r "$tmpdir" | |||
;; | ;; | |||
esac | esac | |||
done | done | |||
for file in $staticlibs; do | for file in $staticlibs; do | |||
name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` | name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` | |||
# Set up the ranlib parameters. | # Set up the ranlib parameters. | |||
oldlib="$destdir/$name" | oldlib="$destdir/$name" | |||
$show "$install_prog $file $oldlib" | $show "$install_prog $file $oldlib" | |||
$run eval "$install_prog \$file \$oldlib" || exit $? | $run eval "$install_prog \$file \$oldlib" || exit $? | |||
if test -n "$stripme" && test -n "$old_striplib"; then | if test -n "$stripme" && test -n "$striplib"; then | |||
$show "$old_striplib $oldlib" | $show "$old_striplib $oldlib" | |||
$run eval "$old_striplib $oldlib" || exit $? | $run eval "$old_striplib $oldlib" || exit $? | |||
fi | fi | |||
# Do each command in the postinstall commands. | # Do each command in the postinstall commands. | |||
cmds=$old_postinstall_cmds | eval cmds=\"$old_postinstall_cmds\" | |||
save_ifs="$IFS"; IFS='~' | save_ifs="$IFS"; IFS='~' | |||
for cmd in $cmds; do | for cmd in $cmds; do | |||
IFS="$save_ifs" | IFS="$save_ifs" | |||
eval cmd=\"$cmd\" | ||||
$show "$cmd" | $show "$cmd" | |||
$run eval "$cmd" || exit $? | $run eval "$cmd" || exit $? | |||
done | done | |||
IFS="$save_ifs" | IFS="$save_ifs" | |||
done | done | |||
if test -n "$future_libdirs"; then | if test -n "$future_libdirs"; then | |||
$echo "$modename: warning: remember to run \`$progname --finish$futur e_libdirs'" 1>&2 | $echo "$modename: warning: remember to run \`$progname --finish$futur e_libdirs'" 1>&2 | |||
fi | fi | |||
if test -n "$current_libdirs"; then | if test -n "$current_libdirs"; then | |||
# Maybe just do a dry run. | # Maybe just do a dry run. | |||
test -n "$run" && current_libdirs=" -n$current_libdirs" | test -n "$run" && current_libdirs=" -n$current_libdirs" | |||
exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' | exec_cmd='$SHELL $0 --finish$current_libdirs' | |||
else | else | |||
exit $EXIT_SUCCESS | exit 0 | |||
fi | fi | |||
;; | ;; | |||
# libtool finish mode | # libtool finish mode | |||
finish) | finish) | |||
modename="$modename: finish" | modename="$modename: finish" | |||
libdirs="$nonopt" | libdirs="$nonopt" | |||
admincmds= | admincmds= | |||
if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then | if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then | |||
for dir | for dir | |||
do | do | |||
libdirs="$libdirs $dir" | libdirs="$libdirs $dir" | |||
done | done | |||
for libdir in $libdirs; do | for libdir in $libdirs; do | |||
if test -n "$finish_cmds"; then | if test -n "$finish_cmds"; then | |||
# Do each command in the finish commands. | # Do each command in the finish commands. | |||
cmds=$finish_cmds | eval cmds=\"$finish_cmds\" | |||
save_ifs="$IFS"; IFS='~' | save_ifs="$IFS"; IFS='~' | |||
for cmd in $cmds; do | for cmd in $cmds; do | |||
IFS="$save_ifs" | IFS="$save_ifs" | |||
eval cmd=\"$cmd\" | ||||
$show "$cmd" | $show "$cmd" | |||
$run eval "$cmd" || admincmds="$admincmds | $run eval "$cmd" || admincmds="$admincmds | |||
$cmd" | $cmd" | |||
done | done | |||
IFS="$save_ifs" | IFS="$save_ifs" | |||
fi | fi | |||
if test -n "$finish_eval"; then | if test -n "$finish_eval"; then | |||
# Do the single finish_eval. | # Do the single finish_eval. | |||
eval cmds=\"$finish_eval\" | eval cmds=\"$finish_eval\" | |||
$run eval "$cmds" || admincmds="$admincmds | $run eval "$cmds" || admincmds="$admincmds | |||
$cmds" | $cmds" | |||
fi | fi | |||
done | done | |||
fi | fi | |||
# Exit here if they wanted silent mode. | # Exit here if they wanted silent mode. | |||
test "$show" = : && exit $EXIT_SUCCESS | test "$show" = ":" && exit 0 | |||
$echo "X--------------------------------------------------------------- -------" | $Xsed | echo "----------------------------------------------------------------- -----" | |||
$echo "Libraries have been installed in:" | echo "Libraries have been installed in:" | |||
for libdir in $libdirs; do | for libdir in $libdirs; do | |||
$echo " $libdir" | echo " $libdir" | |||
done | done | |||
$echo | echo | |||
$echo "If you ever happen to want to link against installed libraries" | echo "If you ever happen to want to link against installed libraries" | |||
$echo "in a given directory, LIBDIR, you must either use libtool, and" | echo "in a given directory, LIBDIR, you must either use libtool, and" | |||
$echo "specify the full pathname of the library, or use the \`-LLIBDIR' " | echo "specify the full pathname of the library, or use the \`-LLIBDIR'" | |||
$echo "flag during linking and do at least one of the following:" | echo "flag during linking and do at least one of the following:" | |||
if test -n "$shlibpath_var"; then | if test -n "$shlibpath_var"; then | |||
$echo " - add LIBDIR to the \`$shlibpath_var' environment variable" | echo " - add LIBDIR to the \`$shlibpath_var' environment variable" | |||
$echo " during execution" | echo " during execution" | |||
fi | fi | |||
if test -n "$runpath_var"; then | if test -n "$runpath_var"; then | |||
$echo " - add LIBDIR to the \`$runpath_var' environment variable" | echo " - add LIBDIR to the \`$runpath_var' environment variable" | |||
$echo " during linking" | echo " during linking" | |||
fi | fi | |||
if test -n "$hardcode_libdir_flag_spec"; then | if test -n "$hardcode_libdir_flag_spec"; then | |||
libdir=LIBDIR | libdir=LIBDIR | |||
eval flag=\"$hardcode_libdir_flag_spec\" | eval flag=\"$hardcode_libdir_flag_spec\" | |||
$echo " - use the \`$flag' linker flag" | echo " - use the \`$flag' linker flag" | |||
fi | fi | |||
if test -n "$admincmds"; then | if test -n "$admincmds"; then | |||
$echo " - have your system administrator run these commands:$adminc mds" | echo " - have your system administrator run these commands:$admincm ds" | |||
fi | fi | |||
if test -f /etc/ld.so.conf; then | if test -f /etc/ld.so.conf; then | |||
$echo " - have your system administrator add LIBDIR to \`/etc/ld.so .conf'" | echo " - have your system administrator add LIBDIR to \`/etc/ld.so. conf'" | |||
fi | fi | |||
$echo | echo | |||
$echo "See any operating system documentation about shared libraries fo r" | echo "See any operating system documentation about shared libraries for " | |||
$echo "more information, such as the ld(1) and ld.so(8) manual pages." | echo "more information, such as the ld(1) and ld.so(8) manual pages." | |||
$echo "X--------------------------------------------------------------- -------" | $Xsed | echo "----------------------------------------------------------------- -----" | |||
exit $EXIT_SUCCESS | exit 0 | |||
;; | ;; | |||
# libtool execute mode | # libtool execute mode | |||
execute) | execute) | |||
modename="$modename: execute" | modename="$modename: execute" | |||
# The first argument is the command name. | # The first argument is the command name. | |||
cmd="$nonopt" | cmd="$nonopt" | |||
if test -z "$cmd"; then | if test -z "$cmd"; then | |||
$echo "$modename: you must specify a COMMAND" 1>&2 | $echo "$modename: you must specify a COMMAND" 1>&2 | |||
$echo "$help" | $echo "$help" | |||
exit $EXIT_FAILURE | exit 1 | |||
fi | fi | |||
# Handle -dlopen flags immediately. | # Handle -dlopen flags immediately. | |||
for file in $execute_dlfiles; do | for file in $execute_dlfiles; do | |||
if test ! -f "$file"; then | if test ! -f "$file"; then | |||
$echo "$modename: \`$file' is not a file" 1>&2 | $echo "$modename: \`$file' is not a file" 1>&2 | |||
$echo "$help" 1>&2 | $echo "$help" 1>&2 | |||
exit $EXIT_FAILURE | exit 1 | |||
fi | fi | |||
dir= | dir= | |||
case $file in | case $file in | |||
*.la) | *.la) | |||
# Check to see that this really is a libtool archive. | # Check to see that this really is a libtool archive. | |||
if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/ null 2>&1; then : | if (${SED} -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev /null 2>&1; then : | |||
else | else | |||
$echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 | $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 | |||
$echo "$help" 1>&2 | $echo "$help" 1>&2 | |||
exit $EXIT_FAILURE | exit 1 | |||
fi | fi | |||
# Read the libtool library. | # Read the libtool library. | |||
dlname= | dlname= | |||
library_names= | library_names= | |||
# If there is no directory component, then add one. | # If there is no directory component, then add one. | |||
case $file in | case $file in | |||
*/* | *\\*) . $file ;; | */* | *\\*) . $file ;; | |||
*) . ./$file ;; | *) . ./$file ;; | |||
skipping to change at line 6448 | skipping to change at line 4726 | |||
continue | continue | |||
fi | fi | |||
dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` | dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` | |||
test "X$dir" = "X$file" && dir=. | test "X$dir" = "X$file" && dir=. | |||
if test -f "$dir/$objdir/$dlname"; then | if test -f "$dir/$objdir/$dlname"; then | |||
dir="$dir/$objdir" | dir="$dir/$objdir" | |||
else | else | |||
$echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$obj dir'" 1>&2 | $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$obj dir'" 1>&2 | |||
exit $EXIT_FAILURE | exit 1 | |||
fi | fi | |||
;; | ;; | |||
*.lo) | *.lo) | |||
# Just add the directory containing the .lo file. | # Just add the directory containing the .lo file. | |||
dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` | dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` | |||
test "X$dir" = "X$file" && dir=. | test "X$dir" = "X$file" && dir=. | |||
;; | ;; | |||
*) | *) | |||
skipping to change at line 6488 | skipping to change at line 4766 | |||
libtool_execute_magic="$magic" | libtool_execute_magic="$magic" | |||
# Check if any of the arguments is a wrapper script. | # Check if any of the arguments is a wrapper script. | |||
args= | args= | |||
for file | for file | |||
do | do | |||
case $file in | case $file in | |||
-*) ;; | -*) ;; | |||
*) | *) | |||
# Do a test to see if this is really a libtool program. | # Do a test to see if this is really a libtool program. | |||
if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/ null 2>&1; then | if (${SED} -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev /null 2>&1; then | |||
# If there is no directory component, then add one. | # If there is no directory component, then add one. | |||
case $file in | case $file in | |||
*/* | *\\*) . $file ;; | */* | *\\*) . $file ;; | |||
*) . ./$file ;; | *) . ./$file ;; | |||
esac | esac | |||
# Transform arg to wrapped name. | # Transform arg to wrapped name. | |||
file="$progdir/$program" | file="$progdir/$program" | |||
fi | fi | |||
;; | ;; | |||
skipping to change at line 6511 | skipping to change at line 4789 | |||
file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"` | file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"` | |||
args="$args \"$file\"" | args="$args \"$file\"" | |||
done | done | |||
if test -z "$run"; then | if test -z "$run"; then | |||
if test -n "$shlibpath_var"; then | if test -n "$shlibpath_var"; then | |||
# Export the shlibpath_var. | # Export the shlibpath_var. | |||
eval "export $shlibpath_var" | eval "export $shlibpath_var" | |||
fi | fi | |||
# Restore saved environment variables | # Restore saved enviroment variables | |||
if test "${save_LC_ALL+set}" = set; then | if test "${save_LC_ALL+set}" = set; then | |||
LC_ALL="$save_LC_ALL"; export LC_ALL | LC_ALL="$save_LC_ALL"; export LC_ALL | |||
fi | fi | |||
if test "${save_LANG+set}" = set; then | if test "${save_LANG+set}" = set; then | |||
LANG="$save_LANG"; export LANG | LANG="$save_LANG"; export LANG | |||
fi | fi | |||
# Now prepare to actually exec the command. | # Now prepare to actually exec the command. | |||
exec_cmd="\$cmd$args" | exec_cmd="\$cmd$args" | |||
else | else | |||
# Display what would be done. | # Display what would be done. | |||
if test -n "$shlibpath_var"; then | if test -n "$shlibpath_var"; then | |||
eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\"" | eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\"" | |||
$echo "export $shlibpath_var" | $echo "export $shlibpath_var" | |||
fi | fi | |||
$echo "$cmd$args" | $echo "$cmd$args" | |||
exit $EXIT_SUCCESS | exit 0 | |||
fi | fi | |||
;; | ;; | |||
# libtool clean and uninstall mode | # libtool clean and uninstall mode | |||
clean | uninstall) | clean | uninstall) | |||
modename="$modename: $mode" | modename="$modename: $mode" | |||
rm="$nonopt" | rm="$nonopt" | |||
files= | files= | |||
rmforce= | rmforce= | |||
exit_status=0 | exit_status=0 | |||
skipping to change at line 6556 | skipping to change at line 4834 | |||
case $arg in | case $arg in | |||
-f) rm="$rm $arg"; rmforce=yes ;; | -f) rm="$rm $arg"; rmforce=yes ;; | |||
-*) rm="$rm $arg" ;; | -*) rm="$rm $arg" ;; | |||
*) files="$files $arg" ;; | *) files="$files $arg" ;; | |||
esac | esac | |||
done | done | |||
if test -z "$rm"; then | if test -z "$rm"; then | |||
$echo "$modename: you must specify an RM program" 1>&2 | $echo "$modename: you must specify an RM program" 1>&2 | |||
$echo "$help" 1>&2 | $echo "$help" 1>&2 | |||
exit $EXIT_FAILURE | exit 1 | |||
fi | fi | |||
rmdirs= | rmdirs= | |||
origobjdir="$objdir" | ||||
for file in $files; do | for file in $files; do | |||
dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` | dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` | |||
if test "X$dir" = "X$file"; then | if test "X$dir" = "X$file"; then | |||
dir=. | dir=. | |||
objdir="$origobjdir" | objdir="$objdir" | |||
else | else | |||
objdir="$dir/$origobjdir" | objdir="$dir/$objdir" | |||
fi | fi | |||
name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` | name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` | |||
test "$mode" = uninstall && objdir="$dir" | test "$mode" = uninstall && objdir="$dir" | |||
# Remember objdir for removal later, being careful to avoid duplicate s | # Remember objdir for removal later, being careful to avoid duplicate s | |||
if test "$mode" = clean; then | if test "$mode" = clean; then | |||
case " $rmdirs " in | case " $rmdirs " in | |||
*" $objdir "*) ;; | *" $objdir "*) ;; | |||
*) rmdirs="$rmdirs $objdir" ;; | *) rmdirs="$rmdirs $objdir" ;; | |||
esac | esac | |||
skipping to change at line 6598 | skipping to change at line 4875 | |||
continue | continue | |||
elif test "$rmforce" = yes; then | elif test "$rmforce" = yes; then | |||
continue | continue | |||
fi | fi | |||
rmfiles="$file" | rmfiles="$file" | |||
case $name in | case $name in | |||
*.la) | *.la) | |||
# Possibly a libtool archive, so verify it. | # Possibly a libtool archive, so verify it. | |||
if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/ null 2>&1; then | if (${SED} -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev /null 2>&1; then | |||
. $dir/$name | . $dir/$name | |||
# Delete the libtool libraries and symlinks. | # Delete the libtool libraries and symlinks. | |||
for n in $library_names; do | for n in $library_names; do | |||
rmfiles="$rmfiles $objdir/$n" | rmfiles="$rmfiles $objdir/$n" | |||
done | done | |||
test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library" | test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library" | |||
test "$mode" = clean && rmfiles="$rmfiles $objdir/$name $objdir/${ name}i" | ||||
case "$mode" in | if test "$mode" = uninstall; then | |||
clean) | ||||
case " $library_names " in | ||||
# " " in the beginning catches empty $dlname | ||||
*" $dlname "*) ;; | ||||
*) rmfiles="$rmfiles $objdir/$dlname" ;; | ||||
esac | ||||
test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${ name}i" | ||||
;; | ||||
uninstall) | ||||
if test -n "$library_names"; then | if test -n "$library_names"; then | |||
# Do each command in the postuninstall commands. | # Do each command in the postuninstall commands. | |||
cmds=$postuninstall_cmds | eval cmds=\"$postuninstall_cmds\" | |||
save_ifs="$IFS"; IFS='~' | save_ifs="$IFS"; IFS='~' | |||
for cmd in $cmds; do | for cmd in $cmds; do | |||
IFS="$save_ifs" | IFS="$save_ifs" | |||
eval cmd=\"$cmd\" | ||||
$show "$cmd" | $show "$cmd" | |||
$run eval "$cmd" | $run eval "$cmd" | |||
if test "$?" -ne 0 && test "$rmforce" != yes; then | if test $? != 0 && test "$rmforce" != yes; then | |||
exit_status=1 | exit_status=1 | |||
fi | fi | |||
done | done | |||
IFS="$save_ifs" | IFS="$save_ifs" | |||
fi | fi | |||
if test -n "$old_library"; then | if test -n "$old_library"; then | |||
# Do each command in the old_postuninstall commands. | # Do each command in the old_postuninstall commands. | |||
cmds=$old_postuninstall_cmds | eval cmds=\"$old_postuninstall_cmds\" | |||
save_ifs="$IFS"; IFS='~' | save_ifs="$IFS"; IFS='~' | |||
for cmd in $cmds; do | for cmd in $cmds; do | |||
IFS="$save_ifs" | IFS="$save_ifs" | |||
eval cmd=\"$cmd\" | ||||
$show "$cmd" | $show "$cmd" | |||
$run eval "$cmd" | $run eval "$cmd" | |||
if test "$?" -ne 0 && test "$rmforce" != yes; then | if test $? != 0 && test "$rmforce" != yes; then | |||
exit_status=1 | exit_status=1 | |||
fi | fi | |||
done | done | |||
IFS="$save_ifs" | IFS="$save_ifs" | |||
fi | fi | |||
# FIXME: should reinstall the best remaining shared library. | # FIXME: should reinstall the best remaining shared library. | |||
;; | fi | |||
esac | ||||
fi | fi | |||
;; | ;; | |||
*.lo) | *.lo) | |||
# Possibly a libtool object, so verify it. | if test "$build_old_libs" = yes; then | |||
if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/ null 2>&1; then | oldobj=`$echo "X$name" | $Xsed -e "$lo2o"` | |||
rmfiles="$rmfiles $dir/$oldobj" | ||||
# Read the .lo file | ||||
. $dir/$name | ||||
# Add PIC object to the list of files to remove. | ||||
if test -n "$pic_object" \ | ||||
&& test "$pic_object" != none; then | ||||
rmfiles="$rmfiles $dir/$pic_object" | ||||
fi | ||||
# Add non-PIC object to the list of files to remove. | ||||
if test -n "$non_pic_object" \ | ||||
&& test "$non_pic_object" != none; then | ||||
rmfiles="$rmfiles $dir/$non_pic_object" | ||||
fi | ||||
fi | fi | |||
;; | ;; | |||
*) | *) | |||
if test "$mode" = clean ; then | # Do a test to see if this is a libtool program. | |||
noexename=$name | if test "$mode" = clean && | |||
case $file in | (${SED} -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev /null 2>&1; then | |||
*.exe) | relink_command= | |||
file=`$echo $file|${SED} 's,.exe$,,'` | . $dir/$file | |||
noexename=`$echo $name|${SED} 's,.exe$,,'` | ||||
# $file with .exe has already been added to rmfiles, | ||||
# add $file without .exe | ||||
rmfiles="$rmfiles $file" | ||||
;; | ||||
esac | ||||
# Do a test to see if this is a libtool program. | ||||
if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/de v/null 2>&1; then | ||||
relink_command= | ||||
. $dir/$noexename | ||||
# note $name still contains .exe if it was in $file originally | rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}" | |||
# as does the version of $file that was added into $rmfiles | if test "$fast_install" = yes && test -n "$relink_command"; then | |||
rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}" | rmfiles="$rmfiles $objdir/lt-$name" | |||
if test "$fast_install" = yes && test -n "$relink_command"; then | ||||
rmfiles="$rmfiles $objdir/lt-$name" | ||||
fi | ||||
if test "X$noexename" != "X$name" ; then | ||||
rmfiles="$rmfiles $objdir/lt-${noexename}.c" | ||||
fi | ||||
fi | fi | |||
fi | fi | |||
;; | ;; | |||
esac | esac | |||
$show "$rm $rmfiles" | $show "$rm $rmfiles" | |||
$run $rm $rmfiles || exit_status=1 | $run $rm $rmfiles || exit_status=1 | |||
done | done | |||
objdir="$origobjdir" | ||||
# Try to remove the ${objdir}s in the directories where we deleted file s | # Try to remove the ${objdir}s in the directories where we deleted file s | |||
for dir in $rmdirs; do | for dir in $rmdirs; do | |||
if test -d "$dir"; then | if test -d "$dir"; then | |||
$show "rmdir $dir" | $show "rmdir $dir" | |||
$run rmdir $dir >/dev/null 2>&1 | $run rmdir $dir >/dev/null 2>&1 | |||
fi | fi | |||
done | done | |||
exit $exit_status | exit $exit_status | |||
;; | ;; | |||
"") | "") | |||
$echo "$modename: you must specify a MODE" 1>&2 | $echo "$modename: you must specify a MODE" 1>&2 | |||
$echo "$generic_help" 1>&2 | $echo "$generic_help" 1>&2 | |||
exit $EXIT_FAILURE | exit 1 | |||
;; | ;; | |||
esac | esac | |||
if test -z "$exec_cmd"; then | if test -z "$exec_cmd"; then | |||
$echo "$modename: invalid operation mode \`$mode'" 1>&2 | $echo "$modename: invalid operation mode \`$mode'" 1>&2 | |||
$echo "$generic_help" 1>&2 | $echo "$generic_help" 1>&2 | |||
exit $EXIT_FAILURE | exit 1 | |||
fi | fi | |||
fi # test -z "$show_help" | fi # test -z "$show_help" | |||
if test -n "$exec_cmd"; then | if test -n "$exec_cmd"; then | |||
eval exec $exec_cmd | eval exec $exec_cmd | |||
exit $EXIT_FAILURE | exit 1 | |||
fi | fi | |||
# We need to display help for each of the modes. | # We need to display help for each of the modes. | |||
case $mode in | case $mode in | |||
"") $echo \ | "") $echo \ | |||
"Usage: $modename [OPTION]... [MODE-ARG]... | "Usage: $modename [OPTION]... [MODE-ARG]... | |||
Provide generalized library-building support services. | Provide generalized library-building support services. | |||
--config show all configuration variables | --config show all configuration variables | |||
--debug enable verbose shell tracing | --debug enable verbose shell tracing | |||
-n, --dry-run display commands without modifying any files | -n, --dry-run display commands without modifying any files | |||
--features display basic configuration information and exit | --features display basic configuration information and exit | |||
--finish same as \`--mode=finish' | --finish same as \`--mode=finish' | |||
--help display this help message and exit | --help display this help message and exit | |||
--mode=MODE use operation mode MODE [default=inferred from MODE-A RGS] | --mode=MODE use operation mode MODE [default=inferred from MODE-A RGS] | |||
--quiet same as \`--silent' | --quiet same as \`--silent' | |||
--silent don't print informational messages | --silent don't print informational messages | |||
--tag=TAG use configuration variables from tag TAG | ||||
--version print version information | --version print version information | |||
MODE must be one of the following: | MODE must be one of the following: | |||
clean remove files from the build directory | clean remove files from the build directory | |||
compile compile a source file into a libtool object | compile compile a source file into a libtool object | |||
execute automatically set library path, then run a program | execute automatically set library path, then run a program | |||
finish complete the installation of libtool libraries | finish complete the installation of libtool libraries | |||
install install libraries or executables | install install libraries or executables | |||
link create a library or an executable | link create a library or an executable | |||
uninstall remove libraries from an installed directory | uninstall remove libraries from an installed directory | |||
MODE-ARGS vary depending on the MODE. Try \`$modename --help --mode=MODE' for | MODE-ARGS vary depending on the MODE. Try \`$modename --help --mode=MODE' for | |||
a more detailed description of MODE. | a more detailed description of MODE." | |||
exit 0 | ||||
Report bugs to <bug-libtool@gnu.org>." | ||||
exit $EXIT_SUCCESS | ||||
;; | ;; | |||
clean) | clean) | |||
$echo \ | $echo \ | |||
"Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE... | "Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE... | |||
Remove files from the build directory. | Remove files from the build directory. | |||
RM is the name of the program to use to delete files associated with each F ILE | RM is the name of the program to use to delete files associated with each F ILE | |||
(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passe d | (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passe d | |||
skipping to change at line 6884 | skipping to change at line 5116 | |||
try to export only the symbols listed in SYMFILE | try to export only the symbols listed in SYMFILE | |||
-export-symbols-regex REGEX | -export-symbols-regex REGEX | |||
try to export only the symbols matching REGEX | try to export only the symbols matching REGEX | |||
-LLIBDIR search LIBDIR for required installed libraries | -LLIBDIR search LIBDIR for required installed libraries | |||
-lNAME OUTPUT-FILE requires the installed library libNAME | -lNAME OUTPUT-FILE requires the installed library libNAME | |||
-module build a library that can dlopened | -module build a library that can dlopened | |||
-no-fast-install disable the fast-install mode | -no-fast-install disable the fast-install mode | |||
-no-install link a not-installable executable | -no-install link a not-installable executable | |||
-no-undefined declare that a library does not refer to external symbo ls | -no-undefined declare that a library does not refer to external symbo ls | |||
-o OUTPUT-FILE create OUTPUT-FILE from the specified objects | -o OUTPUT-FILE create OUTPUT-FILE from the specified objects | |||
-objectlist FILE Use a list of object files found in FILE to specify obj ects | ||||
-precious-files-regex REGEX | ||||
don't remove output files matching REGEX | ||||
-release RELEASE specify package release information | -release RELEASE specify package release information | |||
-rpath LIBDIR the created library will eventually be installed in LIB DIR | -rpath LIBDIR the created library will eventually be installed in LIB DIR | |||
-R[ ]LIBDIR add LIBDIR to the runtime path of programs and librarie s | -R[ ]LIBDIR add LIBDIR to the runtime path of programs and librarie s | |||
-static do not do any dynamic linking of libtool libraries | -static do not do any dynamic linking of libtool libraries | |||
-version-info CURRENT[:REVISION[:AGE]] | -version-info CURRENT[:REVISION[:AGE]] | |||
specify library version info [each variable defaults to 0] | specify library version info [each variable defaults to 0] | |||
All other options (arguments beginning with \`-') are ignored. | All other options (arguments beginning with \`-') are ignored. | |||
Every other argument is treated as a filename. Files ending in \`.la' are | Every other argument is treated as a filename. Files ending in \`.la' are | |||
skipping to change at line 6928 | skipping to change at line 5157 | |||
(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passe d | (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passe d | |||
to RM. | to RM. | |||
If FILE is a libtool library, all the files associated with it are deleted. | If FILE is a libtool library, all the files associated with it are deleted. | |||
Otherwise, only FILE itself is deleted using RM." | Otherwise, only FILE itself is deleted using RM." | |||
;; | ;; | |||
*) | *) | |||
$echo "$modename: invalid operation mode \`$mode'" 1>&2 | $echo "$modename: invalid operation mode \`$mode'" 1>&2 | |||
$echo "$help" 1>&2 | $echo "$help" 1>&2 | |||
exit $EXIT_FAILURE | exit 1 | |||
;; | ;; | |||
esac | esac | |||
$echo | echo | |||
$echo "Try \`$modename --help' for more information about other modes." | $echo "Try \`$modename --help' for more information about other modes." | |||
exit $? | exit 0 | |||
# The TAGs below are defined such that we never get into a situation | ||||
# in which we disable both kinds of libraries. Given conflicting | ||||
# choices, we go for a static library, that is the most portable, | ||||
# since we can't tell whether shared libraries were disabled because | ||||
# the user asked for that or because the platform doesn't support | ||||
# them. This is particularly important on AIX, because we don't | ||||
# support having both static and shared libraries enabled at the same | ||||
# time on that platform, so we default to a shared-only configuration. | ||||
# If a disable-shared tag is given, we'll fallback to a static-only | ||||
# configuration. But we'll never go from static-only to shared-only. | ||||
# ### BEGIN LIBTOOL TAG CONFIG: disable-shared | ||||
disable_libs=shared | ||||
# ### END LIBTOOL TAG CONFIG: disable-shared | ||||
# ### BEGIN LIBTOOL TAG CONFIG: disable-static | ||||
disable_libs=static | ||||
# ### END LIBTOOL TAG CONFIG: disable-static | ||||
# Local Variables: | # Local Variables: | |||
# mode:shell-script | # mode:shell-script | |||
# sh-indentation:2 | # sh-indentation:2 | |||
# End: | # End: | |||
End of changes. 476 change blocks. | ||||
2774 lines changed or deleted | 984 lines changed or added | |||
This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |