ltmain.sh   ltmain.sh 
# Generated from ltmain.m4sh.
# libtool (GNU libtool) 2.2.10 # libtool (GNU libtool) 2.4
# Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996 # Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006,
# 2007, 2008, 2009, 2010 Free Software Foundation, Inc. # 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
# This is free software; see the source for copying conditions. There is N O # This is free software; see the source for copying conditions. There is N O
# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOS E. # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOS E.
# GNU Libtool is free software; you can redistribute it and/or modify # GNU Libtool 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
skipping to change at line 73 skipping to change at line 72
# Try `$progname --help --mode=MODE' for a more detailed description of MOD E. # Try `$progname --help --mode=MODE' for a more detailed description of MOD E.
# #
# When reporting a bug, please describe a test case to reproduce it and # When reporting a bug, please describe a test case to reproduce it and
# include the following information: # include the following information:
# #
# host-triplet: $host # host-triplet: $host
# shell: $SHELL # shell: $SHELL
# compiler: $LTCC # compiler: $LTCC
# compiler flags: $LTCFLAGS # compiler flags: $LTCFLAGS
# linker: $LD (gnu? $with_gnu_ld) # linker: $LD (gnu? $with_gnu_ld)
# $progname: (GNU libtool) 2.2.10 # $progname: (GNU libtool) 2.4
# automake: $automake_version # automake: $automake_version
# autoconf: $autoconf_version # autoconf: $autoconf_version
# #
# Report bugs to <bug-libtool@gnu.org>. # Report bugs to <bug-libtool@gnu.org>.
# GNU libtool home page: <http://www.gnu.org/software/libtool/>.
# General help using GNU software: <http://www.gnu.org/gethelp/>.
PROGRAM=libtool PROGRAM=libtool
PACKAGE=libtool PACKAGE=libtool
VERSION=2.2.10 VERSION=2.4
TIMESTAMP="" TIMESTAMP=""
package_revision=1.3175 package_revision=1.3293
# Be Bourne compatible # Be Bourne compatible
if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
emulate sh emulate sh
NULLCMD=: NULLCMD=:
# Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
# is contrary to our usage. Disable this feature. # is contrary to our usage. Disable this feature.
alias -g '${1+"$@"}'='"$@"' alias -g '${1+"$@"}'='"$@"'
setopt NO_GLOB_SUBST setopt NO_GLOB_SUBST
else else
skipping to change at line 163 skipping to change at line 164
exit_status=$EXIT_SUCCESS exit_status=$EXIT_SUCCESS
# Make sure IFS has a sensible default # Make sure IFS has a sensible default
lt_nl=' lt_nl='
' '
IFS=" $lt_nl" IFS=" $lt_nl"
dirname="s,/[^/]*$,," dirname="s,/[^/]*$,,"
basename="s,^.*/,," basename="s,^.*/,,"
# func_dirname file append nondir_replacement
# Compute the dirname of FILE. If nonempty, add APPEND to the result,
# otherwise set result to NONDIR_REPLACEMENT.
func_dirname ()
{
func_dirname_result=`$ECHO "${1}" | $SED "$dirname"`
if test "X$func_dirname_result" = "X${1}"; then
func_dirname_result="${3}"
else
func_dirname_result="$func_dirname_result${2}"
fi
} # func_dirname may be replaced by extended shell implementation
# func_basename file
func_basename ()
{
func_basename_result=`$ECHO "${1}" | $SED "$basename"`
} # func_basename may be replaced by extended shell implementation
# func_dirname_and_basename file append nondir_replacement # func_dirname_and_basename file append nondir_replacement
# perform func_basename and func_dirname in a single function # perform func_basename and func_dirname in a single function
# call: # call:
# dirname: Compute the dirname of FILE. If nonempty, # dirname: Compute the dirname of FILE. If nonempty,
# add APPEND to the result, otherwise set result # add APPEND to the result, otherwise set result
# to NONDIR_REPLACEMENT. # to NONDIR_REPLACEMENT.
# value returned in "$func_dirname_result" # value returned in "$func_dirname_result"
# basename: Compute filename of FILE. # basename: Compute filename of FILE.
# value retuned in "$func_basename_result" # value retuned in "$func_basename_result"
# Implementation must be kept synchronized with func_dirname # Implementation must be kept synchronized with func_dirname
# and func_basename. For efficiency, we do not delegate to # and func_basename. For efficiency, we do not delegate to
# those functions but instead duplicate the functionality here. # those functions but instead duplicate the functionality here.
func_dirname_and_basename () func_dirname_and_basename ()
{ {
# Extract subdirectory from the argument. # Extract subdirectory from the argument.
func_dirname_result=`$ECHO "${1}" | $SED -e "$dirname"` func_dirname_result=`$ECHO "${1}" | $SED -e "$dirname"`
if test "X$func_dirname_result" = "X${1}"; then if test "X$func_dirname_result" = "X${1}"; then
func_dirname_result="${3}" func_dirname_result="${3}"
else else
func_dirname_result="$func_dirname_result${2}" func_dirname_result="$func_dirname_result${2}"
fi fi
func_basename_result=`$ECHO "${1}" | $SED -e "$basename"` func_basename_result=`$ECHO "${1}" | $SED -e "$basename"`
} } # func_dirname_and_basename may be replaced by extended shell implementat
ion
# Generated shell functions inserted here. # func_stripname prefix suffix name
# strip PREFIX and SUFFIX off of NAME.
# PREFIX and SUFFIX must not contain globbing or regex special
# characters, hashes, percent signs, but SUFFIX may contain a leading
# dot (in which case that matches only a dot).
# func_strip_suffix prefix name
func_stripname ()
{
case ${2} in
.*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}
\$%%"`;;
*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%
"`;;
esac
} # func_stripname may be replaced by extended shell implementation
# These SED scripts presuppose an absolute path with a trailing slash. # These SED scripts presuppose an absolute path with a trailing slash.
pathcar='s,^/\([^/]*\).*$,\1,' pathcar='s,^/\([^/]*\).*$,\1,'
pathcdr='s,^/[^/]*,,' pathcdr='s,^/[^/]*,,'
removedotparts=':dotsl removedotparts=':dotsl
s@/\./@/@g s@/\./@/@g
t dotsl t dotsl
s,/\.$,/,' s,/\.$,/,'
collapseslashes='s@/\{1,\}@/@g' collapseslashes='s@/\{1,\}@/@g'
finalslash='s,/*$,/,' finalslash='s,/*$,/,'
skipping to change at line 370 skipping to change at line 402
esac esac
# 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'
# Same as above, but do not quote variable references. # Same as above, but do not quote variable references.
double_quote_subst='s/\(["`\\]\)/\\\1/g' double_quote_subst='s/\(["`\\]\)/\\\1/g'
# Sed substitution that turns a string into a regex matching for the
# string literally.
sed_make_literal_regex='s,[].[^$\\*\/],\\&,g'
# Sed substitution that converts a w32 file name or path
# which contains forward slashes, into one that contains
# (escaped) backslashes. A very naive implementation.
lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
# Re-`\' parameter expansions in output of double_quote_subst that were # Re-`\' parameter expansions in output of double_quote_subst that were
# `\'-ed in input to the same. If an odd number of `\' preceded a '$' # `\'-ed in input to the same. If an odd number of `\' preceded a '$'
# in input to double_quote_subst, that '$' was protected from expansion. # in input to double_quote_subst, that '$' was protected from expansion.
# Since each input `\' is now two `\'s, look for any number of runs of # Since each input `\' is now two `\'s, look for any number of runs of
# four `\'s followed by two `\'s and then a '$'. `\' that '$'. # four `\'s followed by two `\'s and then a '$'. `\' that '$'.
bs='\\' bs='\\'
bs2='\\\\' bs2='\\\\'
bs4='\\\\\\\\' bs4='\\\\\\\\'
dollar='\$' dollar='\$'
sed_double_backslash="\ sed_double_backslash="\
skipping to change at line 398 skipping to change at line 439
opt_help=false opt_help=false
opt_quiet=false opt_quiet=false
opt_verbose=false opt_verbose=false
opt_warning=: opt_warning=:
# func_echo arg... # func_echo arg...
# Echo program name prefixed message, along with the current mode # Echo program name prefixed message, along with the current mode
# name if it has been set yet. # name if it has been set yet.
func_echo () func_echo ()
{ {
$ECHO "$progname${mode+: }$mode: $*" $ECHO "$progname: ${opt_mode+$opt_mode: }$*"
} }
# func_verbose arg... # func_verbose arg...
# Echo program name prefixed message in verbose mode only. # Echo program name prefixed message in verbose mode only.
func_verbose () func_verbose ()
{ {
$opt_verbose && func_echo ${1+"$@"} $opt_verbose && func_echo ${1+"$@"}
# A bug in bash halts the script if the last line of a function # A bug in bash halts the script if the last line of a function
# fails when set -e is in force, so we need another command to # fails when set -e is in force, so we need another command to
skipping to change at line 424 skipping to change at line 465
# Invoke $ECHO with all args, space-separated. # Invoke $ECHO with all args, space-separated.
func_echo_all () func_echo_all ()
{ {
$ECHO "$*" $ECHO "$*"
} }
# func_error arg... # func_error arg...
# Echo program name prefixed message to standard error. # Echo program name prefixed message to standard error.
func_error () func_error ()
{ {
$ECHO "$progname${mode+: }$mode: "${1+"$@"} 1>&2 $ECHO "$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2
} }
# func_warning arg... # func_warning arg...
# Echo program name prefixed warning message to standard error. # Echo program name prefixed warning message to standard error.
func_warning () func_warning ()
{ {
$opt_warning && $ECHO "$progname${mode+: }$mode: warning: "${1+"$@"} 1> &2 $opt_warning && $ECHO "$progname: ${opt_mode+$opt_mode: }warning: "${1+ "$@"} 1>&2
# bash bug again: # bash bug again:
: :
} }
# func_fatal_error arg... # func_fatal_error arg...
# Echo program name prefixed message to standard error, and exit. # Echo program name prefixed message to standard error, and exit.
func_fatal_error () func_fatal_error ()
{ {
func_error ${1+"$@"} func_error ${1+"$@"}
skipping to change at line 643 skipping to change at line 684
eval "$lt_user_locale eval "$lt_user_locale
$my_cmd" $my_cmd"
my_status=$? my_status=$?
eval "$lt_safe_locale" eval "$lt_safe_locale"
if test "$my_status" -eq 0; then :; else if test "$my_status" -eq 0; then :; else
eval "(exit $my_status); $my_fail_exp" eval "(exit $my_status); $my_fail_exp"
fi fi
fi fi
} }
# func_tr_sh
# Turn $1 into a string suitable for a shell variable name.
# Result is stored in $func_tr_sh_result. All characters
# not in the set a-zA-Z0-9_ are replaced with '_'. Further,
# if $1 begins with a digit, a '_' is prepended as well.
func_tr_sh ()
{
case $1 in
[0-9]* | *[!a-zA-Z0-9_]*)
func_tr_sh_result=`$ECHO "$1" | $SED 's/^\([0-9]\)/_\1/; s/[^a-zA-Z0-9_
]/_/g'`
;;
* )
func_tr_sh_result=$1
;;
esac
}
# func_version # func_version
# Echo version message to standard output and exit. # Echo version message to standard output and exit.
func_version () func_version ()
{ {
$opt_debug
$SED -n '/(C)/!b go $SED -n '/(C)/!b go
:more :more
/\./!{ /\./!{
N N
s/\n# / / s/\n# / /
b more b more
} }
:go :go
/^# '$PROGRAM' (GNU /,/# warranty; / { /^# '$PROGRAM' (GNU /,/# warranty; / {
s/^# // s/^# //
skipping to change at line 668 skipping to change at line 728
s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/ s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/
p p
}' < "$progpath" }' < "$progpath"
exit $? exit $?
} }
# func_usage # func_usage
# Echo short help message to standard output and exit. # Echo short help message to standard output and exit.
func_usage () func_usage ()
{ {
$opt_debug
$SED -n '/^# Usage:/,/^# *.*--help/ { $SED -n '/^# Usage:/,/^# *.*--help/ {
s/^# // s/^# //
s/^# *$// s/^# *$//
s/\$progname/'$progname'/ s/\$progname/'$progname'/
p p
}' < "$progpath" }' < "$progpath"
echo echo
$ECHO "run \`$progname --help | more' for full usage" $ECHO "run \`$progname --help | more' for full usage"
exit $? exit $?
} }
# func_help [NOEXIT] # func_help [NOEXIT]
# Echo long help message to standard output and exit, # Echo long help message to standard output and exit,
# unless 'noexit' is passed as argument. # unless 'noexit' is passed as argument.
func_help () func_help ()
{ {
$opt_debug
$SED -n '/^# Usage:/,/# Report bugs to/ { $SED -n '/^# Usage:/,/# Report bugs to/ {
:print
s/^# // s/^# //
s/^# *$// s/^# *$//
s*\$progname*'$progname'* s*\$progname*'$progname'*
s*\$host*'"$host"'* s*\$host*'"$host"'*
s*\$SHELL*'"$SHELL"'* s*\$SHELL*'"$SHELL"'*
s*\$LTCC*'"$LTCC"'* s*\$LTCC*'"$LTCC"'*
s*\$LTCFLAGS*'"$LTCFLAGS"'* s*\$LTCFLAGS*'"$LTCFLAGS"'*
s*\$LD*'"$LD"'* s*\$LD*'"$LD"'*
s/\$with_gnu_ld/'"$with_gnu_ld"'/ s/\$with_gnu_ld/'"$with_gnu_ld"'/
s/\$automake_version/'"`(automake --version) 2>/dev/null |$SED 1q`"' / s/\$automake_version/'"`(automake --version) 2>/dev/null |$SED 1q`"' /
s/\$autoconf_version/'"`(autoconf --version) 2>/dev/null |$SED 1q`"' / s/\$autoconf_version/'"`(autoconf --version) 2>/dev/null |$SED 1q`"' /
p p
}' < "$progpath" d
}
/^# .* home page:/b print
/^# General help using/b print
' < "$progpath"
ret=$? ret=$?
if test -z "$1"; then if test -z "$1"; then
exit $ret exit $ret
fi fi
} }
# func_missing_arg argname # func_missing_arg argname
# Echo program name prefixed message to standard error and set global # Echo program name prefixed message to standard error and set global
# exit_cmd. # exit_cmd.
func_missing_arg () func_missing_arg ()
{ {
$opt_debug
func_error "missing argument for $1." func_error "missing argument for $1."
exit_cmd=exit exit_cmd=exit
} }
# func_split_short_opt shortopt
# Set func_split_short_opt_name and func_split_short_opt_arg shell
# variables after splitting SHORTOPT after the 2nd character.
func_split_short_opt ()
{
my_sed_short_opt='1s/^\(..\).*$/\1/;q'
my_sed_short_rest='1s/^..\(.*\)$/\1/;q'
func_split_short_opt_name=`$ECHO "$1" | $SED "$my_sed_short_opt"`
func_split_short_opt_arg=`$ECHO "$1" | $SED "$my_sed_short_rest"`
} # func_split_short_opt may be replaced by extended shell implementation
# func_split_long_opt longopt
# Set func_split_long_opt_name and func_split_long_opt_arg shell
# variables after splitting LONGOPT at the `=' sign.
func_split_long_opt ()
{
my_sed_long_opt='1s/^\(--[^=]*\)=.*/\1/;q'
my_sed_long_arg='1s/^--[^=]*=//'
func_split_long_opt_name=`$ECHO "$1" | $SED "$my_sed_long_opt"`
func_split_long_opt_arg=`$ECHO "$1" | $SED "$my_sed_long_arg"`
} # func_split_long_opt may be replaced by extended shell implementation
exit_cmd=: exit_cmd=:
magic="%%%MAGIC variable%%%" magic="%%%MAGIC variable%%%"
magic_exe="%%%MAGIC EXE variable%%%" magic_exe="%%%MAGIC EXE variable%%%"
# Global variables. # Global variables.
# $mode is unset
nonopt= nonopt=
execute_dlfiles=
preserve_args= preserve_args=
lo2o="s/\\.lo\$/.${objext}/" lo2o="s/\\.lo\$/.${objext}/"
o2lo="s/\\.${objext}\$/.lo/" o2lo="s/\\.${objext}\$/.lo/"
extracted_archives= extracted_archives=
extracted_serial=0 extracted_serial=0
opt_dry_run=false
opt_duplicate_deps=false
opt_silent=false
opt_debug=:
# 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=
# func_append var value
# Append VALUE to the end of shell variable VAR.
func_append ()
{
eval "${1}=\$${1}\${2}"
} # func_append may be replaced by extended shell implementation
# func_append_quoted var value
# Quote VALUE and append to the end of shell variable VAR, separated
# by a space.
func_append_quoted ()
{
func_quote_for_eval "${2}"
eval "${1}=\$${1}\\ \$func_quote_for_eval_result"
} # func_append_quoted may be replaced by extended shell implementation
# func_arith arithmetic-term...
func_arith ()
{
func_arith_result=`expr "${@}"`
} # func_arith may be replaced by extended shell implementation
# func_len string
# STRING may not start with a hyphen.
func_len ()
{
func_len_result=`expr "${1}" : ".*" 2>/dev/null || echo $max_cmd_len`
} # func_len may be replaced by extended shell implementation
# func_lo2o object
func_lo2o ()
{
func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"`
} # func_lo2o may be replaced by extended shell implementation
# func_xform libobj-or-source
func_xform ()
{
func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'`
} # func_xform may be replaced by extended shell implementation
# func_fatal_configuration arg... # func_fatal_configuration arg...
# Echo program name prefixed message to standard error, followed by # Echo program name prefixed message to standard error, followed by
# a configuration failure hint, and exit. # a configuration failure hint, and exit.
func_fatal_configuration () func_fatal_configuration ()
{ {
func_error ${1+"$@"} func_error ${1+"$@"}
func_error "See the $PACKAGE documentation for more information." func_error "See the $PACKAGE documentation for more information."
func_fatal_error "Fatal configuration error." func_fatal_error "Fatal configuration error."
} }
skipping to change at line 826 skipping to change at line 955
# quotes we have to do it in 2 steps: # quotes we have to do it in 2 steps:
extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"` extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"`
eval "$extractedcf" eval "$extractedcf"
else else
func_error "ignoring unknown tag $tagname" func_error "ignoring unknown tag $tagname"
fi fi
;; ;;
esac esac
} }
# Parse options once, thoroughly. This comes as soon as possible in # func_check_version_match
# the script to make things like `libtool --version' happen quickly. # Ensure that we are using m4 macros, and libtool script from the same
# release of libtool.
func_check_version_match ()
{ {
if test "$package_revision" != "$macro_revision"; then
if test "$VERSION" != "$macro_version"; then
if test -z "$macro_version"; then
cat >&2 <<_LT_EOF
$progname: Version mismatch error. This is $PACKAGE $VERSION, but the
$progname: definition of this LT_INIT comes from an older release.
$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSIO
N
$progname: and run autoconf again.
_LT_EOF
else
cat >&2 <<_LT_EOF
$progname: Version mismatch error. This is $PACKAGE $VERSION, but the
$progname: definition of this LT_INIT comes from $PACKAGE $macro_version.
$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSIO
N
$progname: and run autoconf again.
_LT_EOF
fi
else
cat >&2 <<_LT_EOF
$progname: Version mismatch error. This is $PACKAGE $VERSION, revision $pa
ckage_revision,
$progname: but the definition of this LT_INIT comes from revision $macro_re
vision.
$progname: You should recreate aclocal.m4 with macros from revision $packag
e_revision
$progname: of $PACKAGE $VERSION and run autoconf again.
_LT_EOF
fi
# Shorthand for --mode=foo, only valid as the first argument exit $EXIT_MISMATCH
case $1 in fi
clean|clea|cle|cl) }
shift; set dummy --mode clean ${1+"$@"}; shift
;; # Shorthand for --mode=foo, only valid as the first argument
compile|compil|compi|comp|com|co|c) case $1 in
shift; set dummy --mode compile ${1+"$@"}; shift clean|clea|cle|cl)
;; shift; set dummy --mode clean ${1+"$@"}; shift
execute|execut|execu|exec|exe|ex|e) ;;
shift; set dummy --mode execute ${1+"$@"}; shift compile|compil|compi|comp|com|co|c)
;; shift; set dummy --mode compile ${1+"$@"}; shift
finish|finis|fini|fin|fi|f) ;;
shift; set dummy --mode finish ${1+"$@"}; shift execute|execut|execu|exec|exe|ex|e)
;; shift; set dummy --mode execute ${1+"$@"}; shift
install|instal|insta|inst|ins|in|i) ;;
shift; set dummy --mode install ${1+"$@"}; shift finish|finis|fini|fin|fi|f)
;; shift; set dummy --mode finish ${1+"$@"}; shift
link|lin|li|l) ;;
shift; set dummy --mode link ${1+"$@"}; shift install|instal|insta|inst|ins|in|i)
;; shift; set dummy --mode install ${1+"$@"}; shift
uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) ;;
shift; set dummy --mode uninstall ${1+"$@"}; shift link|lin|li|l)
;; shift; set dummy --mode link ${1+"$@"}; shift
esac ;;
uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u)
shift; set dummy --mode uninstall ${1+"$@"}; shift
;;
esac
# Option defaults:
opt_debug=:
opt_dry_run=false
opt_config=false
opt_preserve_dup_deps=false
opt_features=false
opt_finish=false
opt_help=false
opt_help_all=false
opt_silent=:
opt_verbose=:
opt_silent=false
opt_verbose=false
# Parse non-mode specific arguments: # Parse options once, thoroughly. This comes as soon as possible in the
while test "$#" -gt 0; do # script to make things like `--version' happen as quickly as we can.
{
# this just eases exit handling
while test $# -gt 0; do
opt="$1" opt="$1"
shift shift
case $opt in case $opt in
--config) func_config --debug|-x) opt_debug='set -x'
;;
--debug) preserve_args="$preserve_args $opt"
func_echo "enabling shell trace mode" func_echo "enabling shell trace mode"
opt_debug='set -x'
$opt_debug $opt_debug
;; ;;
--dry-run|--dryrun|-n)
-dlopen) test "$#" -eq 0 && func_missing_arg "$opt" && break opt_dry_run=:
execute_dlfiles="$execute_dlfiles $1"
shift
;; ;;
--config)
--dry-run | -n) opt_dry_run=: ;; opt_config=:
--features) func_features ;; func_config
--finish) mode="finish" ;;
;; --dlopen|-dlopen)
optarg="$1"
--mode) test "$#" -eq 0 && func_missing_arg "$opt" && break opt_dlopen="${opt_dlopen+$opt_dlopen
case $1 in }$optarg"
# Valid mode arguments:
clean) ;;
compile) ;;
execute) ;;
finish) ;;
install) ;;
link) ;;
relink) ;;
uninstall) ;;
# Catch anything else as an error
*) func_error "invalid argument for $opt"
exit_cmd=exit
break
;;
esac
mode="$1"
shift shift
;; ;;
--preserve-dup-deps) --preserve-dup-deps)
opt_duplicate_deps=: ;; opt_preserve_dup_deps=:
--quiet|--silent) preserve_args="$preserve_args $opt"
opt_silent=:
opt_verbose=false
;; ;;
--features)
--no-quiet|--no-silent) opt_features=:
preserve_args="$preserve_args $opt" func_features
opt_silent=false
;; ;;
--finish)
--verbose| -v) preserve_args="$preserve_args $opt" opt_finish=:
set dummy --mode finish ${1+"$@"}; shift
;;
--help)
opt_help=:
;;
--help-all)
opt_help_all=:
opt_help=': help-all'
;;
--mode)
test $# = 0 && func_missing_arg $opt && break
optarg="$1"
opt_mode="$optarg"
case $optarg in
# Valid mode arguments:
clean|compile|execute|finish|install|link|relink|uninstall) ;;
# Catch anything else as an error
*) func_error "invalid argument for $opt"
exit_cmd=exit
break
;;
esac
shift
;;
--no-silent|--no-quiet)
opt_silent=false opt_silent=false
opt_verbose=: func_append preserve_args " $opt"
;; ;;
--no-verbose)
--no-verbose) preserve_args="$preserve_args $opt"
opt_verbose=false opt_verbose=false
func_append preserve_args " $opt"
;; ;;
--silent|--quiet)
--tag) test "$#" -eq 0 && func_missing_arg "$opt" && break opt_silent=:
preserve_args="$preserve_args $opt $1" func_append preserve_args " $opt"
func_enable_tag "$1" # tagname is set here opt_verbose=false
;;
--verbose|-v)
opt_verbose=:
func_append preserve_args " $opt"
opt_silent=false
;;
--tag)
test $# = 0 && func_missing_arg $opt && break
optarg="$1"
opt_tag="$optarg"
func_append preserve_args " $opt $optarg"
func_enable_tag "$optarg"
shift shift
;; ;;
-\?|-h) func_usage ;;
--help) func_help ;;
--version) func_version ;;
# Separate optargs to long options: # Separate optargs to long options:
-dlopen=*|--mode=*|--tag=*) --*=*)
func_opt_split "$opt" func_split_long_opt "$opt"
set dummy "$func_opt_split_opt" "$func_opt_split_arg set dummy "$func_split_long_opt_name" "$func_split_l
" ${1+"$@"} ong_opt_arg" ${1+"$@"}
shift shift
;; ;;
-\?|-h) func_usage ;; # Separate non-argument short options:
--help) opt_help=: ;; -\?*|-h*|-n*|-v*)
--help-all) opt_help=': help-all' ;; func_split_short_opt "$opt"
--version) func_version ;; set dummy "$func_split_short_opt_name" "-$func_split
_short_opt_arg" ${1+"$@"}
-*) func_fatal_help "unrecognized option \`$opt'" ;; shift
*) nonopt="$opt"
break
;; ;;
--) break ;;
-*) func_fatal_help "unrecognized option \`$opt'" ;;
*) set dummy "$opt" ${1+"$@"}; shift; break ;;
esac esac
done done
# Validate options:
# save first non-option argument
if test "$#" -gt 0; then
nonopt="$opt"
shift
fi
# preserve --debug
test "$opt_debug" = : || func_append preserve_args " --debug"
case $host in case $host in
*cygwin* | *mingw* | *pw32* | *cegcc*) *cygwin* | *mingw* | *pw32* | *cegcc*)
# don't eliminate duplications in $postdeps and $predeps # don't eliminate duplications in $postdeps and $predeps
opt_duplicate_compiler_generated_deps=: opt_duplicate_compiler_generated_deps=:
;; ;;
*) *)
opt_duplicate_compiler_generated_deps=$opt_duplicate_deps opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps
;; ;;
esac esac
# Having warned about all mis-specified options, bail out if $opt_help || {
# anything was wrong. # Sanity checks first:
$exit_cmd $EXIT_FAILURE func_check_version_match
}
# func_check_version_match if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes;
# Ensure that we are using m4 macros, and libtool script from the same then
# release of libtool. func_fatal_configuration "not configured to build any kind of library
func_check_version_match () "
{
if test "$package_revision" != "$macro_revision"; then
if test "$VERSION" != "$macro_version"; then
if test -z "$macro_version"; then
cat >&2 <<_LT_EOF
$progname: Version mismatch error. This is $PACKAGE $VERSION, but the
$progname: definition of this LT_INIT comes from an older release.
$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSIO
N
$progname: and run autoconf again.
_LT_EOF
else
cat >&2 <<_LT_EOF
$progname: Version mismatch error. This is $PACKAGE $VERSION, but the
$progname: definition of this LT_INIT comes from $PACKAGE $macro_version.
$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSIO
N
$progname: and run autoconf again.
_LT_EOF
fi
else
cat >&2 <<_LT_EOF
$progname: Version mismatch error. This is $PACKAGE $VERSION, revision $pa
ckage_revision,
$progname: but the definition of this LT_INIT comes from revision $macro_re
vision.
$progname: You should recreate aclocal.m4 with macros from revision $packag
e_revision
$progname: of $PACKAGE $VERSION and run autoconf again.
_LT_EOF
fi fi
exit $EXIT_MISMATCH # Darwin sucks
fi eval std_shrext=\"$shrext_cmds\"
# Only execute mode is allowed to have -dlopen flags.
if test -n "$opt_dlopen" && test "$opt_mode" != execute; then
func_error "unrecognized option \`-dlopen'"
$ECHO "$help" 1>&2
exit $EXIT_FAILURE
fi
# Change the help message to a mode-specific one.
generic_help="$help"
help="Try \`$progname --help --mode=$opt_mode' for more information."
}
# Bail if the options were screwed
$exit_cmd $EXIT_FAILURE
} }
## ----------- ## ## ----------- ##
## Main. ## ## Main. ##
## ----------- ## ## ----------- ##
$opt_help || {
# Sanity checks first:
func_check_version_match
if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; th
en
func_fatal_configuration "not configured to build any kind of library"
fi
test -z "$mode" && func_fatal_error "error: you must specify a MODE."
# Darwin sucks
eval std_shrext=\"$shrext_cmds\"
# Only execute mode is allowed to have -dlopen flags.
if test -n "$execute_dlfiles" && test "$mode" != execute; then
func_error "unrecognized option \`-dlopen'"
$ECHO "$help" 1>&2
exit $EXIT_FAILURE
fi
# Change the help message to a mode-specific one.
generic_help="$help"
help="Try \`$progname --help --mode=$mode' for more information."
}
# func_lalib_p file # func_lalib_p file
# True iff FILE is a libtool `.la' library or `.lo' object file. # True iff FILE is a libtool `.la' library or `.lo' object file.
# This function is only a basic sanity check; it will hardly flush out # This function is only a basic sanity check; it will hardly flush out
# determined imposters. # determined imposters.
func_lalib_p () func_lalib_p ()
{ {
test -f "$1" && test -f "$1" &&
$SED -e 4q "$1" 2>/dev/null \ $SED -e 4q "$1" 2>/dev/null \
| $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1 | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1
} }
skipping to change at line 1091 skipping to change at line 1254
esac esac
$GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1 $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1
} }
# func_ltwrapper_scriptname file # func_ltwrapper_scriptname file
# Assumes file is an ltwrapper_executable # Assumes file is an ltwrapper_executable
# uses $file to determine the appropriate filename for a # uses $file to determine the appropriate filename for a
# temporary ltwrapper_script. # temporary ltwrapper_script.
func_ltwrapper_scriptname () func_ltwrapper_scriptname ()
{ {
func_ltwrapper_scriptname_result="" func_dirname_and_basename "$1" "" "."
if func_ltwrapper_executable_p "$1"; then func_stripname '' '.exe' "$func_basename_result"
func_dirname_and_basename "$1" "" "." func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_s
func_stripname '' '.exe' "$func_basename_result" tripname_result}_ltshwrapper"
func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${fun
c_stripname_result}_ltshwrapper"
fi
} }
# func_ltwrapper_p file # func_ltwrapper_p file
# True iff FILE is a libtool wrapper script or wrapper executable # True iff FILE is a libtool wrapper script or wrapper executable
# This function is only a basic sanity check; it will hardly flush out # This function is only a basic sanity check; it will hardly flush out
# determined imposters. # determined imposters.
func_ltwrapper_p () func_ltwrapper_p ()
{ {
func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1" func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1"
} }
skipping to change at line 1139 skipping to change at line 1299
# `FILE.' does not work on cygwin managed mounts. # `FILE.' does not work on cygwin managed mounts.
func_source () func_source ()
{ {
$opt_debug $opt_debug
case $1 in case $1 in
*/* | *\\*) . "$1" ;; */* | *\\*) . "$1" ;;
*) . "./$1" ;; *) . "./$1" ;;
esac esac
} }
# func_resolve_sysroot PATH
# Replace a leading = in PATH with a sysroot. Store the result into
# func_resolve_sysroot_result
func_resolve_sysroot ()
{
func_resolve_sysroot_result=$1
case $func_resolve_sysroot_result in
=*)
func_stripname '=' '' "$func_resolve_sysroot_result"
func_resolve_sysroot_result=$lt_sysroot$func_stripname_result
;;
esac
}
# func_replace_sysroot PATH
# If PATH begins with the sysroot, replace it with = and
# store the result into func_replace_sysroot_result.
func_replace_sysroot ()
{
case "$lt_sysroot:$1" in
?*:"$lt_sysroot"*)
func_stripname "$lt_sysroot" '' "$1"
func_replace_sysroot_result="=$func_stripname_result"
;;
*)
# Including no sysroot.
func_replace_sysroot_result=$1
;;
esac
}
# func_infer_tag arg # func_infer_tag arg
# Infer tagged configuration to use if any are available and # Infer tagged configuration to use if any are available and
# if one wasn't chosen via the "--tag" command line option. # if one wasn't chosen via the "--tag" command line option.
# Only attempt this if the compiler in the base compile # Only attempt this if the compiler in the base compile
# command doesn't match the default compiler. # command doesn't match the default compiler.
# arg is usually of the form 'gcc ...' # arg is usually of the form 'gcc ...'
func_infer_tag () func_infer_tag ()
{ {
$opt_debug $opt_debug
if test -n "$available_tags" && test -z "$tagname"; then if test -n "$available_tags" && test -z "$tagname"; then
CC_quoted= CC_quoted=
for arg in $CC; do for arg in $CC; do
func_quote_for_eval "$arg" func_append_quoted CC_quoted "$arg"
CC_quoted="$CC_quoted $func_quote_for_eval_result"
done done
CC_expanded=`func_echo_all $CC` CC_expanded=`func_echo_all $CC`
CC_quoted_expanded=`func_echo_all $CC_quoted` CC_quoted_expanded=`func_echo_all $CC_quoted`
case $@ in case $@ in
# Blanks in the command may have been stripped by the calling shell, # Blanks in the command may have been stripped by the calling shell,
# but not from the CC environment variable when configure was run. # but not from the CC environment variable when configure was run.
" $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \
" $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quo ted_expanded "*) ;; " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quo ted_expanded "*) ;;
# Blanks at the start of $base_compile will cause this to fail # Blanks at the start of $base_compile will cause this to fail
# if we don't check for them as well. # if we don't check for them as well.
*) *)
for z in $available_tags; do for z in $available_tags; do
if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /d ev/null; then if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /d ev/null; then
# Evaluate the configuration. # Evaluate the configuration.
eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^ # ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^ # ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"
CC_quoted= CC_quoted=
for arg in $CC; do for arg in $CC; do
# Double-quote args containing other shell metacharacters. # Double-quote args containing other shell metacharacters.
func_quote_for_eval "$arg" func_append_quoted CC_quoted "$arg"
CC_quoted="$CC_quoted $func_quote_for_eval_result"
done done
CC_expanded=`func_echo_all $CC` CC_expanded=`func_echo_all $CC`
CC_quoted_expanded=`func_echo_all $CC_quoted` CC_quoted_expanded=`func_echo_all $CC_quoted`
case "$@ " in case "$@ " in
" $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \
" $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$C C_quoted_expanded "*) " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$C C_quoted_expanded "*)
# The compiler in the base compile command matches # The compiler in the base compile command matches
# the one in the tagged configuration. # the one in the tagged configuration.
# Assume this is the tagged configuration we want. # Assume this is the tagged configuration we want.
tagname=$z tagname=$z
skipping to change at line 1202 skipping to change at line 1391
func_echo "unable to infer tagged configuration" func_echo "unable to infer tagged configuration"
func_fatal_error "specify a tag with \`--tag'" func_fatal_error "specify a tag with \`--tag'"
# else # else
# func_verbose "using $tagname tagged configuration" # func_verbose "using $tagname tagged configuration"
fi fi
;; ;;
esac esac
fi fi
} }
# func_write_libtool_object output_name pic_name nonpic_name # func_write_libtool_object output_name pic_name nonpic_name
# Create a libtool object file (analogous to a ".la" file), # Create a libtool object file (analogous to a ".la" file),
# but don't create it if we're doing a dry run. # but don't create it if we're doing a dry run.
func_write_libtool_object () func_write_libtool_object ()
{
write_libobj=${1}
if test "$build_libtool_libs" = yes; then
write_lobj=\'${2}\'
else
write_lobj=none
fi
if test "$build_old_libs" = yes; then
write_oldobj=\'${3}\'
else
write_oldobj=none
fi
$opt_dry_run || {
cat >${write_libobj}T <<EOF
# $write_libobj - a libtool object file
# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
#
# Please DO NOT delete this file!
# It is necessary for linking the library.
# Name of the PIC object.
pic_object=$write_lobj
# Name of the non-PIC object
non_pic_object=$write_oldobj
EOF
$MV "${write_libobj}T" "${write_libobj}"
}
}
##################################################
# FILE NAME AND PATH CONVERSION HELPER FUNCTIONS #
##################################################
# func_convert_core_file_wine_to_w32 ARG
# Helper function used by file name conversion functions when $build is *ni
x,
# and $host is mingw, cygwin, or some other w32 environment. Relies on a
# correctly configured wine environment available, with the winepath progra
m
# in $build's $PATH.
#
# ARG is the $build file name to be converted to w32 format.
# Result is available in $func_convert_core_file_wine_to_w32_result, and wi
ll
# be empty on error (or when ARG is empty)
func_convert_core_file_wine_to_w32 ()
{
$opt_debug
func_convert_core_file_wine_to_w32_result="$1"
if test -n "$1"; then
# Unfortunately, winepath does not exit with a non-zero error code, so
we
# are forced to check the contents of stdout. On the other hand, if the
# command is not found, the shell will set an exit code of 127 and prin
t
# *an error message* to stdout. So we must check for both error code of
# zero AND non-empty stdout, which explains the odd construction:
func_convert_core_file_wine_to_w32_tmp=`winepath -w "$1" 2>/dev/null`
if test "$?" -eq 0 && test -n "${func_convert_core_file_wine_to_w32_tmp
}"; then
func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_
file_wine_to_w32_tmp" |
$SED -e "$lt_sed_naive_backslashify"`
else
func_convert_core_file_wine_to_w32_result=
fi
fi
}
# end: func_convert_core_file_wine_to_w32
# func_convert_core_path_wine_to_w32 ARG
# Helper function used by path conversion functions when $build is *nix, an
d
# $host is mingw, cygwin, or some other w32 environment. Relies on a correc
tly
# configured wine environment available, with the winepath program in $buil
d's
# $PATH. Assumes ARG has no leading or trailing path separator characters.
#
# ARG is path to be converted from $build format to win32.
# Result is available in $func_convert_core_path_wine_to_w32_result.
# Unconvertible file (directory) names in ARG are skipped; if no directory
names
# are convertible, then the result may be empty.
func_convert_core_path_wine_to_w32 ()
{
$opt_debug
# unfortunately, winepath doesn't convert paths, only file names
func_convert_core_path_wine_to_w32_result=""
if test -n "$1"; then
oldIFS=$IFS
IFS=:
for func_convert_core_path_wine_to_w32_f in $1; do
IFS=$oldIFS
func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w
32_f"
if test -n "$func_convert_core_file_wine_to_w32_result" ; then
if test -z "$func_convert_core_path_wine_to_w32_result"; then
func_convert_core_path_wine_to_w32_result="$func_convert_core_fil
e_wine_to_w32_result"
else
func_append func_convert_core_path_wine_to_w32_result ";$func_con
vert_core_file_wine_to_w32_result"
fi
fi
done
IFS=$oldIFS
fi
}
# end: func_convert_core_path_wine_to_w32
# func_cygpath ARGS...
# Wrapper around calling the cygpath program via LT_CYGPATH. This is used w
hen
# when (1) $build is *nix and Cygwin is hosted via a wine environment; or (
2)
# $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1)
or
# (2), returns the Cygwin file name or path in func_cygpath_result (input
# file name or path is assumed to be in w32 format, as previously converted
# from $build's *nix or MSYS format). In case (3), returns the w32 file nam
e
# or path in func_cygpath_result (input file name or path is assumed to be
in
# Cygwin format). Returns an empty string on error.
#
# ARGS are passed to cygpath, with the last one being the file name or path
to
# be converted.
#
# Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH
# environment variable; do not put it in $PATH.
func_cygpath ()
{
$opt_debug
if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then
func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null`
if test "$?" -ne 0; then
# on failure, ensure result is empty
func_cygpath_result=
fi
else
func_cygpath_result=
func_error "LT_CYGPATH is empty or specifies non-existent file: \`$LT_C
YGPATH'"
fi
}
#end: func_cygpath
# func_convert_core_msys_to_w32 ARG
# Convert file name or path ARG from MSYS format to w32 format. Return
# result in func_convert_core_msys_to_w32_result.
func_convert_core_msys_to_w32 ()
{
$opt_debug
# awkward: cmd appends spaces to result
func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null |
$SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"`
}
#end: func_convert_core_msys_to_w32
# func_convert_file_check ARG1 ARG2
# Verify that ARG1 (a file name in $build format) was converted to $host
# format in ARG2. Otherwise, emit an error message, but continue (resetting
# func_to_host_file_result to ARG1).
func_convert_file_check ()
{
$opt_debug
if test -z "$2" && test -n "$1" ; then
func_error "Could not determine host file name corresponding to"
func_error " \`$1'"
func_error "Continuing, but uninstalled executables may not work."
# Fallback:
func_to_host_file_result="$1"
fi
}
# end func_convert_file_check
# func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH
# Verify that FROM_PATH (a path in $build format) was converted to $host
# format in TO_PATH. Otherwise, emit an error message, but continue, resett
ing
# func_to_host_file_result to a simplistic fallback value (see below).
func_convert_path_check ()
{
$opt_debug
if test -z "$4" && test -n "$3"; then
func_error "Could not determine the host path corresponding to"
func_error " \`$3'"
func_error "Continuing, but uninstalled executables may not work."
# Fallback. This is a deliberately simplistic "conversion" and
# should not be "improved". See libtool.info.
if test "x$1" != "x$2"; then
lt_replace_pathsep_chars="s|$1|$2|g"
func_to_host_path_result=`echo "$3" |
$SED -e "$lt_replace_pathsep_chars"`
else
func_to_host_path_result="$3"
fi
fi
}
# end func_convert_path_check
# func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG
# Modifies func_to_host_path_result by prepending REPL if ORIG matches FRON
TPAT
# and appending REPL if ORIG matches BACKPAT.
func_convert_path_front_back_pathsep ()
{
$opt_debug
case $4 in
$1 ) func_to_host_path_result="$3$func_to_host_path_result"
;;
esac
case $4 in
$2 ) func_append func_to_host_path_result "$3"
;;
esac
}
# end func_convert_path_front_back_pathsep
##################################################
# $build to $host FILE NAME CONVERSION FUNCTIONS #
##################################################
# invoked via `$to_host_file_cmd ARG'
#
# In each case, ARG is the path to be converted from $build to $host format
.
# Result will be available in $func_to_host_file_result.
# func_to_host_file ARG
# Converts the file name ARG from $build format to $host format. Return res
ult
# in func_to_host_file_result.
func_to_host_file ()
{
$opt_debug
$to_host_file_cmd "$1"
}
# end func_to_host_file
# func_to_tool_file ARG LAZY
# converts the file name ARG from $build format to toolchain format. Return
# result in func_to_tool_file_result. If the conversion in use is listed
# in (the comma separated) LAZY, no conversion takes place.
func_to_tool_file ()
{
$opt_debug
case ,$2, in
*,"$to_tool_file_cmd",*)
func_to_tool_file_result=$1
;;
*)
$to_tool_file_cmd "$1"
func_to_tool_file_result=$func_to_host_file_result
;;
esac
}
# end func_to_tool_file
# func_convert_file_noop ARG
# Copy ARG to func_to_host_file_result.
func_convert_file_noop ()
{
func_to_host_file_result="$1"
}
# end func_convert_file_noop
# func_convert_file_msys_to_w32 ARG
# Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic
# conversion to w32 is not available inside the cwrapper. Returns result i
n
# func_to_host_file_result.
func_convert_file_msys_to_w32 ()
{
$opt_debug
func_to_host_file_result="$1"
if test -n "$1"; then
func_convert_core_msys_to_w32 "$1"
func_to_host_file_result="$func_convert_core_msys_to_w32_result"
fi
func_convert_file_check "$1" "$func_to_host_file_result"
}
# end func_convert_file_msys_to_w32
# func_convert_file_cygwin_to_w32 ARG
# Convert file name ARG from Cygwin to w32 format. Returns result in
# func_to_host_file_result.
func_convert_file_cygwin_to_w32 ()
{
$opt_debug
func_to_host_file_result="$1"
if test -n "$1"; then
# because $build is cygwin, we call "the" cygpath in $PATH; no need to
use
# LT_CYGPATH in this case.
func_to_host_file_result=`cygpath -m "$1"`
fi
func_convert_file_check "$1" "$func_to_host_file_result"
}
# end func_convert_file_cygwin_to_w32
# func_convert_file_nix_to_w32 ARG
# Convert file name ARG from *nix to w32 format. Requires a wine environme
nt
# and a working winepath. Returns result in func_to_host_file_result.
func_convert_file_nix_to_w32 ()
{
$opt_debug
func_to_host_file_result="$1"
if test -n "$1"; then
func_convert_core_file_wine_to_w32 "$1"
func_to_host_file_result="$func_convert_core_file_wine_to_w32_result"
fi
func_convert_file_check "$1" "$func_to_host_file_result"
}
# end func_convert_file_nix_to_w32
# func_convert_file_msys_to_cygwin ARG
# Convert file name ARG from MSYS to Cygwin format. Requires LT_CYGPATH se
t.
# Returns result in func_to_host_file_result.
func_convert_file_msys_to_cygwin ()
{
$opt_debug
func_to_host_file_result="$1"
if test -n "$1"; then
func_convert_core_msys_to_w32 "$1"
func_cygpath -u "$func_convert_core_msys_to_w32_result"
func_to_host_file_result="$func_cygpath_result"
fi
func_convert_file_check "$1" "$func_to_host_file_result"
}
# end func_convert_file_msys_to_cygwin
# func_convert_file_nix_to_cygwin ARG
# Convert file name ARG from *nix to Cygwin format. Requires Cygwin instal
led
# in a wine environment, working winepath, and LT_CYGPATH set. Returns res
ult
# in func_to_host_file_result.
func_convert_file_nix_to_cygwin ()
{
$opt_debug
func_to_host_file_result="$1"
if test -n "$1"; then
# convert from *nix to w32, then use cygpath to convert from w32 to cyg
win.
func_convert_core_file_wine_to_w32 "$1"
func_cygpath -u "$func_convert_core_file_wine_to_w32_result"
func_to_host_file_result="$func_cygpath_result"
fi
func_convert_file_check "$1" "$func_to_host_file_result"
}
# end func_convert_file_nix_to_cygwin
#############################################
# $build to $host PATH CONVERSION FUNCTIONS #
#############################################
# invoked via `$to_host_path_cmd ARG'
#
# In each case, ARG is the path to be converted from $build to $host format
.
# The result will be available in $func_to_host_path_result.
#
# Path separators are also converted from $build format to $host format. I
f
# ARG begins or ends with a path separator character, it is preserved (but
# converted to $host format) on output.
#
# All path conversion functions are named using the following convention:
# file name conversion function : func_convert_file_X_to_Y ()
# path conversion function : func_convert_path_X_to_Y ()
# where, for any given $build/$host combination the 'X_to_Y' value is the
# same. If conversion functions are added for new $build/$host combination
s,
# the two new functions must follow this pattern, or func_init_to_host_path
_cmd
# will break.
# func_init_to_host_path_cmd
# Ensures that function "pointer" variable $to_host_path_cmd is set to the
# appropriate value, based on the value of $to_host_file_cmd.
to_host_path_cmd=
func_init_to_host_path_cmd ()
{
$opt_debug
if test -z "$to_host_path_cmd"; then
func_stripname 'func_convert_file_' '' "$to_host_file_cmd"
to_host_path_cmd="func_convert_path_${func_stripname_result}"
fi
}
# func_to_host_path ARG
# Converts the path ARG from $build format to $host format. Return result
# in func_to_host_path_result.
func_to_host_path ()
{ {
write_libobj=${1} $opt_debug
if test "$build_libtool_libs" = yes; then func_init_to_host_path_cmd
write_lobj=\'${2}\' $to_host_path_cmd "$1"
else }
write_lobj=none # end func_to_host_path
fi
if test "$build_old_libs" = yes; then # func_convert_path_noop ARG
write_oldobj=\'${3}\' # Copy ARG to func_to_host_path_result.
else func_convert_path_noop ()
write_oldobj=none {
fi func_to_host_path_result="$1"
}
# end func_convert_path_noop
$opt_dry_run || { # func_convert_path_msys_to_w32 ARG
cat >${write_libobj}T <<EOF # Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic
# $write_libobj - a libtool object file # conversion to w32 is not available inside the cwrapper. Returns result i
# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION n
# # func_to_host_path_result.
# Please DO NOT delete this file! func_convert_path_msys_to_w32 ()
# It is necessary for linking the library. {
$opt_debug
func_to_host_path_result="$1"
if test -n "$1"; then
# Remove leading and trailing path separator characters from ARG. MSYS
# behavior is inconsistent here; cygpath turns them into '.;' and ';.';
# and winepath ignores them completely.
func_stripname : : "$1"
func_to_host_path_tmp1=$func_stripname_result
func_convert_core_msys_to_w32 "$func_to_host_path_tmp1"
func_to_host_path_result="$func_convert_core_msys_to_w32_result"
func_convert_path_check : ";" \
"$func_to_host_path_tmp1" "$func_to_host_path_result"
func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
fi
}
# end func_convert_path_msys_to_w32
# Name of the PIC object. # func_convert_path_cygwin_to_w32 ARG
pic_object=$write_lobj # Convert path ARG from Cygwin to w32 format. Returns result in
# func_to_host_file_result.
func_convert_path_cygwin_to_w32 ()
{
$opt_debug
func_to_host_path_result="$1"
if test -n "$1"; then
# See func_convert_path_msys_to_w32:
func_stripname : : "$1"
func_to_host_path_tmp1=$func_stripname_result
func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"`
func_convert_path_check : ";" \
"$func_to_host_path_tmp1" "$func_to_host_path_result"
func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
fi
}
# end func_convert_path_cygwin_to_w32
# Name of the non-PIC object # func_convert_path_nix_to_w32 ARG
non_pic_object=$write_oldobj # Convert path ARG from *nix to w32 format. Requires a wine environment an
d
# a working winepath. Returns result in func_to_host_file_result.
func_convert_path_nix_to_w32 ()
{
$opt_debug
func_to_host_path_result="$1"
if test -n "$1"; then
# See func_convert_path_msys_to_w32:
func_stripname : : "$1"
func_to_host_path_tmp1=$func_stripname_result
func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1"
func_to_host_path_result="$func_convert_core_path_wine_to_w32_result"
func_convert_path_check : ";" \
"$func_to_host_path_tmp1" "$func_to_host_path_result"
func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
fi
}
# end func_convert_path_nix_to_w32
EOF # func_convert_path_msys_to_cygwin ARG
$MV "${write_libobj}T" "${write_libobj}" # Convert path ARG from MSYS to Cygwin format. Requires LT_CYGPATH set.
} # Returns result in func_to_host_file_result.
func_convert_path_msys_to_cygwin ()
{
$opt_debug
func_to_host_path_result="$1"
if test -n "$1"; then
# See func_convert_path_msys_to_w32:
func_stripname : : "$1"
func_to_host_path_tmp1=$func_stripname_result
func_convert_core_msys_to_w32 "$func_to_host_path_tmp1"
func_cygpath -u -p "$func_convert_core_msys_to_w32_result"
func_to_host_path_result="$func_cygpath_result"
func_convert_path_check : : \
"$func_to_host_path_tmp1" "$func_to_host_path_result"
func_convert_path_front_back_pathsep ":*" "*:" : "$1"
fi
}
# end func_convert_path_msys_to_cygwin
# func_convert_path_nix_to_cygwin ARG
# Convert path ARG from *nix to Cygwin format. Requires Cygwin installed i
n a
# a wine environment, working winepath, and LT_CYGPATH set. Returns result
in
# func_to_host_file_result.
func_convert_path_nix_to_cygwin ()
{
$opt_debug
func_to_host_path_result="$1"
if test -n "$1"; then
# Remove leading and trailing path separator characters from
# ARG. msys behavior is inconsistent here, cygpath turns them
# into '.;' and ';.', and winepath ignores them completely.
func_stripname : : "$1"
func_to_host_path_tmp1=$func_stripname_result
func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1"
func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result"
func_to_host_path_result="$func_cygpath_result"
func_convert_path_check : : \
"$func_to_host_path_tmp1" "$func_to_host_path_result"
func_convert_path_front_back_pathsep ":*" "*:" : "$1"
fi
} }
# end func_convert_path_nix_to_cygwin
# func_mode_compile arg... # func_mode_compile arg...
func_mode_compile () func_mode_compile ()
{ {
$opt_debug $opt_debug
# 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" srcfile="$nonopt" # always keep a non-empty value in "srcfile"
suppress_opt=yes suppress_opt=yes
suppress_output= suppress_output=
skipping to change at line 1279 skipping to change at line 1922
# Accept any command-line options. # Accept any command-line options.
case $arg in case $arg in
-o) -o)
test -n "$libobj" && \ test -n "$libobj" && \
func_fatal_error "you cannot specify \`-o' more than once" func_fatal_error "you cannot specify \`-o' more than once"
arg_mode=target arg_mode=target
continue continue
;; ;;
-pie | -fpie | -fPIE) -pie | -fpie | -fPIE)
pie_flag="$pie_flag $arg" func_append pie_flag " $arg"
continue continue
;; ;;
-shared | -static | -prefer-pic | -prefer-non-pic) -shared | -static | -prefer-pic | -prefer-non-pic)
later="$later $arg" func_append later " $arg"
continue continue
;; ;;
-no-suppress) -no-suppress)
suppress_opt=no suppress_opt=no
continue continue
;; ;;
-Xcompiler) -Xcompiler)
arg_mode=arg # the next one goes into the "base_compile" arg lis t arg_mode=arg # the next one goes into the "base_compile" arg lis t
continue # The current "srcfile" will either be retained or continue # The current "srcfile" will either be retained or
;; # replaced later. I would guess that would be a bu g. ;; # replaced later. I would guess that would be a bu g.
-Wc,*) -Wc,*)
func_stripname '-Wc,' '' "$arg" func_stripname '-Wc,' '' "$arg"
args=$func_stripname_result args=$func_stripname_result
lastarg= lastarg=
save_ifs="$IFS"; IFS=',' save_ifs="$IFS"; IFS=','
for arg in $args; do for arg in $args; do
IFS="$save_ifs" IFS="$save_ifs"
func_quote_for_eval "$arg" func_append_quoted lastarg "$arg"
lastarg="$lastarg $func_quote_for_eval_result"
done done
IFS="$save_ifs" IFS="$save_ifs"
func_stripname ' ' '' "$lastarg" func_stripname ' ' '' "$lastarg"
lastarg=$func_stripname_result lastarg=$func_stripname_result
# Add the arguments to base_compile. # Add the arguments to base_compile.
base_compile="$base_compile $lastarg" func_append base_compile " $lastarg"
continue continue
;; ;;
*) *)
# Accept the current argument as the source file. # Accept the current argument as the source file.
# The previous "srcfile" becomes the current argument. # The previous "srcfile" becomes the current argument.
# #
lastarg="$srcfile" lastarg="$srcfile"
srcfile="$arg" srcfile="$arg"
;; ;;
esac # case $arg esac # case $arg
;; ;;
esac # case $arg_mode esac # case $arg_mode
# Aesthetically quote the previous argument. # Aesthetically quote the previous argument.
func_quote_for_eval "$lastarg" func_append_quoted base_compile "$lastarg"
base_compile="$base_compile $func_quote_for_eval_result"
done # for arg done # for arg
case $arg_mode in case $arg_mode in
arg) arg)
func_fatal_error "you must specify an argument for -Xcompile" func_fatal_error "you must specify an argument for -Xcompile"
;; ;;
target) target)
func_fatal_error "you must specify a target with \`-o'" func_fatal_error "you must specify a target with \`-o'"
;; ;;
*) *)
skipping to change at line 1461 skipping to change at line 2102
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."
$opt_dry_run || $RM $removelist $opt_dry_run || $RM $removelist
exit $EXIT_FAILURE exit $EXIT_FAILURE
fi fi
removelist="$removelist $output_obj" func_append removelist " $output_obj"
$ECHO "$srcfile" > "$lockfile" $ECHO "$srcfile" > "$lockfile"
fi fi
$opt_dry_run || $RM $removelist $opt_dry_run || $RM $removelist
removelist="$removelist $lockfile" func_append removelist " $lockfile"
trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15
if test -n "$fix_srcfile_path"; then func_to_tool_file "$srcfile" func_convert_file_msys_to_w32
eval srcfile=\"$fix_srcfile_path\" srcfile=$func_to_tool_file_result
fi
func_quote_for_eval "$srcfile" func_quote_for_eval "$srcfile"
qsrcfile=$func_quote_for_eval_result qsrcfile=$func_quote_for_eval_result
# 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" command="$base_compile $qsrcfile $pic_flag"
else else
# Don't build PIC code # Don't build PIC code
command="$base_compile $qsrcfile" command="$base_compile $qsrcfile"
fi fi
func_mkdir_p "$xdir$objdir" func_mkdir_p "$xdir$objdir"
if test -z "$output_obj"; then if test -z "$output_obj"; then
# Place PIC objects in $objdir # Place PIC objects in $objdir
command="$command -o $lobj" func_append command " -o $lobj"
fi fi
func_show_eval_locale "$command" \ func_show_eval_locale "$command" \
'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE' 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE'
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`
skipping to change at line 1538 skipping to change at line 2178
# 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$pie_flag" command="$base_compile $qsrcfile$pie_flag"
else else
command="$base_compile $qsrcfile $pic_flag" command="$base_compile $qsrcfile $pic_flag"
fi fi
if test "$compiler_c_o" = yes; then if test "$compiler_c_o" = yes; then
command="$command -o $obj" func_append command " -o $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" func_append command "$suppress_output"
func_show_eval_locale "$command" \ func_show_eval_locale "$command" \
'$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE'
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:
skipping to change at line 1587 skipping to change at line 2227
if test "$need_locks" != no; then if test "$need_locks" != no; then
removelist=$lockfile removelist=$lockfile
$RM "$lockfile" $RM "$lockfile"
fi fi
} }
exit $EXIT_SUCCESS exit $EXIT_SUCCESS
} }
$opt_help || { $opt_help || {
test "$mode" = compile && func_mode_compile ${1+"$@"} test "$opt_mode" = compile && func_mode_compile ${1+"$@"}
} }
func_mode_help () func_mode_help ()
{ {
# We need to display help for each of the modes. # We need to display help for each of the modes.
case $mode in case $opt_mode in
"") "")
# Generic help is extracted from the usage comments # Generic help is extracted from the usage comments
# at the start of this file. # at the start of this file.
func_help func_help
;; ;;
clean) clean)
$ECHO \ $ECHO \
"Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE... "Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
skipping to change at line 1769 skipping to change at line 2409
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
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."
;; ;;
*) *)
func_fatal_help "invalid operation mode \`$mode'" func_fatal_help "invalid operation mode \`$opt_mode'"
;; ;;
esac esac
echo echo
$ECHO "Try \`$progname --help' for more information about other modes." $ECHO "Try \`$progname --help' for more information about other modes."
} }
# Now that we've collected a possible --mode arg, show help if necessary # Now that we've collected a possible --mode arg, show help if necessary
if $opt_help; then if $opt_help; then
if test "$opt_help" = :; then if test "$opt_help" = :; then
func_mode_help func_mode_help
else else
{ {
func_help noexit func_help noexit
for mode in compile link execute install finish uninstall clean; do for opt_mode in compile link execute install finish uninstall clean; do
func_mode_help func_mode_help
done done
} | sed -n '1p; 2,$s/^Usage:/ or: /p' } | sed -n '1p; 2,$s/^Usage:/ or: /p'
{ {
func_help noexit func_help noexit
for mode in compile link execute install finish uninstall clean; do for opt_mode in compile link execute install finish uninstall clean; do
echo echo
func_mode_help func_mode_help
done done
} | } |
sed '1d sed '1d
/^When reporting/,/^Report/{ /^When reporting/,/^Report/{
H H
d d
} }
$x $x
skipping to change at line 1818 skipping to change at line 2458
# func_mode_execute arg... # func_mode_execute arg...
func_mode_execute () func_mode_execute ()
{ {
$opt_debug $opt_debug
# The first argument is the command name. # The first argument is the command name.
cmd="$nonopt" cmd="$nonopt"
test -z "$cmd" && \ test -z "$cmd" && \
func_fatal_help "you must specify a COMMAND" func_fatal_help "you must specify a COMMAND"
# Handle -dlopen flags immediately. # Handle -dlopen flags immediately.
for file in $execute_dlfiles; do for file in $opt_dlopen; do
test -f "$file" \ test -f "$file" \
|| func_fatal_help "\`$file' is not a file" || func_fatal_help "\`$file' is not a file"
dir= dir=
case $file in case $file in
*.la) *.la)
func_resolve_sysroot "$file"
file=$func_resolve_sysroot_result
# Check to see that this really is a libtool archive. # Check to see that this really is a libtool archive.
func_lalib_unsafe_p "$file" \ func_lalib_unsafe_p "$file" \
|| func_fatal_help "\`$lib' is not a valid libtool archive" || func_fatal_help "\`$lib' is not a valid libtool archive"
# Read the libtool library. # Read the libtool library.
dlname= dlname=
library_names= library_names=
func_source "$file" func_source "$file"
# Skip this library if it cannot be dlopened. # Skip this library if it cannot be dlopened.
skipping to change at line 1846 skipping to change at line 2489
# Warn if it was a shared library. # Warn if it was a shared library.
test -n "$library_names" && \ test -n "$library_names" && \
func_warning "\`$file' was not linked with \`-export-dynamic'" func_warning "\`$file' was not linked with \`-export-dynamic'"
continue continue
fi fi
func_dirname "$file" "" "." func_dirname "$file" "" "."
dir="$func_dirname_result" dir="$func_dirname_result"
if test -f "$dir/$objdir/$dlname"; then if test -f "$dir/$objdir/$dlname"; then
dir="$dir/$objdir" func_append dir "/$objdir"
else else
if test ! -f "$dir/$dlname"; then if test ! -f "$dir/$dlname"; then
func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$o bjdir'" func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$o bjdir'"
fi fi
fi fi
;; ;;
*.lo) *.lo)
# Just add the directory containing the .lo file. # Just add the directory containing the .lo file.
func_dirname "$file" "" "." func_dirname "$file" "" "."
skipping to change at line 1903 skipping to change at line 2546
file="$progdir/$program" file="$progdir/$program"
elif func_ltwrapper_executable_p "$file"; then elif func_ltwrapper_executable_p "$file"; then
func_ltwrapper_scriptname "$file" func_ltwrapper_scriptname "$file"
func_source "$func_ltwrapper_scriptname_result" func_source "$func_ltwrapper_scriptname_result"
# Transform arg to wrapped name. # Transform arg to wrapped name.
file="$progdir/$program" file="$progdir/$program"
fi fi
;; ;;
esac esac
# Quote arguments (to preserve shell metacharacters). # Quote arguments (to preserve shell metacharacters).
func_quote_for_eval "$file" func_append_quoted args "$file"
args="$args $func_quote_for_eval_result"
done done
if test "X$opt_dry_run" = Xfalse; then if test "X$opt_dry_run" = Xfalse; 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 environment variables
for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
skipping to change at line 1936 skipping to change at line 2578
# 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 $EXIT_SUCCESS
fi fi
} }
test "$mode" = execute && func_mode_execute ${1+"$@"} test "$opt_mode" = execute && func_mode_execute ${1+"$@"}
# func_mode_finish arg... # func_mode_finish arg...
func_mode_finish () func_mode_finish ()
{ {
$opt_debug $opt_debug
libdirs="$nonopt" libs=
libdirs=
admincmds= admincmds=
if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then for opt in "$nonopt" ${1+"$@"}
for dir do
do if test -d "$opt"; then
libdirs="$libdirs $dir" func_append libdirs " $opt"
done
elif test -f "$opt"; then
if func_lalib_unsafe_p "$opt"; then
func_append libs " $opt"
else
func_warning "\`$opt' is not a valid libtool archive"
fi
else
func_fatal_error "invalid argument \`$opt'"
fi
done
if test -n "$libs"; then
if test -n "$lt_sysroot"; then
sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"
`
sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;"
else
sysroot_cmd=
fi
# Remove sysroot references
if $opt_dry_run; then
for lib in $libs; do
echo "removing references to $lt_sysroot and \`=' prefixes from $
lib"
done
else
tmpdir=`func_mktempdir`
for lib in $libs; do
sed -e "${sysroot_cmd} s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $l
ib \
> $tmpdir/tmp-la
mv -f $tmpdir/tmp-la $lib
done
${RM}r "$tmpdir"
fi
fi
if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
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.
func_execute_cmds "$finish_cmds" 'admincmds="$admincmds func_execute_cmds "$finish_cmds" 'admincmds="$admincmds
'"$cmd"'"' '"$cmd"'"'
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\"
$opt_dry_run || eval "$cmds" || admincmds="$admincmds $opt_dry_run || eval "$cmds" || func_append admincmds "
$cmds" $cmds"
fi fi
done done
fi fi
# Exit here if they wanted silent mode. # Exit here if they wanted silent mode.
$opt_silent && exit $EXIT_SUCCESS $opt_silent && exit $EXIT_SUCCESS
echo "----------------------------------------------------------------- if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
-----" echo "---------------------------------------------------------------
echo "Libraries have been installed in:" -------"
for libdir in $libdirs; do echo "Libraries have been installed in:"
$ECHO " $libdir" for libdir in $libdirs; do
done $ECHO " $libdir"
echo done
echo "If you ever happen to want to link against installed libraries" echo
echo "in a given directory, LIBDIR, you must either use libtool, and" echo "If you ever happen to want to link against installed libraries"
echo "specify the full pathname of the library, or use the \`-LLIBDIR'" echo "in a given directory, LIBDIR, you must either use libtool, and"
echo "flag during linking and do at least one of the following:" echo "specify the full pathname of the library, or use the \`-LLIBDIR
if test -n "$shlibpath_var"; then '"
echo " - add LIBDIR to the \`$shlibpath_var' environment variable" echo "flag during linking and do at least one of the following:"
echo " during execution" if test -n "$shlibpath_var"; then
fi echo " - add LIBDIR to the \`$shlibpath_var' environment variable"
if test -n "$runpath_var"; then echo " during execution"
echo " - add LIBDIR to the \`$runpath_var' environment variable" fi
echo " during linking" if test -n "$runpath_var"; then
fi echo " - add LIBDIR to the \`$runpath_var' environment variable"
if test -n "$hardcode_libdir_flag_spec"; then echo " during linking"
libdir=LIBDIR fi
eval flag=\"$hardcode_libdir_flag_spec\" if test -n "$hardcode_libdir_flag_spec"; then
libdir=LIBDIR
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 $ECHO " - have your system administrator run these commands:$admin
mds" cmds"
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. echo " - have your system administrator add LIBDIR to \`/etc/ld.so
conf'" .conf'"
fi fi
echo echo
echo "See any operating system documentation about shared libraries for echo "See any operating system documentation about shared libraries f
" or"
case $host in case $host in
solaris2.[6789]|solaris2.1[0-9]) solaris2.[6789]|solaris2.1[0-9])
echo "more information, such as the ld(1), crle(1) and ld.so(8) man echo "more information, such as the ld(1), crle(1) and ld.so(8) ma
ual" nual"
echo "pages." echo "pages."
;; ;;
*) *)
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 page
." s."
;; ;;
esac esac
echo "----------------------------------------------------------------- echo "---------------------------------------------------------------
-----" -------"
fi
exit $EXIT_SUCCESS exit $EXIT_SUCCESS
} }
test "$mode" = finish && func_mode_finish ${1+"$@"} test "$opt_mode" = finish && func_mode_finish ${1+"$@"}
# func_mode_install arg... # func_mode_install arg...
func_mode_install () func_mode_install ()
{ {
$opt_debug $opt_debug
# 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.
case $nonopt in *shtool*) :;; *) false;; esac; then case $nonopt in *shtool*) :;; *) false;; esac; then
skipping to change at line 2039 skipping to change at line 2720
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.
func_quote_for_eval "$arg" func_quote_for_eval "$arg"
install_prog="$install_prog$func_quote_for_eval_result" func_append install_prog "$func_quote_for_eval_result"
install_shared_prog=$install_prog install_shared_prog=$install_prog
case " $install_prog " in case " $install_prog " in
*[\\\ /]cp\ *) install_cp=: ;; *[\\\ /]cp\ *) install_cp=: ;;
*) install_cp=false ;; *) install_cp=false ;;
esac esac
# 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=
no_mode=: no_mode=:
for arg for arg
do do
arg2= arg2=
if test -n "$dest"; then if test -n "$dest"; then
files="$files $dest" func_append files " $dest"
dest=$arg dest=$arg
continue continue
fi fi
case $arg in case $arg in
-d) isdir=yes ;; -d) isdir=yes ;;
-f) -f)
if $install_cp; then :; else if $install_cp; then :; else
prev=$arg prev=$arg
fi fi
skipping to change at line 2097 skipping to change at line 2778
prev= prev=
else else
dest=$arg dest=$arg
continue continue
fi fi
;; ;;
esac esac
# Aesthetically quote the argument. # Aesthetically quote the argument.
func_quote_for_eval "$arg" func_quote_for_eval "$arg"
install_prog="$install_prog $func_quote_for_eval_result" func_append install_prog " $func_quote_for_eval_result"
if test -n "$arg2"; then if test -n "$arg2"; then
func_quote_for_eval "$arg2" func_quote_for_eval "$arg2"
fi fi
install_shared_prog="$install_shared_prog $func_quote_for_eval_result " func_append install_shared_prog " $func_quote_for_eval_result"
done done
test -z "$install_prog" && \ test -z "$install_prog" && \
func_fatal_help "you must specify an install program" func_fatal_help "you must specify an install program"
test -n "$prev" && \ test -n "$prev" && \
func_fatal_help "the \`$prev' option requires an argument" func_fatal_help "the \`$prev' option requires an argument"
if test -n "$install_override_mode" && $no_mode; then if test -n "$install_override_mode" && $no_mode; then
if $install_cp; then :; else if $install_cp; then :; else
func_quote_for_eval "$install_override_mode" func_quote_for_eval "$install_override_mode"
install_shared_prog="$install_shared_prog -m $func_quote_for_eval_re sult" func_append install_shared_prog " -m $func_quote_for_eval_result"
fi fi
fi fi
if test -z "$files"; then if test -z "$files"; then
if test -z "$dest"; then if test -z "$dest"; then
func_fatal_help "no file or destination specified" func_fatal_help "no file or destination specified"
else else
func_fatal_help "you must specify a destination" func_fatal_help "you must specify a destination"
fi fi
fi fi
skipping to change at line 2171 skipping to change at line 2852
staticlibs= staticlibs=
future_libdirs= future_libdirs=
current_libdirs= current_libdirs=
for file in $files; do for file in $files; do
# 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" func_append staticlibs " $file"
;; ;;
*.la) *.la)
func_resolve_sysroot "$file"
file=$func_resolve_sysroot_result
# Check to see that this really is a libtool archive. # Check to see that this really is a libtool archive.
func_lalib_unsafe_p "$file" \ func_lalib_unsafe_p "$file" \
|| func_fatal_help "\`$file' is not a valid libtool archive" || func_fatal_help "\`$file' is not a valid libtool archive"
library_names= library_names=
old_library= old_library=
relink_command= relink_command=
func_source "$file" func_source "$file"
# Add the libdir to current_libdirs if it is the destination. # Add the libdir to current_libdirs if it is the destination.
if test "X$destdir" = "X$libdir"; then if test "X$destdir" = "X$libdir"; then
case "$current_libdirs " in case "$current_libdirs " in
*" $libdir "*) ;; *" $libdir "*) ;;
*) current_libdirs="$current_libdirs $libdir" ;; *) func_append current_libdirs " $libdir" ;;
esac esac
else else
# Note the libdir as a future libdir. # Note the libdir as a future libdir.
case "$future_libdirs " in case "$future_libdirs " in
*" $libdir "*) ;; *" $libdir "*) ;;
*) future_libdirs="$future_libdirs $libdir" ;; *) func_append future_libdirs " $libdir" ;;
esac esac
fi fi
func_dirname "$file" "/" "" func_dirname "$file" "/" ""
dir="$func_dirname_result" dir="$func_dirname_result"
dir="$dir$objdir" func_append 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 -e "s%$libdir\$%%"` inst_prefix_dir=`$ECHO "$destdir" | $SED -e "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 # At present, this check doesn't affect windows .dll's that
# are installed into $libdir/../bin (currently, that works fine) # are installed into $libdir/../bin (currently, that works fine)
skipping to change at line 2277 skipping to change at line 2961
func_execute_cmds "$postinstall_cmds" 'exit $?' func_execute_cmds "$postinstall_cmds" 'exit $?'
fi fi
# Install the pseudo-library for information purposes. # Install the pseudo-library for information purposes.
func_basename "$file" func_basename "$file"
name="$func_basename_result" name="$func_basename_result"
instname="$dir/$name"i instname="$dir/$name"i
func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' func_show_eval "$install_prog $instname $destdir/$name" 'exit $?'
# Maybe install the static library, too. # Maybe install the static library, too.
test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library" test -n "$old_library" && func_append staticlibs " $dir/$old_library "
;; ;;
*.lo) *.lo)
# Install (i.e. copy) a libtool object. # Install (i.e. copy) a libtool object.
# 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
func_basename "$file" func_basename "$file"
skipping to change at line 2474 skipping to change at line 3158
if test -n "$current_libdirs"; then if test -n "$current_libdirs"; then
# Maybe just do a dry run. # Maybe just do a dry run.
$opt_dry_run && current_libdirs=" -n$current_libdirs" $opt_dry_run && current_libdirs=" -n$current_libdirs"
exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs'
else else
exit $EXIT_SUCCESS exit $EXIT_SUCCESS
fi fi
} }
test "$mode" = install && func_mode_install ${1+"$@"} test "$opt_mode" = install && func_mode_install ${1+"$@"}
# func_generate_dlsyms outputname originator pic_p # func_generate_dlsyms outputname originator pic_p
# Extract symbols from dlprefiles and create ${outputname}S.o with # Extract symbols from dlprefiles and create ${outputname}S.o with
# a dlpreopen symbol table. # a dlpreopen symbol table.
func_generate_dlsyms () func_generate_dlsyms ()
{ {
$opt_debug $opt_debug
my_outputname="$1" my_outputname="$1"
my_originator="$2" my_originator="$2"
my_pic_p="${3-no}" my_pic_p="${3-no}"
skipping to change at line 2520 skipping to change at line 3204
/* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */ /* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */
#ifdef __cplusplus #ifdef __cplusplus
extern \"C\" { extern \"C\" {
#endif #endif
#if defined(__GNUC__) && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__ GNUC__ > 4)) #if defined(__GNUC__) && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__ GNUC__ > 4))
#pragma GCC diagnostic ignored \"-Wstrict-prototypes\" #pragma GCC diagnostic ignored \"-Wstrict-prototypes\"
#endif #endif
/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and test
s. */
#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE)
/* DATA imports from DLLs on WIN32 con't be const, because runtime
relocations are performed -- see ld's documentation on pseudo-relocs. *
/
# define LT_DLSYM_CONST
#elif defined(__osf__)
/* This system does not cope well with relocations in const data. */
# define LT_DLSYM_CONST
#else
# define LT_DLSYM_CONST const
#endif
/* External symbol declarations for the compiler. */\ /* External symbol declarations for the compiler. */\
" "
if test "$dlself" = yes; then if test "$dlself" = yes; then
func_verbose "generating symbol list for \`$output'" func_verbose "generating symbol list for \`$output'"
$opt_dry_run || echo ': @PROGRAM@ ' > "$nlist" $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist"
# Add our own program objects to the symbol list. # Add our own program objects to the symbol list.
progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL 2SP` progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL 2SP`
for progfile in $progfiles; do for progfile in $progfiles; do
func_verbose "extracting global C symbols from \`$progfile'" func_to_tool_file "$progfile" func_convert_file_msys_to_w32
$opt_dry_run || eval "$NM $progfile | $global_symbol_pipe >> '$n func_verbose "extracting global C symbols from \`$func_to_tool_f
list'" ile_result'"
$opt_dry_run || eval "$NM $func_to_tool_file_result | $global_sy
mbol_pipe >> '$nlist'"
done done
if test -n "$exclude_expsyms"; then if test -n "$exclude_expsyms"; then
$opt_dry_run || { $opt_dry_run || {
eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
eval '$MV "$nlist"T "$nlist"' eval '$MV "$nlist"T "$nlist"'
} }
fi fi
if test -n "$export_symbols_regex"; then if test -n "$export_symbols_regex"; then
skipping to change at line 2581 skipping to change at line 3278
;; ;;
esac esac
} }
fi fi
fi fi
for dlprefile in $dlprefiles; do for dlprefile in $dlprefiles; do
func_verbose "extracting global C symbols from \`$dlprefile'" func_verbose "extracting global C symbols from \`$dlprefile'"
func_basename "$dlprefile" func_basename "$dlprefile"
name="$func_basename_result" name="$func_basename_result"
$opt_dry_run || { case $host in
eval '$ECHO ": $name " >> "$nlist"' *cygwin* | *mingw* | *cegcc* )
eval "$NM $dlprefile 2>/dev/null | $global_symbol_pipe >> '$nlis # if an import library, we need to obtain dlname
t'" if func_win32_import_lib_p "$dlprefile"; then
} func_tr_sh "$dlprefile"
eval "curr_lafile=\$libfile_$func_tr_sh_result"
dlprefile_dlbasename=""
if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; th
en
# Use subshell, to avoid clobbering current variable value
s
dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"`
if test -n "$dlprefile_dlname" ; then
func_basename "$dlprefile_dlname"
dlprefile_dlbasename="$func_basename_result"
else
# no lafile. user explicitly requested -dlpreopen <impor
t library>.
$sharedlib_from_linklib_cmd "$dlprefile"
dlprefile_dlbasename=$sharedlib_from_linklib_result
fi
fi
$opt_dry_run || {
if test -n "$dlprefile_dlbasename" ; then
eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"'
else
func_warning "Could not compute DLL name from $name"
eval '$ECHO ": $name " >> "$nlist"'
fi
func_to_tool_file "$dlprefile" func_convert_file_msys_to_w
32
eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $glo
bal_symbol_pipe |
$SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$n
list'"
}
else # not an import lib
$opt_dry_run || {
eval '$ECHO ": $name " >> "$nlist"'
func_to_tool_file "$dlprefile" func_convert_file_msys_to_w
32
eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $glo
bal_symbol_pipe >> '$nlist'"
}
fi
;;
*)
$opt_dry_run || {
eval '$ECHO ": $name " >> "$nlist"'
func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $globa
l_symbol_pipe >> '$nlist'"
}
;;
esac
done done
$opt_dry_run || { $opt_dry_run || {
# 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
skipping to change at line 2622 skipping to change at line 3361
echo '/* NONE */' >> "$output_objdir/$my_dlsyms" echo '/* NONE */' >> "$output_objdir/$my_dlsyms"
fi fi
echo >> "$output_objdir/$my_dlsyms" "\ echo >> "$output_objdir/$my_dlsyms" "\
/* The mapping between symbol names and symbols. */ /* The mapping between symbol names and symbols. */
typedef struct { typedef struct {
const char *name; const char *name;
void *address; void *address;
} lt_dlsymlist; } lt_dlsymlist;
" extern LT_DLSYM_CONST lt_dlsymlist
case $host in
*cygwin* | *mingw* | *cegcc* )
echo >> "$output_objdir/$my_dlsyms" "\
/* DATA imports from DLLs on WIN32 con't be const, because
runtime relocations are performed -- see ld's documentation
on pseudo-relocs. */"
lt_dlsym_const= ;;
*osf5*)
echo >> "$output_objdir/$my_dlsyms" "\
/* This system does not cope well with relocations in const data */"
lt_dlsym_const= ;;
*)
lt_dlsym_const=const ;;
esac
echo >> "$output_objdir/$my_dlsyms" "\
extern $lt_dlsym_const lt_dlsymlist
lt_${my_prefix}_LTX_preloaded_symbols[]; lt_${my_prefix}_LTX_preloaded_symbols[];
$lt_dlsym_const lt_dlsymlist LT_DLSYM_CONST lt_dlsymlist
lt_${my_prefix}_LTX_preloaded_symbols[] = lt_${my_prefix}_LTX_preloaded_symbols[] =
{\ {\
{ \"$my_originator\", (void *) 0 }," { \"$my_originator\", (void *) 0 },"
case $need_lib_prefix in case $need_lib_prefix in
no) no)
eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_o bjdir/$my_dlsyms" eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_o bjdir/$my_dlsyms"
;; ;;
*) *)
eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms" eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms"
skipping to change at line 2697 skipping to change at line 3419
pic_flag_for_symtable=" $pic_flag" pic_flag_for_symtable=" $pic_flag"
fi fi
;; ;;
esac esac
;; ;;
esac esac
symtab_cflags= symtab_cflags=
for arg in $LTCFLAGS; do for arg in $LTCFLAGS; do
case $arg in case $arg in
-pie | -fpie | -fPIE) ;; -pie | -fpie | -fPIE) ;;
*) symtab_cflags="$symtab_cflags $arg" ;; *) func_append symtab_cflags " $arg" ;;
esac esac
done done
# Now compile the dynamic symbol file. # Now compile the dynamic symbol file.
func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_buil tin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?' func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_buil tin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?'
# Clean up the generated files. # Clean up the generated files.
func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"' func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"'
# Transform the symbol file into the correct name. # Transform the symbol file into the correct name.
skipping to change at line 2760 skipping to change at line 3482
win32_libid_type="unknown" win32_libid_type="unknown"
win32_fileres=`file -L $1 2>/dev/null` win32_fileres=`file -L $1 2>/dev/null`
case $win32_fileres in case $win32_fileres in
*ar\ archive\ import\ library*) # definitely import *ar\ archive\ import\ library*) # definitely import
win32_libid_type="x86 archive import" win32_libid_type="x86 archive import"
;; ;;
*ar\ archive*) # could be an import, or static *ar\ archive*) # could be an import, or static
# Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD . # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD .
if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null |
$EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|p e-x86-64)' >/dev/null; then $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|p e-x86-64)' >/dev/null; then
win32_nmres=`eval $NM -f posix -A $1 | func_to_tool_file "$1" func_convert_file_msys_to_w32
win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" |
$SED -n -e ' $SED -n -e '
1,100{ 1,100{
/ I /{ / I /{
s,.*,import, s,.*,import,
p p
q q
} }
}'` }'`
case $win32_nmres in case $win32_nmres in
import*) win32_libid_type="x86 archive import";; import*) win32_libid_type="x86 archive import";;
skipping to change at line 2789 skipping to change at line 3512
case $win32_fileres in case $win32_fileres in
*MS\ Windows\ PE\ Intel*) *MS\ Windows\ PE\ Intel*)
win32_libid_type="x86 DLL" win32_libid_type="x86 DLL"
;; ;;
esac esac
;; ;;
esac esac
$ECHO "$win32_libid_type" $ECHO "$win32_libid_type"
} }
# func_cygming_dll_for_implib ARG
#
# Platform-specific function to extract the
# name of the DLL associated with the specified
# import library ARG.
# Invoked by eval'ing the libtool variable
# $sharedlib_from_linklib_cmd
# Result is available in the variable
# $sharedlib_from_linklib_result
func_cygming_dll_for_implib ()
{
$opt_debug
sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"
`
}
# func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs
#
# The is the core of a fallback implementation of a
# platform-specific function to extract the name of the
# DLL associated with the specified import library LIBNAME.
#
# SECTION_NAME is either .idata$6 or .idata$7, depending
# on the platform and compiler that created the implib.
#
# Echos the name of the DLL associated with the
# specified import library.
func_cygming_dll_for_implib_fallback_core ()
{
$opt_debug
match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"`
$OBJDUMP -s --section "$1" "$2" 2>/dev/null |
$SED '/^Contents of section '"$match_literal"':/{
# Place marker at beginning of archive member dllname section
s/.*/====MARK====/
p
d
}
# These lines can sometimes be longer than 43 characters, but
# are always uninteresting
/:[ ]*file format pe[i]\{,1\}-/d
/^In archive [^:]*:/d
# Ensure marker is printed
/^====MARK====/p
# Remove all lines with less than 43 characters
/^.\{43\}/!d
# From remaining lines, remove first 43 characters
s/^.\{43\}//' |
$SED -n '
# Join marker and all lines until next marker into a single line
/^====MARK====/ b para
H
$ b para
b
:para
x
s/\n//g
# Remove the marker
s/^====MARK====//
# Remove trailing dots and whitespace
s/[\. \t]*$//
# Print
/./p' |
# we now have a list, one entry per line, of the stringified
# contents of the appropriate section of all members of the
# archive which possess that section. Heuristic: eliminate
# all those which have a first or second character that is
# a '.' (that is, objdump's representation of an unprintable
# character.) This should work for all archives with less than
# 0x302f exports -- but will fail for DLLs whose name actually
# begins with a literal '.' or a single character followed by
# a '.'.
#
# Of those that remain, print the first one.
$SED -e '/^\./d;/^.\./d;q'
}
# func_cygming_gnu_implib_p ARG
# This predicate returns with zero status (TRUE) if
# ARG is a GNU/binutils-style import library. Returns
# with nonzero status (FALSE) otherwise.
func_cygming_gnu_implib_p ()
{
$opt_debug
func_to_tool_file "$1" func_convert_file_msys_to_w32
func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$glo
bal_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l
*_iname)$'`
test -n "$func_cygming_gnu_implib_tmp"
}
# func_cygming_ms_implib_p ARG
# This predicate returns with zero status (TRUE) if
# ARG is an MS-style import library. Returns
# with nonzero status (FALSE) otherwise.
func_cygming_ms_implib_p ()
{
$opt_debug
func_to_tool_file "$1" func_convert_file_msys_to_w32
func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$glob
al_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'`
test -n "$func_cygming_ms_implib_tmp"
}
# func_cygming_dll_for_implib_fallback ARG
# Platform-specific function to extract the
# name of the DLL associated with the specified
# import library ARG.
#
# This fallback implementation is for use when $DLLTOOL
# does not support the --identify-strict option.
# Invoked by eval'ing the libtool variable
# $sharedlib_from_linklib_cmd
# Result is available in the variable
# $sharedlib_from_linklib_result
func_cygming_dll_for_implib_fallback ()
{
$opt_debug
if func_cygming_gnu_implib_p "$1" ; then
# binutils import library
sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_cor
e '.idata$7' "$1"`
elif func_cygming_ms_implib_p "$1" ; then
# ms-generated import library
sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_cor
e '.idata$6' "$1"`
else
# unknown
sharedlib_from_linklib_result=""
fi
}
# func_extract_an_archive dir oldlib # func_extract_an_archive dir oldlib
func_extract_an_archive () func_extract_an_archive ()
{ {
$opt_debug $opt_debug
f_ex_an_ar_dir="$1"; shift f_ex_an_ar_dir="$1"; shift
f_ex_an_ar_oldlib="$1" f_ex_an_ar_oldlib="$1"
if test "$lock_old_archive_extraction" = yes; then if test "$lock_old_archive_extraction" = yes; then
lockfile=$f_ex_an_ar_oldlib.lock lockfile=$f_ex_an_ar_oldlib.lock
until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do
func_echo "Waiting for $lockfile to be removed" func_echo "Waiting for $lockfile to be removed"
skipping to change at line 3163 skipping to change at line 4012
$ECHO "\ $ECHO "\
program='$outputname' program='$outputname'
progdir=\"\$thisdir/$objdir\" progdir=\"\$thisdir/$objdir\"
" "
fi fi
$ECHO "\ $ECHO "\
if test -f \"\$progdir/\$program\"; then" if test -f \"\$progdir/\$program\"; then"
# fixup the dll searchpath if we need to.
#
# Fix the DLL searchpath if we need to. Do this before prepending
# to shlibpath, because on Windows, both are PATH and uninstalled
# libraries must come first.
if test -n "$dllsearchpath"; then
$ECHO "\
# Add the dll search path components to the executable PATH
PATH=$dllsearchpath:\$PATH
"
fi
# 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 "\ $ECHO "\
# 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 \"\$$shlibpath_var\" | $SED 's/::*\$//'\` $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\`
export $shlibpath_var export $shlibpath_var
" "
fi fi
# fixup the dll searchpath if we need to.
if test -n "$dllsearchpath"; then
$ECHO "\
# Add the dll search path components to the executable PATH
PATH=$dllsearchpath:\$PATH
"
fi
$ECHO "\ $ECHO "\
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.
func_exec_program \${1+\"\$@\"} func_exec_program \${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 1 exit 1
fi fi
fi\ fi\
" "
} }
# func_to_host_path arg
#
# Convert paths to host format when used with build tools.
# Intended for use with "native" mingw (where libtool itself
# is running under the msys shell), or in the following cross-
# build environments:
# $build $host
# mingw (msys) mingw [e.g. native]
# cygwin mingw
# *nix + wine mingw
# where wine is equipped with the `winepath' executable.
# In the native mingw case, the (msys) shell automatically
# converts paths for any non-msys applications it launches,
# but that facility isn't available from inside the cwrapper.
# Similar accommodations are necessary for $host mingw and
# $build cygwin. Calling this function does no harm for other
# $host/$build combinations not listed above.
#
# ARG is the path (on $build) that should be converted to
# the proper representation for $host. The result is stored
# in $func_to_host_path_result.
func_to_host_path ()
{
func_to_host_path_result="$1"
if test -n "$1"; then
case $host in
*mingw* )
lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
case $build in
*mingw* ) # actually, msys
# awkward: cmd appends spaces to result
func_to_host_path_result=`( cmd //c echo "$1" ) 2>/dev/null |
$SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"`
;;
*cygwin* )
func_to_host_path_result=`cygpath -w "$1" |
$SED -e "$lt_sed_naive_backslashify"`
;;
* )
# Unfortunately, winepath does not exit with a non-zero
# error code, so we are forced to check the contents of
# stdout. On the other hand, if the command is not
# found, the shell will set an exit code of 127 and print
# *an error message* to stdout. So we must check for both
# error code of zero AND non-empty stdout, which explains
# the odd construction:
func_to_host_path_tmp1=`winepath -w "$1" 2>/dev/null`
if test "$?" -eq 0 && test -n "${func_to_host_path_tmp1}"; then
func_to_host_path_result=`$ECHO "$func_to_host_path_tmp1" |
$SED -e "$lt_sed_naive_backslashify"`
else
# Allow warning below.
func_to_host_path_result=
fi
;;
esac
if test -z "$func_to_host_path_result" ; then
func_error "Could not determine host path corresponding to"
func_error " \`$1'"
func_error "Continuing, but uninstalled executables may not work.
"
# Fallback:
func_to_host_path_result="$1"
fi
;;
esac
fi
}
# end: func_to_host_path
# func_to_host_pathlist arg
#
# Convert pathlists to host format when used with build tools.
# See func_to_host_path(), above. This function supports the
# following $build/$host combinations (but does no harm for
# combinations not listed here):
# $build $host
# mingw (msys) mingw [e.g. native]
# cygwin mingw
# *nix + wine mingw
#
# Path separators are also converted from $build format to
# $host format. If ARG begins or ends with a path separator
# character, it is preserved (but converted to $host format)
# on output.
#
# ARG is a pathlist (on $build) that should be converted to
# the proper representation on $host. The result is stored
# in $func_to_host_pathlist_result.
func_to_host_pathlist ()
{
func_to_host_pathlist_result="$1"
if test -n "$1"; then
case $host in
*mingw* )
lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
# Remove leading and trailing path separator characters from
# ARG. msys behavior is inconsistent here, cygpath turns them
# into '.;' and ';.', and winepath ignores them completely.
func_stripname : : "$1"
func_to_host_pathlist_tmp1=$func_stripname_result
case $build in
*mingw* ) # Actually, msys.
# Awkward: cmd appends spaces to result.
func_to_host_pathlist_result=`
( cmd //c echo "$func_to_host_pathlist_tmp1" ) 2>/dev/null |
$SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"`
;;
*cygwin* )
func_to_host_pathlist_result=`cygpath -w -p "$func_to_host_path
list_tmp1" |
$SED -e "$lt_sed_naive_backslashify"`
;;
* )
# unfortunately, winepath doesn't convert pathlists
func_to_host_pathlist_result=""
func_to_host_pathlist_oldIFS=$IFS
IFS=:
for func_to_host_pathlist_f in $func_to_host_pathlist_tmp1 ; do
IFS=$func_to_host_pathlist_oldIFS
if test -n "$func_to_host_pathlist_f" ; then
func_to_host_path "$func_to_host_pathlist_f"
if test -n "$func_to_host_path_result" ; then
if test -z "$func_to_host_pathlist_result" ; then
func_to_host_pathlist_result="$func_to_host_path_result
"
else
func_append func_to_host_pathlist_result ";$func_to_hos
t_path_result"
fi
fi
fi
done
IFS=$func_to_host_pathlist_oldIFS
;;
esac
if test -z "$func_to_host_pathlist_result"; then
func_error "Could not determine the host path(s) corresponding to
"
func_error " \`$1'"
func_error "Continuing, but uninstalled executables may not work.
"
# Fallback. This may break if $1 contains DOS-style drive
# specifications. The fix is not to complicate the expression
# below, but for the user to provide a working wine installation
# with winepath so that path translation in the cross-to-mingw
# case works properly.
lt_replace_pathsep_nix_to_dos="s|:|;|g"
func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp1"
|\
$SED -e "$lt_replace_pathsep_nix_to_dos"`
fi
# Now, add the leading and trailing path separators back
case "$1" in
:* ) func_to_host_pathlist_result=";$func_to_host_pathlist_result
"
;;
esac
case "$1" in
*: ) func_append func_to_host_pathlist_result ";"
;;
esac
;;
esac
fi
}
# end: func_to_host_pathlist
# func_emit_cwrapperexe_src # func_emit_cwrapperexe_src
# emit the source code for a wrapper executable on stdout # emit the source code for a wrapper executable on stdout
# Must ONLY be called from within func_mode_link because # Must ONLY be called from within func_mode_link because
# it depends on a number of variable set therein. # it depends on a number of variable set therein.
func_emit_cwrapperexe_src () func_emit_cwrapperexe_src ()
{ {
cat <<EOF cat <<EOF
/* $cwrappersource - temporary wrapper executable for $objdir/$outputname /* $cwrappersource - temporary wrapper executable for $objdir/$outputname
Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
skipping to change at line 3530 skipping to change at line 4223
static const char *nonempty (const char *s); static const char *nonempty (const char *s);
void lt_setenv (const char *name, const char *value); void lt_setenv (const char *name, const char *value);
char *lt_extend_str (const char *orig_value, const char *add, int to_end); char *lt_extend_str (const char *orig_value, const char *add, int to_end);
void lt_update_exe_path (const char *name, const char *value); void lt_update_exe_path (const char *name, const char *value);
void lt_update_lib_path (const char *name, const char *value); void lt_update_lib_path (const char *name, const char *value);
char **prepare_spawn (char **argv); char **prepare_spawn (char **argv);
void lt_dump_script (FILE *f); void lt_dump_script (FILE *f);
EOF EOF
cat <<EOF cat <<EOF
const char * MAGIC_EXE = "$magic_exe"; volatile const char * MAGIC_EXE = "$magic_exe";
const char * LIB_PATH_VARNAME = "$shlibpath_var"; const char * LIB_PATH_VARNAME = "$shlibpath_var";
EOF EOF
if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibp ath_var" && test -n "$temp_rpath"; then if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibp ath_var" && test -n "$temp_rpath"; then
func_to_host_pathlist "$temp_rpath" func_to_host_path "$temp_rpath"
cat <<EOF cat <<EOF
const char * LIB_PATH_VALUE = "$func_to_host_pathlist_result"; const char * LIB_PATH_VALUE = "$func_to_host_path_result";
EOF EOF
else else
cat <<"EOF" cat <<"EOF"
const char * LIB_PATH_VALUE = ""; const char * LIB_PATH_VALUE = "";
EOF EOF
fi fi
if test -n "$dllsearchpath"; then if test -n "$dllsearchpath"; then
func_to_host_pathlist "$dllsearchpath:" func_to_host_path "$dllsearchpath:"
cat <<EOF cat <<EOF
const char * EXE_PATH_VARNAME = "PATH"; const char * EXE_PATH_VARNAME = "PATH";
const char * EXE_PATH_VALUE = "$func_to_host_pathlist_result"; const char * EXE_PATH_VALUE = "$func_to_host_path_result";
EOF EOF
else else
cat <<"EOF" cat <<"EOF"
const char * EXE_PATH_VARNAME = ""; const char * EXE_PATH_VARNAME = "";
const char * EXE_PATH_VALUE = ""; const char * EXE_PATH_VALUE = "";
EOF EOF
fi fi
if test "$fast_install" = yes; then if test "$fast_install" = yes; then
cat <<EOF cat <<EOF
skipping to change at line 3731 skipping to change at line 4424
;; ;;
esac esac
cat <<"EOF" cat <<"EOF"
XFREE (target_name); XFREE (target_name);
XFREE (actual_cwrapper_path); XFREE (actual_cwrapper_path);
XFREE (actual_cwrapper_name); XFREE (actual_cwrapper_name);
lt_setenv ("BIN_SH", "xpg4"); /* for Tru64 */ lt_setenv ("BIN_SH", "xpg4"); /* for Tru64 */
lt_setenv ("DUALCASE", "1"); /* for MSK sh */ lt_setenv ("DUALCASE", "1"); /* for MSK sh */
lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE); /* Update the DLL searchpath. EXE_PATH_VALUE ($dllsearchpath) must
be prepended before (that is, appear after) LIB_PATH_VALUE ($temp_rpat
h)
because on Windows, both *_VARNAMEs are PATH but uninstalled
libraries must come first. */
lt_update_exe_path (EXE_PATH_VARNAME, EXE_PATH_VALUE); lt_update_exe_path (EXE_PATH_VARNAME, EXE_PATH_VALUE);
lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE);
lt_debugprintf (__FILE__, __LINE__, "(main) lt_argv_zero: %s\n", lt_debugprintf (__FILE__, __LINE__, "(main) lt_argv_zero: %s\n",
nonnull (lt_argv_zero)); nonnull (lt_argv_zero));
for (i = 0; i < newargc; i++) for (i = 0; i < newargc; i++)
{ {
lt_debugprintf (__FILE__, __LINE__, "(main) newargz[%d]: %s\n", lt_debugprintf (__FILE__, __LINE__, "(main) newargz[%d]: %s\n",
i, nonnull (newargz[i])); i, nonnull (newargz[i]));
} }
EOF EOF
skipping to change at line 4481 skipping to change at line 5178
dlself=yes dlself=yes
else else
dlself=needless dlself=needless
export_dynamic=yes export_dynamic=yes
fi fi
prev= prev=
continue continue
;; ;;
*) *)
if test "$prev" = dlfiles; then if test "$prev" = dlfiles; then
dlfiles="$dlfiles $arg" func_append dlfiles " $arg"
else else
dlprefiles="$dlprefiles $arg" func_append dlprefiles " $arg"
fi fi
prev= prev=
continue continue
;; ;;
esac esac
;; ;;
expsyms) expsyms)
export_symbols="$arg" export_symbols="$arg"
test -f "$arg" \ test -f "$arg" \
|| func_fatal_error "symbol file \`$arg' does not exist" || func_fatal_error "symbol file \`$arg' does not exist"
skipping to change at line 4507 skipping to change at line 5204
expsyms_regex) expsyms_regex)
export_symbols_regex="$arg" export_symbols_regex="$arg"
prev= prev=
continue continue
;; ;;
framework) framework)
case $host in case $host in
*-*-darwin*) *-*-darwin*)
case "$deplibs " in case "$deplibs " in
*" $qarg.ltframework "*) ;; *" $qarg.ltframework "*) ;;
*) deplibs="$deplibs $qarg.ltframework" # this is fixed late r *) func_append deplibs " $qarg.ltframework" # this is fixed later
;; ;;
esac esac
;; ;;
esac esac
prev= prev=
continue continue
;; ;;
inst_prefix) inst_prefix)
inst_prefix_dir="$arg" inst_prefix_dir="$arg"
prev= prev=
continue continue
;; ;;
objectlist) objectlist)
if test -f "$arg"; then if test -f "$arg"; then
save_arg=$arg save_arg=$arg
moreargs= moreargs=
for fil in `cat "$save_arg"` for fil in `cat "$save_arg"`
do do
# moreargs="$moreargs $fil" # func_append moreargs " $fil"
arg=$fil arg=$fil
# A libtool-controlled object. # A libtool-controlled object.
# Check to see that this really is a libtool object. # Check to see that this really is a libtool object.
if func_lalib_unsafe_p "$arg"; then if func_lalib_unsafe_p "$arg"; then
pic_object= pic_object=
non_pic_object= non_pic_object=
# Read the .lo file # Read the .lo file
func_source "$arg" func_source "$arg"
skipping to change at line 4555 skipping to change at line 5252
# Extract subdirectory from the argument. # Extract subdirectory from the argument.
func_dirname "$arg" "/" "" func_dirname "$arg" "/" ""
xdir="$func_dirname_result" xdir="$func_dirname_result"
if test "$pic_object" != none; then if test "$pic_object" != none; then
# Prepend the subdirectory the object is found in. # Prepend the subdirectory the object is found in.
pic_object="$xdir$pic_object" pic_object="$xdir$pic_object"
if test "$prev" = dlfiles; then if test "$prev" = dlfiles; then
if test "$build_libtool_libs" = yes && test "$dlopen_sup port" = yes; then if test "$build_libtool_libs" = yes && test "$dlopen_sup port" = yes; then
dlfiles="$dlfiles $pic_object" func_append dlfiles " $pic_object"
prev= prev=
continue continue
else else
# If libtool objects are unsupported, then we need to preload. # If libtool objects are unsupported, then we need to preload.
prev=dlprefiles prev=dlprefiles
fi fi
fi fi
# CHECK ME: I think I busted this. -Ossama # CHECK ME: I think I busted this. -Ossama
if test "$prev" = dlprefiles; then if test "$prev" = dlprefiles; then
# Preload the old-style object. # Preload the old-style object.
dlprefiles="$dlprefiles $pic_object" func_append dlprefiles " $pic_object"
prev= prev=
fi fi
# A PIC object. # A PIC object.
func_append libobjs " $pic_object" func_append libobjs " $pic_object"
arg="$pic_object" arg="$pic_object"
fi fi
# Non-PIC object. # Non-PIC object.
if test "$non_pic_object" != none; then if test "$non_pic_object" != none; then
skipping to change at line 4637 skipping to change at line 5334
# We need an absolute path. # We need an absolute path.
case $arg in case $arg in
[\\/]* | [A-Za-z]:[\\/]*) ;; [\\/]* | [A-Za-z]:[\\/]*) ;;
*) *)
func_fatal_error "only absolute run-paths are allowed" func_fatal_error "only absolute run-paths are allowed"
;; ;;
esac esac
if test "$prev" = rpath; then if test "$prev" = rpath; then
case "$rpath " in case "$rpath " in
*" $arg "*) ;; *" $arg "*) ;;
*) rpath="$rpath $arg" ;; *) func_append rpath " $arg" ;;
esac esac
else else
case "$xrpath " in case "$xrpath " in
*" $arg "*) ;; *" $arg "*) ;;
*) xrpath="$xrpath $arg" ;; *) func_append xrpath " $arg" ;;
esac esac
fi fi
prev= prev=
continue continue
;; ;;
shrext) shrext)
shrext_cmds="$arg" shrext_cmds="$arg"
prev= prev=
continue continue
;; ;;
weak) weak)
weak_libs="$weak_libs $arg" func_append weak_libs " $arg"
prev= prev=
continue continue
;; ;;
xcclinker) xcclinker)
linker_flags="$linker_flags $qarg" func_append linker_flags " $qarg"
compiler_flags="$compiler_flags $qarg" func_append compiler_flags " $qarg"
prev= prev=
func_append compile_command " $qarg" func_append compile_command " $qarg"
func_append finalize_command " $qarg" func_append finalize_command " $qarg"
continue continue
;; ;;
xcompiler) xcompiler)
compiler_flags="$compiler_flags $qarg" func_append compiler_flags " $qarg"
prev= prev=
func_append compile_command " $qarg" func_append compile_command " $qarg"
func_append finalize_command " $qarg" func_append finalize_command " $qarg"
continue continue
;; ;;
xlinker) xlinker)
linker_flags="$linker_flags $qarg" func_append linker_flags " $qarg"
compiler_flags="$compiler_flags $wl$qarg" func_append compiler_flags " $wl$qarg"
prev= prev=
func_append compile_command " $wl$qarg" func_append compile_command " $wl$qarg"
func_append finalize_command " $wl$qarg" func_append finalize_command " $wl$qarg"
continue continue
;; ;;
*) *)
eval "$prev=\"\$arg\"" eval "$prev=\"\$arg\""
prev= prev=
continue continue
;; ;;
skipping to change at line 4766 skipping to change at line 5463
case $with_gcc/$host in case $with_gcc/$host in
no/*-*-irix* | /*-*-irix*) no/*-*-irix* | /*-*-irix*)
func_append compile_command " $arg" func_append compile_command " $arg"
func_append finalize_command " $arg" func_append finalize_command " $arg"
;; ;;
esac esac
continue continue
;; ;;
-L*) -L*)
func_stripname '-L' '' "$arg" func_stripname "-L" '' "$arg"
dir=$func_stripname_result if test -z "$func_stripname_result"; then
if test -z "$dir"; then
if test "$#" -gt 0; then if test "$#" -gt 0; then
func_fatal_error "require no space between \`-L' and \`$1'" func_fatal_error "require no space between \`-L' and \`$1'"
else else
func_fatal_error "need path for \`-L' option" func_fatal_error "need path for \`-L' option"
fi fi
fi fi
func_resolve_sysroot "$func_stripname_result"
dir=$func_resolve_sysroot_result
# 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`
test -z "$absdir" && \ test -z "$absdir" && \
func_fatal_error "cannot determine absolute directory name of \` $dir'" func_fatal_error "cannot determine absolute directory name of \` $dir'"
dir="$absdir" dir="$absdir"
;; ;;
esac esac
case "$deplibs " in case "$deplibs " in
*" -L$dir "*) ;; *" -L$dir "* | *" $arg "*)
# Will only happen for absolute or sysroot arguments
;;
*) *)
deplibs="$deplibs -L$dir" # Preserve sysroot, but never include relative directories
lib_search_path="$lib_search_path $dir" case $dir in
[\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;;
*) func_append deplibs " -L$dir" ;;
esac
func_append lib_search_path " $dir"
;; ;;
esac esac
case $host in case $host in
*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'` testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'`
case :$dllsearchpath: in case :$dllsearchpath: in
*":$dir:"*) ;; *":$dir:"*) ;;
::) dllsearchpath=$dir;; ::) dllsearchpath=$dir;;
*) dllsearchpath="$dllsearchpath:$dir";; *) func_append dllsearchpath ":$dir";;
esac esac
case :$dllsearchpath: in case :$dllsearchpath: in
*":$testbindir:"*) ;; *":$testbindir:"*) ;;
::) dllsearchpath=$testbindir;; ::) dllsearchpath=$testbindir;;
*) dllsearchpath="$dllsearchpath:$testbindir";; *) func_append dllsearchpath ":$testbindir";;
esac 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* | *-cegcc* | *-*- haiku*) *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*- haiku*)
skipping to change at line 4827 skipping to change at line 5531
*-*-os2*) *-*-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* | *-*-dragonfly*)
# 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]) *-*-rhapsody* | *-*-darwin1.[012])
# Rhapsody C and math libraries are in the System framework # Rhapsody C and math libraries are in the System framework
deplibs="$deplibs System.ltframework" func_append deplibs " System.ltframework"
continue continue
;; ;;
*-*-sco3.2v5* | *-*-sco5v6*) *-*-sco3.2v5* | *-*-sco5v6*)
# Causes problems with __ctype # Causes problems with __ctype
test "X$arg" = "X-lc" && continue test "X$arg" = "X-lc" && continue
;; ;;
*-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
# Compiler inserts libc in the correct place for threads to work # Compiler inserts libc in the correct place for threads to work
test "X$arg" = "X-lc" && continue test "X$arg" = "X-lc" && continue
;; ;;
esac esac
elif test "X$arg" = "X-lc_r"; then elif test "X$arg" = "X-lc_r"; then
case $host in case $host in
*-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
# Do not include libc_r directly, use -pthread flag. # Do not include libc_r directly, use -pthread flag.
continue continue
;; ;;
esac esac
fi fi
deplibs="$deplibs $arg" func_append deplibs " $arg"
continue continue
;; ;;
-module) -module)
module=yes module=yes
continue continue
;; ;;
# Tru64 UNIX uses -model [arg] to determine the layout of C++ # Tru64 UNIX uses -model [arg] to determine the layout of C++
# classes, name mangling, and exception handling. # classes, name mangling, and exception handling.
# Darwin uses the -arch flag to determine output architecture. # Darwin uses the -arch flag to determine output architecture.
-model|-arch|-isysroot) -model|-arch|-isysroot|--sysroot)
compiler_flags="$compiler_flags $arg" func_append compiler_flags " $arg"
func_append compile_command " $arg" func_append compile_command " $arg"
func_append finalize_command " $arg" func_append finalize_command " $arg"
prev=xcompiler prev=xcompiler
continue continue
;; ;;
-mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-thr eads) -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-thr eads)
compiler_flags="$compiler_flags $arg" func_append compiler_flags " $arg"
func_append compile_command " $arg" func_append compile_command " $arg"
func_append finalize_command " $arg" func_append finalize_command " $arg"
case "$new_inherited_linker_flags " in case "$new_inherited_linker_flags " in
*" $arg "*) ;; *" $arg "*) ;;
* ) new_inherited_linker_flags="$new_inherited_linker_flags $arg " ;; * ) func_append new_inherited_linker_flags " $arg" ;;
esac esac
continue continue
;; ;;
-multi_module) -multi_module)
single_module="${wl}-multi_module" single_module="${wl}-multi_module"
continue continue
;; ;;
-no-fast-install) -no-fast-install)
skipping to change at line 4940 skipping to change at line 5644
prev=xrpath prev=xrpath
continue continue
;; ;;
-R*) -R*)
func_stripname '-R' '' "$arg" func_stripname '-R' '' "$arg"
dir=$func_stripname_result dir=$func_stripname_result
# We need an absolute path. # We need an absolute path.
case $dir in case $dir in
[\\/]* | [A-Za-z]:[\\/]*) ;; [\\/]* | [A-Za-z]:[\\/]*) ;;
=*)
func_stripname '=' '' "$dir"
dir=$lt_sysroot$func_stripname_result
;;
*) *)
func_fatal_error "only absolute run-paths are allowed" func_fatal_error "only absolute run-paths are allowed"
;; ;;
esac esac
case "$xrpath " in case "$xrpath " in
*" $dir "*) ;; *" $dir "*) ;;
*) xrpath="$xrpath $dir" ;; *) func_append xrpath " $dir" ;;
esac esac
continue continue
;; ;;
-shared) -shared)
# The effects of -shared are defined in a previous loop. # The effects of -shared are defined in a previous loop.
continue continue
;; ;;
-shrext) -shrext)
skipping to change at line 4999 skipping to change at line 5707
;; ;;
-Wc,*) -Wc,*)
func_stripname '-Wc,' '' "$arg" func_stripname '-Wc,' '' "$arg"
args=$func_stripname_result args=$func_stripname_result
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"
func_quote_for_eval "$flag" func_quote_for_eval "$flag"
arg="$arg $func_quote_for_eval_result" func_append arg " $func_quote_for_eval_result"
compiler_flags="$compiler_flags $func_quote_for_eval_result" func_append compiler_flags " $func_quote_for_eval_result"
done done
IFS="$save_ifs" IFS="$save_ifs"
func_stripname ' ' '' "$arg" func_stripname ' ' '' "$arg"
arg=$func_stripname_result arg=$func_stripname_result
;; ;;
-Wl,*) -Wl,*)
func_stripname '-Wl,' '' "$arg" func_stripname '-Wl,' '' "$arg"
args=$func_stripname_result args=$func_stripname_result
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"
func_quote_for_eval "$flag" func_quote_for_eval "$flag"
arg="$arg $wl$func_quote_for_eval_result" func_append arg " $wl$func_quote_for_eval_result"
compiler_flags="$compiler_flags $wl$func_quote_for_eval_result" func_append compiler_flags " $wl$func_quote_for_eval_result"
linker_flags="$linker_flags $func_quote_for_eval_result" func_append linker_flags " $func_quote_for_eval_result"
done done
IFS="$save_ifs" IFS="$save_ifs"
func_stripname ' ' '' "$arg" func_stripname ' ' '' "$arg"
arg=$func_stripname_result arg=$func_stripname_result
;; ;;
-Xcompiler) -Xcompiler)
prev=xcompiler prev=xcompiler
continue continue
;; ;;
skipping to change at line 5056 skipping to change at line 5764
# -64, -mips[0-9] enable 64-bit mode for the SGI compiler # -64, -mips[0-9] enable 64-bit mode for the SGI compiler
# -r[0-9][0-9]* specify processor for the SGI compiler # -r[0-9][0-9]* specify processor for the SGI compiler
# -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler
# +DA*, +DD* enable 64-bit mode for the HP compiler # +DA*, +DD* enable 64-bit mode for the HP compiler
# -q* compiler args for the IBM compiler # -q* compiler args for the IBM compiler
# -m*, -t[45]*, -txscale* architecture-specific flags for GCC # -m*, -t[45]*, -txscale* architecture-specific flags for GCC
# -F/path path to uninstalled frameworks, gcc on darwin # -F/path path to uninstalled frameworks, gcc on darwin
# -p, -pg, --coverage, -fprofile-* profiling flags for GCC # -p, -pg, --coverage, -fprofile-* profiling flags for GCC
# @file GCC response files # @file GCC response files
# -tp=* Portland pgcc target processor selection # -tp=* Portland pgcc target processor selection
# --sysroot=* for sysroot support
# -O*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimizati
on
-64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
-t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*) -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroo
t=*| \
-O*|-flto*|-fwhopr*|-fuse-linker-plugin)
func_quote_for_eval "$arg" func_quote_for_eval "$arg"
arg="$func_quote_for_eval_result" arg="$func_quote_for_eval_result"
func_append compile_command " $arg" func_append compile_command " $arg"
func_append finalize_command " $arg" func_append finalize_command " $arg"
compiler_flags="$compiler_flags $arg" func_append compiler_flags " $arg"
continue continue
;; ;;
# Some other compiler flag. # Some other compiler flag.
-* | +*) -* | +*)
func_quote_for_eval "$arg" func_quote_for_eval "$arg"
arg="$func_quote_for_eval_result" arg="$func_quote_for_eval_result"
;; ;;
*.$objext) *.$objext)
# A standard object. # A standard object.
objs="$objs $arg" func_append objs " $arg"
;; ;;
*.lo) *.lo)
# A libtool-controlled object. # A libtool-controlled object.
# Check to see that this really is a libtool object. # Check to see that this really is a libtool object.
if func_lalib_unsafe_p "$arg"; then if func_lalib_unsafe_p "$arg"; then
pic_object= pic_object=
non_pic_object= non_pic_object=
skipping to change at line 5105 skipping to change at line 5816
# Extract subdirectory from the argument. # Extract subdirectory from the argument.
func_dirname "$arg" "/" "" func_dirname "$arg" "/" ""
xdir="$func_dirname_result" xdir="$func_dirname_result"
if test "$pic_object" != none; then if test "$pic_object" != none; then
# Prepend the subdirectory the object is found in. # Prepend the subdirectory the object is found in.
pic_object="$xdir$pic_object" pic_object="$xdir$pic_object"
if test "$prev" = dlfiles; then if test "$prev" = dlfiles; then
if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
dlfiles="$dlfiles $pic_object" func_append dlfiles " $pic_object"
prev= prev=
continue continue
else else
# If libtool objects are unsupported, then we need to preloa d. # If libtool objects are unsupported, then we need to preloa d.
prev=dlprefiles prev=dlprefiles
fi fi
fi fi
# CHECK ME: I think I busted this. -Ossama # CHECK ME: I think I busted this. -Ossama
if test "$prev" = dlprefiles; then if test "$prev" = dlprefiles; then
# Preload the old-style object. # Preload the old-style object.
dlprefiles="$dlprefiles $pic_object" func_append dlprefiles " $pic_object"
prev= prev=
fi fi
# A PIC object. # A PIC object.
func_append libobjs " $pic_object" func_append libobjs " $pic_object"
arg="$pic_object" arg="$pic_object"
fi fi
# Non-PIC object. # Non-PIC object.
if test "$non_pic_object" != none; then if test "$non_pic_object" != none; then
skipping to change at line 5162 skipping to change at line 5873
func_append libobjs " $pic_object" func_append libobjs " $pic_object"
func_append non_pic_objects " $non_pic_object" func_append non_pic_objects " $non_pic_object"
else else
func_fatal_error "\`$arg' is not a valid libtool object" func_fatal_error "\`$arg' is not a valid libtool object"
fi fi
fi fi
;; ;;
*.$libext) *.$libext)
# An archive. # An archive.
deplibs="$deplibs $arg" func_append deplibs " $arg"
old_deplibs="$old_deplibs $arg" func_append old_deplibs " $arg"
continue continue
;; ;;
*.la) *.la)
# A libtool-controlled library. # A libtool-controlled library.
func_resolve_sysroot "$arg"
if test "$prev" = dlfiles; then if test "$prev" = dlfiles; then
# This library was specified with -dlopen. # This library was specified with -dlopen.
dlfiles="$dlfiles $arg" func_append dlfiles " $func_resolve_sysroot_result"
prev= prev=
elif test "$prev" = dlprefiles; then elif test "$prev" = dlprefiles; then
# The library was specified with -dlpreopen. # The library was specified with -dlpreopen.
dlprefiles="$dlprefiles $arg" func_append dlprefiles " $func_resolve_sysroot_result"
prev= prev=
else else
deplibs="$deplibs $arg" func_append deplibs " $func_resolve_sysroot_result"
fi fi
continue continue
;; ;;
# Some other compiler argument. # Some other compiler argument.
*) *)
# 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.
func_quote_for_eval "$arg" func_quote_for_eval "$arg"
arg="$func_quote_for_eval_result" arg="$func_quote_for_eval_result"
skipping to change at line 5226 skipping to change at line 5938
# get the directories listed in $shlibpath_var # get the directories listed in $shlibpath_var
eval shlib_search_path=\`\$ECHO \"\${$shlibpath_var}\" \| \$SED \'s/: / /g\'\` eval shlib_search_path=\`\$ECHO \"\${$shlibpath_var}\" \| \$SED \'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\"
func_dirname "$output" "/" "" func_dirname "$output" "/" ""
output_objdir="$func_dirname_result$objdir" output_objdir="$func_dirname_result$objdir"
func_to_tool_file "$output_objdir/"
tool_output_objdir=$func_to_tool_file_result
# Create the object directory. # Create the object directory.
func_mkdir_p "$output_objdir" func_mkdir_p "$output_objdir"
# Determine the type of output # Determine the type of output
case $output in case $output in
"") "")
func_fatal_help "you must specify an output file" func_fatal_help "you must specify an output file"
;; ;;
*.$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
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 $opt_duplicate_deps ; then if $opt_preserve_dup_deps ; then
case "$libs " in case "$libs " in
*" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; *" $deplib "*) func_append specialdeplibs " $deplib" ;;
esac esac
fi fi
libs="$libs $deplib" func_append libs " $deplib"
done done
if test "$linkmode" = lib; then if test "$linkmode" = lib; then
libs="$predeps $libs $compiler_lib_search_path $postdeps" libs="$predeps $libs $compiler_lib_search_path $postdeps"
# Compute libraries that are listed more than once in $predeps # Compute libraries that are listed more than once in $predeps
# $postdeps and mark them as special (i.e., whose duplicates are # $postdeps and mark them as special (i.e., whose duplicates are
# not to be eliminated). # not to be eliminated).
pre_post_deps= pre_post_deps=
if $opt_duplicate_compiler_generated_deps; then if $opt_duplicate_compiler_generated_deps; then
for pre_post_dep in $predeps $postdeps; do for pre_post_dep in $predeps $postdeps; do
case "$pre_post_deps " in case "$pre_post_deps " in
*" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_dep s" ;; *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;;
esac esac
pre_post_deps="$pre_post_deps $pre_post_dep" func_append pre_post_deps " $pre_post_dep"
done done
fi fi
pre_post_deps= pre_post_deps=
fi 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
skipping to change at line 5333 skipping to change at line 6047
dlopen) libs="$dlfiles" ;; dlopen) libs="$dlfiles" ;;
dlpreopen) libs="$dlprefiles" ;; dlpreopen) libs="$dlprefiles" ;;
link) libs="$deplibs %DEPLIBS% $dependency_libs" ;; link) libs="$deplibs %DEPLIBS% $dependency_libs" ;;
esac esac
fi fi
if test "$linkmode,$pass" = "lib,dlpreopen"; then if test "$linkmode,$pass" = "lib,dlpreopen"; then
# Collect and forward deplibs of preopened libtool libs # Collect and forward deplibs of preopened libtool libs
for lib in $dlprefiles; do for lib in $dlprefiles; do
# Ignore non-libtool-libs # Ignore non-libtool-libs
dependency_libs= dependency_libs=
func_resolve_sysroot "$lib"
case $lib in case $lib in
*.la) func_source "$lib" ;; *.la) func_source "$func_resolve_sysroot_result" ;;
esac esac
# Collect preopened libtool deplibs, except any this library # Collect preopened libtool deplibs, except any this library
# has declared as weak libs # has declared as weak libs
for deplib in $dependency_libs; do for deplib in $dependency_libs; do
func_basename "$deplib" func_basename "$deplib"
deplib_base=$func_basename_result deplib_base=$func_basename_result
case " $weak_libs " in case " $weak_libs " in
*" $deplib_base "*) ;; *" $deplib_base "*) ;;
*) deplibs="$deplibs $deplib" ;; *) func_append deplibs " $deplib" ;;
esac esac
done done
done done
libs="$dlprefiles" libs="$dlprefiles"
fi fi
if test "$pass" = dlopen; then if test "$pass" = dlopen; then
# Collect dlpreopened libraries # Collect dlpreopened libraries
save_deplibs="$deplibs" save_deplibs="$deplibs"
deplibs= deplibs=
fi 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|-th reads) -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-th reads)
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
compiler_flags="$compiler_flags $deplib" func_append compiler_flags " $deplib"
if test "$linkmode" = lib ; then if test "$linkmode" = lib ; then
case "$new_inherited_linker_flags " in case "$new_inherited_linker_flags " in
*" $deplib "*) ;; *" $deplib "*) ;;
* ) new_inherited_linker_flags="$new_inherited_linker_fl ags $deplib" ;; * ) func_append new_inherited_linker_flags " $deplib" ;;
esac esac
fi fi
fi fi
continue continue
;; ;;
-l*) -l*)
if test "$linkmode" != lib && test "$linkmode" != prog; then if test "$linkmode" != lib && test "$linkmode" != prog; then
func_warning "\`-l' is ignored for archives/objects" func_warning "\`-l' is ignored for archives/objects"
continue continue
fi fi
skipping to change at line 5454 skipping to change at line 6169
;; # -l ;; # -l
*.ltframework) *.ltframework)
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"
if test "$linkmode" = lib ; then if test "$linkmode" = lib ; then
case "$new_inherited_linker_flags " in case "$new_inherited_linker_flags " in
*" $deplib "*) ;; *" $deplib "*) ;;
* ) new_inherited_linker_flags="$new_inherited_linker_fl ags $deplib" ;; * ) func_append new_inherited_linker_flags " $deplib" ;;
esac esac
fi fi
fi fi
continue continue
;; ;;
-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"
func_stripname '-L' '' "$deplib" func_stripname '-L' '' "$deplib"
newlib_search_path="$newlib_search_path $func_stripname_result" func_resolve_sysroot "$func_stripname_result"
func_append newlib_search_path " $func_resolve_sysroot_result"
;; ;;
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"
else else
compile_deplibs="$deplib $compile_deplibs" compile_deplibs="$deplib $compile_deplibs"
finalize_deplibs="$deplib $finalize_deplibs" finalize_deplibs="$deplib $finalize_deplibs"
fi fi
func_stripname '-L' '' "$deplib" func_stripname '-L' '' "$deplib"
newlib_search_path="$newlib_search_path $func_stripname_result" func_resolve_sysroot "$func_stripname_result"
func_append newlib_search_path " $func_resolve_sysroot_result"
;; ;;
*) *)
func_warning "\`-L' is ignored for archives/objects" func_warning "\`-L' is ignored for archives/objects"
;; ;;
esac # linkmode esac # linkmode
continue continue
;; # -L ;; # -L
-R*) -R*)
if test "$pass" = link; then if test "$pass" = link; then
func_stripname '-R' '' "$deplib" func_stripname '-R' '' "$deplib"
dir=$func_stripname_result func_resolve_sysroot "$func_stripname_result"
dir=$func_resolve_sysroot_result
# Make sure the xrpath contains only unique directories. # Make sure the xrpath contains only unique directories.
case "$xrpath " in case "$xrpath " in
*" $dir "*) ;; *" $dir "*) ;;
*) xrpath="$xrpath $dir" ;; *) func_append xrpath " $dir" ;;
esac esac
fi fi
deplibs="$deplib $deplibs" deplibs="$deplib $deplibs"
continue continue
;; ;;
*.la) lib="$deplib" ;; *.la)
func_resolve_sysroot "$deplib"
lib=$func_resolve_sysroot_result
;;
*.$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)
# Linking convenience modules into shared libraries is allowed, # Linking convenience modules into shared libraries is allowed,
# but linking other static libraries is non-portable. # but linking other static libraries is non-portable.
case " $dlpreconveniencelibs " in case " $dlpreconveniencelibs " in
skipping to change at line 5565 skipping to change at line 6286
;; ;;
esac # linkmode esac # linkmode
;; # *.$libext ;; # *.$libext
*.lo | *.$objext) *.lo | *.$objext)
if test "$pass" = conv; then if test "$pass" = conv; then
deplibs="$deplib $deplibs" deplibs="$deplib $deplibs"
elif test "$linkmode" = prog; then elif test "$linkmode" = prog; then
if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
# If there is no dlopen support or we're linking statically, # If there is no dlopen support or we're linking statically,
# we need to preload. # we need to preload.
newdlprefiles="$newdlprefiles $deplib" func_append newdlprefiles " $deplib"
compile_deplibs="$deplib $compile_deplibs" compile_deplibs="$deplib $compile_deplibs"
finalize_deplibs="$deplib $finalize_deplibs" finalize_deplibs="$deplib $finalize_deplibs"
else else
newdlfiles="$newdlfiles $deplib" func_append newdlfiles " $deplib"
fi fi
fi fi
continue continue
;; ;;
%DEPLIBS%) %DEPLIBS%)
alldeplibs=yes alldeplibs=yes
continue continue
;; ;;
esac # case $deplib esac # case $deplib
skipping to change at line 5614 skipping to change at line 6335
# Read the .la file # Read the .la file
func_source "$lib" func_source "$lib"
# Convert "-framework foo" to "foo.ltframework" # Convert "-framework foo" to "foo.ltframework"
if test -n "$inherited_linker_flags"; then if test -n "$inherited_linker_flags"; then
tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'` tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'`
for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do
case " $new_inherited_linker_flags " in case " $new_inherited_linker_flags " in
*" $tmp_inherited_linker_flag "*) ;; *" $tmp_inherited_linker_flag "*) ;;
*) new_inherited_linker_flags="$new_inherited_linker_flags $tm p_inherited_linker_flag";; *) func_append new_inherited_linker_flags " $tmp_inherited_lin ker_flag";;
esac esac
done done
fi fi
dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltf ramework% -framework \1%g'` dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltf ramework% -framework \1%g'`
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" != prog && test "$linkmode" != lib; }; then
test -n "$dlopen" && dlfiles="$dlfiles $dlopen" test -n "$dlopen" && func_append dlfiles " $dlopen"
test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen" test -n "$dlpreopen" && func_append 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
func_fatal_error "cannot find name of link library for \`$lib' " func_fatal_error "cannot find name of link library for \`$lib' "
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" func_append convenience " $ladir/$objdir/$old_library"
old_convenience="$old_convenience $ladir/$objdir/$old_library" func_append old_convenience " $ladir/$objdir/$old_library"
elif test "$linkmode" != prog && test "$linkmode" != lib; then elif test "$linkmode" != prog && test "$linkmode" != lib; then
func_fatal_error "\`$lib' is not a convenience library" func_fatal_error "\`$lib' is not a convenience library"
fi fi
tmp_libs= tmp_libs=
for deplib in $dependency_libs; do for deplib in $dependency_libs; do
deplibs="$deplib $deplibs" deplibs="$deplib $deplibs"
if $opt_duplicate_deps ; then if $opt_preserve_dup_deps ; then
case "$tmp_libs " in case "$tmp_libs " in
*" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; *" $deplib "*) func_append specialdeplibs " $deplib" ;;
esac esac
fi fi
tmp_libs="$tmp_libs $deplib" func_append tmp_libs " $deplib"
done done
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 if test -n "$old_library" &&
linklib="$l" { test "$prefer_static_libs" = yes ||
done test "$prefer_static_libs,$installed" = "built,no"; }; then
linklib=$old_library
else
for l in $old_library $library_names; do
linklib="$l"
done
fi
if test -z "$linklib"; then if test -z "$linklib"; then
func_fatal_error "cannot find name of link library for \`$lib'" func_fatal_error "cannot find name of link library for \`$lib'"
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
func_fatal_error "cannot -dlopen a convenience library: \`$lib'" func_fatal_error "cannot -dlopen a convenience library: \`$lib'"
fi fi
if test -z "$dlname" || if test -z "$dlname" ||
test "$dlopen_support" != yes || test "$dlopen_support" != yes ||
test "$build_libtool_libs" = no; then 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. We also need to preload any
# dependent libraries so libltdl's deplib preloader doesn't # dependent libraries so libltdl's deplib preloader doesn't
# bomb out in the load deplibs phase. # bomb out in the load deplibs phase.
dlprefiles="$dlprefiles $lib $dependency_libs" func_append dlprefiles " $lib $dependency_libs"
else else
newdlfiles="$newdlfiles $lib" func_append 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" ;;
*) *)
abs_ladir=`cd "$ladir" && pwd` abs_ladir=`cd "$ladir" && pwd`
if test -z "$abs_ladir"; then if test -z "$abs_ladir"; then
skipping to change at line 5697 skipping to change at line 6424
func_warning "passing it literally to the linker, although it mi ght fail" func_warning "passing it literally to the linker, although it mi ght fail"
abs_ladir="$ladir" abs_ladir="$ladir"
fi fi
;; ;;
esac esac
func_basename "$lib" func_basename "$lib"
laname="$func_basename_result" laname="$func_basename_result"
# Find the relevant object directory and library name. # Find the relevant object directory and library name.
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 "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/ $linklib"; then
func_warning "library \`$lib' was moved." func_warning "library \`$lib' was moved."
dir="$ladir" dir="$ladir"
absdir="$abs_ladir" absdir="$abs_ladir"
libdir="$abs_ladir" libdir="$abs_ladir"
else else
dir="$libdir" dir="$lt_sysroot$libdir"
absdir="$libdir" absdir="$lt_sysroot$libdir"
fi fi
test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
else else
if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$lin klib"; then if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$lin klib"; then
dir="$ladir" dir="$ladir"
absdir="$abs_ladir" absdir="$abs_ladir"
# Remove this search path later # Remove this search path later
notinst_path="$notinst_path $abs_ladir" func_append notinst_path " $abs_ladir"
else else
dir="$ladir/$objdir" dir="$ladir/$objdir"
absdir="$abs_ladir/$objdir" absdir="$abs_ladir/$objdir"
# Remove this search path later # Remove this search path later
notinst_path="$notinst_path $abs_ladir" func_append notinst_path " $abs_ladir"
fi fi
fi # $installed = yes fi # $installed = yes
func_stripname 'lib' '.la' "$laname" func_stripname 'lib' '.la' "$laname"
name=$func_stripname_result name=$func_stripname_result
# 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" && test "$linkmode" = prog; then if test -z "$libdir" && test "$linkmode" = prog; then
func_fatal_error "only libraries may -dlpreopen a convenience li brary: \`$lib'" func_fatal_error "only libraries may -dlpreopen a convenience li brary: \`$lib'"
fi fi
# Prefer using a static library (so that no silly _DYNAMIC symbols case "$host" in
# are required to link). # special handling for platforms with PE-DLLs.
if test -n "$old_library"; then *cygwin* | *mingw* | *cegcc* )
newdlprefiles="$newdlprefiles $dir/$old_library" # Linker will automatically link against shared library if bot
# Keep a list of preopened convenience libraries to check h
# that they are being used correctly in the link pass. # static and shared are present. Therefore, ensure we extract
test -z "$libdir" && \ # symbols from the import library if a shared library is prese
dlpreconveniencelibs="$dlpreconveniencelibs $dir/$old_librar nt
y" # (otherwise, the dlopen module name will be incorrect). We d
# Otherwise, use the dlname, so that lt_dlopen finds it. o
elif test -n "$dlname"; then # this by putting the import library name into $newdlprefiles.
newdlprefiles="$newdlprefiles $dir/$dlname" # We recover the dlopen module name by 'saving' the la file
else # name in a special purpose variable, and (later) extracting t
newdlprefiles="$newdlprefiles $dir/$linklib" he
fi # dlname from the la file.
if test -n "$dlname"; then
func_tr_sh "$dir/$linklib"
eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname"
func_append newdlprefiles " $dir/$linklib"
else
func_append newdlprefiles " $dir/$old_library"
# Keep a list of preopened convenience libraries to check
# that they are being used correctly in the link pass.
test -z "$libdir" && \
func_append dlpreconveniencelibs " $dir/$old_library"
fi
;;
* )
# Prefer using a static library (so that no silly _DYNAMIC sym
bols
# are required to link).
if test -n "$old_library"; then
func_append newdlprefiles " $dir/$old_library"
# Keep a list of preopened convenience libraries to check
# that they are being used correctly in the link pass.
test -z "$libdir" && \
func_append dlpreconveniencelibs " $dir/$old_library"
# Otherwise, use the dlname, so that lt_dlopen finds it.
elif test -n "$dlname"; then
func_append newdlprefiles " $dir/$dlname"
else
func_append newdlprefiles " $dir/$linklib"
fi
;;
esac
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" # used for prog,scan pass
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" func_append 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" ||
test "$build_libtool_libs" = no; then test "$build_libtool_libs" = no; then
linkalldeplibs=yes linkalldeplibs=yes
fi fi
tmp_libs= tmp_libs=
for deplib in $dependency_libs; do for deplib in $dependency_libs; do
case $deplib in case $deplib in
-L*) func_stripname '-L' '' "$deplib" -L*) func_stripname '-L' '' "$deplib"
newlib_search_path="$newlib_search_path $func_stripname_res func_resolve_sysroot "$func_stripname_result"
ult" func_append newlib_search_path " $func_resolve_sysroot_resu
lt"
;; ;;
esac esac
# Need to link against all dependency_libs? # Need to link against all dependency_libs?
if test "$linkalldeplibs" = yes; then if test "$linkalldeplibs" = yes; then
deplibs="$deplib $deplibs" deplibs="$deplib $deplibs"
else else
# Need to hardcode shared library paths # Need to hardcode shared library paths
# or/and link against static libraries # or/and link against static libraries
newdependency_libs="$deplib $newdependency_libs" newdependency_libs="$deplib $newdependency_libs"
fi fi
if $opt_duplicate_deps ; then if $opt_preserve_dup_deps ; then
case "$tmp_libs " in case "$tmp_libs " in
*" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; *" $deplib "*) func_append specialdeplibs " $deplib" ;;
esac esac
fi fi
tmp_libs="$tmp_libs $deplib" func_append tmp_libs " $deplib"
done # for deplib done # for deplib
continue continue
fi # $linkmode = prog... fi # $linkmode = prog...
if test "$linkmode,$pass" = "prog,link"; then if test "$linkmode,$pass" = "prog,link"; then
if test -n "$library_names" && if test -n "$library_names" &&
{ { test "$prefer_static_libs" = no || { { test "$prefer_static_libs" = no ||
test "$prefer_static_libs,$installed" = "built,yes"; } || test "$prefer_static_libs,$installed" = "built,yes"; } ||
test -z "$old_library"; }; then test -z "$old_library"; }; then
# We need to hardcode the library path # We need to hardcode the library path
if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then
# Make sure the rpath contains only unique directories. # Make sure the rpath contains only unique directories.
case "$temp_rpath:" in case "$temp_rpath:" in
*"$absdir:"*) ;; *"$absdir:"*) ;;
*) temp_rpath="$temp_rpath$absdir:" ;; *) func_append temp_rpath "$absdir:" ;;
esac esac
fi fi
# 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" *) func_append compile_rpath " $absdir" ;;
esac esac
;; ;;
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" *) func_append finalize_rpath " $libdir" ;;
esac esac
;; ;;
esac esac
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
skipping to change at line 5848 skipping to change at line 6602
link_static=no # Whether the deplib will be linked statically link_static=no # Whether the deplib will be linked statically
use_static_libs=$prefer_static_libs use_static_libs=$prefer_static_libs
if test "$use_static_libs" = built && test "$installed" = yes; then if test "$use_static_libs" = built && test "$installed" = yes; then
use_static_libs=no use_static_libs=no
fi fi
if test -n "$library_names" && if test -n "$library_names" &&
{ test "$use_static_libs" = no || test -z "$old_library"; }; then { test "$use_static_libs" = no || test -z "$old_library"; }; then
case $host in case $host in
*cygwin* | *mingw* | *cegcc*) *cygwin* | *mingw* | *cegcc*)
# No point in relinking DLLs because paths are not encoded # No point in relinking DLLs because paths are not encoded
notinst_deplibs="$notinst_deplibs $lib" func_append notinst_deplibs " $lib"
need_relink=no need_relink=no
;; ;;
*) *)
if test "$installed" = no; then if test "$installed" = no; then
notinst_deplibs="$notinst_deplibs $lib" func_append notinst_deplibs " $lib"
need_relink=yes need_relink=yes
fi fi
;; ;;
esac esac
# This is a shared library # This is a shared library
# Warn about portability, can't link against -module's on some # Warn about portability, can't link against -module's on some
# systems (darwin). Don't bleat about dlopened modules though! # systems (darwin). Don't bleat about dlopened modules though!
dlopenmodule="" dlopenmodule=""
for dlpremoduletest in $dlprefiles; do for dlpremoduletest in $dlprefiles; do
skipping to change at line 5888 skipping to change at line 6642
if test "$linkmode" = lib && if test "$linkmode" = lib &&
test "$hardcode_into_libs" = yes; then 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" *) func_append compile_rpath " $absdir" ;;
esac esac
;; ;;
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" *) func_append finalize_rpath " $libdir" ;;
esac esac
;; ;;
esac esac
fi 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
shift shift
realname="$1" realname="$1"
skipping to change at line 5951 skipping to change at line 6705
# Create $newlib # Create $newlib
if test -f "$output_objdir/$newlib"; then :; else if test -f "$output_objdir/$newlib"; then :; else
func_verbose "generating import library for \`$soname'" func_verbose "generating import library for \`$soname'"
func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?' func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?'
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 "$opt_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 case $host in
*-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;; *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;;
skipping to change at line 6007 skipping to change at line 6761
relink) relink)
if test "$hardcode_direct" = yes && if test "$hardcode_direct" = yes &&
test "$hardcode_direct_absolute" = no; then test "$hardcode_direct_absolute" = no; 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 . # Try looking first in the location we're being installed to .
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" func_append add_dir " -L$inst_prefix_dir$libdir"
;; ;;
esac esac
fi 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
skipping to change at line 6029 skipping to change at line 6783
*) lib_linked=no ;; *) lib_linked=no ;;
esac esac
if test "$lib_linked" != yes; then if test "$lib_linked" != yes; then
func_fatal_configuration "unsupported hardcode properties" func_fatal_configuration "unsupported hardcode properties"
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:" ;; *) func_append 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"
test -n "$add" && compile_deplibs="$add $compile_deplibs" test -n "$add" && compile_deplibs="$add $compile_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"
if test "$hardcode_direct" != yes && if test "$hardcode_direct" != yes &&
test "$hardcode_minus_L" != yes && test "$hardcode_minus_L" != yes &&
test "$hardcode_shlibpath_var" = yes; then test "$hardcode_shlibpath_var" = yes; then
case :$finalize_shlibpath: in case :$finalize_shlibpath: in
*":$libdir:"*) ;; *":$libdir:"*) ;;
*) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; *) func_append finalize_shlibpath "$libdir:" ;;
esac esac
fi fi
fi fi
fi fi
if test "$linkmode" = prog || test "$mode" = relink; then if test "$linkmode" = prog || test "$opt_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 && if test "$hardcode_direct" = yes &&
test "$hardcode_direct_absolute" = no; then test "$hardcode_direct_absolute" = no; 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" 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:" ;; *) func_append finalize_shlibpath "$libdir:" ;;
esac esac
add="-l$name" add="-l$name"
elif test "$hardcode_automatic" = yes; then elif test "$hardcode_automatic" = yes; then
if test -n "$inst_prefix_dir" && if test -n "$inst_prefix_dir" &&
test -f "$inst_prefix_dir$libdir/$linklib" ; then test -f "$inst_prefix_dir$libdir/$linklib" ; then
add="$inst_prefix_dir$libdir/$linklib" add="$inst_prefix_dir$libdir/$linklib"
else else
add="$libdir/$linklib" add="$libdir/$linklib"
fi 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" 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.
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" func_append add_dir " -L$inst_prefix_dir$libdir"
;; ;;
esac esac
fi fi
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
skipping to change at line 6157 skipping to change at line 6911
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*) func_stripname '-R' '' "$libdir" -R*) func_stripname '-R' '' "$libdir"
temp_xrpath=$func_stripname_result temp_xrpath=$func_stripname_result
case " $xrpath " in case " $xrpath " in
*" $temp_xrpath "*) ;; *" $temp_xrpath "*) ;;
*) xrpath="$xrpath $temp_xrpath";; *) func_append xrpath " $temp_xrpath";;
esac;; esac;;
*) temp_deplibs="$temp_deplibs $libdir";; *) func_append temp_deplibs " $libdir";;
esac esac
done done
dependency_libs="$temp_deplibs" dependency_libs="$temp_deplibs"
fi fi
newlib_search_path="$newlib_search_path $absdir" func_append newlib_search_path " $absdir"
# Link against this library # Link against this library
test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
# ... and its dependency_libs # ... and its dependency_libs
tmp_libs= tmp_libs=
for deplib in $dependency_libs; do for deplib in $dependency_libs; do
newdependency_libs="$deplib $newdependency_libs" newdependency_libs="$deplib $newdependency_libs"
if $opt_duplicate_deps ; then case $deplib in
-L*) func_stripname '-L' '' "$deplib"
func_resolve_sysroot "$func_stripname_result";;
*) func_resolve_sysroot "$deplib" ;;
esac
if $opt_preserve_dup_deps ; then
case "$tmp_libs " in case "$tmp_libs " in
*" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; *" $func_resolve_sysroot_result "*)
func_append specialdeplibs " $func_resolve_sysroot_result"
;;
esac esac
fi fi
tmp_libs="$tmp_libs $deplib" func_append tmp_libs " $func_resolve_sysroot_result"
done done
if test "$link_all_deplibs" != no; then if test "$link_all_deplibs" != no; then
# Add the search paths of all dependency libraries # Add the search paths of all dependency libraries
for deplib in $dependency_libs; do for deplib in $dependency_libs; do
path= path=
case $deplib in case $deplib in
-L*) path="$deplib" ;; -L*) path="$deplib" ;;
*.la) *.la)
func_resolve_sysroot "$deplib"
deplib=$func_resolve_sysroot_result
func_dirname "$deplib" "" "." func_dirname "$deplib" "" "."
dir="$func_dirname_result" dir=$func_dirname_result
# We need an absolute path. # We need an absolute path.
case $dir in case $dir in
[\\/]* | [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
func_warning "cannot determine absolute directory name o f \`$dir'" func_warning "cannot determine absolute directory name o f \`$dir'"
absdir="$dir" absdir="$dir"
fi fi
;; ;;
skipping to change at line 6215 skipping to change at line 6977
if test -n "$deplibrary_names" ; then if test -n "$deplibrary_names" ; then
for tmp in $deplibrary_names ; do for tmp in $deplibrary_names ; do
depdepl=$tmp depdepl=$tmp
done done
if test -f "$absdir/$objdir/$depdepl" ; then if test -f "$absdir/$objdir/$depdepl" ; then
depdepl="$absdir/$objdir/$depdepl" depdepl="$absdir/$objdir/$depdepl"
darwin_install_name=`${OTOOL} -L $depdepl | awk '{if ( NR == 2) {print $1;exit}}'` darwin_install_name=`${OTOOL} -L $depdepl | awk '{if ( NR == 2) {print $1;exit}}'`
if test -z "$darwin_install_name"; then if test -z "$darwin_install_name"; then
darwin_install_name=`${OTOOL64} -L $depdepl | aw k '{if (NR == 2) {print $1;exit}}'` darwin_install_name=`${OTOOL64} -L $depdepl | aw k '{if (NR == 2) {print $1;exit}}'`
fi fi
compiler_flags="$compiler_flags ${wl}-dylib_file ${wl} func_append compiler_flags " ${wl}-dylib_file ${wl}${d
${darwin_install_name}:${depdepl}" arwin_install_name}:${depdepl}"
linker_flags="$linker_flags -dylib_file ${darwin_insta func_append linker_flags " -dylib_file ${darwin_instal
ll_name}:${depdepl}" l_name}:${depdepl}"
path= path=
fi fi
fi fi
;; ;;
*) *)
path="-L$absdir/$objdir" path="-L$absdir/$objdir"
;; ;;
esac esac
else else
eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib ` eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib `
skipping to change at line 6266 skipping to change at line 7028
deplibs="$deplib $deplibs" deplibs="$deplib $deplibs"
done done
fi fi
if test "$pass" != dlopen; then if test "$pass" != dlopen; then
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" ;; *) func_append lib_search_path " $dir" ;;
esac esac
done done
newlib_search_path= newlib_search_path=
fi fi
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
skipping to change at line 6324 skipping to change at line 7086
esac esac
;; ;;
esac esac
done done
tmp_libs= tmp_libs=
for deplib in $new_libs; do for deplib in $new_libs; do
case $deplib in case $deplib in
-L*) -L*)
case " $tmp_libs " in case " $tmp_libs " in
*" $deplib "*) ;; *" $deplib "*) ;;
*) tmp_libs="$tmp_libs $deplib" ;; *) func_append tmp_libs " $deplib" ;;
esac esac
;; ;;
*) tmp_libs="$tmp_libs $deplib" ;; *) func_append 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 # Last step: remove runtime libs from dependency_libs
# (they stay in deplibs) # (they stay in deplibs)
tmp_libs= tmp_libs=
for i in $dependency_libs ; do for i in $dependency_libs ; do
case " $predeps $postdeps $compiler_lib_search_path " in case " $predeps $postdeps $compiler_lib_search_path " in
*" $i "*) *" $i "*)
i="" i=""
;; ;;
esac esac
if test -n "$i" ; then if test -n "$i" ; then
tmp_libs="$tmp_libs $i" func_append tmp_libs " $i"
fi fi
done done
dependency_libs=$tmp_libs dependency_libs=$tmp_libs
done # for pass done # for pass
if test "$linkmode" = prog; then if test "$linkmode" = prog; then
dlfiles="$newdlfiles" dlfiles="$newdlfiles"
fi fi
if test "$linkmode" = prog || test "$linkmode" = lib; then if test "$linkmode" = prog || test "$linkmode" = lib; then
dlprefiles="$newdlprefiles" dlprefiles="$newdlprefiles"
fi fi
skipping to change at line 6384 skipping to change at line 7146
test -n "$release" && \ test -n "$release" && \
func_warning "\`-release' is ignored for archives" func_warning "\`-release' is ignored for archives"
test -n "$export_symbols$export_symbols_regex" && \ test -n "$export_symbols$export_symbols_regex" && \
func_warning "\`-export-symbols' is ignored for archives" func_warning "\`-export-symbols' is ignored for archives"
# Now set the variables for building old libraries. # Now set the variables for building old libraries.
build_libtool_libs=no build_libtool_libs=no
oldlibs="$output" oldlibs="$output"
objs="$objs$old_deplibs" func_append 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*)
func_stripname 'lib' '.la' "$outputname" func_stripname 'lib' '.la' "$outputname"
name=$func_stripname_result name=$func_stripname_result
eval shared_ext=\"$shrext_cmds\" eval shared_ext=\"$shrext_cmds\"
eval libname=\"$libname_spec\" eval libname=\"$libname_spec\"
skipping to change at line 6420 skipping to change at line 7182
;; ;;
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
func_fatal_error "cannot build libtool library \`$output' from non -libtool objects on this host:$objs" func_fatal_error "cannot build libtool library \`$output' from non -libtool objects on this host:$objs"
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" func_append libobjs " $objs"
fi fi
fi fi
test "$dlself" != no && \ test "$dlself" != no && \
func_warning "\`-dlopen self' is ignored for libtool libraries" func_warning "\`-dlopen self' is ignored for libtool libraries"
set dummy $rpath set dummy $rpath
shift shift
test "$#" -gt 1 && \ test "$#" -gt 1 && \
func_warning "ignoring multiple \`-rpath's for a libtool library" func_warning "ignoring multiple \`-rpath's for a libtool library"
skipping to change at line 6618 skipping to change at line 7380
loop=$age loop=$age
while test "$loop" -ne 0; do while test "$loop" -ne 0; do
func_arith $current - $loop func_arith $current - $loop
iface=$func_arith_result iface=$func_arith_result
func_arith $loop - 1 func_arith $loop - 1
loop=$func_arith_result loop=$func_arith_result
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" func_append verstring ":${current}.0"
;; ;;
qnx) qnx)
major=".$current" major=".$current"
versuffix=".$current" versuffix=".$current"
;; ;;
sunos) sunos)
major=".$current" major=".$current"
versuffix=".$current.$revision" versuffix=".$current.$revision"
skipping to change at line 6686 skipping to change at line 7448
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
func_generate_dlsyms "$libname" "$libname" "yes" func_generate_dlsyms "$libname" "$libname" "yes"
libobjs="$libobjs $symfileobj" func_append libobjs " $symfileobj"
test "X$libobjs" = "X " && libobjs= test "X$libobjs" = "X " && libobjs=
if test "$mode" != relink; then if test "$opt_mode" != relink; then
# Remove our outputs, but don't remove object files since they # Remove our outputs, but don't remove object files since they
# may have been created when compiling PIC objects. # may have been created when compiling PIC objects.
removelist= removelist=
tempremovelist=`$ECHO "$output_objdir/*"` tempremovelist=`$ECHO "$output_objdir/*"`
for p in $tempremovelist; do for p in $tempremovelist; do
case $p in case $p in
*.$objext | *.gcno) *.$objext | *.gcno)
;; ;;
$output_objdir/$outputname | $output_objdir/$libname.* | $output _objdir/${libname}${release}.*) $output_objdir/$outputname | $output_objdir/$libname.* | $output _objdir/${libname}${release}.*)
if test "X$precious_files_regex" != "X"; then if test "X$precious_files_regex" != "X"; then
if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/nul l 2>&1 if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/nul l 2>&1
then then
continue continue
fi fi
fi fi
removelist="$removelist $p" func_append removelist " $p"
;; ;;
*) ;; *) ;;
esac esac
done done
test -n "$removelist" && \ test -n "$removelist" && \
func_show_eval "${RM}r \$removelist" func_show_eval "${RM}r \$removelist"
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" func_append oldlibs " $output_objdir/$libname.$libext"
# Transform .lo files to .o files. # Transform .lo files to .o files.
oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; $lo2o" | $NL2SP` oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; $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 "s% $path % %g"` # lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"`
# deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"` # deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"`
# dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$pat h % %g"` # dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$pat h % %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" func_replace_sysroot "$libdir"
func_append temp_xrpath " -R$func_replace_sysroot_result"
case "$finalize_rpath " in case "$finalize_rpath " in
*" $libdir "*) ;; *" $libdir "*) ;;
*) finalize_rpath="$finalize_rpath $libdir" ;; *) func_append finalize_rpath " $libdir" ;;
esac esac
done done
if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes ; then if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes ; then
dependency_libs="$temp_xrpath $dependency_libs" dependency_libs="$temp_xrpath $dependency_libs"
fi fi
fi fi
# Make sure dlfiles contains only unique files that won't be dlpreope ned # Make sure dlfiles contains only unique files that won't be dlpreope ned
old_dlfiles="$dlfiles" old_dlfiles="$dlfiles"
dlfiles= dlfiles=
for lib in $old_dlfiles; do for lib in $old_dlfiles; do
case " $dlprefiles $dlfiles " in case " $dlprefiles $dlfiles " in
*" $lib "*) ;; *" $lib "*) ;;
*) dlfiles="$dlfiles $lib" ;; *) func_append dlfiles " $lib" ;;
esac esac
done done
# Make sure dlprefiles contains only unique files # Make sure dlprefiles contains only unique files
old_dlprefiles="$dlprefiles" old_dlprefiles="$dlprefiles"
dlprefiles= dlprefiles=
for lib in $old_dlprefiles; do for lib in $old_dlprefiles; do
case "$dlprefiles " in case "$dlprefiles " in
*" $lib "*) ;; *" $lib "*) ;;
*) dlprefiles="$dlprefiles $lib" ;; *) func_append dlprefiles " $lib" ;;
esac esac
done done
if test "$build_libtool_libs" = yes; then if test "$build_libtool_libs" = yes; then
if test -n "$rpath"; then if test -n "$rpath"; then
case $host in case $host in
*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-ce gcc* | *-*-haiku*) *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-ce gcc* | *-*-haiku*)
# 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 System.ltframework" func_append deplibs " System.ltframework"
;; ;;
*-*-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* | *-*-dragonfly*)
# 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*) *-*-sco3.2v5* | *-*-sco5v6*)
# Causes problems with __ctype # Causes problems with __ctype
;; ;;
*-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
# Compiler inserts libc in the correct place for threads to work # 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" func_append 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
libname_save=$libname libname_save=$libname
release_save=$release release_save=$release
versuffix_save=$versuffix versuffix_save=$versuffix
skipping to change at line 6838 skipping to change at line 7601
if $LTCC $LTCFLAGS -o conftest conftest.c $deplibs; then if $LTCC $LTCFLAGS -o conftest conftest.c $deplibs; then
ldd_output=`ldd conftest` ldd_output=`ldd conftest`
for i in $deplibs; do for i in $deplibs; do
case $i in case $i in
-l*) -l*)
func_stripname -l '' "$i" func_stripname -l '' "$i"
name=$func_stripname_result name=$func_stripname_result
if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
case " $predeps $postdeps " in case " $predeps $postdeps " in
*" $i "*) *" $i "*)
newdeplibs="$newdeplibs $i" func_append newdeplibs " $i"
i="" i=""
;; ;;
esac esac
fi fi
if test -n "$i" ; then if test -n "$i" ; then
libname=`eval "\\$ECHO \"$libname_spec\""` libname=`eval "\\$ECHO \"$libname_spec\""`
deplib_matches=`eval "\\$ECHO \"$library_names_spec\""` deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
set dummy $deplib_matches; shift set dummy $deplib_matches; shift
deplib_match=$1 deplib_match=$1
if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; t hen if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; t hen
newdeplibs="$newdeplibs $i" func_append newdeplibs " $i"
else else
droppeddeps=yes droppeddeps=yes
echo echo
$ECHO "*** Warning: dynamic linker does not accept neede d library $i." $ECHO "*** Warning: dynamic linker does not accept neede d library $i."
echo "*** I have the capability to make that library aut omatically link in when" echo "*** I have the capability to make that library aut omatically link in when"
echo "*** you link to this library. But I can only do t his if you have a" echo "*** you link to this library. But I can only do t his if you have a"
echo "*** shared version of the library, which I believe you do not have" echo "*** shared version of the library, which I believe you do not have"
echo "*** because a test_compile did reveal that the lin ker did not use it for" echo "*** because a test_compile did reveal that the lin ker did not use it for"
echo "*** its dynamic dependency list that programs get resolved with at runtime." echo "*** its dynamic dependency list that programs get resolved with at runtime."
fi fi
fi fi
;; ;;
*) *)
newdeplibs="$newdeplibs $i" func_append newdeplibs " $i"
;; ;;
esac esac
done done
else else
# Error occurred in the first compile. Let's try to salvage # Error occurred 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
case $i in case $i in
-l*) -l*)
func_stripname -l '' "$i" func_stripname -l '' "$i"
name=$func_stripname_result name=$func_stripname_result
$opt_dry_run || $RM conftest $opt_dry_run || $RM conftest
if $LTCC $LTCFLAGS -o conftest conftest.c $i; then if $LTCC $LTCFLAGS -o conftest conftest.c $i; then
ldd_output=`ldd conftest` ldd_output=`ldd conftest`
if test "X$allow_libtool_libs_with_static_runtimes" = "Xye s" ; then if test "X$allow_libtool_libs_with_static_runtimes" = "Xye s" ; then
case " $predeps $postdeps " in case " $predeps $postdeps " in
*" $i "*) *" $i "*)
newdeplibs="$newdeplibs $i" func_append newdeplibs " $i"
i="" i=""
;; ;;
esac esac
fi fi
if test -n "$i" ; then if test -n "$i" ; then
libname=`eval "\\$ECHO \"$libname_spec\""` libname=`eval "\\$ECHO \"$libname_spec\""`
deplib_matches=`eval "\\$ECHO \"$library_names_spec\""` deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
set dummy $deplib_matches; shift set dummy $deplib_matches; shift
deplib_match=$1 deplib_match=$1
if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
newdeplibs="$newdeplibs $i" func_append newdeplibs " $i"
else else
droppeddeps=yes droppeddeps=yes
echo echo
$ECHO "*** Warning: dynamic linker does not accept nee ded library $i." $ECHO "*** Warning: dynamic linker does not accept nee ded library $i."
echo "*** I have the capability to make that library a utomatically link in when" echo "*** I have the capability to make that library a utomatically 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 appear to have" echo "*** shared version of the library, which you do not appear to have"
echo "*** because a test_compile did reveal that the l inker did not use this one" echo "*** because a test_compile did reveal that the l inker did not use this one"
echo "*** as a dynamic dependency that programs can ge t resolved with at runtime." echo "*** as a dynamic dependency that programs can ge t resolved with at runtime."
fi fi
skipping to change at line 6914 skipping to change at line 7677
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 but I was not able to"
echo "*** make it link in! You will probably need to inst all it or some" echo "*** make it link in! You will probably need to inst all it or some"
echo "*** library that it depends on before this library w ill be fully" echo "*** library that it depends on before this library w ill be fully"
echo "*** functional. Installing it before continuing wou ld be even better." echo "*** functional. Installing it before continuing wou ld be even better."
fi fi
;; ;;
*) *)
newdeplibs="$newdeplibs $i" func_append newdeplibs " $i"
;; ;;
esac esac
done done
fi fi
;; ;;
file_magic*) file_magic*)
set dummy $deplibs_check_method; shift set dummy $deplibs_check_method; shift
file_magic_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` file_magic_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
for a_deplib in $deplibs; do for a_deplib in $deplibs; do
case $a_deplib in case $a_deplib in
-l*) -l*)
func_stripname -l '' "$a_deplib" func_stripname -l '' "$a_deplib"
name=$func_stripname_result name=$func_stripname_result
if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
case " $predeps $postdeps " in case " $predeps $postdeps " in
*" $a_deplib "*) *" $a_deplib "*)
newdeplibs="$newdeplibs $a_deplib" func_append newdeplibs " $a_deplib"
a_deplib="" a_deplib=""
;; ;;
esac esac
fi fi
if test -n "$a_deplib" ; then if test -n "$a_deplib" ; then
libname=`eval "\\$ECHO \"$libname_spec\""` libname=`eval "\\$ECHO \"$libname_spec\""`
if test -n "$file_magic_glob"; then
libnameglob=`func_echo_all "$libname" | $SED -e $file_magi
c_glob`
else
libnameglob=$libname
fi
test "$want_nocaseglob" = yes && nocaseglob=`shopt -p nocase
glob`
for i in $lib_search_path $sys_lib_search_path $shlib_search _path; do for i in $lib_search_path $sys_lib_search_path $shlib_search _path; do
potential_libs=`ls $i/$libname[.-]* 2>/dev/null` if test "$want_nocaseglob" = yes; then
shopt -s nocaseglob
potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null`
$nocaseglob
else
potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null`
fi
for potent_lib in $potential_libs; do 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,
skipping to change at line 6962 skipping to change at line 7737
while test -h "$potlib" 2>/dev/null; do while test -h "$potlib" 2>/dev/null; do
potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
case $potliblink in case $potliblink in
[\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
*) potlib=`$ECHO "$potlib" | $SED 's,[^/]*$,,'`"$pot liblink";; *) potlib=`$ECHO "$potlib" | $SED 's,[^/]*$,,'`"$pot liblink";;
esac esac
done done
if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | if eval $file_magic_cmd \"\$potlib\" 2>/dev/null |
$SED -e 10q | $SED -e 10q |
$EGREP "$file_magic_regex" > /dev/null; then $EGREP "$file_magic_regex" > /dev/null; then
newdeplibs="$newdeplibs $a_deplib" func_append newdeplibs " $a_deplib"
a_deplib="" a_deplib=""
break 2 break 2
fi fi
done done
done done
fi 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 library $a_deplib."
skipping to change at line 6987 skipping to change at line 7762
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
;; ;;
*) *)
# Add a -L argument. # Add a -L argument.
newdeplibs="$newdeplibs $a_deplib" func_append newdeplibs " $a_deplib"
;; ;;
esac esac
done # Gone through all deplibs. done # Gone through all deplibs.
;; ;;
match_pattern*) match_pattern*)
set dummy $deplibs_check_method; shift set dummy $deplibs_check_method; shift
match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
for a_deplib in $deplibs; do for a_deplib in $deplibs; do
case $a_deplib in case $a_deplib in
-l*) -l*)
func_stripname -l '' "$a_deplib" func_stripname -l '' "$a_deplib"
name=$func_stripname_result name=$func_stripname_result
if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
case " $predeps $postdeps " in case " $predeps $postdeps " in
*" $a_deplib "*) *" $a_deplib "*)
newdeplibs="$newdeplibs $a_deplib" func_append newdeplibs " $a_deplib"
a_deplib="" a_deplib=""
;; ;;
esac esac
fi fi
if test -n "$a_deplib" ; then if test -n "$a_deplib" ; then
libname=`eval "\\$ECHO \"$libname_spec\""` libname=`eval "\\$ECHO \"$libname_spec\""`
for i in $lib_search_path $sys_lib_search_path $shlib_search _path; do for i in $lib_search_path $sys_lib_search_path $shlib_search _path; do
potential_libs=`ls $i/$libname[.-]* 2>/dev/null` potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
for potent_lib in $potential_libs; do for potent_lib in $potential_libs; do
potlib="$potent_lib" # see symlink-check above in file_m agic test potlib="$potent_lib" # see symlink-check above in file_m agic test
if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \ if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \
$EGREP "$match_pattern_regex" > /dev/null; then $EGREP "$match_pattern_regex" > /dev/null; then
newdeplibs="$newdeplibs $a_deplib" func_append newdeplibs " $a_deplib"
a_deplib="" a_deplib=""
break 2 break 2
fi fi
done done
done done
fi 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 library $a_deplib."
skipping to change at line 7041 skipping to change at line 7816
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: $potl ib"
fi fi
fi fi
;; ;;
*) *)
# Add a -L argument. # Add a -L argument.
newdeplibs="$newdeplibs $a_deplib" func_append newdeplibs " $a_deplib"
;; ;;
esac esac
done # Gone through all deplibs. done # Gone through all deplibs.
;; ;;
none | unknown | *) none | unknown | *)
newdeplibs="" newdeplibs=""
tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g '` tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g '`
if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; the n if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; the n
for i in $predeps $postdeps ; do for i in $predeps $postdeps ; do
# can't use Xsed below, because $i might contain '/' # can't use Xsed below, because $i might contain '/'
skipping to change at line 7145 skipping to change at line 7920
# move library search paths that coincide with paths to not yet # move library search paths that coincide with paths to not yet
# installed libraries to the beginning of the library search list # installed libraries to the beginning of the library search list
new_libs= new_libs=
for path in $notinst_path; do for path in $notinst_path; do
case " $new_libs " in case " $new_libs " in
*" -L$path/$objdir "*) ;; *" -L$path/$objdir "*) ;;
*) *)
case " $deplibs " in case " $deplibs " in
*" -L$path/$objdir "*) *" -L$path/$objdir "*)
new_libs="$new_libs -L$path/$objdir" ;; func_append new_libs " -L$path/$objdir" ;;
esac esac
;; ;;
esac esac
done done
for deplib in $deplibs; do for deplib in $deplibs; do
case $deplib in case $deplib in
-L*) -L*)
case " $new_libs " in case " $new_libs " in
*" $deplib "*) ;; *" $deplib "*) ;;
*) new_libs="$new_libs $deplib" ;; *) func_append new_libs " $deplib" ;;
esac esac
;; ;;
*) new_libs="$new_libs $deplib" ;; *) func_append new_libs " $deplib" ;;
esac esac
done done
deplibs="$new_libs" 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=
dep_rpath= dep_rpath=
rpath="$finalize_rpath" rpath="$finalize_rpath"
test "$mode" != relink && rpath="$compile_rpath$rpath" test "$opt_mode" != relink && rpath="$compile_rpath$rpath"
for libdir in $rpath; do for libdir in $rpath; do
if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_flag_spec"; then
if test -n "$hardcode_libdir_separator"; then if test -n "$hardcode_libdir_separator"; then
func_replace_sysroot "$libdir"
libdir=$func_replace_sysroot_result
if test -z "$hardcode_libdirs"; then if test -z "$hardcode_libdirs"; then
hardcode_libdirs="$libdir" hardcode_libdirs="$libdir"
else else
# Just accumulate the unique libdirs. # Just accumulate the unique libdirs.
case $hardcode_libdir_separator$hardcode_libdirs$hardcode_ libdir_separator in case $hardcode_libdir_separator$hardcode_libdirs$hardcode_ libdir_separator in
*"$hardcode_libdir_separator$libdir$hardcode_libdir_separa tor"*) *"$hardcode_libdir_separator$libdir$hardcode_libdir_separa tor"*)
;; ;;
*) *)
hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_sepa rator$libdir" func_append hardcode_libdirs "$hardcode_libdir_separator $libdir"
;; ;;
esac esac
fi fi
else else
eval flag=\"$hardcode_libdir_flag_spec\" eval flag=\"$hardcode_libdir_flag_spec\"
dep_rpath="$dep_rpath $flag" func_append dep_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" ;; *) func_apped 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 if test -n "$hardcode_libdir_flag_spec_ld"; then
eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\"
else else
eval dep_rpath=\"$hardcode_libdir_flag_spec\" eval dep_rpath=\"$hardcode_libdir_flag_spec\"
fi 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:" func_append 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 "$opt_mode" != relink && shlibpath="$compile_shlibpath$shlibpat h"
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 shared_ext=\"$shrext_cmds\"
eval library_names=\"$library_names_spec\" eval library_names=\"$library_names_spec\"
set dummy $library_names set dummy $library_names
shift shift
realname="$1" realname="$1"
skipping to change at line 7250 skipping to change at line 8027
soname="$realname" soname="$realname"
fi fi
if test -z "$dlname"; then if test -z "$dlname"; then
dlname=$soname dlname=$soname
fi fi
lib="$output_objdir/$realname" lib="$output_objdir/$realname"
linknames= linknames=
for link for link
do do
linknames="$linknames $link" func_append linknames " $link"
done done
# Use standard objects if they are pic # Use standard objects if they are pic
test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$l o2o" | $NL2SP` test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$l o2o" | $NL2SP`
test "X$libobjs" = "X " && libobjs= test "X$libobjs" = "X " && libobjs=
delfiles= delfiles=
if test -n "$export_symbols" && test -n "$include_expsyms"; then if test -n "$export_symbols" && test -n "$include_expsyms"; then
$opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp " $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp "
export_symbols="$output_objdir/$libname.uexp" export_symbols="$output_objdir/$libname.uexp"
delfiles="$delfiles $export_symbols" func_append delfiles " $export_symbols"
fi fi
orig_export_symbols= orig_export_symbols=
case $host_os in case $host_os in
cygwin* | mingw* | cegcc*) cygwin* | mingw* | cegcc*)
if test -n "$export_symbols" && test -z "$export_symbols_regex"; t hen if test -n "$export_symbols" && test -z "$export_symbols_regex"; t hen
# exporting using user supplied symfile # exporting using user supplied symfile
if test "x`$SED 1q $export_symbols`" != xEXPORTS; then if test "x`$SED 1q $export_symbols`" != xEXPORTS; then
# and it's NOT already a .def file. Must figure out # and it's NOT already a .def file. Must figure out
# which of the given symbols are data symbols and tag # which of the given symbols are data symbols and tag
skipping to change at line 7292 skipping to change at line 8069
esac esac
# 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
func_verbose "generating symbol list for \`$libname.la'" func_verbose "generating symbol list for \`$libname.la'"
export_symbols="$output_objdir/$libname.exp" export_symbols="$output_objdir/$libname.exp"
$opt_dry_run || $RM $export_symbols $opt_dry_run || $RM $export_symbols
cmds=$export_symbols_cmds cmds=$export_symbols_cmds
save_ifs="$IFS"; IFS='~' save_ifs="$IFS"; IFS='~'
for cmd in $cmds; do for cmd1 in $cmds; do
IFS="$save_ifs" IFS="$save_ifs"
eval cmd=\"$cmd\" # Take the normal branch if the nm_file_list_spec branch
func_len " $cmd" # doesn't work or if tool conversion is not needed.
len=$func_len_result case $nm_file_list_spec~$to_tool_file_cmd in
if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le - *~func_convert_file_noop | *~func_convert_file_msys_to_w32 |
1; then ~*)
try_normal_branch=yes
eval cmd=\"$cmd1\"
func_len " $cmd"
len=$func_len_result
;;
*)
try_normal_branch=no
;;
esac
if test "$try_normal_branch" = yes \
&& { test "$len" -lt "$max_cmd_len" \
|| test "$max_cmd_len" -le -1; }
then
func_show_eval "$cmd" 'exit $?'
skipped_export=false
elif test -n "$nm_file_list_spec"; then
func_basename "$output"
output_la=$func_basename_result
save_libobjs=$libobjs
save_output=$output
output=${output_objdir}/${output_la}.nm
func_to_tool_file "$output"
libobjs=$nm_file_list_spec$func_to_tool_file_result
func_append delfiles " $output"
func_verbose "creating $NM input file list: $output"
for obj in $save_libobjs; do
func_to_tool_file "$obj"
$ECHO "$func_to_tool_file_result"
done > "$output"
eval cmd=\"$cmd1\"
func_show_eval "$cmd" 'exit $?' func_show_eval "$cmd" 'exit $?'
output=$save_output
libobjs=$save_libobjs
skipped_export=false skipped_export=false
else else
# The command line is too long to execute in one step. # The command line is too long to execute in one step.
func_verbose "using reloadable object file for export list.. ." func_verbose "using reloadable object file for export list.. ."
skipped_export=: skipped_export=:
# Break out early, otherwise skipped_export may be # Break out early, otherwise skipped_export may be
# set to false by a later but shorter cmd. # set to false by a later but shorter cmd.
break break
fi fi
done done
skipping to change at line 7332 skipping to change at line 8141
if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols" ; then if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols" ; then
# The given exports_symbols file has to be filtered, so filter it. # The given exports_symbols file has to be filtered, so filter it.
func_verbose "filter symbol list for \`$libname.la' to tag DATA ex ports" func_verbose "filter symbol list for \`$libname.la' to tag DATA ex ports"
# FIXME: $output_objdir/$libname.filter potentially contains lots of # FIXME: $output_objdir/$libname.filter potentially contains lots of
# 's' commands which not all seds can handle. GNU sed should be fi ne # 's' commands which not all seds can handle. GNU sed should be fi ne
# though. Also, the filter scales superlinearly with the number of # though. Also, the filter scales superlinearly with the number of
# global variables. join(1) would be nice here, but unfortunately # global variables. join(1) would be nice here, but unfortunately
# isn't a blessed tool. # isn't a blessed tool.
$opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\ 1\2|,' < $export_symbols > $output_objdir/$libname.filter $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\ 1\2|,' < $export_symbols > $output_objdir/$libname.filter
delfiles="$delfiles $export_symbols $output_objdir/$libname.filter " func_append delfiles " $export_symbols $output_objdir/$libname.fil ter"
export_symbols=$output_objdir/$libname.def export_symbols=$output_objdir/$libname.def
$opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_exp ort_symbols > $export_symbols $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_exp ort_symbols > $export_symbols
fi fi
tmp_deplibs= tmp_deplibs=
for test_deplib in $deplibs; do for test_deplib in $deplibs; do
case " $convenience " in case " $convenience " in
*" $test_deplib "*) ;; *" $test_deplib "*) ;;
*) *)
tmp_deplibs="$tmp_deplibs $test_deplib" func_append tmp_deplibs " $test_deplib"
;; ;;
esac esac
done done
deplibs="$tmp_deplibs" deplibs="$tmp_deplibs"
if test -n "$convenience"; then if test -n "$convenience"; then
if test -n "$whole_archive_flag_spec" && if test -n "$whole_archive_flag_spec" &&
test "$compiler_needs_object" = yes && test "$compiler_needs_object" = yes &&
test -z "$libobjs"; then test -z "$libobjs"; then
# extract the archives, so we have objects to list. # extract the archives, so we have objects to list.
# TODO: could optimize this to just extract one archive. # TODO: could optimize this to just extract one archive.
whole_archive_flag_spec= whole_archive_flag_spec=
fi fi
if test -n "$whole_archive_flag_spec"; then if test -n "$whole_archive_flag_spec"; then
save_libobjs=$libobjs save_libobjs=$libobjs
eval libobjs=\"\$libobjs $whole_archive_flag_spec\" eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
test "X$libobjs" = "X " && libobjs= test "X$libobjs" = "X " && libobjs=
else else
gentop="$output_objdir/${outputname}x" gentop="$output_objdir/${outputname}x"
generated="$generated $gentop" func_append generated " $gentop"
func_extract_archives $gentop $convenience func_extract_archives $gentop $convenience
libobjs="$libobjs $func_extract_archives_result" func_append libobjs " $func_extract_archives_result"
test "X$libobjs" = "X " && libobjs= test "X$libobjs" = "X " && libobjs=
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" func_append 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 "$opt_mode" = relink; then
$opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $M V $realname ${realname}U)' || exit $? $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $M V $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 "$module" = yes && test -n "$module_cmds" ; then
if test -n "$export_symbols" && test -n "$module_expsym_cmds"; the n if test -n "$export_symbols" && test -n "$module_expsym_cmds"; the n
eval test_cmds=\"$module_expsym_cmds\" eval test_cmds=\"$module_expsym_cmds\"
cmds=$module_expsym_cmds cmds=$module_expsym_cmds
else else
eval test_cmds=\"$module_cmds\" eval test_cmds=\"$module_cmds\"
skipping to change at line 7438 skipping to change at line 8247
objlist= objlist=
last_robj= last_robj=
k=1 k=1
if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && t est "$with_gnu_ld" = yes; then if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && t est "$with_gnu_ld" = yes; then
output=${output_objdir}/${output_la}.lnkscript output=${output_objdir}/${output_la}.lnkscript
func_verbose "creating GNU ld script: $output" func_verbose "creating GNU ld script: $output"
echo 'INPUT (' > $output echo 'INPUT (' > $output
for obj in $save_libobjs for obj in $save_libobjs
do do
$ECHO "$obj" >> $output func_to_tool_file "$obj"
$ECHO "$func_to_tool_file_result" >> $output
done done
echo ')' >> $output echo ')' >> $output
delfiles="$delfiles $output" func_append delfiles " $output"
func_to_tool_file "$output"
output=$func_to_tool_file_result
elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then
output=${output_objdir}/${output_la}.lnk output=${output_objdir}/${output_la}.lnk
func_verbose "creating linker input file list: $output" func_verbose "creating linker input file list: $output"
: > $output : > $output
set x $save_libobjs set x $save_libobjs
shift shift
firstobj= firstobj=
if test "$compiler_needs_object" = yes; then if test "$compiler_needs_object" = yes; then
firstobj="$1 " firstobj="$1 "
shift shift
fi fi
for obj for obj
do do
$ECHO "$obj" >> $output func_to_tool_file "$obj"
$ECHO "$func_to_tool_file_result" >> $output
done done
delfiles="$delfiles $output" func_append delfiles " $output"
output=$firstobj\"$file_list_spec$output\" func_to_tool_file "$output"
output=$firstobj\"$file_list_spec$func_to_tool_file_result\"
else else
if test -n "$save_libobjs"; then if test -n "$save_libobjs"; then
func_verbose "creating reloadable object files..." func_verbose "creating reloadable object files..."
output=$output_objdir/$output_la-${k}.$objext output=$output_objdir/$output_la-${k}.$objext
eval test_cmds=\"$reload_cmds\" eval test_cmds=\"$reload_cmds\"
func_len " $test_cmds" func_len " $test_cmds"
len0=$func_len_result len0=$func_len_result
len=$len0 len=$len0
# Loop over the list of objects to be linked. # Loop over the list of objects to be linked.
skipping to change at line 7509 skipping to change at line 8323
done done
# Handle the remaining objects by creating one last # Handle the remaining objects by creating one last
# reloadable object file. All subsequent reloadable object # reloadable object file. All subsequent reloadable object
# files will link in the last one created. # files will link in the last one created.
test -z "$concat_cmds" || concat_cmds=$concat_cmds~ test -z "$concat_cmds" || concat_cmds=$concat_cmds~
reload_objs="$objlist $last_robj" reload_objs="$objlist $last_robj"
eval concat_cmds=\"\${concat_cmds}$reload_cmds\" eval concat_cmds=\"\${concat_cmds}$reload_cmds\"
if test -n "$last_robj"; then if test -n "$last_robj"; then
eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\" eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\"
fi fi
delfiles="$delfiles $output" func_append delfiles " $output"
else else
output= output=
fi fi
if ${skipped_export-false}; then if ${skipped_export-false}; then
func_verbose "generating symbol list for \`$libname.la'" func_verbose "generating symbol list for \`$libname.la'"
export_symbols="$output_objdir/$libname.exp" export_symbols="$output_objdir/$libname.exp"
$opt_dry_run || $RM $export_symbols $opt_dry_run || $RM $export_symbols
libobjs=$output libobjs=$output
skipping to change at line 7543 skipping to change at line 8357
for cmd in $concat_cmds; do for cmd in $concat_cmds; do
IFS="$save_ifs" IFS="$save_ifs"
$opt_silent || { $opt_silent || {
func_quote_for_expand "$cmd" func_quote_for_expand "$cmd"
eval "func_echo $func_quote_for_expand_result" eval "func_echo $func_quote_for_expand_result"
} }
$opt_dry_run || eval "$cmd" || { $opt_dry_run || eval "$cmd" || {
lt_exit=$? lt_exit=$?
# Restore the uninstalled library and exit # Restore the uninstalled library and exit
if test "$mode" = relink; then if test "$opt_mode" = relink; then
( cd "$output_objdir" && \ ( cd "$output_objdir" && \
$RM "${realname}T" && \ $RM "${realname}T" && \
$MV "${realname}U" "$realname" ) $MV "${realname}U" "$realname" )
fi fi
exit $lt_exit exit $lt_exit
} }
done done
IFS="$save_ifs" IFS="$save_ifs"
skipping to change at line 7576 skipping to change at line 8390
if test -n "$orig_export_symbols"; then if test -n "$orig_export_symbols"; then
# The given exports_symbols file has to be filtered, so filter it. # The given exports_symbols file has to be filtered, so filter it.
func_verbose "filter symbol list for \`$libname.la' to tag DAT A exports" func_verbose "filter symbol list for \`$libname.la' to tag DAT A exports"
# FIXME: $output_objdir/$libname.filter potentially contains l ots of # FIXME: $output_objdir/$libname.filter potentially contains l ots of
# 's' commands which not all seds can handle. GNU sed should b e fine # 's' commands which not all seds can handle. GNU sed should b e fine
# though. Also, the filter scales superlinearly with the numbe r of # though. Also, the filter scales superlinearly with the numbe r of
# global variables. join(1) would be nice here, but unfortunat ely # global variables. join(1) would be nice here, but unfortunat ely
# isn't a blessed tool. # isn't a blessed tool.
$opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\ 1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\ 1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
delfiles="$delfiles $export_symbols $output_objdir/$libname.fi lter" func_append delfiles " $export_symbols $output_objdir/$libname .filter"
export_symbols=$output_objdir/$libname.def export_symbols=$output_objdir/$libname.def
$opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig _export_symbols > $export_symbols $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig _export_symbols > $export_symbols
fi fi
fi fi
libobjs=$output libobjs=$output
# Restore the value of output. # Restore the value of output.
output=$save_output output=$save_output
if test -n "$convenience" && test -n "$whole_archive_flag_spec"; t hen if test -n "$convenience" && test -n "$whole_archive_flag_spec"; t hen
skipping to change at line 7617 skipping to change at line 8431
fi fi
if test -n "$delfiles"; then if test -n "$delfiles"; then
# Append the command to remove temporary files to $cmds. # Append the command to remove temporary files to $cmds.
eval cmds=\"\$cmds~\$RM $delfiles\" eval cmds=\"\$cmds~\$RM $delfiles\"
fi fi
# Add any objects from preloaded convenience libraries # Add any objects from preloaded convenience libraries
if test -n "$dlprefiles"; then if test -n "$dlprefiles"; then
gentop="$output_objdir/${outputname}x" gentop="$output_objdir/${outputname}x"
generated="$generated $gentop" func_append generated " $gentop"
func_extract_archives $gentop $dlprefiles func_extract_archives $gentop $dlprefiles
libobjs="$libobjs $func_extract_archives_result" func_append libobjs " $func_extract_archives_result"
test "X$libobjs" = "X " && libobjs= test "X$libobjs" = "X " && libobjs=
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\" eval cmd=\"$cmd\"
$opt_silent || { $opt_silent || {
func_quote_for_expand "$cmd" func_quote_for_expand "$cmd"
eval "func_echo $func_quote_for_expand_result" eval "func_echo $func_quote_for_expand_result"
} }
$opt_dry_run || eval "$cmd" || { $opt_dry_run || eval "$cmd" || {
lt_exit=$? lt_exit=$?
# Restore the uninstalled library and exit # Restore the uninstalled library and exit
if test "$mode" = relink; then if test "$opt_mode" = relink; then
( cd "$output_objdir" && \ ( cd "$output_objdir" && \
$RM "${realname}T" && \ $RM "${realname}T" && \
$MV "${realname}U" "$realname" ) $MV "${realname}U" "$realname" )
fi fi
exit $lt_exit 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 "$opt_mode" = relink; then
$opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $M V $realname ${realname}T && $MV ${realname}U $realname)' || exit $? $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $M V $realname ${realname}T && $MV ${realname}U $realname)' || exit $?
if test -n "$convenience"; then if test -n "$convenience"; then
if test -z "$whole_archive_flag_spec"; then if test -z "$whole_archive_flag_spec"; then
func_show_eval '${RM}r "$gentop"' func_show_eval '${RM}r "$gentop"'
fi fi
fi fi
exit $EXIT_SUCCESS exit $EXIT_SUCCESS
fi fi
skipping to change at line 7732 skipping to change at line 8546
# -Wl from whole_archive_flag_spec and hope we can get by with # -Wl from whole_archive_flag_spec and hope we can get by with
# turning comma into space.. # turning comma into space..
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 tmp_whole_archive_flags=\"$whole_archive_flag_spec\" eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\"
reload_conv_objs=$reload_objs\ `$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'` reload_conv_objs=$reload_objs\ `$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'`
else else
gentop="$output_objdir/${obj}x" gentop="$output_objdir/${obj}x"
generated="$generated $gentop" func_append generated " $gentop"
func_extract_archives $gentop $convenience func_extract_archives $gentop $convenience
reload_conv_objs="$reload_objs $func_extract_archives_result" reload_conv_objs="$reload_objs $func_extract_archives_result"
fi fi
fi fi
# If we're not building shared, we need to use non_pic_objs
test "$build_libtool_libs" != yes && libobjs="$non_pic_objects"
# Create the old-style object. # Create the old-style object.
reload_objs="$objs$old_deplibs "`$ECHO "$libobjs" | $SP2NL | $SED "/\ .${libext}$/d; /\.lib$/d; $lo2o" | $NL2SP`" $reload_conv_objs" ### testsuit e: skip nested quoting test reload_objs="$objs$old_deplibs "`$ECHO "$libobjs" | $SP2NL | $SED "/\ .${libext}$/d; /\.lib$/d; $lo2o" | $NL2SP`" $reload_conv_objs" ### testsuit e: skip nested quoting test
output="$obj" output="$obj"
func_execute_cmds "$reload_cmds" 'exit $?' func_execute_cmds "$reload_cmds" 'exit $?'
# 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
func_show_eval '${RM}r "$gentop"' func_show_eval '${RM}r "$gentop"'
skipping to change at line 7812 skipping to change at line 8629
;; ;;
esac esac
case $host in case $host in
*-*-darwin*) *-*-darwin*)
# Don't allow lazy linking, it breaks C++ global constructors # Don't allow lazy linking, it breaks C++ global constructors
# But is supposedly fixed on 10.4 or later (yay!). # But is supposedly fixed on 10.4 or later (yay!).
if test "$tagname" = CXX ; then if test "$tagname" = CXX ; then
case ${MACOSX_DEPLOYMENT_TARGET-10.0} in case ${MACOSX_DEPLOYMENT_TARGET-10.0} in
10.[0123]) 10.[0123])
compile_command="$compile_command ${wl}-bind_at_load" func_append compile_command " ${wl}-bind_at_load"
finalize_command="$finalize_command ${wl}-bind_at_load" func_append finalize_command " ${wl}-bind_at_load"
;; ;;
esac esac
fi fi
# Time to change all our "foo.ltframework" stuff back to "-framework foo" # Time to change all our "foo.ltframework" stuff back to "-framework foo"
compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltf ramework% -framework \1%g'` compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltf ramework% -framework \1%g'`
finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).l tframework% -framework \1%g'` finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).l tframework% -framework \1%g'`
;; ;;
esac esac
# move library search paths that coincide with paths to not yet # move library search paths that coincide with paths to not yet
# installed libraries to the beginning of the library search list # installed libraries to the beginning of the library search list
new_libs= new_libs=
for path in $notinst_path; do for path in $notinst_path; do
case " $new_libs " in case " $new_libs " in
*" -L$path/$objdir "*) ;; *" -L$path/$objdir "*) ;;
*) *)
case " $compile_deplibs " in case " $compile_deplibs " in
*" -L$path/$objdir "*) *" -L$path/$objdir "*)
new_libs="$new_libs -L$path/$objdir" ;; func_append new_libs " -L$path/$objdir" ;;
esac esac
;; ;;
esac esac
done done
for deplib in $compile_deplibs; do for deplib in $compile_deplibs; do
case $deplib in case $deplib in
-L*) -L*)
case " $new_libs " in case " $new_libs " in
*" $deplib "*) ;; *" $deplib "*) ;;
*) new_libs="$new_libs $deplib" ;; *) func_append new_libs " $deplib" ;;
esac esac
;; ;;
*) new_libs="$new_libs $deplib" ;; *) func_append new_libs " $deplib" ;;
esac esac
done done
compile_deplibs="$new_libs" compile_deplibs="$new_libs"
compile_command="$compile_command $compile_deplibs" func_append compile_command " $compile_deplibs"
finalize_command="$finalize_command $finalize_deplibs" func_append 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 "*) ;;
*) finalize_rpath="$finalize_rpath $libdir" ;; *) func_append finalize_rpath " $libdir" ;;
esac esac
done done
fi fi
# Now hardcode the library paths # Now hardcode the library paths
rpath= rpath=
hardcode_libdirs= hardcode_libdirs=
for libdir in $compile_rpath $finalize_rpath; do for libdir in $compile_rpath $finalize_rpath; do
if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_flag_spec"; then
if test -n "$hardcode_libdir_separator"; then if test -n "$hardcode_libdir_separator"; then
if test -z "$hardcode_libdirs"; then if test -z "$hardcode_libdirs"; then
hardcode_libdirs="$libdir" hardcode_libdirs="$libdir"
else else
# Just accumulate the unique libdirs. # Just accumulate the unique libdirs.
case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libd ir_separator in case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libd ir_separator in
*"$hardcode_libdir_separator$libdir$hardcode_libdir_separator" *) *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator" *)
;; ;;
*) *)
hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separato r$libdir" func_append hardcode_libdirs "$hardcode_libdir_separator$lib dir"
;; ;;
esac esac
fi fi
else else
eval flag=\"$hardcode_libdir_flag_spec\" eval flag=\"$hardcode_libdir_flag_spec\"
rpath="$rpath $flag" func_append 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" ;; *) func_append perm_rpath " $libdir" ;;
esac esac
fi fi
case $host in case $host in
*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'` testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'`
case :$dllsearchpath: in case :$dllsearchpath: in
*":$libdir:"*) ;; *":$libdir:"*) ;;
::) dllsearchpath=$libdir;; ::) dllsearchpath=$libdir;;
*) dllsearchpath="$dllsearchpath:$libdir";; *) func_append dllsearchpath ":$libdir";;
esac esac
case :$dllsearchpath: in case :$dllsearchpath: in
*":$testbindir:"*) ;; *":$testbindir:"*) ;;
::) dllsearchpath=$testbindir;; ::) dllsearchpath=$testbindir;;
*) dllsearchpath="$dllsearchpath:$testbindir";; *) func_append dllsearchpath ":$testbindir";;
esac 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
skipping to change at line 7929 skipping to change at line 8746
if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_flag_spec"; then
if test -n "$hardcode_libdir_separator"; then if test -n "$hardcode_libdir_separator"; then
if test -z "$hardcode_libdirs"; then if test -z "$hardcode_libdirs"; then
hardcode_libdirs="$libdir" hardcode_libdirs="$libdir"
else else
# Just accumulate the unique libdirs. # Just accumulate the unique libdirs.
case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libd ir_separator in case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libd ir_separator in
*"$hardcode_libdir_separator$libdir$hardcode_libdir_separator" *) *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator" *)
;; ;;
*) *)
hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separato r$libdir" func_append hardcode_libdirs "$hardcode_libdir_separator$lib dir"
;; ;;
esac esac
fi fi
else else
eval flag=\"$hardcode_libdir_flag_spec\" eval flag=\"$hardcode_libdir_flag_spec\"
rpath="$rpath $flag" func_append rpath " $flag"
fi fi
elif test -n "$runpath_var"; then elif test -n "$runpath_var"; then
case "$finalize_perm_rpath " in case "$finalize_perm_rpath " in
*" $libdir "*) ;; *" $libdir "*) ;;
*) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;; *) func_append finalize_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"
eval rpath=\" $hardcode_libdir_flag_spec\" eval rpath=\" $hardcode_libdir_flag_spec\"
fi fi
finalize_rpath="$rpath" finalize_rpath="$rpath"
skipping to change at line 7991 skipping to change at line 8808
esac esac
if test "$wrappers_required" = no; then if test "$wrappers_required" = no; then
# Replace the output file specification. # Replace the output file specification.
compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$outp ut"'%g'` compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$outp ut"'%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 .
exit_status=0 exit_status=0
func_show_eval "$link_command" 'exit_status=$?' func_show_eval "$link_command" 'exit_status=$?'
if test -n "$postlink_cmds"; then
func_to_tool_file "$output"
postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT
@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
func_execute_cmds "$postlink_cmds" 'exit $?'
fi
# Delete the generated files. # Delete the generated files.
if test -f "$output_objdir/${outputname}S.${objext}"; then if test -f "$output_objdir/${outputname}S.${objext}"; then
func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"' func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"'
fi fi
exit $exit_status exit $exit_status
fi fi
if test -n "$compile_shlibpath$finalize_shlibpath"; then if test -n "$compile_shlibpath$finalize_shlibpath"; then
compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibp ath\$$shlibpath_var\" $compile_command" compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibp ath\$$shlibpath_var\" $compile_command"
skipping to change at line 8013 skipping to change at line 8836
finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_v ar\" $finalize_command" finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_v ar\" $finalize_command"
fi fi
compile_var= compile_var=
finalize_var= finalize_var=
if test -n "$runpath_var"; then if test -n "$runpath_var"; then
if test -n "$perm_rpath"; then if 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:" func_append rpath "$dir:"
done done
compile_var="$runpath_var=\"$rpath\$$runpath_var\" " compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
fi fi
if test -n "$finalize_perm_rpath"; then if test -n "$finalize_perm_rpath"; then
# We should set the runpath_var. # We should set the runpath_var.
rpath= rpath=
for dir in $finalize_perm_rpath; do for dir in $finalize_perm_rpath; do
rpath="$rpath$dir:" func_append rpath "$dir:"
done done
finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
fi fi
fi fi
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 "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g '` link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g '`
# Delete the old output file. # Delete the old output file.
$opt_dry_run || $RM $output $opt_dry_run || $RM $output
# Link the executable and exit # Link the executable and exit
func_show_eval "$link_command" 'exit $?' func_show_eval "$link_command" 'exit $?'
if test -n "$postlink_cmds"; then
func_to_tool_file "$output"
postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT
@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
func_execute_cmds "$postlink_cmds" 'exit $?'
fi
exit $EXIT_SUCCESS exit $EXIT_SUCCESS
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"
func_warning "this platform does not like uninstalled shared librari es" func_warning "this platform does not like uninstalled shared librari es"
func_warning "\`$output' will be relinked during installation" func_warning "\`$output' will be relinked during installation"
skipping to change at line 8069 skipping to change at line 8899
fi fi
# Replace the output file specification. # Replace the output file specification.
link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objd ir/$outputname"'%g'` link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objd ir/$outputname"'%g'`
# Delete the old output files. # Delete the old output files.
$opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir /lt-$outputname $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir /lt-$outputname
func_show_eval "$link_command" 'exit $?' func_show_eval "$link_command" 'exit $?'
if test -n "$postlink_cmds"; then
func_to_tool_file "$output_objdir/$outputname"
postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%
'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_
result"'%g'`
func_execute_cmds "$postlink_cmds" 'exit $?'
fi
# Now create the wrapper script. # Now create the wrapper script.
func_verbose "creating $output" func_verbose "creating $output"
# Quote the relink command for shipping. # Quote the relink command for shipping.
if test -n "$relink_command"; then if test -n "$relink_command"; then
# Preserve any variables that may affect compiler behavior # Preserve any variables that may affect compiler behavior
for var in $variables_saved_for_relink; do for var in $variables_saved_for_relink; do
if eval test -z \"\${$var+set}\"; then if eval test -z \"\${$var+set}\"; then
relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" relink_command="{ test -z \"\${$var+set}\" || $lt_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
skipping to change at line 8166 skipping to change at line 9002
oldobjs="$libobjs_save $symfileobj" oldobjs="$libobjs_save $symfileobj"
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="$old_deplibs $non_pic_objects"
if test "$preload" = yes && test -f "$symfileobj"; then if test "$preload" = yes && test -f "$symfileobj"; then
oldobjs="$oldobjs $symfileobj" func_append oldobjs " $symfileobj"
fi fi
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"
generated="$generated $gentop" func_append generated " $gentop"
func_extract_archives $gentop $addlibs func_extract_archives $gentop $addlibs
oldobjs="$oldobjs $func_extract_archives_result" func_append oldobjs " $func_extract_archives_result"
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 cmds=$old_archive_from_new_cmds
else else
# Add any objects from preloaded convenience libraries # Add any objects from preloaded convenience libraries
if test -n "$dlprefiles"; then if test -n "$dlprefiles"; then
gentop="$output_objdir/${outputname}x" gentop="$output_objdir/${outputname}x"
generated="$generated $gentop" func_append generated " $gentop"
func_extract_archives $gentop $dlprefiles func_extract_archives $gentop $dlprefiles
oldobjs="$oldobjs $func_extract_archives_result" func_append oldobjs " $func_extract_archives_result"
fi fi
# POSIX demands no paths to be encoded in archives. We have # POSIX demands no paths to be encoded in archives. We have
# to avoid creating archives with duplicate basenames if we # to avoid creating archives with duplicate basenames if we
# might have to extract them afterwards, e.g., when creating a # might have to extract them afterwards, e.g., when creating a
# static archive out of a convenience library, or when linking # static archive out of a convenience library, or when linking
# the entirety of a libtool archive into another (currently # the entirety of a libtool archive into another (currently
# not supported by libtool). # not supported by libtool).
if (for obj in $oldobjs if (for obj in $oldobjs
do do
func_basename "$obj" func_basename "$obj"
$ECHO "$func_basename_result" $ECHO "$func_basename_result"
done | sort | sort -uc >/dev/null 2>&1); then done | sort | sort -uc >/dev/null 2>&1); then
: :
else else
echo "copying selected object files to avoid basename conflicts... " echo "copying selected object files to avoid basename conflicts... "
gentop="$output_objdir/${outputname}x" gentop="$output_objdir/${outputname}x"
generated="$generated $gentop" func_append generated " $gentop"
func_mkdir_p "$gentop" func_mkdir_p "$gentop"
save_oldobjs=$oldobjs save_oldobjs=$oldobjs
oldobjs= oldobjs=
counter=1 counter=1
for obj in $save_oldobjs for obj in $save_oldobjs
do do
func_basename "$obj" func_basename "$obj"
objbase="$func_basename_result" objbase="$func_basename_result"
case " $oldobjs " in case " $oldobjs " in
" ") oldobjs=$obj ;; " ") oldobjs=$obj ;;
skipping to change at line 8233 skipping to change at line 9069
# overlaps. # overlaps.
newobj=lt$counter-$objbase newobj=lt$counter-$objbase
func_arith $counter + 1 func_arith $counter + 1
counter=$func_arith_result counter=$func_arith_result
case " $oldobjs " in case " $oldobjs " in
*[\ /]"$newobj "*) ;; *[\ /]"$newobj "*) ;;
*) if test ! -f "$gentop/$newobj"; then break; fi ;; *) if test ! -f "$gentop/$newobj"; then break; fi ;;
esac esac
done done
func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$ne wobj" func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$ne wobj"
oldobjs="$oldobjs $gentop/$newobj" func_append oldobjs " $gentop/$newobj"
;; ;;
*) oldobjs="$oldobjs $obj" ;; *) func_append oldobjs " $obj" ;;
esac esac
done done
fi fi
eval cmds=\"$old_archive_cmds\" eval cmds=\"$old_archive_cmds\"
func_len " $cmds" func_len " $cmds"
len=$func_len_result len=$func_len_result
if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; the n if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; the n
cmds=$old_archive_cmds cmds=$old_archive_cmds
elif test -n "$archiver_list_spec"; then
func_verbose "using command file archive linking..."
for obj in $oldobjs
do
func_to_tool_file "$obj"
$ECHO "$func_to_tool_file_result"
done > $output_objdir/$libname.libcmd
func_to_tool_file "$output_objdir/$libname.libcmd"
oldobjs=" $archiver_list_spec$func_to_tool_file_result"
cmds=$old_archive_cmds
else else
# the command line is too long to link in one step, link in parts # the command line is too long to link in one step, link in parts
func_verbose "using piecewise archive linking..." func_verbose "using piecewise archive linking..."
save_RANLIB=$RANLIB save_RANLIB=$RANLIB
RANLIB=: RANLIB=:
objlist= objlist=
concat_cmds= concat_cmds=
save_oldobjs=$oldobjs save_oldobjs=$oldobjs
oldobjs= oldobjs=
# Is there a better way of finding the last object in the list? # Is there a better way of finding the last object in the list?
skipping to change at line 8341 skipping to change at line 9187
# 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)
func_basename "$deplib" func_basename "$deplib"
name="$func_basename_result" name="$func_basename_result"
eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
test -z "$libdir" && \ test -z "$libdir" && \
func_fatal_error "\`$deplib' is not a valid libtool archiv e" func_fatal_error "\`$deplib' is not a valid libtool archiv e"
newdependency_libs="$newdependency_libs $libdir/$name" func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$na
me"
;;
-L*)
func_stripname -L '' "$deplib"
func_replace_sysroot "$func_stripname_result"
func_append newdependency_libs " -L$func_replace_sysroot_res
ult"
;;
-R*)
func_stripname -R '' "$deplib"
func_replace_sysroot "$func_stripname_result"
func_append newdependency_libs " -R$func_replace_sysroot_res
ult"
;; ;;
*) newdependency_libs="$newdependency_libs $deplib" ;; *) func_append newdependency_libs " $deplib" ;;
esac esac
done done
dependency_libs="$newdependency_libs" dependency_libs="$newdependency_libs"
newdlfiles= newdlfiles=
for lib in $dlfiles; do for lib in $dlfiles; do
case $lib in case $lib in
*.la) *.la)
func_basename "$lib" func_basename "$lib"
name="$func_basename_result" name="$func_basename_result"
eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
test -z "$libdir" && \ test -z "$libdir" && \
func_fatal_error "\`$lib' is not a valid libtool archive" func_fatal_error "\`$lib' is not a valid libtool archive"
newdlfiles="$newdlfiles $libdir/$name" func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name"
;; ;;
*) newdlfiles="$newdlfiles $lib" ;; *) func_append newdlfiles " $lib" ;;
esac esac
done done
dlfiles="$newdlfiles" dlfiles="$newdlfiles"
newdlprefiles= newdlprefiles=
for lib in $dlprefiles; do for lib in $dlprefiles; do
case $lib in case $lib in
*.la) *.la)
# Only pass preopened files to the pseudo-archive (for # Only pass preopened files to the pseudo-archive (for
# eventual linking with the app. that links it) if we # eventual linking with the app. that links it) if we
# didn't already link the preopened objects directly into # didn't already link the preopened objects directly into
# the library: # the library:
func_basename "$lib" func_basename "$lib"
name="$func_basename_result" name="$func_basename_result"
eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
test -z "$libdir" && \ test -z "$libdir" && \
func_fatal_error "\`$lib' is not a valid libtool archive" func_fatal_error "\`$lib' is not a valid libtool archive"
newdlprefiles="$newdlprefiles $libdir/$name" func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name"
;; ;;
esac esac
done done
dlprefiles="$newdlprefiles" dlprefiles="$newdlprefiles"
else else
newdlfiles= newdlfiles=
for lib in $dlfiles; do for lib in $dlfiles; do
case $lib in case $lib in
[\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
*) abs=`pwd`"/$lib" ;; *) abs=`pwd`"/$lib" ;;
esac esac
newdlfiles="$newdlfiles $abs" func_append newdlfiles " $abs"
done done
dlfiles="$newdlfiles" dlfiles="$newdlfiles"
newdlprefiles= newdlprefiles=
for lib in $dlprefiles; do for lib in $dlprefiles; do
case $lib in case $lib in
[\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
*) abs=`pwd`"/$lib" ;; *) abs=`pwd`"/$lib" ;;
esac esac
newdlprefiles="$newdlprefiles $abs" func_append newdlprefiles " $abs"
done done
dlprefiles="$newdlprefiles" dlprefiles="$newdlprefiles"
fi fi
$RM $output $RM $output
# place dlname in correct position for cygwin # place dlname in correct position for cygwin
# In fact, it would be nice if we could use this code for all targ et # In fact, it would be nice if we could use this code for all targ et
# systems that can't hard-code library paths into their executable s # systems that can't hard-code library paths into their executable s
# and that have no shared library path variable independent of PAT H, # and that have no shared library path variable independent of PAT H,
# but it turns out we can't easily determine that from inspecting # but it turns out we can't easily determine that from inspecting
# libtool variables, so we have to hard-code the OSs to which it # libtool variables, so we have to hard-code the OSs to which it
skipping to change at line 8482 skipping to change at line 9338
} }
# 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.
func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S " ../$outputname" "$outputname" )' 'exit $?' func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S " ../$outputname" "$outputname" )' 'exit $?'
;; ;;
esac esac
exit $EXIT_SUCCESS exit $EXIT_SUCCESS
} }
{ test "$mode" = link || test "$mode" = relink; } && { test "$opt_mode" = link || test "$opt_mode" = relink; } &&
func_mode_link ${1+"$@"} func_mode_link ${1+"$@"}
# func_mode_uninstall arg... # func_mode_uninstall arg...
func_mode_uninstall () func_mode_uninstall ()
{ {
$opt_debug $opt_debug
RM="$nonopt" RM="$nonopt"
files= files=
rmforce= rmforce=
exit_status=0 exit_status=0
# 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"
for arg for arg
do do
case $arg in case $arg in
-f) RM="$RM $arg"; rmforce=yes ;; -f) func_append RM " $arg"; rmforce=yes ;;
-*) RM="$RM $arg" ;; -*) func_append RM " $arg" ;;
*) files="$files $arg" ;; *) func_append files " $arg" ;;
esac esac
done done
test -z "$RM" && \ test -z "$RM" && \
func_fatal_help "you must specify an RM program" func_fatal_help "you must specify an RM program"
rmdirs= rmdirs=
origobjdir="$objdir"
for file in $files; do for file in $files; do
func_dirname "$file" "" "." func_dirname "$file" "" "."
dir="$func_dirname_result" dir="$func_dirname_result"
if test "X$dir" = X.; then if test "X$dir" = X.; then
objdir="$origobjdir" odir="$objdir"
else else
objdir="$dir/$origobjdir" odir="$dir/$objdir"
fi fi
func_basename "$file" func_basename "$file"
name="$func_basename_result" name="$func_basename_result"
test "$mode" = uninstall && objdir="$dir" test "$opt_mode" = uninstall && odir="$dir"
# Remember objdir for removal later, being careful to avoid duplicate # Remember odir for removal later, being careful to avoid duplicates
s if test "$opt_mode" = clean; then
if test "$mode" = clean; then
case " $rmdirs " in case " $rmdirs " in
*" $objdir "*) ;; *" $odir "*) ;;
*) rmdirs="$rmdirs $objdir" ;; *) func_append rmdirs " $odir" ;;
esac esac
fi fi
# Don't error if the file doesn't exist and rm -f was used. # Don't error if the file doesn't exist and rm -f was used.
if { test -L "$file"; } >/dev/null 2>&1 || if { test -L "$file"; } >/dev/null 2>&1 ||
{ test -h "$file"; } >/dev/null 2>&1 || { test -h "$file"; } >/dev/null 2>&1 ||
test -f "$file"; then test -f "$file"; then
: :
elif test -d "$file"; then elif test -d "$file"; then
exit_status=1 exit_status=1
skipping to change at line 8555 skipping to change at line 9410
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 func_lalib_p "$file"; then if func_lalib_p "$file"; then
func_source $dir/$name func_source $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" func_append rmfiles " $odir/$n"
done done
test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library" test -n "$old_library" && func_append rmfiles " $odir/$old_library "
case "$mode" in case "$opt_mode" in
clean) clean)
case " $library_names " in case " $library_names " in
# " " in the beginning catches empty $dlname
*" $dlname "*) ;; *" $dlname "*) ;;
*) rmfiles="$rmfiles $objdir/$dlname" ;; *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;;
esac esac
test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${n ame}i" test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${n ame}i"
;; ;;
uninstall) 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.
func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1'
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.
func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1'
skipping to change at line 8594 skipping to change at line 9448
*.lo) *.lo)
# Possibly a libtool object, so verify it. # Possibly a libtool object, so verify it.
if func_lalib_p "$file"; then if func_lalib_p "$file"; then
# Read the .lo file # Read the .lo file
func_source $dir/$name func_source $dir/$name
# Add PIC object to the list of files to remove. # Add PIC object to the list of files to remove.
if test -n "$pic_object" && if test -n "$pic_object" &&
test "$pic_object" != none; then test "$pic_object" != none; then
rmfiles="$rmfiles $dir/$pic_object" func_append rmfiles " $dir/$pic_object"
fi fi
# Add non-PIC object to the list of files to remove. # Add non-PIC object to the list of files to remove.
if test -n "$non_pic_object" && if test -n "$non_pic_object" &&
test "$non_pic_object" != none; then test "$non_pic_object" != none; then
rmfiles="$rmfiles $dir/$non_pic_object" func_append rmfiles " $dir/$non_pic_object"
fi fi
fi fi
;; ;;
*) *)
if test "$mode" = clean ; then if test "$opt_mode" = clean ; then
noexename=$name noexename=$name
case $file in case $file in
*.exe) *.exe)
func_stripname '' '.exe' "$file" func_stripname '' '.exe' "$file"
file=$func_stripname_result file=$func_stripname_result
func_stripname '' '.exe' "$name" func_stripname '' '.exe' "$name"
noexename=$func_stripname_result noexename=$func_stripname_result
# $file with .exe has already been added to rmfiles, # $file with .exe has already been added to rmfiles,
# add $file without .exe # add $file without .exe
rmfiles="$rmfiles $file" func_append rmfiles " $file"
;; ;;
esac esac
# Do a test to see if this is a libtool program. # Do a test to see if this is a libtool program.
if func_ltwrapper_p "$file"; then if func_ltwrapper_p "$file"; then
if func_ltwrapper_executable_p "$file"; then if func_ltwrapper_executable_p "$file"; then
func_ltwrapper_scriptname "$file" func_ltwrapper_scriptname "$file"
relink_command= relink_command=
func_source $func_ltwrapper_scriptname_result func_source $func_ltwrapper_scriptname_result
rmfiles="$rmfiles $func_ltwrapper_scriptname_result" func_append rmfiles " $func_ltwrapper_scriptname_result"
else else
relink_command= relink_command=
func_source $dir/$noexename func_source $dir/$noexename
fi fi
# note $name still contains .exe if it was in $file originally # note $name still contains .exe if it was in $file originally
# as does the version of $file that was added into $rmfiles # as does the version of $file that was added into $rmfiles
rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}" func_append rmfiles " $odir/$name $odir/${name}S.${objext}"
if test "$fast_install" = yes && test -n "$relink_command"; then if test "$fast_install" = yes && test -n "$relink_command"; then
rmfiles="$rmfiles $objdir/lt-$name" func_append rmfiles " $odir/lt-$name"
fi fi
if test "X$noexename" != "X$name" ; then if test "X$noexename" != "X$name" ; then
rmfiles="$rmfiles $objdir/lt-${noexename}.c" func_append rmfiles " $odir/lt-${noexename}.c"
fi fi
fi fi
fi fi
;; ;;
esac esac
func_show_eval "$RM $rmfiles" 'exit_status=1' func_show_eval "$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
func_show_eval "rmdir $dir >/dev/null 2>&1" func_show_eval "rmdir $dir >/dev/null 2>&1"
fi fi
done done
exit $exit_status exit $exit_status
} }
{ test "$mode" = uninstall || test "$mode" = clean; } && { test "$opt_mode" = uninstall || test "$opt_mode" = clean; } &&
func_mode_uninstall ${1+"$@"} func_mode_uninstall ${1+"$@"}
test -z "$mode" && { test -z "$opt_mode" && {
help="$generic_help" help="$generic_help"
func_fatal_help "you must specify a MODE" func_fatal_help "you must specify a MODE"
} }
test -z "$exec_cmd" && \ test -z "$exec_cmd" && \
func_fatal_help "invalid operation mode \`$mode'" func_fatal_help "invalid operation mode \`$opt_mode'"
if test -n "$exec_cmd"; then if test -n "$exec_cmd"; then
eval exec "$exec_cmd" eval exec "$exec_cmd"
exit $EXIT_FAILURE exit $EXIT_FAILURE
fi fi
exit $exit_status exit $exit_status
# The TAGs below are defined such that we never get into a situation # The TAGs below are defined such that we never get into a situation
# in which we disable both kinds of libraries. Given conflicting # in which we disable both kinds of libraries. Given conflicting
 End of changes. 348 change blocks. 
788 lines changed or deleted 1714 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/