Couldn't find wdiff. Falling back to builtin diff colouring... Diff: ltmain.sh - ltmain.sh
 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/