diff options
Diffstat (limited to 'package/libtirpc/patches/patch-ltmain_sh')
-rw-r--r-- | package/libtirpc/patches/patch-ltmain_sh | 10637 |
1 files changed, 0 insertions, 10637 deletions
diff --git a/package/libtirpc/patches/patch-ltmain_sh b/package/libtirpc/patches/patch-ltmain_sh deleted file mode 100644 index cc8787ac2..000000000 --- a/package/libtirpc/patches/patch-ltmain_sh +++ /dev/null @@ -1,10637 +0,0 @@ -$Id: update-patches 24 2008-08-31 14:56:13Z wbx $ ---- libtirpc-0.2.0.orig/ltmain.sh 2008-08-30 00:27:25.000000000 +0200 -+++ libtirpc-0.2.0/ltmain.sh 2009-05-29 20:18:46.665705040 +0200 -@@ -1,52 +1,83 @@ --# ltmain.sh - Provide generalized library-building support services. --# NOTE: Changing this file will not affect anything until you rerun configure. --# --# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, --# 2007, 2008 Free Software Foundation, Inc. --# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996 --# --# This program is free software; you can redistribute it and/or modify -+# Generated from ltmain.m4sh. -+ -+# ltmain.sh (GNU libtool) 2.2.6 -+# Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996 -+ -+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, 2007 2008 Free Software Foundation, Inc. -+# This is free software; see the source for copying conditions. There is NO -+# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -+ -+# 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 - # the Free Software Foundation; either version 2 of the License, or - # (at your option) any later version. - # --# This program is distributed in the hope that it will be useful, but -+# As a special exception to the GNU General Public License, -+# if you distribute this file as part of a program or library that -+# is built using GNU Libtool, you may include this file under the -+# same distribution terms that you use for the rest of that program. -+# -+# GNU Libtool is distributed in the hope that it will be useful, but - # WITHOUT ANY WARRANTY; without even the implied warranty of - # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - # General Public License for more details. - # - # You should have received a copy of the GNU General Public License --# along with this program; if not, write to the Free Software --# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. --# --# As a special exception to the GNU General Public License, if you --# distribute this file as part of a program that contains a --# configuration script generated by Autoconf, you may include it under --# the same distribution terms that you use for the rest of that program. -- --basename="s,^.*/,,g" -- --# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh --# is ksh but when the shell is invoked as "sh" and the current value of --# the _XPG environment variable is not equal to 1 (one), the special --# positional parameter $0, within a function call, is the name of the --# function. --progpath="$0" -- --# The name of this program: --progname=`echo "$progpath" | $SED $basename` --modename="$progname" -+# along with GNU Libtool; see the file COPYING. If not, a copy -+# can be downloaded from http://www.gnu.org/licenses/gpl.html, -+# or obtained by writing to the Free Software Foundation, Inc., -+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - --# Global variables: --EXIT_SUCCESS=0 --EXIT_FAILURE=1 -+# Usage: $progname [OPTION]... [MODE-ARG]... -+# -+# Provide generalized library-building support services. -+# -+# --config show all configuration variables -+# --debug enable verbose shell tracing -+# -n, --dry-run display commands without modifying any files -+# --features display basic configuration information and exit -+# --mode=MODE use operation mode MODE -+# --preserve-dup-deps don't remove duplicate dependency libraries -+# --quiet, --silent don't print informational messages -+# --tag=TAG use configuration variables from tag TAG -+# -v, --verbose print informational messages (default) -+# --version print version information -+# -h, --help print short or long help message -+# -+# MODE must be one of the following: -+# -+# clean remove files from the build directory -+# compile compile a source file into a libtool object -+# execute automatically set library path, then run a program -+# finish complete the installation of libtool libraries -+# install install libraries or executables -+# link create a library or an executable -+# uninstall remove libraries from an installed directory -+# -+# MODE-ARGS vary depending on the MODE. -+# Try `$progname --help --mode=MODE' for a more detailed description of MODE. -+# -+# When reporting a bug, please describe a test case to reproduce it and -+# include the following information: -+# -+# host-triplet: $host -+# shell: $SHELL -+# compiler: $LTCC -+# compiler flags: $LTCFLAGS -+# linker: $LD (gnu? $with_gnu_ld) -+# $progname: (GNU libtool) 2.2.6 -+# automake: $automake_version -+# autoconf: $autoconf_version -+# -+# Report bugs to <bug-libtool@gnu.org>. - - PROGRAM=ltmain.sh - PACKAGE=libtool --VERSION=1.5.26 --TIMESTAMP=" (1.1220.2.493 2008/02/01 16:58:18)" -+VERSION=2.2.6 -+TIMESTAMP="" -+package_revision=1.3012 - --# Be Bourne compatible (taken from Autoconf:_AS_BOURNE_COMPATIBLE). -+# Be Bourne compatible - if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then - emulate sh - NULLCMD=: -@@ -60,104 +91,261 @@ fi - BIN_SH=xpg4; export BIN_SH # for Tru64 - DUALCASE=1; export DUALCASE # for MKS sh - --# Check that we have a working $echo. --if test "X$1" = X--no-reexec; then -- # Discard the --no-reexec flag, and continue. -- shift --elif test "X$1" = X--fallback-echo; then -- # Avoid inline document here, it may be left over -- : --elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then -- # Yippee, $echo works! -- : --else -- # Restart under the correct shell, and then maybe $echo will work. -- exec $SHELL "$progpath" --no-reexec ${1+"$@"} --fi -- --if test "X$1" = X--fallback-echo; then -- # used as fallback echo -- shift -- cat <<EOF --$* --EOF -- exit $EXIT_SUCCESS --fi -- --default_mode= --help="Try \`$progname --help' for more information." --magic="%%%MAGIC variable%%%" --mkdir="mkdir" --mv="mv -f" --rm="rm -f" -- --# Sed substitution that helps us do robust quoting. It backslashifies --# metacharacters that are still active within double-quoted strings. --Xsed="${SED}"' -e 1s/^X//' --sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g' --# test EBCDIC or ASCII --case `echo X|tr X '\101'` in -- A) # ASCII based system -- # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr -- SP2NL='tr \040 \012' -- NL2SP='tr \015\012 \040\040' -- ;; -- *) # EBCDIC based system -- SP2NL='tr \100 \n' -- NL2SP='tr \r\n \100\100' -- ;; --esac -- --# NLS nuisances. -+# NLS nuisances: We save the old values to restore during execute mode. - # Only set LANG and LC_ALL to C if already set. - # These must not be set unconditionally because not all systems understand - # e.g. LANG=C (notably SCO). --# We save the old values to restore during execute mode. --lt_env= -+lt_user_locale= -+lt_safe_locale= - for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES - do - eval "if test \"\${$lt_var+set}\" = set; then -- save_$lt_var=\$$lt_var -- lt_env=\"$lt_var=\$$lt_var \$lt_env\" -- $lt_var=C -+ save_$lt_var=\$$lt_var -+ $lt_var=C - export $lt_var -+ lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\" -+ lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\" - fi" - done - --if test -n "$lt_env"; then -- lt_env="env $lt_env" --fi -+$lt_unset CDPATH -+ -+ -+ -+ -+ -+: ${CP="cp -f"} -+: ${ECHO="echo"} -+: ${EGREP="/usr/bin/grep -E"} -+: ${FGREP="/usr/bin/grep -F"} -+: ${GREP="/usr/bin/grep"} -+: ${LN_S="ln -s"} -+: ${MAKE="make"} -+: ${MKDIR="mkdir"} -+: ${MV="mv -f"} -+: ${RM="rm -f"} -+: ${SED="/opt/local/bin/gsed"} -+: ${SHELL="${CONFIG_SHELL-/bin/sh}"} -+: ${Xsed="$SED -e 1s/^X//"} -+ -+# Global variables: -+EXIT_SUCCESS=0 -+EXIT_FAILURE=1 -+EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing. -+EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake. -+ -+exit_status=$EXIT_SUCCESS - - # Make sure IFS has a sensible default - lt_nl=' - ' - IFS=" $lt_nl" - --if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then -- $echo "$modename: not configured to build any kind of library" 1>&2 -- $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 -- exit $EXIT_FAILURE --fi -+dirname="s,/[^/]*$,," -+basename="s,^.*/,," - --# Global variables. --mode=$default_mode --nonopt= --prev= --prevopt= --run= --show="$echo" --show_help= --execute_dlfiles= --duplicate_deps=no --preserve_args= --lo2o="s/\\.lo\$/.${objext}/" --o2lo="s/\\.${objext}\$/.lo/" --extracted_archives= --extracted_serial=0 -+# func_dirname_and_basename file append nondir_replacement -+# perform func_basename and func_dirname in a single function -+# call: -+# dirname: Compute the dirname of FILE. If nonempty, -+# add APPEND to the result, otherwise set result -+# to NONDIR_REPLACEMENT. -+# value returned in "$func_dirname_result" -+# basename: Compute filename of FILE. -+# value retuned in "$func_basename_result" -+# Implementation must be kept synchronized with func_dirname -+# and func_basename. For efficiency, we do not delegate to -+# those functions but instead duplicate the functionality here. -+func_dirname_and_basename () -+{ -+ # Extract subdirectory from the argument. -+ func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"` -+ if test "X$func_dirname_result" = "X${1}"; then -+ func_dirname_result="${3}" -+ else -+ func_dirname_result="$func_dirname_result${2}" -+ fi -+ func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"` -+} -+ -+# Generated shell functions inserted here. -+ -+# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh -+# is ksh but when the shell is invoked as "sh" and the current value of -+# the _XPG environment variable is not equal to 1 (one), the special -+# positional parameter $0, within a function call, is the name of the -+# function. -+progpath="$0" -+ -+# The name of this program: -+# In the unlikely event $progname began with a '-', it would play havoc with -+# func_echo (imagine progname=-n), so we prepend ./ in that case: -+func_dirname_and_basename "$progpath" -+progname=$func_basename_result -+case $progname in -+ -*) progname=./$progname ;; -+esac -+ -+# Make sure we have an absolute path for reexecution: -+case $progpath in -+ [\\/]*|[A-Za-z]:\\*) ;; -+ *[\\/]*) -+ progdir=$func_dirname_result -+ progdir=`cd "$progdir" && pwd` -+ progpath="$progdir/$progname" -+ ;; -+ *) -+ save_IFS="$IFS" -+ IFS=: -+ for progdir in $PATH; do -+ IFS="$save_IFS" -+ test -x "$progdir/$progname" && break -+ done -+ IFS="$save_IFS" -+ test -n "$progdir" || progdir=`pwd` -+ progpath="$progdir/$progname" -+ ;; -+esac -+ -+# Sed substitution that helps us do robust quoting. It backslashifies -+# metacharacters that are still active within double-quoted strings. -+Xsed="${SED}"' -e 1s/^X//' -+sed_quote_subst='s/\([`"$\\]\)/\\\1/g' -+ -+# Same as above, but do not quote variable references. -+double_quote_subst='s/\(["`\\]\)/\\\1/g' -+ -+# Re-`\' parameter expansions in output of double_quote_subst that were -+# `\'-ed in input to the same. If an odd number of `\' preceded a '$' -+# 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 -+# four `\'s followed by two `\'s and then a '$'. `\' that '$'. -+bs='\\' -+bs2='\\\\' -+bs4='\\\\\\\\' -+dollar='\$' -+sed_double_backslash="\ -+ s/$bs4/&\\ -+/g -+ s/^$bs2$dollar/$bs&/ -+ s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g -+ s/\n//g" -+ -+# Standard options: -+opt_dry_run=false -+opt_help=false -+opt_quiet=false -+opt_verbose=false -+opt_warning=: -+ -+# func_echo arg... -+# Echo program name prefixed message, along with the current mode -+# name if it has been set yet. -+func_echo () -+{ -+ $ECHO "$progname${mode+: }$mode: $*" -+} -+ -+# func_verbose arg... -+# Echo program name prefixed message in verbose mode only. -+func_verbose () -+{ -+ $opt_verbose && func_echo ${1+"$@"} -+ -+ # 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 -+ # work around that: -+ : -+} -+ -+# func_error arg... -+# Echo program name prefixed message to standard error. -+func_error () -+{ -+ $ECHO "$progname${mode+: }$mode: "${1+"$@"} 1>&2 -+} -+ -+# func_warning arg... -+# Echo program name prefixed warning message to standard error. -+func_warning () -+{ -+ $opt_warning && $ECHO "$progname${mode+: }$mode: warning: "${1+"$@"} 1>&2 -+ -+ # bash bug again: -+ : -+} -+ -+# func_fatal_error arg... -+# Echo program name prefixed message to standard error, and exit. -+func_fatal_error () -+{ -+ func_error ${1+"$@"} -+ exit $EXIT_FAILURE -+} -+ -+# func_fatal_help arg... -+# Echo program name prefixed message to standard error, followed by -+# a help hint, and exit. -+func_fatal_help () -+{ -+ func_error ${1+"$@"} -+ func_fatal_error "$help" -+} -+help="Try \`$progname --help' for more information." ## default -+ -+ -+# func_grep expression filename -+# Check whether EXPRESSION matches any line of FILENAME, without output. -+func_grep () -+{ -+ $GREP "$1" "$2" >/dev/null 2>&1 -+} -+ -+ -+# func_mkdir_p directory-path -+# Make sure the entire path to DIRECTORY-PATH is available. -+func_mkdir_p () -+{ -+ my_directory_path="$1" -+ my_dir_list= -+ -+ if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then -+ -+ # Protect directory names starting with `-' -+ case $my_directory_path in -+ -*) my_directory_path="./$my_directory_path" ;; -+ esac -+ -+ # While some portion of DIR does not yet exist... -+ while test ! -d "$my_directory_path"; do -+ # ...make a list in topmost first order. Use a colon delimited -+ # list incase some portion of path contains whitespace. -+ my_dir_list="$my_directory_path:$my_dir_list" -+ -+ # If the last portion added has no slash in it, the list is done -+ case $my_directory_path in */*) ;; *) break ;; esac -+ -+ # ...otherwise throw away the child directory and loop -+ my_directory_path=`$ECHO "X$my_directory_path" | $Xsed -e "$dirname"` -+ done -+ my_dir_list=`$ECHO "X$my_dir_list" | $Xsed -e 's,:*$,,'` -+ -+ save_mkdir_p_IFS="$IFS"; IFS=':' -+ for my_dir in $my_dir_list; do -+ IFS="$save_mkdir_p_IFS" -+ # mkdir can fail with a `File exist' error if two processes -+ # try to create one of the directories concurrently. Don't -+ # stop in that case! -+ $MKDIR "$my_dir" 2>/dev/null || : -+ done -+ IFS="$save_mkdir_p_IFS" -+ -+ # Bail out if we (or some other process) failed to create a directory. -+ test -d "$my_directory_path" || \ -+ func_fatal_error "Failed to create \`$1'" -+ fi -+} - --##################################### --# Shell function definitions: --# This seems to be the best place for them - - # func_mktempdir [string] - # Make a temporary directory that won't clash with other running -@@ -167,7 +355,7 @@ func_mktempdir () - { - my_template="${TMPDIR-/tmp}/${1-$progname}" - -- if test "$run" = ":"; then -+ if test "$opt_dry_run" = ":"; then - # Return a directory name, but don't create it in dry-run mode - my_tmpdir="${my_template}-$$" - else -@@ -176,486 +364,750 @@ func_mktempdir () - my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` - - if test ! -d "$my_tmpdir"; then -- # Failing that, at least try and use $RANDOM to avoid a race -- my_tmpdir="${my_template}-${RANDOM-0}$$" -+ # Failing that, at least try and use $RANDOM to avoid a race -+ my_tmpdir="${my_template}-${RANDOM-0}$$" - -- save_mktempdir_umask=`umask` -- umask 0077 -- $mkdir "$my_tmpdir" -- umask $save_mktempdir_umask -+ save_mktempdir_umask=`umask` -+ umask 0077 -+ $MKDIR "$my_tmpdir" -+ umask $save_mktempdir_umask - fi - - # If we're not in dry-run mode, bomb out on failure -- test -d "$my_tmpdir" || { -- $echo "cannot create temporary directory \`$my_tmpdir'" 1>&2 -- exit $EXIT_FAILURE -- } -+ test -d "$my_tmpdir" || \ -+ func_fatal_error "cannot create temporary directory \`$my_tmpdir'" - fi - -- $echo "X$my_tmpdir" | $Xsed -+ $ECHO "X$my_tmpdir" | $Xsed - } - - --# func_win32_libid arg --# return the library type of file 'arg' --# --# Need a lot of goo to handle *both* DLLs and import libs --# Has to be a shell function in order to 'eat' the argument --# that is supplied when $file_magic_command is called. --func_win32_libid () -+# func_quote_for_eval arg -+# Aesthetically quote ARG to be evaled later. -+# This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT -+# is double-quoted, suitable for a subsequent eval, whereas -+# FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters -+# which are still active within double quotes backslashified. -+func_quote_for_eval () - { -- win32_libid_type="unknown" -- win32_fileres=`file -L $1 2>/dev/null` -- case $win32_fileres in -- *ar\ archive\ import\ library*) # definitely import -- win32_libid_type="x86 archive import" -- ;; -- *ar\ archive*) # could be an import, or static -- if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \ -- $EGREP -e 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then -- win32_nmres=`eval $NM -f posix -A $1 | \ -- $SED -n -e '1,100{ -- / I /{ -- s,.*,import, -- p -- q -- } -- }'` -- case $win32_nmres in -- import*) win32_libid_type="x86 archive import";; -- *) win32_libid_type="x86 archive static";; -- esac -- fi -- ;; -- *DLL*) -- win32_libid_type="x86 DLL" -- ;; -- *executable*) # but shell scripts are "executable" too... -- case $win32_fileres in -- *MS\ Windows\ PE\ Intel*) -- win32_libid_type="x86 DLL" -- ;; -+ case $1 in -+ *[\\\`\"\$]*) -+ func_quote_for_eval_unquoted_result=`$ECHO "X$1" | $Xsed -e "$sed_quote_subst"` ;; -+ *) -+ func_quote_for_eval_unquoted_result="$1" ;; -+ esac -+ -+ case $func_quote_for_eval_unquoted_result in -+ # Double-quote args containing shell metacharacters to delay -+ # word splitting, command substitution and and variable -+ # expansion for a subsequent eval. -+ # Many Bourne shells cannot handle close brackets correctly -+ # in scan sets, so we specify it separately. -+ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") -+ func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\"" -+ ;; -+ *) -+ func_quote_for_eval_result="$func_quote_for_eval_unquoted_result" - esac -- ;; -- esac -- $echo $win32_libid_type - } - - --# func_infer_tag arg --# Infer tagged configuration to use if any are available and --# if one wasn't chosen via the "--tag" command line option. --# Only attempt this if the compiler in the base compile --# command doesn't match the default compiler. --# arg is usually of the form 'gcc ...' --func_infer_tag () -+# func_quote_for_expand arg -+# Aesthetically quote ARG to be evaled later; same as above, -+# but do not quote variable references. -+func_quote_for_expand () - { -- if test -n "$available_tags" && test -z "$tagname"; then -- CC_quoted= -- for arg in $CC; do -- case $arg in -- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") -- arg="\"$arg\"" -- ;; -- esac -- CC_quoted="$CC_quoted $arg" -- done -- case $@ in -- # Blanks in the command may have been stripped by the calling shell, -- # but not from the CC environment variable when configure was run. -- " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) ;; -- # Blanks at the start of $base_compile will cause this to fail -- # if we don't check for them as well. -+ case $1 in -+ *[\\\`\"]*) -+ my_arg=`$ECHO "X$1" | $Xsed \ -+ -e "$double_quote_subst" -e "$sed_double_backslash"` ;; - *) -- for z in $available_tags; do -- if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then -- # Evaluate the configuration. -- eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" -- CC_quoted= -- for arg in $CC; do -- # Double-quote args containing other shell metacharacters. -- case $arg in -- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") -- arg="\"$arg\"" -- ;; -- esac -- CC_quoted="$CC_quoted $arg" -- done -- case "$@ " in -- " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) -- # The compiler in the base compile command matches -- # the one in the tagged configuration. -- # Assume this is the tagged configuration we want. -- tagname=$z -- break -- ;; -- esac -- fi -- done -- # If $tagname still isn't set, then no tagged configuration -- # was found and let the user know that the "--tag" command -- # line option must be used. -- if test -z "$tagname"; then -- $echo "$modename: unable to infer tagged configuration" -- $echo "$modename: specify a tag with \`--tag'" 1>&2 -- exit $EXIT_FAILURE --# else --# $echo "$modename: using $tagname tagged configuration" -- fi -- ;; -- esac -- fi -+ my_arg="$1" ;; -+ esac -+ -+ case $my_arg in -+ # Double-quote args containing shell metacharacters to delay -+ # word splitting and command substitution for a subsequent eval. -+ # Many Bourne shells cannot handle close brackets correctly -+ # in scan sets, so we specify it separately. -+ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") -+ my_arg="\"$my_arg\"" -+ ;; -+ esac -+ -+ func_quote_for_expand_result="$my_arg" - } - - --# func_extract_an_archive dir oldlib --func_extract_an_archive () -+# func_show_eval cmd [fail_exp] -+# Unless opt_silent is true, then output CMD. Then, if opt_dryrun is -+# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP -+# is given, then evaluate it. -+func_show_eval () - { -- f_ex_an_ar_dir="$1"; shift -- f_ex_an_ar_oldlib="$1" -+ my_cmd="$1" -+ my_fail_exp="${2-:}" - -- $show "(cd $f_ex_an_ar_dir && $AR x $f_ex_an_ar_oldlib)" -- $run eval "(cd \$f_ex_an_ar_dir && $AR x \$f_ex_an_ar_oldlib)" || exit $? -- if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then -- : -- else -- $echo "$modename: ERROR: object name conflicts: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" 1>&2 -- exit $EXIT_FAILURE -+ ${opt_silent-false} || { -+ func_quote_for_expand "$my_cmd" -+ eval "func_echo $func_quote_for_expand_result" -+ } -+ -+ if ${opt_dry_run-false}; then :; else -+ eval "$my_cmd" -+ my_status=$? -+ if test "$my_status" -eq 0; then :; else -+ eval "(exit $my_status); $my_fail_exp" -+ fi - fi - } - --# func_extract_archives gentop oldlib ... --func_extract_archives () -+ -+# func_show_eval_locale cmd [fail_exp] -+# Unless opt_silent is true, then output CMD. Then, if opt_dryrun is -+# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP -+# is given, then evaluate it. Use the saved locale for evaluation. -+func_show_eval_locale () - { -- my_gentop="$1"; shift -- my_oldlibs=${1+"$@"} -- my_oldobjs="" -- my_xlib="" -- my_xabs="" -- my_xdir="" -- my_status="" -+ my_cmd="$1" -+ my_fail_exp="${2-:}" - -- $show "${rm}r $my_gentop" -- $run ${rm}r "$my_gentop" -- $show "$mkdir $my_gentop" -- $run $mkdir "$my_gentop" -- my_status=$? -- if test "$my_status" -ne 0 && test ! -d "$my_gentop"; then -- exit $my_status -+ ${opt_silent-false} || { -+ func_quote_for_expand "$my_cmd" -+ eval "func_echo $func_quote_for_expand_result" -+ } -+ -+ if ${opt_dry_run-false}; then :; else -+ eval "$lt_user_locale -+ $my_cmd" -+ my_status=$? -+ eval "$lt_safe_locale" -+ if test "$my_status" -eq 0; then :; else -+ eval "(exit $my_status); $my_fail_exp" -+ fi - fi -+} - -- for my_xlib in $my_oldlibs; do -- # Extract the objects. -- case $my_xlib in -- [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; -- *) my_xabs=`pwd`"/$my_xlib" ;; -- esac -- my_xlib=`$echo "X$my_xlib" | $Xsed -e 's%^.*/%%'` -- my_xlib_u=$my_xlib -- while :; do -- case " $extracted_archives " in -- *" $my_xlib_u "*) -- extracted_serial=`expr $extracted_serial + 1` -- my_xlib_u=lt$extracted_serial-$my_xlib ;; -- *) break ;; -- esac -- done -- extracted_archives="$extracted_archives $my_xlib_u" -- my_xdir="$my_gentop/$my_xlib_u" - -- $show "${rm}r $my_xdir" -- $run ${rm}r "$my_xdir" -- $show "$mkdir $my_xdir" -- $run $mkdir "$my_xdir" -- exit_status=$? -- if test "$exit_status" -ne 0 && test ! -d "$my_xdir"; then -- exit $exit_status -- fi -- case $host in -- *-darwin*) -- $show "Extracting $my_xabs" -- # Do not bother doing anything if just a dry run -- if test -z "$run"; then -- darwin_orig_dir=`pwd` -- cd $my_xdir || exit $? -- darwin_archive=$my_xabs -- darwin_curdir=`pwd` -- darwin_base_archive=`$echo "X$darwin_archive" | $Xsed -e 's%^.*/%%'` -- darwin_arches=`lipo -info "$darwin_archive" 2>/dev/null | $EGREP Architectures 2>/dev/null` -- if test -n "$darwin_arches"; then -- darwin_arches=`echo "$darwin_arches" | $SED -e 's/.*are://'` -- darwin_arch= -- $show "$darwin_base_archive has multiple architectures $darwin_arches" -- for darwin_arch in $darwin_arches ; do -- mkdir -p "unfat-$$/${darwin_base_archive}-${darwin_arch}" -- lipo -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" -- cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" -- func_extract_an_archive "`pwd`" "${darwin_base_archive}" -- cd "$darwin_curdir" -- $rm "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" -- done # $darwin_arches -- ## Okay now we have a bunch of thin objects, gotta fatten them up :) -- darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print| xargs basename | sort -u | $NL2SP` -- darwin_file= -- darwin_files= -- for darwin_file in $darwin_filelist; do -- darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP` -- lipo -create -output "$darwin_file" $darwin_files -- done # $darwin_filelist -- ${rm}r unfat-$$ -- cd "$darwin_orig_dir" -- else -- cd "$darwin_orig_dir" -- func_extract_an_archive "$my_xdir" "$my_xabs" -- fi # $darwin_arches -- fi # $run -- ;; -- *) -- func_extract_an_archive "$my_xdir" "$my_xabs" -- ;; -- esac -- my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` -- done -- func_extract_archives_result="$my_oldobjs" -+ -+ -+ -+# func_version -+# Echo version message to standard output and exit. -+func_version () -+{ -+ $SED -n '/^# '$PROGRAM' (GNU /,/# warranty; / { -+ s/^# // -+ s/^# *$// -+ s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/ -+ p -+ }' < "$progpath" -+ exit $? - } --# End of Shell function definitions --##################################### - --# Darwin sucks --eval std_shrext=\"$shrext_cmds\" -+# func_usage -+# Echo short help message to standard output and exit. -+func_usage () -+{ -+ $SED -n '/^# Usage:/,/# -h/ { -+ s/^# // -+ s/^# *$// -+ s/\$progname/'$progname'/ -+ p -+ }' < "$progpath" -+ $ECHO -+ $ECHO "run \`$progname --help | more' for full usage" -+ exit $? -+} - --disable_libs=no -+# func_help -+# Echo long help message to standard output and exit. -+func_help () -+{ -+ $SED -n '/^# Usage:/,/# Report bugs to/ { -+ s/^# // -+ s/^# *$// -+ s*\$progname*'$progname'* -+ s*\$host*'"$host"'* -+ s*\$SHELL*'"$SHELL"'* -+ s*\$LTCC*'"$LTCC"'* -+ s*\$LTCFLAGS*'"$LTCFLAGS"'* -+ s*\$LD*'"$LD"'* -+ s/\$with_gnu_ld/'"$with_gnu_ld"'/ -+ s/\$automake_version/'"`(automake --version) 2>/dev/null |$SED 1q`"'/ -+ s/\$autoconf_version/'"`(autoconf --version) 2>/dev/null |$SED 1q`"'/ -+ p -+ }' < "$progpath" -+ exit $? -+} - --# Parse our command line options once, thoroughly. --while test "$#" -gt 0 --do -- arg="$1" -+# func_missing_arg argname -+# Echo program name prefixed message to standard error and set global -+# exit_cmd. -+func_missing_arg () -+{ -+ func_error "missing argument for $1" -+ exit_cmd=exit -+} -+ -+exit_cmd=: -+ -+ -+ -+ -+ -+# Check that we have a working $ECHO. -+if test "X$1" = X--no-reexec; then -+ # Discard the --no-reexec flag, and continue. - shift -+elif test "X$1" = X--fallback-echo; then -+ # Avoid inline document here, it may be left over -+ : -+elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t'; then -+ # Yippee, $ECHO works! -+ : -+else -+ # Restart under the correct shell, and then maybe $ECHO will work. -+ exec $SHELL "$progpath" --no-reexec ${1+"$@"} -+fi -+# Same for EGREP, and just to be sure, do LTCC as well -+if test "x$EGREP" = x ; then -+ EGREP=egrep -+fi -+if test "x$LTCC" = x ; then -+ LTCC=${CC-gcc} -+fi - -- case $arg in -- -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;; -- *) optarg= ;; -- esac -+if test "X$1" = X--fallback-echo; then -+ # used as fallback echo -+ shift -+ cat <<EOF -+$* -+EOF -+ exit $EXIT_SUCCESS -+fi - -- # If the previous option needs an argument, assign it. -- if test -n "$prev"; then -- case $prev in -- execute_dlfiles) -- execute_dlfiles="$execute_dlfiles $arg" -- ;; -- tag) -- tagname="$arg" -- preserve_args="${preserve_args}=$arg" -+magic="%%%MAGIC variable%%%" -+magic_exe="%%%MAGIC EXE variable%%%" - -- # Check whether tagname contains only valid characters -- case $tagname in -- *[!-_A-Za-z0-9,/]*) -- $echo "$progname: invalid tag name: $tagname" 1>&2 -- exit $EXIT_FAILURE -- ;; -- esac -+# Global variables. -+# $mode is unset -+nonopt= -+execute_dlfiles= -+preserve_args= -+lo2o="s/\\.lo\$/.${objext}/" -+o2lo="s/\\.${objext}\$/.lo/" -+extracted_archives= -+extracted_serial=0 - -- case $tagname in -- CC) -- # Don't test for the "default" C tag, as we know, it's there, but -- # not specially marked. -- ;; -- *) -- if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$progpath" > /dev/null; then -- taglist="$taglist $tagname" -- # Evaluate the configuration. -- eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $progpath`" -- else -- $echo "$progname: ignoring unknown tag $tagname" 1>&2 -- fi -- ;; -- esac -- ;; -- *) -- eval "$prev=\$arg" -- ;; -- esac -+opt_dry_run=false -+opt_duplicate_deps=false -+opt_silent=false -+opt_debug=: - -- prev= -- prevopt= -- continue -- fi -+# 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 -+# left over by shells. -+exec_cmd= - -- # Have we seen a non-optional argument yet? -- case $arg in -- --help) -- show_help=yes -- ;; -+# func_fatal_configuration arg... -+# Echo program name prefixed message to standard error, followed by -+# a configuration failure hint, and exit. -+func_fatal_configuration () -+{ -+ func_error ${1+"$@"} -+ func_error "See the $PACKAGE documentation for more information." -+ func_fatal_error "Fatal configuration error." -+} - -- --version) -- echo "\ --$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP - --Copyright (C) 2008 Free Software Foundation, Inc. --This is free software; see the source for copying conditions. There is NO --warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." -- exit $? -- ;; -+# func_config -+# Display the configuration for all the tags in this script. -+func_config () -+{ -+ re_begincf='^# ### BEGIN LIBTOOL' -+ re_endcf='^# ### END LIBTOOL' -+ -+ # Default configuration. -+ $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath" - -- --config) -- ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $progpath - # Now print the configurations for the tags. - for tagname in $taglist; do -- ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$progpath" -+ $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath" - done -- exit $? -- ;; - -- --debug) -- $echo "$progname: enabling shell trace mode" -- set -x -- preserve_args="$preserve_args $arg" -- ;; -- -- --dry-run | -n) -- run=: -- ;; -+ exit $? -+} - -- --features) -- $echo "host: $host" -+# func_features -+# Display the features supported by this script. -+func_features () -+{ -+ $ECHO "host: $host" - if test "$build_libtool_libs" = yes; then -- $echo "enable shared libraries" -+ $ECHO "enable shared libraries" - else -- $echo "disable shared libraries" -+ $ECHO "disable shared libraries" - fi - if test "$build_old_libs" = yes; then -- $echo "enable static libraries" -+ $ECHO "enable static libraries" - else -- $echo "disable static libraries" -+ $ECHO "disable static libraries" - fi -+ - exit $? -- ;; -+} - -- --finish) mode="finish" ;; -+# func_enable_tag tagname -+# Verify that TAGNAME is valid, and either flag an error and exit, or -+# enable the TAGNAME tag. We also add TAGNAME to the global $taglist -+# variable here. -+func_enable_tag () -+{ -+ # Global variable: -+ tagname="$1" - -- --mode) prevopt="--mode" prev=mode ;; -- --mode=*) mode="$optarg" ;; -+ re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$" -+ re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$" -+ sed_extractcf="/$re_begincf/,/$re_endcf/p" - -- --preserve-dup-deps) duplicate_deps="yes" ;; -+ # Validate tagname. -+ case $tagname in -+ *[!-_A-Za-z0-9,/]*) -+ func_fatal_error "invalid tag name: $tagname" -+ ;; -+ esac - -- --quiet | --silent) -- show=: -- preserve_args="$preserve_args $arg" -- ;; -+ # Don't test for the "default" C tag, as we know it's -+ # there but not specially marked. -+ case $tagname in -+ CC) ;; -+ *) -+ if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then -+ taglist="$taglist $tagname" - -- --tag) -- prevopt="--tag" -- prev=tag -- preserve_args="$preserve_args --tag" -+ # Evaluate the configuration. Be careful to quote the path -+ # and the sed script, to avoid splitting on whitespace, but -+ # also don't use non-portable quotes within backquotes within -+ # quotes we have to do it in 2 steps: -+ extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"` -+ eval "$extractedcf" -+ else -+ func_error "ignoring unknown tag $tagname" -+ fi -+ ;; -+ esac -+} -+ -+# Parse options once, thoroughly. This comes as soon as possible in -+# the script to make things like `libtool --version' happen quickly. -+{ -+ -+ # Shorthand for --mode=foo, only valid as the first argument -+ case $1 in -+ clean|clea|cle|cl) -+ shift; set dummy --mode clean ${1+"$@"}; shift - ;; -- --tag=*) -- set tag "$optarg" ${1+"$@"} -- shift -- prev=tag -- preserve_args="$preserve_args --tag" -+ compile|compil|compi|comp|com|co|c) -+ shift; set dummy --mode compile ${1+"$@"}; shift - ;; -- -- -dlopen) -- prevopt="-dlopen" -- prev=execute_dlfiles -+ execute|execut|execu|exec|exe|ex|e) -+ shift; set dummy --mode execute ${1+"$@"}; shift - ;; -- -- -*) -- $echo "$modename: unrecognized option \`$arg'" 1>&2 -- $echo "$help" 1>&2 -- exit $EXIT_FAILURE -+ finish|finis|fini|fin|fi|f) -+ shift; set dummy --mode finish ${1+"$@"}; shift - ;; -- -- *) -- nonopt="$arg" -- break -+ install|instal|insta|inst|ins|in|i) -+ shift; set dummy --mode install ${1+"$@"}; shift -+ ;; -+ link|lin|li|l) -+ shift; set dummy --mode link ${1+"$@"}; shift -+ ;; -+ uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) -+ shift; set dummy --mode uninstall ${1+"$@"}; shift - ;; - esac --done - --if test -n "$prevopt"; then -- $echo "$modename: option \`$prevopt' requires an argument" 1>&2 -- $echo "$help" 1>&2 -- exit $EXIT_FAILURE --fi -+ # Parse non-mode specific arguments: -+ while test "$#" -gt 0; do -+ opt="$1" -+ shift - --case $disable_libs in --no) -- ;; --shared) -- build_libtool_libs=no -- build_old_libs=yes -- ;; --static) -- build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` -- ;; --esac -+ case $opt in -+ --config) func_config ;; - --# 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 --# left over by shells. --exec_cmd= -+ --debug) preserve_args="$preserve_args $opt" -+ func_echo "enabling shell trace mode" -+ opt_debug='set -x' -+ $opt_debug -+ ;; - --if test -z "$show_help"; then -+ -dlopen) test "$#" -eq 0 && func_missing_arg "$opt" && break -+ execute_dlfiles="$execute_dlfiles $1" -+ shift -+ ;; - -- # Infer the operation mode. -- if test -z "$mode"; then -- $echo "*** Warning: inferring the mode of operation is deprecated." 1>&2 -- $echo "*** Future versions of Libtool will require --mode=MODE be specified." 1>&2 -- case $nonopt in -- *cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*) -- mode=link -- for arg -- do -- case $arg in -- -c) -- mode=compile -- break -- ;; -- esac -- done -- ;; -- *db | *dbx | *strace | *truss) -- mode=execute -- ;; -- *install*|cp|mv) -- mode=install -- ;; -- *rm) -- mode=uninstall -+ --dry-run | -n) opt_dry_run=: ;; -+ --features) func_features ;; -+ --finish) mode="finish" ;; -+ -+ --mode) test "$#" -eq 0 && func_missing_arg "$opt" && break -+ case $1 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 -+ -+ mode="$1" -+ shift -+ ;; -+ -+ --preserve-dup-deps) -+ opt_duplicate_deps=: ;; -+ -+ --quiet|--silent) preserve_args="$preserve_args $opt" -+ opt_silent=: -+ ;; -+ -+ --verbose| -v) preserve_args="$preserve_args $opt" -+ opt_silent=false -+ ;; -+ -+ --tag) test "$#" -eq 0 && func_missing_arg "$opt" && break -+ preserve_args="$preserve_args $opt $1" -+ func_enable_tag "$1" # tagname is set here -+ shift -+ ;; -+ -+ # Separate optargs to long options: -+ -dlopen=*|--mode=*|--tag=*) -+ func_opt_split "$opt" -+ set dummy "$func_opt_split_opt" "$func_opt_split_arg" ${1+"$@"} -+ shift -+ ;; -+ -+ -\?|-h) func_usage ;; -+ --help) opt_help=: ;; -+ --version) func_version ;; -+ -+ -*) func_fatal_help "unrecognized option \`$opt'" ;; -+ -+ *) nonopt="$opt" -+ break -+ ;; -+ esac -+ done -+ -+ -+ case $host in -+ *cygwin* | *mingw* | *pw32* | *cegcc*) -+ # don't eliminate duplications in $postdeps and $predeps -+ opt_duplicate_compiler_generated_deps=: - ;; - *) -- # If we have no mode, but dlfiles were specified, then do execute mode. -- test -n "$execute_dlfiles" && mode=execute -+ opt_duplicate_compiler_generated_deps=$opt_duplicate_deps -+ ;; -+ esac - -- # Just use the default operation mode. -- if test -z "$mode"; then -- if test -n "$nonopt"; then -- $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2 -- else -- $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2 -- fi -+ # Having warned about all mis-specified options, bail out if -+ # anything was wrong. -+ $exit_cmd $EXIT_FAILURE -+} -+ -+# func_check_version_match -+# 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 $VERSION -+$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 $VERSION -+$progname: and run autoconf again. -+_LT_EOF - fi -- ;; -- esac -+ else -+ cat >&2 <<_LT_EOF -+$progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, -+$progname: but the definition of this LT_INIT comes from revision $macro_revision. -+$progname: You should recreate aclocal.m4 with macros from revision $package_revision -+$progname: of $PACKAGE $VERSION and run autoconf again. -+_LT_EOF -+ fi -+ -+ exit $EXIT_MISMATCH - fi -+} -+ -+ -+## ----------- ## -+## Main. ## -+## ----------- ## -+ -+$opt_help || { -+ # Sanity checks first: -+ func_check_version_match -+ -+ if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then -+ 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 -- $echo "$modename: unrecognized option \`-dlopen'" 1>&2 -- $echo "$help" 1>&2 -+ 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 \`$modename --help --mode=$mode' for more information." -+ help="Try \`$progname --help --mode=$mode' for more information." -+} - -- # These modes are in order of execution frequency so that they run quickly. -- case $mode in -- # libtool compile mode -- compile) -- modename="$modename: compile" -+ -+# func_lalib_p 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 -+# determined imposters. -+func_lalib_p () -+{ -+ test -f "$1" && -+ $SED -e 4q "$1" 2>/dev/null \ -+ | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1 -+} -+ -+# func_lalib_unsafe_p file -+# True iff FILE is a libtool `.la' library or `.lo' object file. -+# This function implements the same check as func_lalib_p without -+# resorting to external programs. To this end, it redirects stdin and -+# closes it afterwards, without saving the original file descriptor. -+# As a safety measure, use it only where a negative result would be -+# fatal anyway. Works if `file' does not exist. -+func_lalib_unsafe_p () -+{ -+ lalib_p=no -+ if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then -+ for lalib_p_l in 1 2 3 4 -+ do -+ read lalib_p_line -+ case "$lalib_p_line" in -+ \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;; -+ esac -+ done -+ exec 0<&5 5<&- -+ fi -+ test "$lalib_p" = yes -+} -+ -+# func_ltwrapper_script_p file -+# True iff FILE is a libtool wrapper script -+# This function is only a basic sanity check; it will hardly flush out -+# determined imposters. -+func_ltwrapper_script_p () -+{ -+ func_lalib_p "$1" -+} -+ -+# func_ltwrapper_executable_p file -+# True iff FILE is a libtool wrapper executable -+# This function is only a basic sanity check; it will hardly flush out -+# determined imposters. -+func_ltwrapper_executable_p () -+{ -+ func_ltwrapper_exec_suffix= -+ case $1 in -+ *.exe) ;; -+ *) func_ltwrapper_exec_suffix=.exe ;; -+ esac -+ $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1 -+} -+ -+# func_ltwrapper_scriptname file -+# Assumes file is an ltwrapper_executable -+# uses $file to determine the appropriate filename for a -+# temporary ltwrapper_script. -+func_ltwrapper_scriptname () -+{ -+ func_ltwrapper_scriptname_result="" -+ if func_ltwrapper_executable_p "$1"; then -+ func_dirname_and_basename "$1" "" "." -+ func_stripname '' '.exe' "$func_basename_result" -+ func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper" -+ fi -+} -+ -+# func_ltwrapper_p file -+# True iff FILE is a libtool wrapper script or wrapper executable -+# This function is only a basic sanity check; it will hardly flush out -+# determined imposters. -+func_ltwrapper_p () -+{ -+ func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1" -+} -+ -+ -+# func_execute_cmds commands fail_cmd -+# Execute tilde-delimited COMMANDS. -+# If FAIL_CMD is given, eval that upon failure. -+# FAIL_CMD may read-access the current command in variable CMD! -+func_execute_cmds () -+{ -+ $opt_debug -+ save_ifs=$IFS; IFS='~' -+ for cmd in $1; do -+ IFS=$save_ifs -+ eval cmd=\"$cmd\" -+ func_show_eval "$cmd" "${2-:}" -+ done -+ IFS=$save_ifs -+} -+ -+ -+# func_source file -+# Source FILE, adding directory component if necessary. -+# Note that it is not necessary on cygwin/mingw to append a dot to -+# FILE even if both FILE and FILE.exe exist: automatic-append-.exe -+# behavior happens only for exec(3), not for open(2)! Also, sourcing -+# `FILE.' does not work on cygwin managed mounts. -+func_source () -+{ -+ $opt_debug -+ case $1 in -+ */* | *\\*) . "$1" ;; -+ *) . "./$1" ;; -+ esac -+} -+ -+ -+# func_infer_tag arg -+# Infer tagged configuration to use if any are available and -+# if one wasn't chosen via the "--tag" command line option. -+# Only attempt this if the compiler in the base compile -+# command doesn't match the default compiler. -+# arg is usually of the form 'gcc ...' -+func_infer_tag () -+{ -+ $opt_debug -+ if test -n "$available_tags" && test -z "$tagname"; then -+ CC_quoted= -+ for arg in $CC; do -+ func_quote_for_eval "$arg" -+ CC_quoted="$CC_quoted $func_quote_for_eval_result" -+ done -+ case $@ in -+ # Blanks in the command may have been stripped by the calling shell, -+ # but not from the CC environment variable when configure was run. -+ " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) ;; -+ # Blanks at the start of $base_compile will cause this to fail -+ # if we don't check for them as well. -+ *) -+ for z in $available_tags; do -+ if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then -+ # Evaluate the configuration. -+ eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" -+ CC_quoted= -+ for arg in $CC; do -+ # Double-quote args containing other shell metacharacters. -+ func_quote_for_eval "$arg" -+ CC_quoted="$CC_quoted $func_quote_for_eval_result" -+ done -+ case "$@ " in -+ " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) -+ # The compiler in the base compile command matches -+ # the one in the tagged configuration. -+ # Assume this is the tagged configuration we want. -+ tagname=$z -+ break -+ ;; -+ esac -+ fi -+ done -+ # If $tagname still isn't set, then no tagged configuration -+ # was found and let the user know that the "--tag" command -+ # line option must be used. -+ if test -z "$tagname"; then -+ func_echo "unable to infer tagged configuration" -+ func_fatal_error "specify a tag with \`--tag'" -+# else -+# func_verbose "using $tagname tagged configuration" -+ fi -+ ;; -+ esac -+ fi -+} -+ -+ -+ -+# func_write_libtool_object output_name pic_name nonpic_name -+# Create a libtool object file (analogous to a ".la" file), -+# but don't create it if we're doing a dry run. -+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}" -+ } -+} -+ -+# func_mode_compile arg... -+func_mode_compile () -+{ -+ $opt_debug - # Get the compilation command and the source file. - base_compile= - srcfile="$nonopt" # always keep a non-empty value in "srcfile" -@@ -664,6 +1116,7 @@ if test -z "$show_help"; then - arg_mode=normal - libobj= - later= -+ pie_flag= - - for arg - do -@@ -684,15 +1137,18 @@ if test -z "$show_help"; then - # Accept any command-line options. - case $arg in - -o) -- if test -n "$libobj" ; then -- $echo "$modename: you cannot specify \`-o' more than once" 1>&2 -- exit $EXIT_FAILURE -- fi -+ test -n "$libobj" && \ -+ func_fatal_error "you cannot specify \`-o' more than once" - arg_mode=target - continue - ;; - -- -static | -prefer-pic | -prefer-non-pic) -+ -pie | -fpie | -fPIE) -+ pie_flag="$pie_flag $arg" -+ continue -+ ;; -+ -+ -shared | -static | -prefer-pic | -prefer-non-pic) - later="$later $arg" - continue - ;; -@@ -708,31 +1164,25 @@ if test -z "$show_help"; then - ;; # replaced later. I would guess that would be a bug. - - -Wc,*) -- args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"` -+ func_stripname '-Wc,' '' "$arg" -+ args=$func_stripname_result - lastarg= - save_ifs="$IFS"; IFS=',' -- for arg in $args; do -+ for arg in $args; do - IFS="$save_ifs" -- -- # Double-quote args containing other shell metacharacters. -- # Many Bourne shells cannot handle close brackets correctly -- # in scan sets, so we specify it separately. -- case $arg in -- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") -- arg="\"$arg\"" -- ;; -- esac -- lastarg="$lastarg $arg" -+ func_quote_for_eval "$arg" -+ lastarg="$lastarg $func_quote_for_eval_result" - done - IFS="$save_ifs" -- lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"` -+ func_stripname ' ' '' "$lastarg" -+ lastarg=$func_stripname_result - - # Add the arguments to base_compile. - base_compile="$base_compile $lastarg" - continue - ;; - -- * ) -+ *) - # Accept the current argument as the source file. - # The previous "srcfile" becomes the current argument. - # -@@ -744,66 +1194,42 @@ if test -z "$show_help"; then - esac # case $arg_mode - - # Aesthetically quote the previous argument. -- lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"` -- -- case $lastarg in -- # Double-quote args containing other shell metacharacters. -- # Many Bourne shells cannot handle close brackets correctly -- # in scan sets, and some SunOS ksh mistreat backslash-escaping -- # in scan sets (worked around with variable expansion), -- # and furthermore cannot handle '|' '&' '(' ')' in scan sets -- # at all, so we specify them separately. -- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") -- lastarg="\"$lastarg\"" -- ;; -- esac -- -- base_compile="$base_compile $lastarg" -+ func_quote_for_eval "$lastarg" -+ base_compile="$base_compile $func_quote_for_eval_result" - done # for arg - - case $arg_mode in - arg) -- $echo "$modename: you must specify an argument for -Xcompile" -- exit $EXIT_FAILURE -+ func_fatal_error "you must specify an argument for -Xcompile" - ;; - target) -- $echo "$modename: you must specify a target with \`-o'" 1>&2 -- exit $EXIT_FAILURE -+ func_fatal_error "you must specify a target with \`-o'" - ;; - *) - # Get the name of the library object. -- [ -z "$libobj" ] && libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'` -+ test -z "$libobj" && { -+ func_basename "$srcfile" -+ libobj="$func_basename_result" -+ } - ;; - esac - - # Recognize several different file suffixes. - # If the user specifies -o file.o, it is replaced with file.lo -- xform='[cCFSifmso]' - case $libobj in -- *.ada) xform=ada ;; -- *.adb) xform=adb ;; -- *.ads) xform=ads ;; -- *.asm) xform=asm ;; -- *.c++) xform=c++ ;; -- *.cc) xform=cc ;; -- *.ii) xform=ii ;; -- *.class) xform=class ;; -- *.cpp) xform=cpp ;; -- *.cxx) xform=cxx ;; -- *.[fF][09]?) xform=[fF][09]. ;; -- *.for) xform=for ;; -- *.java) xform=java ;; -- *.obj) xform=obj ;; -- *.sx) xform=sx ;; -+ *.[cCFSifmso] | \ -+ *.ada | *.adb | *.ads | *.asm | \ -+ *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \ -+ *.[fF][09]? | *.for | *.java | *.obj | *.sx) -+ func_xform "$libobj" -+ libobj=$func_xform_result -+ ;; - esac - -- libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"` -- - case $libobj in -- *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;; -+ *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;; - *) -- $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2 -- exit $EXIT_FAILURE -+ func_fatal_error "cannot determine name of library object from \`$libobj'" - ;; - esac - -@@ -811,7 +1237,15 @@ if test -z "$show_help"; then - - for arg in $later; do - case $arg in -+ -shared) -+ test "$build_libtool_libs" != yes && \ -+ func_fatal_configuration "can not build a shared library" -+ build_old_libs=no -+ continue -+ ;; -+ - -static) -+ build_libtool_libs=no - build_old_libs=yes - continue - ;; -@@ -828,28 +1262,17 @@ if test -z "$show_help"; then - esac - done - -- qlibobj=`$echo "X$libobj" | $Xsed -e "$sed_quote_subst"` -- case $qlibobj in -- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") -- qlibobj="\"$qlibobj\"" ;; -- esac -- test "X$libobj" != "X$qlibobj" \ -- && $echo "X$libobj" | grep '[]~#^*{};<>?"'"'"' &()|`$[]' \ -- && $echo "$modename: libobj name \`$libobj' may not contain shell special characters." -- objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` -- xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'` -- if test "X$xdir" = "X$obj"; then -- xdir= -- else -- xdir=$xdir/ -- fi -+ func_quote_for_eval "$libobj" -+ test "X$libobj" != "X$func_quote_for_eval_result" \ -+ && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \ -+ && func_warning "libobj name \`$libobj' may not contain shell special characters." -+ func_dirname_and_basename "$obj" "/" "" -+ objname="$func_basename_result" -+ xdir="$func_dirname_result" - lobj=${xdir}$objdir/$objname - -- if test -z "$base_compile"; then -- $echo "$modename: you must specify a compilation command" 1>&2 -- $echo "$help" 1>&2 -- exit $EXIT_FAILURE -- fi -+ test -z "$base_compile" && \ -+ func_fatal_help "you must specify a compilation command" - - # Delete any leftover library objects. - if test "$build_old_libs" = yes; then -@@ -858,12 +1281,9 @@ if test -z "$show_help"; then - removelist="$lobj $libobj ${libobj}T" - fi - -- $run $rm $removelist -- trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15 -- - # On Cygwin there's no "real" PIC flag so we must build both object types - case $host_os in -- cygwin* | mingw* | pw32* | os2*) -+ cygwin* | mingw* | pw32* | os2* | cegcc*) - pic_mode=default - ;; - esac -@@ -875,10 +1295,8 @@ if test -z "$show_help"; then - # Calculate the filename of the output object if compiler does - # not support -o with -c - if test "$compiler_c_o" = no; then -- output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext} -+ output_obj=`$ECHO "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext} - lockfile="$output_obj.lock" -- removelist="$removelist $output_obj $lockfile" -- trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15 - else - output_obj= - need_locks=no -@@ -888,13 +1306,13 @@ if test -z "$show_help"; then - # Lock this critical section if it is needed - # We use this script file to make the link, it avoids creating a new file - if test "$need_locks" = yes; then -- until $run ln "$progpath" "$lockfile" 2>/dev/null; do -- $show "Waiting for $lockfile to be removed" -+ until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do -+ func_echo "Waiting for $lockfile to be removed" - sleep 2 - done - elif test "$need_locks" = warn; then - if test -f "$lockfile"; then -- $echo "\ -+ $ECHO "\ - *** ERROR, $lockfile exists and contains: - `cat $lockfile 2>/dev/null` - -@@ -905,34 +1323,22 @@ repeat this compilation, it may succeed, - avoid parallel builds (make -j) in this platform, or get a better - compiler." - -- $run $rm $removelist -+ $opt_dry_run || $RM $removelist - exit $EXIT_FAILURE - fi -- $echo "$srcfile" > "$lockfile" -+ removelist="$removelist $output_obj" -+ $ECHO "$srcfile" > "$lockfile" - fi - -+ $opt_dry_run || $RM $removelist -+ removelist="$removelist $lockfile" -+ trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 -+ - if test -n "$fix_srcfile_path"; then - eval srcfile=\"$fix_srcfile_path\" - fi -- qsrcfile=`$echo "X$srcfile" | $Xsed -e "$sed_quote_subst"` -- case $qsrcfile in -- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") -- qsrcfile="\"$qsrcfile\"" ;; -- esac -- -- $run $rm "$libobj" "${libobj}T" -- -- # Create a libtool object file (analogous to a ".la" file), -- # but don't create it if we're doing a dry run. -- test -z "$run" && cat > ${libobj}T <<EOF --# $libobj - a libtool object file --# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP --# --# Please DO NOT delete this file! --# It is necessary for linking the library. -- --# Name of the PIC object. --EOF -+ func_quote_for_eval "$srcfile" -+ qsrcfile=$func_quote_for_eval_result - - # Only build a PIC object if we are building libtool libraries. - if test "$build_libtool_libs" = yes; then -@@ -946,32 +1352,19 @@ EOF - command="$base_compile $qsrcfile" - fi - -- if test ! -d "${xdir}$objdir"; then -- $show "$mkdir ${xdir}$objdir" -- $run $mkdir ${xdir}$objdir -- exit_status=$? -- if test "$exit_status" -ne 0 && test ! -d "${xdir}$objdir"; then -- exit $exit_status -- fi -- fi -+ func_mkdir_p "$xdir$objdir" - - if test -z "$output_obj"; then - # Place PIC objects in $objdir - command="$command -o $lobj" - fi - -- $run $rm "$lobj" "$output_obj" -- -- $show "$command" -- if $run eval $lt_env "$command"; then : -- else -- test -n "$output_obj" && $run $rm $removelist -- exit $EXIT_FAILURE -- fi -+ func_show_eval_locale "$command" \ -+ 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE' - - if test "$need_locks" = warn && - test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then -- $echo "\ -+ $ECHO "\ - *** ERROR, $lockfile contains: - `cat $lockfile 2>/dev/null` - -@@ -985,45 +1378,27 @@ repeat this compilation, it may succeed, - avoid parallel builds (make -j) in this platform, or get a better - compiler." - -- $run $rm $removelist -+ $opt_dry_run || $RM $removelist - exit $EXIT_FAILURE - fi - - # Just move the object if needed, then go on to compile the next one - if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then -- $show "$mv $output_obj $lobj" -- if $run $mv $output_obj $lobj; then : -- else -- error=$? -- $run $rm $removelist -- exit $error -- fi -+ func_show_eval '$MV "$output_obj" "$lobj"' \ -+ 'error=$?; $opt_dry_run || $RM $removelist; exit $error' - fi - -- # Append the name of the PIC object to the libtool object file. -- test -z "$run" && cat >> ${libobj}T <<EOF --pic_object='$objdir/$objname' -- --EOF -- - # Allow error messages only from the first compilation. - if test "$suppress_opt" = yes; then -- suppress_output=' >/dev/null 2>&1' -+ suppress_output=' >/dev/null 2>&1' - fi -- else -- # No PIC object so indicate it doesn't exist in the libtool -- # object file. -- test -z "$run" && cat >> ${libobj}T <<EOF --pic_object=none -- --EOF - fi - - # Only build a position-dependent object if we build old libraries. - if test "$build_old_libs" = yes; then - if test "$pic_mode" != yes; then - # Don't build PIC code -- command="$base_compile $qsrcfile" -+ command="$base_compile $qsrcfile$pie_flag" - else - command="$base_compile $qsrcfile $pic_flag" - fi -@@ -1033,17 +1408,12 @@ EOF - - # Suppress compiler output if we already did a PIC compilation. - command="$command$suppress_output" -- $run $rm "$obj" "$output_obj" -- $show "$command" -- if $run eval $lt_env "$command"; then : -- else -- $run $rm $removelist -- exit $EXIT_FAILURE -- fi -+ func_show_eval_locale "$command" \ -+ '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' - - if test "$need_locks" = warn && - test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then -- $echo "\ -+ $ECHO "\ - *** ERROR, $lockfile contains: - `cat $lockfile 2>/dev/null` - -@@ -1057,53 +1427,2620 @@ repeat this compilation, it may succeed, - avoid parallel builds (make -j) in this platform, or get a better - compiler." - -- $run $rm $removelist -+ $opt_dry_run || $RM $removelist - exit $EXIT_FAILURE - fi - - # Just move the object if needed - if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then -- $show "$mv $output_obj $obj" -- if $run $mv $output_obj $obj; then : -+ func_show_eval '$MV "$output_obj" "$obj"' \ -+ 'error=$?; $opt_dry_run || $RM $removelist; exit $error' -+ fi -+ fi -+ -+ $opt_dry_run || { -+ func_write_libtool_object "$libobj" "$objdir/$objname" "$objname" -+ -+ # Unlock the critical section if it was locked -+ if test "$need_locks" != no; then -+ removelist=$lockfile -+ $RM "$lockfile" -+ fi -+ } -+ -+ exit $EXIT_SUCCESS -+} -+ -+$opt_help || { -+test "$mode" = compile && func_mode_compile ${1+"$@"} -+} -+ -+func_mode_help () -+{ -+ # We need to display help for each of the modes. -+ case $mode in -+ "") -+ # Generic help is extracted from the usage comments -+ # at the start of this file. -+ func_help -+ ;; -+ -+ clean) -+ $ECHO \ -+"Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE... -+ -+Remove files from the build directory. -+ -+RM is the name of the program to use to delete files associated with each FILE -+(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed -+to RM. -+ -+If FILE is a libtool library, object or program, all the files associated -+with it are deleted. Otherwise, only FILE itself is deleted using RM." -+ ;; -+ -+ compile) -+ $ECHO \ -+"Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE -+ -+Compile a source file into a libtool library object. -+ -+This mode accepts the following additional options: -+ -+ -o OUTPUT-FILE set the output file name to OUTPUT-FILE -+ -no-suppress do not suppress compiler output for multiple passes -+ -prefer-pic try to building PIC objects only -+ -prefer-non-pic try to building non-PIC objects only -+ -shared do not build a \`.o' file suitable for static linking -+ -static only build a \`.o' file suitable for static linking -+ -+COMPILE-COMMAND is a command to be used in creating a \`standard' object file -+from the given SOURCEFILE. -+ -+The output file name is determined by removing the directory component from -+SOURCEFILE, then substituting the C source code suffix \`.c' with the -+library object suffix, \`.lo'." -+ ;; -+ -+ execute) -+ $ECHO \ -+"Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]... -+ -+Automatically set library path, then run a program. -+ -+This mode accepts the following additional options: -+ -+ -dlopen FILE add the directory containing FILE to the library path -+ -+This mode sets the library path environment variable according to \`-dlopen' -+flags. -+ -+If any of the ARGS are libtool executable wrappers, then they are translated -+into their corresponding uninstalled binary, and any of their required library -+directories are added to the library path. -+ -+Then, COMMAND is executed, with ARGS as arguments." -+ ;; -+ -+ finish) -+ $ECHO \ -+"Usage: $progname [OPTION]... --mode=finish [LIBDIR]... -+ -+Complete the installation of libtool libraries. -+ -+Each LIBDIR is a directory that contains libtool libraries. -+ -+The commands that this mode executes may require superuser privileges. Use -+the \`--dry-run' option if you just want to see what would be executed." -+ ;; -+ -+ install) -+ $ECHO \ -+"Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND... -+ -+Install executables or libraries. -+ -+INSTALL-COMMAND is the installation command. The first component should be -+either the \`install' or \`cp' program. -+ -+The following components of INSTALL-COMMAND are treated specially: -+ -+ -inst-prefix PREFIX-DIR Use PREFIX-DIR as a staging area for installation -+ -+The rest of the components are interpreted as arguments to that command (only -+BSD-compatible install options are recognized)." -+ ;; -+ -+ link) -+ $ECHO \ -+"Usage: $progname [OPTION]... --mode=link LINK-COMMAND... -+ -+Link object files or libraries together to form another library, or to -+create an executable program. -+ -+LINK-COMMAND is a command using the C compiler that you would use to create -+a program from several object files. -+ -+The following components of LINK-COMMAND are treated specially: -+ -+ -all-static do not do any dynamic linking at all -+ -avoid-version do not add a version suffix if possible -+ -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime -+ -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols -+ -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) -+ -export-symbols SYMFILE -+ try to export only the symbols listed in SYMFILE -+ -export-symbols-regex REGEX -+ try to export only the symbols matching REGEX -+ -LLIBDIR search LIBDIR for required installed libraries -+ -lNAME OUTPUT-FILE requires the installed library libNAME -+ -module build a library that can dlopened -+ -no-fast-install disable the fast-install mode -+ -no-install link a not-installable executable -+ -no-undefined declare that a library does not refer to external symbols -+ -o OUTPUT-FILE create OUTPUT-FILE from the specified objects -+ -objectlist FILE Use a list of object files found in FILE to specify objects -+ -precious-files-regex REGEX -+ don't remove output files matching REGEX -+ -release RELEASE specify package release information -+ -rpath LIBDIR the created library will eventually be installed in LIBDIR -+ -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries -+ -shared only do dynamic linking of libtool libraries -+ -shrext SUFFIX override the standard shared library file extension -+ -static do not do any dynamic linking of uninstalled libtool libraries -+ -static-libtool-libs -+ do not do any dynamic linking of libtool libraries -+ -version-info CURRENT[:REVISION[:AGE]] -+ specify library version info [each variable defaults to 0] -+ -weak LIBNAME declare that the target provides the LIBNAME interface -+ -+All other options (arguments beginning with \`-') are ignored. -+ -+Every other argument is treated as a filename. Files ending in \`.la' are -+treated as uninstalled libtool libraries, other files are standard or library -+object files. -+ -+If the OUTPUT-FILE ends in \`.la', then a libtool library is created, -+only library objects (\`.lo' files) may be specified, and \`-rpath' is -+required, except when creating a convenience library. -+ -+If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created -+using \`ar' and \`ranlib', or on Windows using \`lib'. -+ -+If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file -+is created, otherwise an executable program is created." -+ ;; -+ -+ uninstall) -+ $ECHO \ -+"Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... -+ -+Remove libraries from an installation directory. -+ -+RM is the name of the program to use to delete files associated with each FILE -+(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed -+to RM. -+ -+If FILE is a libtool library, all the files associated with it are deleted. -+Otherwise, only FILE itself is deleted using RM." -+ ;; -+ -+ *) -+ func_fatal_help "invalid operation mode \`$mode'" -+ ;; -+ esac -+ -+ $ECHO -+ $ECHO "Try \`$progname --help' for more information about other modes." -+ -+ exit $? -+} -+ -+ # Now that we've collected a possible --mode arg, show help if necessary -+ $opt_help && func_mode_help -+ -+ -+# func_mode_execute arg... -+func_mode_execute () -+{ -+ $opt_debug -+ # The first argument is the command name. -+ cmd="$nonopt" -+ test -z "$cmd" && \ -+ func_fatal_help "you must specify a COMMAND" -+ -+ # Handle -dlopen flags immediately. -+ for file in $execute_dlfiles; do -+ test -f "$file" \ -+ || func_fatal_help "\`$file' is not a file" -+ -+ dir= -+ case $file in -+ *.la) -+ # Check to see that this really is a libtool archive. -+ func_lalib_unsafe_p "$file" \ -+ || func_fatal_help "\`$lib' is not a valid libtool archive" -+ -+ # Read the libtool library. -+ dlname= -+ library_names= -+ func_source "$file" -+ -+ # Skip this library if it cannot be dlopened. -+ if test -z "$dlname"; then -+ # Warn if it was a shared library. -+ test -n "$library_names" && \ -+ func_warning "\`$file' was not linked with \`-export-dynamic'" -+ continue -+ fi -+ -+ func_dirname "$file" "" "." -+ dir="$func_dirname_result" -+ -+ if test -f "$dir/$objdir/$dlname"; then -+ dir="$dir/$objdir" - else -- error=$? -- $run $rm $removelist -- exit $error -+ if test ! -f "$dir/$dlname"; then -+ func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" -+ fi - fi -+ ;; -+ -+ *.lo) -+ # Just add the directory containing the .lo file. -+ func_dirname "$file" "" "." -+ dir="$func_dirname_result" -+ ;; -+ -+ *) -+ func_warning "\`-dlopen' is ignored for non-libtool libraries and objects" -+ continue -+ ;; -+ esac -+ -+ # Get the absolute pathname. -+ absdir=`cd "$dir" && pwd` -+ test -n "$absdir" && dir="$absdir" -+ -+ # Now add the directory to shlibpath_var. -+ if eval "test -z \"\$$shlibpath_var\""; then -+ eval "$shlibpath_var=\"\$dir\"" -+ else -+ eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" - fi -+ done - -- # Append the name of the non-PIC object the libtool object file. -- # Only append if the libtool object file exists. -- test -z "$run" && cat >> ${libobj}T <<EOF --# Name of the non-PIC object. --non_pic_object='$objname' -+ # This variable tells wrapper scripts just to set shlibpath_var -+ # rather than running their programs. -+ libtool_execute_magic="$magic" - --EOF -+ # Check if any of the arguments is a wrapper script. -+ args= -+ for file -+ do -+ case $file in -+ -*) ;; -+ *) -+ # Do a test to see if this is really a libtool program. -+ if func_ltwrapper_script_p "$file"; then -+ func_source "$file" -+ # Transform arg to wrapped name. -+ file="$progdir/$program" -+ elif func_ltwrapper_executable_p "$file"; then -+ func_ltwrapper_scriptname "$file" -+ func_source "$func_ltwrapper_scriptname_result" -+ # Transform arg to wrapped name. -+ file="$progdir/$program" -+ fi -+ ;; -+ esac -+ # Quote arguments (to preserve shell metacharacters). -+ func_quote_for_eval "$file" -+ args="$args $func_quote_for_eval_result" -+ done -+ -+ if test "X$opt_dry_run" = Xfalse; then -+ if test -n "$shlibpath_var"; then -+ # Export the shlibpath_var. -+ eval "export $shlibpath_var" -+ fi -+ -+ # Restore saved environment variables -+ for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES -+ do -+ eval "if test \"\${save_$lt_var+set}\" = set; then -+ $lt_var=\$save_$lt_var; export $lt_var -+ else -+ $lt_unset $lt_var -+ fi" -+ done -+ -+ # Now prepare to actually exec the command. -+ exec_cmd="\$cmd$args" - else -- # Append the name of the non-PIC object the libtool object file. -- # Only append if the libtool object file exists. -- test -z "$run" && cat >> ${libobj}T <<EOF --# Name of the non-PIC object. --non_pic_object=none -+ # Display what would be done. -+ if test -n "$shlibpath_var"; then -+ eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\"" -+ $ECHO "export $shlibpath_var" -+ fi -+ $ECHO "$cmd$args" -+ exit $EXIT_SUCCESS -+ fi -+} - --EOF -+test "$mode" = execute && func_mode_execute ${1+"$@"} -+ -+ -+# func_mode_finish arg... -+func_mode_finish () -+{ -+ $opt_debug -+ libdirs="$nonopt" -+ admincmds= -+ -+ if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then -+ for dir -+ do -+ libdirs="$libdirs $dir" -+ done -+ -+ for libdir in $libdirs; do -+ if test -n "$finish_cmds"; then -+ # Do each command in the finish commands. -+ func_execute_cmds "$finish_cmds" 'admincmds="$admincmds -+'"$cmd"'"' -+ fi -+ if test -n "$finish_eval"; then -+ # Do the single finish_eval. -+ eval cmds=\"$finish_eval\" -+ $opt_dry_run || eval "$cmds" || admincmds="$admincmds -+ $cmds" -+ fi -+ done - fi - -- $run $mv "${libobj}T" "${libobj}" -+ # Exit here if they wanted silent mode. -+ $opt_silent && exit $EXIT_SUCCESS - -- # Unlock the critical section if it was locked -- if test "$need_locks" != no; then -- $run $rm "$lockfile" -+ $ECHO "X----------------------------------------------------------------------" | $Xsed -+ $ECHO "Libraries have been installed in:" -+ for libdir in $libdirs; do -+ $ECHO " $libdir" -+ done -+ $ECHO -+ $ECHO "If you ever happen to want to link against installed libraries" -+ $ECHO "in a given directory, LIBDIR, you must either use libtool, and" -+ $ECHO "specify the full pathname of the library, or use the \`-LLIBDIR'" -+ $ECHO "flag during linking and do at least one of the following:" -+ if test -n "$shlibpath_var"; then -+ $ECHO " - add LIBDIR to the \`$shlibpath_var' environment variable" -+ $ECHO " during execution" -+ fi -+ if test -n "$runpath_var"; then -+ $ECHO " - add LIBDIR to the \`$runpath_var' environment variable" -+ $ECHO " during linking" -+ fi -+ if test -n "$hardcode_libdir_flag_spec"; then -+ libdir=LIBDIR -+ eval flag=\"$hardcode_libdir_flag_spec\" -+ -+ $ECHO " - use the \`$flag' linker flag" -+ fi -+ if test -n "$admincmds"; then -+ $ECHO " - have your system administrator run these commands:$admincmds" -+ fi -+ if test -f /etc/ld.so.conf; then -+ $ECHO " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" - fi -+ $ECHO - -+ $ECHO "See any operating system documentation about shared libraries for" -+ case $host in -+ solaris2.[6789]|solaris2.1[0-9]) -+ $ECHO "more information, such as the ld(1), crle(1) and ld.so(8) manual" -+ $ECHO "pages." -+ ;; -+ *) -+ $ECHO "more information, such as the ld(1) and ld.so(8) manual pages." -+ ;; -+ esac -+ $ECHO "X----------------------------------------------------------------------" | $Xsed - exit $EXIT_SUCCESS -+} -+ -+test "$mode" = finish && func_mode_finish ${1+"$@"} -+ -+ -+# func_mode_install arg... -+func_mode_install () -+{ -+ $opt_debug -+ # There may be an optional sh(1) argument at the beginning of -+ # install_prog (especially on Windows NT). -+ if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || -+ # Allow the use of GNU shtool's install command. -+ $ECHO "X$nonopt" | $GREP shtool >/dev/null; then -+ # Aesthetically quote it. -+ func_quote_for_eval "$nonopt" -+ install_prog="$func_quote_for_eval_result " -+ arg=$1 -+ shift -+ else -+ install_prog= -+ arg=$nonopt -+ fi -+ -+ # The real first argument should be the name of the installation program. -+ # Aesthetically quote it. -+ func_quote_for_eval "$arg" -+ install_prog="$install_prog$func_quote_for_eval_result" -+ -+ # We need to accept at least all the BSD install flags. -+ dest= -+ files= -+ opts= -+ prev= -+ install_type= -+ isdir=no -+ stripme= -+ for arg -+ do -+ if test -n "$dest"; then -+ files="$files $dest" -+ dest=$arg -+ continue -+ fi -+ -+ case $arg in -+ -d) isdir=yes ;; -+ -f) -+ case " $install_prog " in -+ *[\\\ /]cp\ *) ;; -+ *) prev=$arg ;; -+ esac -+ ;; -+ -g | -m | -o) -+ prev=$arg -+ ;; -+ -s) -+ stripme=" -s" -+ continue -+ ;; -+ -*) -+ ;; -+ *) -+ # If the previous option needed an argument, then skip it. -+ if test -n "$prev"; then -+ prev= -+ else -+ dest=$arg -+ continue -+ fi -+ ;; -+ esac -+ -+ # Aesthetically quote the argument. -+ func_quote_for_eval "$arg" -+ install_prog="$install_prog $func_quote_for_eval_result" -+ done -+ -+ test -z "$install_prog" && \ -+ func_fatal_help "you must specify an install program" -+ -+ test -n "$prev" && \ -+ func_fatal_help "the \`$prev' option requires an argument" -+ -+ if test -z "$files"; then -+ if test -z "$dest"; then -+ func_fatal_help "no file or destination specified" -+ else -+ func_fatal_help "you must specify a destination" -+ fi -+ fi -+ -+ # Strip any trailing slash from the destination. -+ func_stripname '' '/' "$dest" -+ dest=$func_stripname_result -+ -+ # Check to see that the destination is a directory. -+ test -d "$dest" && isdir=yes -+ if test "$isdir" = yes; then -+ destdir="$dest" -+ destname= -+ else -+ func_dirname_and_basename "$dest" "" "." -+ destdir="$func_dirname_result" -+ destname="$func_basename_result" -+ -+ # Not a directory, so check to see that there is only one file specified. -+ set dummy $files; shift -+ test "$#" -gt 1 && \ -+ func_fatal_help "\`$dest' is not a directory" -+ fi -+ case $destdir in -+ [\\/]* | [A-Za-z]:[\\/]*) ;; -+ *) -+ for file in $files; do -+ case $file in -+ *.lo) ;; -+ *) -+ func_fatal_help "\`$destdir' must be an absolute directory name" -+ ;; -+ esac -+ done -+ ;; -+ esac -+ -+ # This variable tells wrapper scripts just to set variables rather -+ # than running their programs. -+ libtool_install_magic="$magic" -+ -+ staticlibs= -+ future_libdirs= -+ current_libdirs= -+ for file in $files; do -+ -+ # Do each installation. -+ case $file in -+ *.$libext) -+ # Do the static libraries later. -+ staticlibs="$staticlibs $file" -+ ;; -+ -+ *.la) -+ # Check to see that this really is a libtool archive. -+ func_lalib_unsafe_p "$file" \ -+ || func_fatal_help "\`$file' is not a valid libtool archive" -+ -+ library_names= -+ old_library= -+ relink_command= -+ func_source "$file" -+ -+ # Add the libdir to current_libdirs if it is the destination. -+ if test "X$destdir" = "X$libdir"; then -+ case "$current_libdirs " in -+ *" $libdir "*) ;; -+ *) current_libdirs="$current_libdirs $libdir" ;; -+ esac -+ else -+ # Note the libdir as a future libdir. -+ case "$future_libdirs " in -+ *" $libdir "*) ;; -+ *) future_libdirs="$future_libdirs $libdir" ;; -+ esac -+ fi -+ -+ func_dirname "$file" "/" "" -+ dir="$func_dirname_result" -+ dir="$dir$objdir" -+ -+ if test -n "$relink_command"; then -+ # Determine the prefix the user has applied to our future dir. -+ inst_prefix_dir=`$ECHO "X$destdir" | $Xsed -e "s%$libdir\$%%"` -+ -+ # Don't allow the user to place us outside of our expected -+ # location b/c this prevents finding dependent libraries that -+ # are installed to the same prefix. -+ # At present, this check doesn't affect windows .dll's that -+ # are installed into $libdir/../bin (currently, that works fine) -+ # but it's something to keep an eye on. -+ test "$inst_prefix_dir" = "$destdir" && \ -+ func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir" -+ -+ if test -n "$inst_prefix_dir"; then -+ # Stick the inst_prefix_dir data into the link command. -+ relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` -+ else -+ relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%%"` -+ fi -+ -+ func_warning "relinking \`$file'" -+ func_show_eval "$relink_command" \ -+ 'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"' -+ fi -+ -+ # See the names of the shared library. -+ set dummy $library_names; shift -+ if test -n "$1"; then -+ realname="$1" -+ shift -+ -+ srcname="$realname" -+ test -n "$relink_command" && srcname="$realname"T -+ -+ # Install the shared library and build the symlinks. -+ func_show_eval "$install_prog $dir/$srcname $destdir/$realname" \ -+ 'exit $?' -+ tstripme="$stripme" -+ case $host_os in -+ cygwin* | mingw* | pw32* | cegcc*) -+ case $realname in -+ *.dll.a) -+ tstripme="" -+ ;; -+ esac -+ ;; -+ esac -+ if test -n "$tstripme" && test -n "$striplib"; then -+ func_show_eval "$striplib $destdir/$realname" 'exit $?' -+ fi -+ -+ if test "$#" -gt 0; then -+ # Delete the old symlinks, and create new ones. -+ # Try `ln -sf' first, because the `ln' binary might depend on -+ # the symlink we replace! Solaris /bin/ln does not understand -f, -+ # so we also need to try rm && ln -s. -+ for linkname -+ do -+ test "$linkname" != "$realname" \ -+ && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })" -+ done -+ fi -+ -+ # Do each command in the postinstall commands. -+ lib="$destdir/$realname" -+ func_execute_cmds "$postinstall_cmds" 'exit $?' -+ fi -+ -+ # Install the pseudo-library for information purposes. -+ func_basename "$file" -+ name="$func_basename_result" -+ instname="$dir/$name"i -+ func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' -+ -+ # Maybe install the static library, too. -+ test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library" -+ ;; -+ -+ *.lo) -+ # Install (i.e. copy) a libtool object. -+ -+ # Figure out destination file name, if it wasn't already specified. -+ if test -n "$destname"; then -+ destfile="$destdir/$destname" -+ else -+ func_basename "$file" -+ destfile="$func_basename_result" -+ destfile="$destdir/$destfile" -+ fi -+ -+ # Deduce the name of the destination old-style object file. -+ case $destfile in -+ *.lo) -+ func_lo2o "$destfile" -+ staticdest=$func_lo2o_result -+ ;; -+ *.$objext) -+ staticdest="$destfile" -+ destfile= -+ ;; -+ *) -+ func_fatal_help "cannot copy a libtool object to \`$destfile'" -+ ;; -+ esac -+ -+ # Install the libtool object if requested. -+ test -n "$destfile" && \ -+ func_show_eval "$install_prog $file $destfile" 'exit $?' -+ -+ # Install the old object if enabled. -+ if test "$build_old_libs" = yes; then -+ # Deduce the name of the old-style object file. -+ func_lo2o "$file" -+ staticobj=$func_lo2o_result -+ func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?' -+ fi -+ exit $EXIT_SUCCESS -+ ;; -+ -+ *) -+ # Figure out destination file name, if it wasn't already specified. -+ if test -n "$destname"; then -+ destfile="$destdir/$destname" -+ else -+ func_basename "$file" -+ destfile="$func_basename_result" -+ destfile="$destdir/$destfile" -+ fi -+ -+ # If the file is missing, and there is a .exe on the end, strip it -+ # because it is most likely a libtool script we actually want to -+ # install -+ stripped_ext="" -+ case $file in -+ *.exe) -+ if test ! -f "$file"; then -+ func_stripname '' '.exe' "$file" -+ file=$func_stripname_result -+ stripped_ext=".exe" -+ fi -+ ;; -+ esac -+ -+ # Do a test to see if this is really a libtool program. -+ case $host in -+ *cygwin* | *mingw*) -+ if func_ltwrapper_executable_p "$file"; then -+ func_ltwrapper_scriptname "$file" -+ wrapper=$func_ltwrapper_scriptname_result -+ else -+ func_stripname '' '.exe' "$file" -+ wrapper=$func_stripname_result -+ fi -+ ;; -+ *) -+ wrapper=$file -+ ;; -+ esac -+ if func_ltwrapper_script_p "$wrapper"; then -+ notinst_deplibs= -+ relink_command= -+ -+ func_source "$wrapper" -+ -+ # Check the variables that should have been set. -+ test -z "$generated_by_libtool_version" && \ -+ func_fatal_error "invalid libtool wrapper script \`$wrapper'" -+ -+ finalize=yes -+ for lib in $notinst_deplibs; do -+ # Check to see that each library is installed. -+ libdir= -+ if test -f "$lib"; then -+ func_source "$lib" -+ fi -+ libfile="$libdir/"`$ECHO "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test -+ if test -n "$libdir" && test ! -f "$libfile"; then -+ func_warning "\`$lib' has not been installed in \`$libdir'" -+ finalize=no -+ fi -+ done -+ -+ relink_command= -+ func_source "$wrapper" -+ -+ outputname= -+ if test "$fast_install" = no && test -n "$relink_command"; then -+ $opt_dry_run || { -+ if test "$finalize" = yes; then -+ tmpdir=`func_mktempdir` -+ func_basename "$file$stripped_ext" -+ file="$func_basename_result" -+ outputname="$tmpdir/$file" -+ # Replace the output file specification. -+ relink_command=`$ECHO "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'` -+ -+ $opt_silent || { -+ func_quote_for_expand "$relink_command" -+ eval "func_echo $func_quote_for_expand_result" -+ } -+ if eval "$relink_command"; then : -+ else -+ func_error "error: relink \`$file' with the above command before installing it" -+ $opt_dry_run || ${RM}r "$tmpdir" -+ continue -+ fi -+ file="$outputname" -+ else -+ func_warning "cannot relink \`$file'" -+ fi -+ } -+ else -+ # Install the binary that we compiled earlier. -+ file=`$ECHO "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"` -+ fi -+ fi -+ -+ # remove .exe since cygwin /usr/bin/install will append another -+ # one anyway -+ case $install_prog,$host in -+ */usr/bin/install*,*cygwin*) -+ case $file:$destfile in -+ *.exe:*.exe) -+ # this is ok -+ ;; -+ *.exe:*) -+ destfile=$destfile.exe -+ ;; -+ *:*.exe) -+ func_stripname '' '.exe' "$destfile" -+ destfile=$func_stripname_result -+ ;; -+ esac -+ ;; -+ esac -+ func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?' -+ $opt_dry_run || if test -n "$outputname"; then -+ ${RM}r "$tmpdir" -+ fi -+ ;; -+ esac -+ done -+ -+ for file in $staticlibs; do -+ func_basename "$file" -+ name="$func_basename_result" -+ -+ # Set up the ranlib parameters. -+ oldlib="$destdir/$name" -+ -+ func_show_eval "$install_prog \$file \$oldlib" 'exit $?' -+ -+ if test -n "$stripme" && test -n "$old_striplib"; then -+ func_show_eval "$old_striplib $oldlib" 'exit $?' -+ fi -+ -+ # Do each command in the postinstall commands. -+ func_execute_cmds "$old_postinstall_cmds" 'exit $?' -+ done -+ -+ test -n "$future_libdirs" && \ -+ func_warning "remember to run \`$progname --finish$future_libdirs'" -+ -+ if test -n "$current_libdirs"; then -+ # Maybe just do a dry run. -+ $opt_dry_run && current_libdirs=" -n$current_libdirs" -+ exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' -+ else -+ exit $EXIT_SUCCESS -+ fi -+} -+ -+test "$mode" = install && func_mode_install ${1+"$@"} -+ -+ -+# func_generate_dlsyms outputname originator pic_p -+# Extract symbols from dlprefiles and create ${outputname}S.o with -+# a dlpreopen symbol table. -+func_generate_dlsyms () -+{ -+ $opt_debug -+ my_outputname="$1" -+ my_originator="$2" -+ my_pic_p="${3-no}" -+ my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'` -+ my_dlsyms= -+ -+ if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then -+ if test -n "$NM" && test -n "$global_symbol_pipe"; then -+ my_dlsyms="${my_outputname}S.c" -+ else -+ func_error "not configured to extract global symbols from dlpreopened files" -+ fi -+ fi -+ -+ if test -n "$my_dlsyms"; then -+ case $my_dlsyms in -+ "") ;; -+ *.c) -+ # Discover the nlist of each of the dlfiles. -+ nlist="$output_objdir/${my_outputname}.nm" -+ -+ func_show_eval "$RM $nlist ${nlist}S ${nlist}T" -+ -+ # Parse the name list into a source file. -+ func_verbose "creating $output_objdir/$my_dlsyms" -+ -+ $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\ -+/* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */ -+/* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */ -+ -+#ifdef __cplusplus -+extern \"C\" { -+#endif -+ -+/* External symbol declarations for the compiler. */\ -+" -+ -+ if test "$dlself" = yes; then -+ func_verbose "generating symbol list for \`$output'" -+ -+ $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist" -+ -+ # Add our own program objects to the symbol list. -+ progfiles=`$ECHO "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` -+ for progfile in $progfiles; do -+ func_verbose "extracting global C symbols from \`$progfile'" -+ $opt_dry_run || eval "$NM $progfile | $global_symbol_pipe >> '$nlist'" -+ done -+ -+ if test -n "$exclude_expsyms"; then -+ $opt_dry_run || { -+ eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' -+ eval '$MV "$nlist"T "$nlist"' -+ } -+ fi -+ -+ if test -n "$export_symbols_regex"; then -+ $opt_dry_run || { -+ eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' -+ eval '$MV "$nlist"T "$nlist"' -+ } -+ fi -+ -+ # Prepare the list of exported symbols -+ if test -z "$export_symbols"; then -+ export_symbols="$output_objdir/$outputname.exp" -+ $opt_dry_run || { -+ $RM $export_symbols -+ eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' -+ case $host in -+ *cygwin* | *mingw* | *cegcc* ) -+ eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' -+ eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' -+ ;; -+ esac -+ } -+ else -+ $opt_dry_run || { -+ eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' -+ eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' -+ eval '$MV "$nlist"T "$nlist"' -+ case $host in -+ *cygwin | *mingw* | *cegcc* ) -+ eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' -+ eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' -+ ;; -+ esac -+ } -+ fi -+ fi -+ -+ for dlprefile in $dlprefiles; do -+ func_verbose "extracting global C symbols from \`$dlprefile'" -+ func_basename "$dlprefile" -+ name="$func_basename_result" -+ $opt_dry_run || { -+ eval '$ECHO ": $name " >> "$nlist"' -+ eval "$NM $dlprefile 2>/dev/null | $global_symbol_pipe >> '$nlist'" -+ } -+ done -+ -+ $opt_dry_run || { -+ # Make sure we have at least an empty file. -+ test -f "$nlist" || : > "$nlist" -+ -+ if test -n "$exclude_expsyms"; then -+ $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T -+ $MV "$nlist"T "$nlist" -+ fi -+ -+ # Try sorting and uniquifying the output. -+ if $GREP -v "^: " < "$nlist" | -+ if sort -k 3 </dev/null >/dev/null 2>&1; then -+ sort -k 3 -+ else -+ sort +2 -+ fi | -+ uniq > "$nlist"S; then -+ : -+ else -+ $GREP -v "^: " < "$nlist" > "$nlist"S -+ fi -+ -+ if test -f "$nlist"S; then -+ eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"' -+ else -+ $ECHO '/* NONE */' >> "$output_objdir/$my_dlsyms" -+ fi -+ -+ $ECHO >> "$output_objdir/$my_dlsyms" "\ -+ -+/* The mapping between symbol names and symbols. */ -+typedef struct { -+ const char *name; -+ void *address; -+} 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_dlsym_const lt_dlsymlist -+lt_${my_prefix}_LTX_preloaded_symbols[] = -+{\ -+ { \"$my_originator\", (void *) 0 }," -+ -+ case $need_lib_prefix in -+ no) -+ eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms" -+ ;; -+ *) -+ eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms" -+ ;; -+ esac -+ $ECHO >> "$output_objdir/$my_dlsyms" "\ -+ {0, (void *) 0} -+}; -+ -+/* This works around a problem in FreeBSD linker */ -+#ifdef FREEBSD_WORKAROUND -+static const void *lt_preloaded_setup() { -+ return lt_${my_prefix}_LTX_preloaded_symbols; -+} -+#endif -+ -+#ifdef __cplusplus -+} -+#endif\ -+" -+ } # !$opt_dry_run -+ -+ pic_flag_for_symtable= -+ case "$compile_command " in -+ *" -static "*) ;; -+ *) -+ case $host in -+ # compiling the symbol table file with pic_flag works around -+ # a FreeBSD bug that causes programs to crash when -lm is -+ # linked before any other PIC object. But we must not use -+ # pic_flag when linking with -static. The problem exists in -+ # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. -+ *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) -+ pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;; -+ *-*-hpux*) -+ pic_flag_for_symtable=" $pic_flag" ;; -+ *) -+ if test "X$my_pic_p" != Xno; then -+ pic_flag_for_symtable=" $pic_flag" -+ fi -+ ;; -+ esac -+ ;; -+ esac -+ symtab_cflags= -+ for arg in $LTCFLAGS; do -+ case $arg in -+ -pie | -fpie | -fPIE) ;; -+ *) symtab_cflags="$symtab_cflags $arg" ;; -+ esac -+ done -+ -+ # Now compile the dynamic symbol file. -+ func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?' -+ -+ # Clean up the generated files. -+ func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"' -+ -+ # Transform the symbol file into the correct name. -+ symfileobj="$output_objdir/${my_outputname}S.$objext" -+ case $host in -+ *cygwin* | *mingw* | *cegcc* ) -+ if test -f "$output_objdir/$my_outputname.def"; then -+ compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` -+ finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` -+ else -+ compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` -+ finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` -+ fi -+ ;; -+ *) -+ compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` -+ finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` -+ ;; -+ esac -+ ;; -+ *) -+ func_fatal_error "unknown suffix for \`$my_dlsyms'" -+ ;; -+ esac -+ else -+ # We keep going just in case the user didn't refer to -+ # lt_preloaded_symbols. The linker will fail if global_symbol_pipe -+ # really was required. -+ -+ # Nullify the symbol file. -+ compile_command=`$ECHO "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"` -+ finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"` -+ fi -+} -+ -+# func_win32_libid arg -+# return the library type of file 'arg' -+# -+# Need a lot of goo to handle *both* DLLs and import libs -+# Has to be a shell function in order to 'eat' the argument -+# that is supplied when $file_magic_command is called. -+func_win32_libid () -+{ -+ $opt_debug -+ win32_libid_type="unknown" -+ win32_fileres=`file -L $1 2>/dev/null` -+ case $win32_fileres in -+ *ar\ archive\ import\ library*) # definitely import -+ win32_libid_type="x86 archive import" - ;; -+ *ar\ archive*) # could be an import, or static -+ if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | -+ $EGREP 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then -+ win32_nmres=`eval $NM -f posix -A $1 | -+ $SED -n -e ' -+ 1,100{ -+ / I /{ -+ s,.*,import, -+ p -+ q -+ } -+ }'` -+ case $win32_nmres in -+ import*) win32_libid_type="x86 archive import";; -+ *) win32_libid_type="x86 archive static";; -+ esac -+ fi -+ ;; -+ *DLL*) -+ win32_libid_type="x86 DLL" -+ ;; -+ *executable*) # but shell scripts are "executable" too... -+ case $win32_fileres in -+ *MS\ Windows\ PE\ Intel*) -+ win32_libid_type="x86 DLL" -+ ;; -+ esac -+ ;; -+ esac -+ $ECHO "$win32_libid_type" -+} - -- # libtool link mode -- link | relink) -- modename="$modename: link" -+ -+ -+# func_extract_an_archive dir oldlib -+func_extract_an_archive () -+{ -+ $opt_debug -+ f_ex_an_ar_dir="$1"; shift -+ f_ex_an_ar_oldlib="$1" -+ func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" 'exit $?' -+ if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then -+ : -+ else -+ func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" -+ fi -+} -+ -+ -+# func_extract_archives gentop oldlib ... -+func_extract_archives () -+{ -+ $opt_debug -+ my_gentop="$1"; shift -+ my_oldlibs=${1+"$@"} -+ my_oldobjs="" -+ my_xlib="" -+ my_xabs="" -+ my_xdir="" -+ -+ for my_xlib in $my_oldlibs; do -+ # Extract the objects. -+ case $my_xlib in -+ [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; -+ *) my_xabs=`pwd`"/$my_xlib" ;; -+ esac -+ func_basename "$my_xlib" -+ my_xlib="$func_basename_result" -+ my_xlib_u=$my_xlib -+ while :; do -+ case " $extracted_archives " in -+ *" $my_xlib_u "*) -+ func_arith $extracted_serial + 1 -+ extracted_serial=$func_arith_result -+ my_xlib_u=lt$extracted_serial-$my_xlib ;; -+ *) break ;; -+ esac -+ done -+ extracted_archives="$extracted_archives $my_xlib_u" -+ my_xdir="$my_gentop/$my_xlib_u" -+ -+ func_mkdir_p "$my_xdir" -+ -+ case $host in -+ *-darwin*) -+ func_verbose "Extracting $my_xabs" -+ # Do not bother doing anything if just a dry run -+ $opt_dry_run || { -+ darwin_orig_dir=`pwd` -+ cd $my_xdir || exit $? -+ darwin_archive=$my_xabs -+ darwin_curdir=`pwd` -+ darwin_base_archive=`basename "$darwin_archive"` -+ darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true` -+ if test -n "$darwin_arches"; then -+ darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'` -+ darwin_arch= -+ func_verbose "$darwin_base_archive has multiple architectures $darwin_arches" -+ for darwin_arch in $darwin_arches ; do -+ func_mkdir_p "unfat-$$/${darwin_base_archive}-${darwin_arch}" -+ $LIPO -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" -+ cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" -+ func_extract_an_archive "`pwd`" "${darwin_base_archive}" -+ cd "$darwin_curdir" -+ $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" -+ done # $darwin_arches -+ ## Okay now we've a bunch of thin objects, gotta fatten them up :) -+ darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u` -+ darwin_file= -+ darwin_files= -+ for darwin_file in $darwin_filelist; do -+ darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP` -+ $LIPO -create -output "$darwin_file" $darwin_files -+ done # $darwin_filelist -+ $RM -rf unfat-$$ -+ cd "$darwin_orig_dir" -+ else -+ cd $darwin_orig_dir -+ func_extract_an_archive "$my_xdir" "$my_xabs" -+ fi # $darwin_arches -+ } # !$opt_dry_run -+ ;; -+ *) -+ func_extract_an_archive "$my_xdir" "$my_xabs" -+ ;; -+ esac -+ my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` -+ done -+ -+ func_extract_archives_result="$my_oldobjs" -+} -+ -+ -+ -+# func_emit_wrapper_part1 [arg=no] -+# -+# Emit the first part of a libtool wrapper script on stdout. -+# For more information, see the description associated with -+# func_emit_wrapper(), below. -+func_emit_wrapper_part1 () -+{ -+ func_emit_wrapper_part1_arg1=no -+ if test -n "$1" ; then -+ func_emit_wrapper_part1_arg1=$1 -+ fi -+ -+ $ECHO "\ -+#! $SHELL -+ -+# $output - temporary wrapper script for $objdir/$outputname -+# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION -+# -+# The $output program cannot be directly executed until all the libtool -+# libraries that it depends on are installed. -+# -+# This wrapper script should never be moved out of the build directory. -+# If it is, it will not operate correctly. -+ -+# Sed substitution that helps us do robust quoting. It backslashifies -+# metacharacters that are still active within double-quoted strings. -+Xsed='${SED} -e 1s/^X//' -+sed_quote_subst='$sed_quote_subst' -+ -+# Be Bourne compatible -+if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then -+ emulate sh -+ NULLCMD=: -+ # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which -+ # is contrary to our usage. Disable this feature. -+ alias -g '\${1+\"\$@\"}'='\"\$@\"' -+ setopt NO_GLOB_SUBST -+else -+ case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac -+fi -+BIN_SH=xpg4; export BIN_SH # for Tru64 -+DUALCASE=1; export DUALCASE # for MKS sh -+ -+# The HP-UX ksh and POSIX shell print the target directory to stdout -+# if CDPATH is set. -+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH -+ -+relink_command=\"$relink_command\" -+ -+# This environment variable determines our operation mode. -+if test \"\$libtool_install_magic\" = \"$magic\"; then -+ # install mode needs the following variables: -+ generated_by_libtool_version='$macro_version' -+ notinst_deplibs='$notinst_deplibs' -+else -+ # When we are sourced in execute mode, \$file and \$ECHO are already set. -+ if test \"\$libtool_execute_magic\" != \"$magic\"; then -+ ECHO=\"$qecho\" -+ file=\"\$0\" -+ # Make sure echo works. -+ if test \"X\$1\" = X--no-reexec; then -+ # Discard the --no-reexec flag, and continue. -+ shift -+ elif test \"X\`{ \$ECHO '\t'; } 2>/dev/null\`\" = 'X\t'; then -+ # Yippee, \$ECHO works! -+ : -+ else -+ # Restart under the correct shell, and then maybe \$ECHO will work. -+ exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"} -+ fi -+ fi\ -+" -+ $ECHO "\ -+ -+ # Find the directory that this script lives in. -+ thisdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\` -+ test \"x\$thisdir\" = \"x\$file\" && thisdir=. -+ -+ # Follow symbolic links until we get to the real thisdir. -+ file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\` -+ while test -n \"\$file\"; do -+ destdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\` -+ -+ # If there was a directory component, then change thisdir. -+ if test \"x\$destdir\" != \"x\$file\"; then -+ case \"\$destdir\" in -+ [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; -+ *) thisdir=\"\$thisdir/\$destdir\" ;; -+ esac -+ fi -+ -+ file=\`\$ECHO \"X\$file\" | \$Xsed -e 's%^.*/%%'\` -+ file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\` -+ done -+" -+} -+# end: func_emit_wrapper_part1 -+ -+# func_emit_wrapper_part2 [arg=no] -+# -+# Emit the second part of a libtool wrapper script on stdout. -+# For more information, see the description associated with -+# func_emit_wrapper(), below. -+func_emit_wrapper_part2 () -+{ -+ func_emit_wrapper_part2_arg1=no -+ if test -n "$1" ; then -+ func_emit_wrapper_part2_arg1=$1 -+ fi -+ -+ $ECHO "\ -+ -+ # Usually 'no', except on cygwin/mingw when embedded into -+ # the cwrapper. -+ WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_part2_arg1 -+ if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then -+ # special case for '.' -+ if test \"\$thisdir\" = \".\"; then -+ thisdir=\`pwd\` -+ fi -+ # remove .libs from thisdir -+ case \"\$thisdir\" in -+ *[\\\\/]$objdir ) thisdir=\`\$ECHO \"X\$thisdir\" | \$Xsed -e 's%[\\\\/][^\\\\/]*$%%'\` ;; -+ $objdir ) thisdir=. ;; -+ esac -+ fi -+ -+ # Try to get the absolute directory name. -+ absdir=\`cd \"\$thisdir\" && pwd\` -+ test -n \"\$absdir\" && thisdir=\"\$absdir\" -+" -+ -+ if test "$fast_install" = yes; then -+ $ECHO "\ -+ program=lt-'$outputname'$exeext -+ progdir=\"\$thisdir/$objdir\" -+ -+ if test ! -f \"\$progdir/\$program\" || -+ { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ -+ test \"X\$file\" != \"X\$progdir/\$program\"; }; then -+ -+ file=\"\$\$-\$program\" -+ -+ if test ! -d \"\$progdir\"; then -+ $MKDIR \"\$progdir\" -+ else -+ $RM \"\$progdir/\$file\" -+ fi" -+ -+ $ECHO "\ -+ -+ # relink executable if necessary -+ if test -n \"\$relink_command\"; then -+ if relink_command_output=\`eval \$relink_command 2>&1\`; then : -+ else -+ $ECHO \"\$relink_command_output\" >&2 -+ $RM \"\$progdir/\$file\" -+ exit 1 -+ fi -+ fi -+ -+ $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || -+ { $RM \"\$progdir/\$program\"; -+ $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; } -+ $RM \"\$progdir/\$file\" -+ fi" -+ else -+ $ECHO "\ -+ program='$outputname' -+ progdir=\"\$thisdir/$objdir\" -+" -+ fi -+ -+ $ECHO "\ -+ -+ if test -f \"\$progdir/\$program\"; then" -+ -+ # Export our shlibpath_var if we have one. -+ if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then -+ $ECHO "\ -+ # Add our own library path to $shlibpath_var -+ $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" -+ -+ # Some systems cannot cope with colon-terminated $shlibpath_var -+ # The second colon is a workaround for a bug in BeOS R4 sed -+ $shlibpath_var=\`\$ECHO \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\` -+ -+ export $shlibpath_var -+" -+ 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 "\ -+ if test \"\$libtool_execute_magic\" != \"$magic\"; then -+ # Run the actual program with our arguments. -+" -+ case $host in -+ # Backslashes separate directories on plain windows -+ *-*-mingw | *-*-os2* | *-cegcc*) -+ $ECHO "\ -+ exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} -+" -+ ;; -+ -+ *) -+ $ECHO "\ -+ exec \"\$progdir/\$program\" \${1+\"\$@\"} -+" -+ ;; -+ esac -+ $ECHO "\ -+ \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 -+ exit 1 -+ fi -+ else -+ # The program doesn't exist. -+ \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 -+ \$ECHO \"This script is just a wrapper for \$program.\" 1>&2 -+ $ECHO \"See the $PACKAGE documentation for more information.\" 1>&2 -+ exit 1 -+ fi -+fi\ -+" -+} -+# end: func_emit_wrapper_part2 -+ -+ -+# func_emit_wrapper [arg=no] -+# -+# Emit a libtool wrapper script on stdout. -+# Don't directly open a file because we may want to -+# incorporate the script contents within a cygwin/mingw -+# wrapper executable. Must ONLY be called from within -+# func_mode_link because it depends on a number of variables -+# set therein. -+# -+# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR -+# variable will take. If 'yes', then the emitted script -+# will assume that the directory in which it is stored is -+# the $objdir directory. This is a cygwin/mingw-specific -+# behavior. -+func_emit_wrapper () -+{ -+ func_emit_wrapper_arg1=no -+ if test -n "$1" ; then -+ func_emit_wrapper_arg1=$1 -+ fi -+ -+ # split this up so that func_emit_cwrapperexe_src -+ # can call each part independently. -+ func_emit_wrapper_part1 "${func_emit_wrapper_arg1}" -+ func_emit_wrapper_part2 "${func_emit_wrapper_arg1}" -+} -+ -+ -+# 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 -- *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) -+ *mingw* ) -+ lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' -+ case $build in -+ *mingw* ) # actually, msys -+ # awkward: cmd appends spaces to result -+ lt_sed_strip_trailing_spaces="s/[ ]*\$//" -+ func_to_host_path_tmp1=`( cmd //c echo "$1" |\ -+ $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""` -+ func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ -+ $SED -e "$lt_sed_naive_backslashify"` -+ ;; -+ *cygwin* ) -+ func_to_host_path_tmp1=`cygpath -w "$1"` -+ func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ -+ $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_to_host_pathlist_tmp2="$1" -+ # Once set for this call, this variable should not be -+ # reassigned. It is used in tha fallback case. -+ func_to_host_pathlist_tmp1=`echo "$func_to_host_pathlist_tmp2" |\ -+ $SED -e 's|^:*||' -e 's|:*$||'` -+ case $build in -+ *mingw* ) # Actually, msys. -+ # Awkward: cmd appends spaces to result. -+ lt_sed_strip_trailing_spaces="s/[ ]*\$//" -+ func_to_host_pathlist_tmp2=`( cmd //c echo "$func_to_host_pathlist_tmp1" |\ -+ $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""` -+ func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\ -+ $SED -e "$lt_sed_naive_backslashify"` -+ ;; -+ *cygwin* ) -+ func_to_host_pathlist_tmp2=`cygpath -w -p "$func_to_host_pathlist_tmp1"` -+ func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\ -+ $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_to_host_pathlist_result="$func_to_host_pathlist_result;$func_to_host_path_result" -+ fi -+ fi -+ fi -+ IFS=: -+ 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_to_host_pathlist_result="$func_to_host_pathlist_result;" -+ ;; -+ esac -+ ;; -+ esac -+ fi -+} -+# end: func_to_host_pathlist -+ -+# func_emit_cwrapperexe_src -+# emit the source code for a wrapper executable on stdout -+# Must ONLY be called from within func_mode_link because -+# it depends on a number of variable set therein. -+func_emit_cwrapperexe_src () -+{ -+ cat <<EOF -+ -+/* $cwrappersource - temporary wrapper executable for $objdir/$outputname -+ Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION -+ -+ The $output program cannot be directly executed until all the libtool -+ libraries that it depends on are installed. -+ -+ This wrapper executable should never be moved out of the build directory. -+ If it is, it will not operate correctly. -+ -+ Currently, it simply execs the wrapper *script* "$SHELL $output", -+ but could eventually absorb all of the scripts functionality and -+ exec $objdir/$outputname directly. -+*/ -+EOF -+ cat <<"EOF" -+#include <stdio.h> -+#include <stdlib.h> -+#ifdef _MSC_VER -+# include <direct.h> -+# include <process.h> -+# include <io.h> -+# define setmode _setmode -+#else -+# include <unistd.h> -+# include <stdint.h> -+# ifdef __CYGWIN__ -+# include <io.h> -+# define HAVE_SETENV -+# ifdef __STRICT_ANSI__ -+char *realpath (const char *, char *); -+int putenv (char *); -+int setenv (const char *, const char *, int); -+# endif -+# endif -+#endif -+#include <malloc.h> -+#include <stdarg.h> -+#include <assert.h> -+#include <string.h> -+#include <ctype.h> -+#include <errno.h> -+#include <fcntl.h> -+#include <sys/stat.h> -+ -+#if defined(PATH_MAX) -+# define LT_PATHMAX PATH_MAX -+#elif defined(MAXPATHLEN) -+# define LT_PATHMAX MAXPATHLEN -+#else -+# define LT_PATHMAX 1024 -+#endif -+ -+#ifndef S_IXOTH -+# define S_IXOTH 0 -+#endif -+#ifndef S_IXGRP -+# define S_IXGRP 0 -+#endif -+ -+#ifdef _MSC_VER -+# define S_IXUSR _S_IEXEC -+# define stat _stat -+# ifndef _INTPTR_T_DEFINED -+# define intptr_t int -+# endif -+#endif -+ -+#ifndef DIR_SEPARATOR -+# define DIR_SEPARATOR '/' -+# define PATH_SEPARATOR ':' -+#endif -+ -+#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ -+ defined (__OS2__) -+# define HAVE_DOS_BASED_FILE_SYSTEM -+# define FOPEN_WB "wb" -+# ifndef DIR_SEPARATOR_2 -+# define DIR_SEPARATOR_2 '\\' -+# endif -+# ifndef PATH_SEPARATOR_2 -+# define PATH_SEPARATOR_2 ';' -+# endif -+#endif -+ -+#ifndef DIR_SEPARATOR_2 -+# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) -+#else /* DIR_SEPARATOR_2 */ -+# define IS_DIR_SEPARATOR(ch) \ -+ (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) -+#endif /* DIR_SEPARATOR_2 */ -+ -+#ifndef PATH_SEPARATOR_2 -+# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) -+#else /* PATH_SEPARATOR_2 */ -+# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) -+#endif /* PATH_SEPARATOR_2 */ -+ -+#ifdef __CYGWIN__ -+# define FOPEN_WB "wb" -+#endif -+ -+#ifndef FOPEN_WB -+# define FOPEN_WB "w" -+#endif -+#ifndef _O_BINARY -+# define _O_BINARY 0 -+#endif -+ -+#define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) -+#define XFREE(stale) do { \ -+ if (stale) { free ((void *) stale); stale = 0; } \ -+} while (0) -+ -+#undef LTWRAPPER_DEBUGPRINTF -+#if defined DEBUGWRAPPER -+# define LTWRAPPER_DEBUGPRINTF(args) ltwrapper_debugprintf args -+static void -+ltwrapper_debugprintf (const char *fmt, ...) -+{ -+ va_list args; -+ va_start (args, fmt); -+ (void) vfprintf (stderr, fmt, args); -+ va_end (args); -+} -+#else -+# define LTWRAPPER_DEBUGPRINTF(args) -+#endif -+ -+const char *program_name = NULL; -+ -+void *xmalloc (size_t num); -+char *xstrdup (const char *string); -+const char *base_name (const char *name); -+char *find_executable (const char *wrapper); -+char *chase_symlinks (const char *pathspec); -+int make_executable (const char *path); -+int check_executable (const char *path); -+char *strendzap (char *str, const char *pat); -+void lt_fatal (const char *message, ...); -+void lt_setenv (const char *name, const char *value); -+char *lt_extend_str (const char *orig_value, const char *add, int to_end); -+void lt_opt_process_env_set (const char *arg); -+void lt_opt_process_env_prepend (const char *arg); -+void lt_opt_process_env_append (const char *arg); -+int lt_split_name_value (const char *arg, char** name, char** value); -+void lt_update_exe_path (const char *name, const char *value); -+void lt_update_lib_path (const char *name, const char *value); -+ -+static const char *script_text_part1 = -+EOF -+ -+ func_emit_wrapper_part1 yes | -+ $SED -e 's/\([\\"]\)/\\\1/g' \ -+ -e 's/^/ "/' -e 's/$/\\n"/' -+ echo ";" -+ cat <<EOF -+ -+static const char *script_text_part2 = -+EOF -+ func_emit_wrapper_part2 yes | -+ $SED -e 's/\([\\"]\)/\\\1/g' \ -+ -e 's/^/ "/' -e 's/$/\\n"/' -+ echo ";" -+ -+ cat <<EOF -+const char * MAGIC_EXE = "$magic_exe"; -+const char * LIB_PATH_VARNAME = "$shlibpath_var"; -+EOF -+ -+ if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then -+ func_to_host_pathlist "$temp_rpath" -+ cat <<EOF -+const char * LIB_PATH_VALUE = "$func_to_host_pathlist_result"; -+EOF -+ else -+ cat <<"EOF" -+const char * LIB_PATH_VALUE = ""; -+EOF -+ fi -+ -+ if test -n "$dllsearchpath"; then -+ func_to_host_pathlist "$dllsearchpath:" -+ cat <<EOF -+const char * EXE_PATH_VARNAME = "PATH"; -+const char * EXE_PATH_VALUE = "$func_to_host_pathlist_result"; -+EOF -+ else -+ cat <<"EOF" -+const char * EXE_PATH_VARNAME = ""; -+const char * EXE_PATH_VALUE = ""; -+EOF -+ fi -+ -+ if test "$fast_install" = yes; then -+ cat <<EOF -+const char * TARGET_PROGRAM_NAME = "lt-$outputname"; /* hopefully, no .exe */ -+EOF -+ else -+ cat <<EOF -+const char * TARGET_PROGRAM_NAME = "$outputname"; /* hopefully, no .exe */ -+EOF -+ fi -+ -+ -+ cat <<"EOF" -+ -+#define LTWRAPPER_OPTION_PREFIX "--lt-" -+#define LTWRAPPER_OPTION_PREFIX_LENGTH 5 -+ -+static const size_t opt_prefix_len = LTWRAPPER_OPTION_PREFIX_LENGTH; -+static const char *ltwrapper_option_prefix = LTWRAPPER_OPTION_PREFIX; -+ -+static const char *dumpscript_opt = LTWRAPPER_OPTION_PREFIX "dump-script"; -+ -+static const size_t env_set_opt_len = LTWRAPPER_OPTION_PREFIX_LENGTH + 7; -+static const char *env_set_opt = LTWRAPPER_OPTION_PREFIX "env-set"; -+ /* argument is putenv-style "foo=bar", value of foo is set to bar */ -+ -+static const size_t env_prepend_opt_len = LTWRAPPER_OPTION_PREFIX_LENGTH + 11; -+static const char *env_prepend_opt = LTWRAPPER_OPTION_PREFIX "env-prepend"; -+ /* argument is putenv-style "foo=bar", new value of foo is bar${foo} */ -+ -+static const size_t env_append_opt_len = LTWRAPPER_OPTION_PREFIX_LENGTH + 10; -+static const char *env_append_opt = LTWRAPPER_OPTION_PREFIX "env-append"; -+ /* argument is putenv-style "foo=bar", new value of foo is ${foo}bar */ -+ -+int -+main (int argc, char *argv[]) -+{ -+ char **newargz; -+ int newargc; -+ char *tmp_pathspec; -+ char *actual_cwrapper_path; -+ char *actual_cwrapper_name; -+ char *target_name; -+ char *lt_argv_zero; -+ intptr_t rval = 127; -+ -+ int i; -+ -+ program_name = (char *) xstrdup (base_name (argv[0])); -+ LTWRAPPER_DEBUGPRINTF (("(main) argv[0] : %s\n", argv[0])); -+ LTWRAPPER_DEBUGPRINTF (("(main) program_name : %s\n", program_name)); -+ -+ /* very simple arg parsing; don't want to rely on getopt */ -+ for (i = 1; i < argc; i++) -+ { -+ if (strcmp (argv[i], dumpscript_opt) == 0) -+ { -+EOF -+ case "$host" in -+ *mingw* | *cygwin* ) -+ # make stdout use "unix" line endings -+ echo " setmode(1,_O_BINARY);" -+ ;; -+ esac -+ -+ cat <<"EOF" -+ printf ("%s", script_text_part1); -+ printf ("%s", script_text_part2); -+ return 0; -+ } -+ } -+ -+ newargz = XMALLOC (char *, argc + 1); -+ tmp_pathspec = find_executable (argv[0]); -+ if (tmp_pathspec == NULL) -+ lt_fatal ("Couldn't find %s", argv[0]); -+ LTWRAPPER_DEBUGPRINTF (("(main) found exe (before symlink chase) at : %s\n", -+ tmp_pathspec)); -+ -+ actual_cwrapper_path = chase_symlinks (tmp_pathspec); -+ LTWRAPPER_DEBUGPRINTF (("(main) found exe (after symlink chase) at : %s\n", -+ actual_cwrapper_path)); -+ XFREE (tmp_pathspec); -+ -+ actual_cwrapper_name = xstrdup( base_name (actual_cwrapper_path)); -+ strendzap (actual_cwrapper_path, actual_cwrapper_name); -+ -+ /* wrapper name transforms */ -+ strendzap (actual_cwrapper_name, ".exe"); -+ tmp_pathspec = lt_extend_str (actual_cwrapper_name, ".exe", 1); -+ XFREE (actual_cwrapper_name); -+ actual_cwrapper_name = tmp_pathspec; -+ tmp_pathspec = 0; -+ -+ /* target_name transforms -- use actual target program name; might have lt- prefix */ -+ target_name = xstrdup (base_name (TARGET_PROGRAM_NAME)); -+ strendzap (target_name, ".exe"); -+ tmp_pathspec = lt_extend_str (target_name, ".exe", 1); -+ XFREE (target_name); -+ target_name = tmp_pathspec; -+ tmp_pathspec = 0; -+ -+ LTWRAPPER_DEBUGPRINTF (("(main) libtool target name: %s\n", -+ target_name)); -+EOF -+ -+ cat <<EOF -+ newargz[0] = -+ XMALLOC (char, (strlen (actual_cwrapper_path) + -+ strlen ("$objdir") + 1 + strlen (actual_cwrapper_name) + 1)); -+ strcpy (newargz[0], actual_cwrapper_path); -+ strcat (newargz[0], "$objdir"); -+ strcat (newargz[0], "/"); -+EOF -+ -+ cat <<"EOF" -+ /* stop here, and copy so we don't have to do this twice */ -+ tmp_pathspec = xstrdup (newargz[0]); -+ -+ /* do NOT want the lt- prefix here, so use actual_cwrapper_name */ -+ strcat (newargz[0], actual_cwrapper_name); -+ -+ /* DO want the lt- prefix here if it exists, so use target_name */ -+ lt_argv_zero = lt_extend_str (tmp_pathspec, target_name, 1); -+ XFREE (tmp_pathspec); -+ tmp_pathspec = NULL; -+EOF -+ -+ case $host_os in -+ mingw*) -+ cat <<"EOF" -+ { -+ char* p; -+ while ((p = strchr (newargz[0], '\\')) != NULL) -+ { -+ *p = '/'; -+ } -+ while ((p = strchr (lt_argv_zero, '\\')) != NULL) -+ { -+ *p = '/'; -+ } -+ } -+EOF -+ ;; -+ esac -+ -+ cat <<"EOF" -+ XFREE (target_name); -+ XFREE (actual_cwrapper_path); -+ XFREE (actual_cwrapper_name); -+ -+ lt_setenv ("BIN_SH", "xpg4"); /* for Tru64 */ -+ lt_setenv ("DUALCASE", "1"); /* for MSK sh */ -+ lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE); -+ lt_update_exe_path (EXE_PATH_VARNAME, EXE_PATH_VALUE); -+ -+ newargc=0; -+ for (i = 1; i < argc; i++) -+ { -+ if (strncmp (argv[i], env_set_opt, env_set_opt_len) == 0) -+ { -+ if (argv[i][env_set_opt_len] == '=') -+ { -+ const char *p = argv[i] + env_set_opt_len + 1; -+ lt_opt_process_env_set (p); -+ } -+ else if (argv[i][env_set_opt_len] == '\0' && i + 1 < argc) -+ { -+ lt_opt_process_env_set (argv[++i]); /* don't copy */ -+ } -+ else -+ lt_fatal ("%s missing required argument", env_set_opt); -+ continue; -+ } -+ if (strncmp (argv[i], env_prepend_opt, env_prepend_opt_len) == 0) -+ { -+ if (argv[i][env_prepend_opt_len] == '=') -+ { -+ const char *p = argv[i] + env_prepend_opt_len + 1; -+ lt_opt_process_env_prepend (p); -+ } -+ else if (argv[i][env_prepend_opt_len] == '\0' && i + 1 < argc) -+ { -+ lt_opt_process_env_prepend (argv[++i]); /* don't copy */ -+ } -+ else -+ lt_fatal ("%s missing required argument", env_prepend_opt); -+ continue; -+ } -+ if (strncmp (argv[i], env_append_opt, env_append_opt_len) == 0) -+ { -+ if (argv[i][env_append_opt_len] == '=') -+ { -+ const char *p = argv[i] + env_append_opt_len + 1; -+ lt_opt_process_env_append (p); -+ } -+ else if (argv[i][env_append_opt_len] == '\0' && i + 1 < argc) -+ { -+ lt_opt_process_env_append (argv[++i]); /* don't copy */ -+ } -+ else -+ lt_fatal ("%s missing required argument", env_append_opt); -+ continue; -+ } -+ if (strncmp (argv[i], ltwrapper_option_prefix, opt_prefix_len) == 0) -+ { -+ /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX -+ namespace, but it is not one of the ones we know about and -+ have already dealt with, above (inluding dump-script), then -+ report an error. Otherwise, targets might begin to believe -+ they are allowed to use options in the LTWRAPPER_OPTION_PREFIX -+ namespace. The first time any user complains about this, we'll -+ need to make LTWRAPPER_OPTION_PREFIX a configure-time option -+ or a configure.ac-settable value. -+ */ -+ lt_fatal ("Unrecognized option in %s namespace: '%s'", -+ ltwrapper_option_prefix, argv[i]); -+ } -+ /* otherwise ... */ -+ newargz[++newargc] = xstrdup (argv[i]); -+ } -+ newargz[++newargc] = NULL; -+ -+ LTWRAPPER_DEBUGPRINTF (("(main) lt_argv_zero : %s\n", (lt_argv_zero ? lt_argv_zero : "<NULL>"))); -+ for (i = 0; i < newargc; i++) -+ { -+ LTWRAPPER_DEBUGPRINTF (("(main) newargz[%d] : %s\n", i, (newargz[i] ? newargz[i] : "<NULL>"))); -+ } -+ -+EOF -+ -+ case $host_os in -+ mingw*) -+ cat <<"EOF" -+ /* execv doesn't actually work on mingw as expected on unix */ -+ rval = _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz); -+ if (rval == -1) -+ { -+ /* failed to start process */ -+ LTWRAPPER_DEBUGPRINTF (("(main) failed to launch target \"%s\": errno = %d\n", lt_argv_zero, errno)); -+ return 127; -+ } -+ return rval; -+EOF -+ ;; -+ *) -+ cat <<"EOF" -+ execv (lt_argv_zero, newargz); -+ return rval; /* =127, but avoids unused variable warning */ -+EOF -+ ;; -+ esac -+ -+ cat <<"EOF" -+} -+ -+void * -+xmalloc (size_t num) -+{ -+ void *p = (void *) malloc (num); -+ if (!p) -+ lt_fatal ("Memory exhausted"); -+ -+ return p; -+} -+ -+char * -+xstrdup (const char *string) -+{ -+ return string ? strcpy ((char *) xmalloc (strlen (string) + 1), -+ string) : NULL; -+} -+ -+const char * -+base_name (const char *name) -+{ -+ const char *base; -+ -+#if defined (HAVE_DOS_BASED_FILE_SYSTEM) -+ /* Skip over the disk name in MSDOS pathnames. */ -+ if (isalpha ((unsigned char) name[0]) && name[1] == ':') -+ name += 2; -+#endif -+ -+ for (base = name; *name; name++) -+ if (IS_DIR_SEPARATOR (*name)) -+ base = name + 1; -+ return base; -+} -+ -+int -+check_executable (const char *path) -+{ -+ struct stat st; -+ -+ LTWRAPPER_DEBUGPRINTF (("(check_executable) : %s\n", -+ path ? (*path ? path : "EMPTY!") : "NULL!")); -+ if ((!path) || (!*path)) -+ return 0; -+ -+ if ((stat (path, &st) >= 0) -+ && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH))) -+ return 1; -+ else -+ return 0; -+} -+ -+int -+make_executable (const char *path) -+{ -+ int rval = 0; -+ struct stat st; -+ -+ LTWRAPPER_DEBUGPRINTF (("(make_executable) : %s\n", -+ path ? (*path ? path : "EMPTY!") : "NULL!")); -+ if ((!path) || (!*path)) -+ return 0; -+ -+ if (stat (path, &st) >= 0) -+ { -+ rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR); -+ } -+ return rval; -+} -+ -+/* Searches for the full path of the wrapper. Returns -+ newly allocated full path name if found, NULL otherwise -+ Does not chase symlinks, even on platforms that support them. -+*/ -+char * -+find_executable (const char *wrapper) -+{ -+ int has_slash = 0; -+ const char *p; -+ const char *p_next; -+ /* static buffer for getcwd */ -+ char tmp[LT_PATHMAX + 1]; -+ int tmp_len; -+ char *concat_name; -+ -+ LTWRAPPER_DEBUGPRINTF (("(find_executable) : %s\n", -+ wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!")); -+ -+ if ((wrapper == NULL) || (*wrapper == '\0')) -+ return NULL; -+ -+ /* Absolute path? */ -+#if defined (HAVE_DOS_BASED_FILE_SYSTEM) -+ if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':') -+ { -+ concat_name = xstrdup (wrapper); -+ if (check_executable (concat_name)) -+ return concat_name; -+ XFREE (concat_name); -+ } -+ else -+ { -+#endif -+ if (IS_DIR_SEPARATOR (wrapper[0])) -+ { -+ concat_name = xstrdup (wrapper); -+ if (check_executable (concat_name)) -+ return concat_name; -+ XFREE (concat_name); -+ } -+#if defined (HAVE_DOS_BASED_FILE_SYSTEM) -+ } -+#endif -+ -+ for (p = wrapper; *p; p++) -+ if (*p == '/') -+ { -+ has_slash = 1; -+ break; -+ } -+ if (!has_slash) -+ { -+ /* no slashes; search PATH */ -+ const char *path = getenv ("PATH"); -+ if (path != NULL) -+ { -+ for (p = path; *p; p = p_next) -+ { -+ const char *q; -+ size_t p_len; -+ for (q = p; *q; q++) -+ if (IS_PATH_SEPARATOR (*q)) -+ break; -+ p_len = q - p; -+ p_next = (*q == '\0' ? q : q + 1); -+ if (p_len == 0) -+ { -+ /* empty path: current directory */ -+ if (getcwd (tmp, LT_PATHMAX) == NULL) -+ lt_fatal ("getcwd failed"); -+ tmp_len = strlen (tmp); -+ concat_name = -+ XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); -+ memcpy (concat_name, tmp, tmp_len); -+ concat_name[tmp_len] = '/'; -+ strcpy (concat_name + tmp_len + 1, wrapper); -+ } -+ else -+ { -+ concat_name = -+ XMALLOC (char, p_len + 1 + strlen (wrapper) + 1); -+ memcpy (concat_name, p, p_len); -+ concat_name[p_len] = '/'; -+ strcpy (concat_name + p_len + 1, wrapper); -+ } -+ if (check_executable (concat_name)) -+ return concat_name; -+ XFREE (concat_name); -+ } -+ } -+ /* not found in PATH; assume curdir */ -+ } -+ /* Relative path | not found in path: prepend cwd */ -+ if (getcwd (tmp, LT_PATHMAX) == NULL) -+ lt_fatal ("getcwd failed"); -+ tmp_len = strlen (tmp); -+ concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); -+ memcpy (concat_name, tmp, tmp_len); -+ concat_name[tmp_len] = '/'; -+ strcpy (concat_name + tmp_len + 1, wrapper); -+ -+ if (check_executable (concat_name)) -+ return concat_name; -+ XFREE (concat_name); -+ return NULL; -+} -+ -+char * -+chase_symlinks (const char *pathspec) -+{ -+#ifndef S_ISLNK -+ return xstrdup (pathspec); -+#else -+ char buf[LT_PATHMAX]; -+ struct stat s; -+ char *tmp_pathspec = xstrdup (pathspec); -+ char *p; -+ int has_symlinks = 0; -+ while (strlen (tmp_pathspec) && !has_symlinks) -+ { -+ LTWRAPPER_DEBUGPRINTF (("checking path component for symlinks: %s\n", -+ tmp_pathspec)); -+ if (lstat (tmp_pathspec, &s) == 0) -+ { -+ if (S_ISLNK (s.st_mode) != 0) -+ { -+ has_symlinks = 1; -+ break; -+ } -+ -+ /* search backwards for last DIR_SEPARATOR */ -+ p = tmp_pathspec + strlen (tmp_pathspec) - 1; -+ while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) -+ p--; -+ if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) -+ { -+ /* no more DIR_SEPARATORS left */ -+ break; -+ } -+ *p = '\0'; -+ } -+ else -+ { -+ char *errstr = strerror (errno); -+ lt_fatal ("Error accessing file %s (%s)", tmp_pathspec, errstr); -+ } -+ } -+ XFREE (tmp_pathspec); -+ -+ if (!has_symlinks) -+ { -+ return xstrdup (pathspec); -+ } -+ -+ tmp_pathspec = realpath (pathspec, buf); -+ if (tmp_pathspec == 0) -+ { -+ lt_fatal ("Could not follow symlinks for %s", pathspec); -+ } -+ return xstrdup (tmp_pathspec); -+#endif -+} -+ -+char * -+strendzap (char *str, const char *pat) -+{ -+ size_t len, patlen; -+ -+ assert (str != NULL); -+ assert (pat != NULL); -+ -+ len = strlen (str); -+ patlen = strlen (pat); -+ -+ if (patlen <= len) -+ { -+ str += len - patlen; -+ if (strcmp (str, pat) == 0) -+ *str = '\0'; -+ } -+ return str; -+} -+ -+static void -+lt_error_core (int exit_status, const char *mode, -+ const char *message, va_list ap) -+{ -+ fprintf (stderr, "%s: %s: ", program_name, mode); -+ vfprintf (stderr, message, ap); -+ fprintf (stderr, ".\n"); -+ -+ if (exit_status >= 0) -+ exit (exit_status); -+} -+ -+void -+lt_fatal (const char *message, ...) -+{ -+ va_list ap; -+ va_start (ap, message); -+ lt_error_core (EXIT_FAILURE, "FATAL", message, ap); -+ va_end (ap); -+} -+ -+void -+lt_setenv (const char *name, const char *value) -+{ -+ LTWRAPPER_DEBUGPRINTF (("(lt_setenv) setting '%s' to '%s'\n", -+ (name ? name : "<NULL>"), -+ (value ? value : "<NULL>"))); -+ { -+#ifdef HAVE_SETENV -+ /* always make a copy, for consistency with !HAVE_SETENV */ -+ char *str = xstrdup (value); -+ setenv (name, str, 1); -+#else -+ int len = strlen (name) + 1 + strlen (value) + 1; -+ char *str = XMALLOC (char, len); -+ sprintf (str, "%s=%s", name, value); -+ if (putenv (str) != EXIT_SUCCESS) -+ { -+ XFREE (str); -+ } -+#endif -+ } -+} -+ -+char * -+lt_extend_str (const char *orig_value, const char *add, int to_end) -+{ -+ char *new_value; -+ if (orig_value && *orig_value) -+ { -+ int orig_value_len = strlen (orig_value); -+ int add_len = strlen (add); -+ new_value = XMALLOC (char, add_len + orig_value_len + 1); -+ if (to_end) -+ { -+ strcpy (new_value, orig_value); -+ strcpy (new_value + orig_value_len, add); -+ } -+ else -+ { -+ strcpy (new_value, add); -+ strcpy (new_value + add_len, orig_value); -+ } -+ } -+ else -+ { -+ new_value = xstrdup (add); -+ } -+ return new_value; -+} -+ -+int -+lt_split_name_value (const char *arg, char** name, char** value) -+{ -+ const char *p; -+ int len; -+ if (!arg || !*arg) -+ return 1; -+ -+ p = strchr (arg, (int)'='); -+ -+ if (!p) -+ return 1; -+ -+ *value = xstrdup (++p); -+ -+ len = strlen (arg) - strlen (*value); -+ *name = XMALLOC (char, len); -+ strncpy (*name, arg, len-1); -+ (*name)[len - 1] = '\0'; -+ -+ return 0; -+} -+ -+void -+lt_opt_process_env_set (const char *arg) -+{ -+ char *name = NULL; -+ char *value = NULL; -+ -+ if (lt_split_name_value (arg, &name, &value) != 0) -+ { -+ XFREE (name); -+ XFREE (value); -+ lt_fatal ("bad argument for %s: '%s'", env_set_opt, arg); -+ } -+ -+ lt_setenv (name, value); -+ XFREE (name); -+ XFREE (value); -+} -+ -+void -+lt_opt_process_env_prepend (const char *arg) -+{ -+ char *name = NULL; -+ char *value = NULL; -+ char *new_value = NULL; -+ -+ if (lt_split_name_value (arg, &name, &value) != 0) -+ { -+ XFREE (name); -+ XFREE (value); -+ lt_fatal ("bad argument for %s: '%s'", env_prepend_opt, arg); -+ } -+ -+ new_value = lt_extend_str (getenv (name), value, 0); -+ lt_setenv (name, new_value); -+ XFREE (new_value); -+ XFREE (name); -+ XFREE (value); -+} -+ -+void -+lt_opt_process_env_append (const char *arg) -+{ -+ char *name = NULL; -+ char *value = NULL; -+ char *new_value = NULL; -+ -+ if (lt_split_name_value (arg, &name, &value) != 0) -+ { -+ XFREE (name); -+ XFREE (value); -+ lt_fatal ("bad argument for %s: '%s'", env_append_opt, arg); -+ } -+ -+ new_value = lt_extend_str (getenv (name), value, 1); -+ lt_setenv (name, new_value); -+ XFREE (new_value); -+ XFREE (name); -+ XFREE (value); -+} -+ -+void -+lt_update_exe_path (const char *name, const char *value) -+{ -+ LTWRAPPER_DEBUGPRINTF (("(lt_update_exe_path) modifying '%s' by prepending '%s'\n", -+ (name ? name : "<NULL>"), -+ (value ? value : "<NULL>"))); -+ -+ if (name && *name && value && *value) -+ { -+ char *new_value = lt_extend_str (getenv (name), value, 0); -+ /* some systems can't cope with a ':'-terminated path #' */ -+ int len = strlen (new_value); -+ while (((len = strlen (new_value)) > 0) && IS_PATH_SEPARATOR (new_value[len-1])) -+ { -+ new_value[len-1] = '\0'; -+ } -+ lt_setenv (name, new_value); -+ XFREE (new_value); -+ } -+} -+ -+void -+lt_update_lib_path (const char *name, const char *value) -+{ -+ LTWRAPPER_DEBUGPRINTF (("(lt_update_lib_path) modifying '%s' by prepending '%s'\n", -+ (name ? name : "<NULL>"), -+ (value ? value : "<NULL>"))); -+ -+ if (name && *name && value && *value) -+ { -+ char *new_value = lt_extend_str (getenv (name), value, 0); -+ lt_setenv (name, new_value); -+ XFREE (new_value); -+ } -+} -+ -+ -+EOF -+} -+# end: func_emit_cwrapperexe_src -+ -+# func_mode_link arg... -+func_mode_link () -+{ -+ $opt_debug -+ case $host in -+ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) - # It is impossible to link a dll without this setting, and - # we shouldn't force the makefile maintainer to figure out - # which system we are compiling for in order to pass an extra -@@ -1121,10 +4058,10 @@ EOF - allow_undefined=yes - ;; - esac -- libtool_args="$nonopt" -+ libtool_args=$nonopt - base_compile="$nonopt $@" -- compile_command="$nonopt" -- finalize_command="$nonopt" -+ compile_command=$nonopt -+ finalize_command=$nonopt - - compile_rpath= - finalize_rpath= -@@ -1139,6 +4076,7 @@ EOF - dllsearchpath= - lib_search_path=`pwd` - inst_prefix_dir= -+ new_inherited_linker_flags= - - avoid_version=no - dlfiles= -@@ -1154,7 +4092,6 @@ EOF - no_install=no - objs= - non_pic_objects= -- notinst_path= # paths that contain not-installed libtool libraries - precious_files_regex= - prefer_static_libs=no - preload=no -@@ -1168,19 +4105,25 @@ EOF - thread_safe=no - vinfo= - vinfo_number=no -+ weak_libs= - single_module="${wl}-single_module" -- - func_infer_tag $base_compile - - # We need to know -static, to get the right output filenames. - for arg - do - case $arg in -+ -shared) -+ test "$build_libtool_libs" != yes && \ -+ func_fatal_configuration "can not build a shared library" -+ build_old_libs=no -+ break -+ ;; - -all-static | -static | -static-libtool-libs) - case $arg in - -all-static) - if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then -- $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2 -+ func_warning "complete static linking is impossible in this configuration" - fi - if test -n "$link_static_flag"; then - dlopen_self=$dlopen_self_static -@@ -1214,20 +4157,16 @@ EOF - while test "$#" -gt 0; do - arg="$1" - shift -- case $arg in -- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") -- qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test -- ;; -- *) qarg=$arg ;; -- esac -- libtool_args="$libtool_args $qarg" -+ func_quote_for_eval "$arg" -+ qarg=$func_quote_for_eval_unquoted_result -+ func_append libtool_args " $func_quote_for_eval_result" - - # If the previous option needs an argument, assign it. - if test -n "$prev"; then - case $prev in - output) -- compile_command="$compile_command @OUTPUT@" -- finalize_command="$finalize_command @OUTPUT@" -+ func_append compile_command " @OUTPUT@" -+ func_append finalize_command " @OUTPUT@" - ;; - esac - -@@ -1235,8 +4174,8 @@ EOF - dlfiles|dlprefiles) - if test "$preload" = no; then - # Add the symbol object into the linking commands. -- compile_command="$compile_command @SYMFILE@" -- finalize_command="$finalize_command @SYMFILE@" -+ func_append compile_command " @SYMFILE@" -+ func_append finalize_command " @SYMFILE@" - preload=yes - fi - case $arg in -@@ -1274,10 +4213,8 @@ EOF - ;; - expsyms) - export_symbols="$arg" -- if test ! -f "$arg"; then -- $echo "$modename: symbol file \`$arg' does not exist" -- exit $EXIT_FAILURE -- fi -+ test -f "$arg" \ -+ || func_fatal_error "symbol file \`$arg' does not exist" - prev= - continue - ;; -@@ -1286,18 +4223,21 @@ EOF - prev= - continue - ;; -- inst_prefix) -- inst_prefix_dir="$arg" -- prev= -- continue -- ;; -- precious_regex) -- precious_files_regex="$arg" -+ framework) -+ case $host in -+ *-*-darwin*) -+ case "$deplibs " in -+ *" $qarg.ltframework "*) ;; -+ *) deplibs="$deplibs $qarg.ltframework" # this is fixed later -+ ;; -+ esac -+ ;; -+ esac - prev= - continue - ;; -- release) -- release="-$arg" -+ inst_prefix) -+ inst_prefix_dir="$arg" - prev= - continue - ;; -@@ -1305,39 +4245,30 @@ EOF - if test -f "$arg"; then - save_arg=$arg - moreargs= -- for fil in `cat $save_arg` -+ for fil in `cat "$save_arg"` - do - # moreargs="$moreargs $fil" - arg=$fil - # A libtool-controlled object. - - # Check to see that this really is a libtool object. -- if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then -+ if func_lalib_unsafe_p "$arg"; then - pic_object= - non_pic_object= - - # Read the .lo file -- # If there is no directory component, then add one. -- case $arg in -- */* | *\\*) . $arg ;; -- *) . ./$arg ;; -- esac -+ func_source "$arg" - -- if test -z "$pic_object" || \ -+ if test -z "$pic_object" || - test -z "$non_pic_object" || -- test "$pic_object" = none && \ -+ test "$pic_object" = none && - test "$non_pic_object" = none; then -- $echo "$modename: cannot find name of object for \`$arg'" 1>&2 -- exit $EXIT_FAILURE -+ func_fatal_error "cannot find name of object for \`$arg'" - fi - - # Extract subdirectory from the argument. -- xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` -- if test "X$xdir" = "X$arg"; then -- xdir= -- else -- xdir="$xdir/" -- fi -+ func_dirname "$arg" "/" "" -+ xdir="$func_dirname_result" - - if test "$pic_object" != none; then - # Prepend the subdirectory the object is found in. -@@ -1362,7 +4293,7 @@ EOF - fi - - # A PIC object. -- libobjs="$libobjs $pic_object" -+ func_append libobjs " $pic_object" - arg="$pic_object" - fi - -@@ -1372,7 +4303,7 @@ EOF - non_pic_object="$xdir$non_pic_object" - - # A standard non-PIC object -- non_pic_objects="$non_pic_objects $non_pic_object" -+ func_append non_pic_objects " $non_pic_object" - if test -z "$pic_object" || test "$pic_object" = none ; then - arg="$non_pic_object" - fi -@@ -1380,46 +4311,48 @@ EOF - # If the PIC object exists, use it instead. - # $xdir was prepended to $pic_object above. - non_pic_object="$pic_object" -- non_pic_objects="$non_pic_objects $non_pic_object" -+ func_append non_pic_objects " $non_pic_object" - fi - else - # Only an error if not doing a dry-run. -- if test -z "$run"; then -- $echo "$modename: \`$arg' is not a valid libtool object" 1>&2 -- exit $EXIT_FAILURE -- else -- # Dry-run case. -- -+ if $opt_dry_run; then - # Extract subdirectory from the argument. -- xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` -- if test "X$xdir" = "X$arg"; then -- xdir= -- else -- xdir="$xdir/" -- fi -+ func_dirname "$arg" "/" "" -+ xdir="$func_dirname_result" - -- pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"` -- non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"` -- libobjs="$libobjs $pic_object" -- non_pic_objects="$non_pic_objects $non_pic_object" -+ func_lo2o "$arg" -+ pic_object=$xdir$objdir/$func_lo2o_result -+ non_pic_object=$xdir$func_lo2o_result -+ func_append libobjs " $pic_object" -+ func_append non_pic_objects " $non_pic_object" -+ else -+ func_fatal_error "\`$arg' is not a valid libtool object" - fi - fi - done - else -- $echo "$modename: link input file \`$save_arg' does not exist" -- exit $EXIT_FAILURE -+ func_fatal_error "link input file \`$arg' does not exist" - fi - arg=$save_arg - prev= - continue - ;; -+ precious_regex) -+ precious_files_regex="$arg" -+ prev= -+ continue -+ ;; -+ release) -+ release="-$arg" -+ prev= -+ continue -+ ;; - rpath | xrpath) - # We need an absolute path. - case $arg in - [\\/]* | [A-Za-z]:[\\/]*) ;; - *) -- $echo "$modename: only absolute run-paths are allowed" 1>&2 -- exit $EXIT_FAILURE -+ func_fatal_error "only absolute run-paths are allowed" - ;; - esac - if test "$prev" = rpath; then -@@ -1436,39 +4369,37 @@ EOF - prev= - continue - ;; -- xcompiler) -- compiler_flags="$compiler_flags $qarg" -+ shrext) -+ shrext_cmds="$arg" - prev= -- compile_command="$compile_command $qarg" -- finalize_command="$finalize_command $qarg" - continue - ;; -- xlinker) -- linker_flags="$linker_flags $qarg" -- compiler_flags="$compiler_flags $wl$qarg" -+ weak) -+ weak_libs="$weak_libs $arg" - prev= -- compile_command="$compile_command $wl$qarg" -- finalize_command="$finalize_command $wl$qarg" - continue - ;; - xcclinker) - linker_flags="$linker_flags $qarg" - compiler_flags="$compiler_flags $qarg" - prev= -- compile_command="$compile_command $qarg" -- finalize_command="$finalize_command $qarg" -+ func_append compile_command " $qarg" -+ func_append finalize_command " $qarg" - continue - ;; -- shrext) -- shrext_cmds="$arg" -+ xcompiler) -+ compiler_flags="$compiler_flags $qarg" - prev= -+ func_append compile_command " $qarg" -+ func_append finalize_command " $qarg" - continue - ;; -- darwin_framework|darwin_framework_skip) -- test "$prev" = "darwin_framework" && compiler_flags="$compiler_flags $arg" -- compile_command="$compile_command $arg" -- finalize_command="$finalize_command $arg" -+ xlinker) -+ linker_flags="$linker_flags $qarg" -+ compiler_flags="$compiler_flags $wl$qarg" - prev= -+ func_append compile_command " $wl$qarg" -+ func_append finalize_command " $wl$qarg" - continue - ;; - *) -@@ -1484,16 +4415,16 @@ EOF - case $arg in - -all-static) - if test -n "$link_static_flag"; then -- compile_command="$compile_command $link_static_flag" -- finalize_command="$finalize_command $link_static_flag" -+ # See comment for -static flag below, for more details. -+ func_append compile_command " $link_static_flag" -+ func_append finalize_command " $link_static_flag" - fi - continue - ;; - - -allow-undefined) - # FIXME: remove this flag sometime in the future. -- $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2 -- continue -+ func_fatal_error "\`-allow-undefined' must not be used because it is the default" - ;; - - -avoid-version) -@@ -1518,8 +4449,7 @@ EOF - - -export-symbols | -export-symbols-regex) - if test -n "$export_symbols" || test -n "$export_symbols_regex"; then -- $echo "$modename: more than one -exported-symbols argument is not allowed" -- exit $EXIT_FAILURE -+ func_fatal_error "more than one -exported-symbols argument is not allowed" - fi - if test "X$arg" = "X-export-symbols"; then - prev=expsyms -@@ -1529,15 +4459,8 @@ EOF - continue - ;; - -- -framework|-arch|-isysroot) -- case " $CC " in -- *" ${arg} ${1} "* | *" ${arg} ${1} "*) -- prev=darwin_framework_skip ;; -- *) compiler_flags="$compiler_flags $arg" -- prev=darwin_framework ;; -- esac -- compile_command="$compile_command $arg" -- finalize_command="$finalize_command $arg" -+ -framework) -+ prev=framework - continue - ;; - -@@ -1551,25 +4474,30 @@ EOF - -L[A-Z][A-Z]*:*) - case $with_gcc/$host in - no/*-*-irix* | /*-*-irix*) -- compile_command="$compile_command $arg" -- finalize_command="$finalize_command $arg" -+ func_append compile_command " $arg" -+ func_append finalize_command " $arg" - ;; - esac - continue - ;; - - -L*) -- dir=`$echo "X$arg" | $Xsed -e 's/^-L//'` -+ func_stripname '-L' '' "$arg" -+ dir=$func_stripname_result -+ if test -z "$dir"; then -+ if test "$#" -gt 0; then -+ func_fatal_error "require no space between \`-L' and \`$1'" -+ else -+ func_fatal_error "need path for \`-L' option" -+ fi -+ fi - # We need an absolute path. - case $dir in - [\\/]* | [A-Za-z]:[\\/]*) ;; - *) - absdir=`cd "$dir" && pwd` -- if test -z "$absdir"; then -- $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2 -- absdir="$dir" -- notinst_path="$notinst_path $dir" -- fi -+ test -z "$absdir" && \ -+ func_fatal_error "cannot determine absolute directory name of \`$dir'" - dir="$absdir" - ;; - esac -@@ -1581,14 +4509,16 @@ EOF - ;; - esac - case $host in -- *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) -- testbindir=`$echo "X$dir" | $Xsed -e 's*/lib$*/bin*'` -+ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) -+ testbindir=`$ECHO "X$dir" | $Xsed -e 's*/lib$*/bin*'` - case :$dllsearchpath: in - *":$dir:"*) ;; -+ ::) dllsearchpath=$dir;; - *) dllsearchpath="$dllsearchpath:$dir";; - esac - case :$dllsearchpath: in - *":$testbindir:"*) ;; -+ ::) dllsearchpath=$testbindir;; - *) dllsearchpath="$dllsearchpath:$testbindir";; - esac - ;; -@@ -1599,7 +4529,7 @@ EOF - -l*) - if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then - case $host in -- *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos*) -+ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc*) - # These systems don't actually have a C or math library (as such) - continue - ;; -@@ -1613,7 +4543,7 @@ EOF - ;; - *-*-rhapsody* | *-*-darwin1.[012]) - # Rhapsody C and math libraries are in the System framework -- deplibs="$deplibs -framework System" -+ deplibs="$deplibs System.ltframework" - continue - ;; - *-*-sco3.2v5* | *-*-sco5v6*) -@@ -1637,20 +4567,30 @@ EOF - continue - ;; - -+ -module) -+ module=yes -+ continue -+ ;; -+ - # Tru64 UNIX uses -model [arg] to determine the layout of C++ - # classes, name mangling, and exception handling. -- -model) -- compile_command="$compile_command $arg" -+ # Darwin uses the -arch flag to determine output architecture. -+ -model|-arch|-isysroot) - compiler_flags="$compiler_flags $arg" -- finalize_command="$finalize_command $arg" -+ func_append compile_command " $arg" -+ func_append finalize_command " $arg" - prev=xcompiler - continue - ;; - -- -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) -+ -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) - compiler_flags="$compiler_flags $arg" -- compile_command="$compile_command $arg" -- finalize_command="$finalize_command $arg" -+ func_append compile_command " $arg" -+ func_append finalize_command " $arg" -+ case "$new_inherited_linker_flags " in -+ *" $arg "*) ;; -+ * ) new_inherited_linker_flags="$new_inherited_linker_flags $arg" ;; -+ esac - continue - ;; - -@@ -1659,44 +4599,6 @@ EOF - continue - ;; - -- -module) -- module=yes -- continue -- ;; -- -- # -64, -mips[0-9] enable 64-bit mode on the SGI compiler -- # -r[0-9][0-9]* specifies the processor on the SGI compiler -- # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler -- # +DA*, +DD* enable 64-bit mode on the HP compiler -- # -q* pass through compiler args for the IBM compiler -- # -m* pass through architecture-specific compiler args for GCC -- # -m*, -t[45]*, -txscale* pass through architecture-specific -- # compiler args for GCC -- # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC -- # -F/path gives path to uninstalled frameworks, gcc on darwin -- # @file GCC response files -- -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ -- -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*) -- -- # Unknown arguments in both finalize_command and compile_command need -- # to be aesthetically quoted because they are evaled later. -- arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` -- case $arg in -- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") -- arg="\"$arg\"" -- ;; -- esac -- compile_command="$compile_command $arg" -- finalize_command="$finalize_command $arg" -- compiler_flags="$compiler_flags $arg" -- continue -- ;; -- -- -shrext) -- prev=shrext -- continue -- ;; -- - -no-fast-install) - fast_install=no - continue -@@ -1704,11 +4606,11 @@ EOF - - -no-install) - case $host in -- *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin*) -+ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*) - # The PATH hackery in wrapper scripts is required on Windows - # and Darwin in order for the loader to find any dlls it needs. -- $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2 -- $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2 -+ func_warning "\`-no-install' is ignored for $host" -+ func_warning "assuming \`-no-fast-install' instead" - fast_install=no - ;; - *) no_install=yes ;; -@@ -1749,13 +4651,13 @@ EOF - ;; - - -R*) -- dir=`$echo "X$arg" | $Xsed -e 's/^-R//'` -+ func_stripname '-R' '' "$arg" -+ dir=$func_stripname_result - # We need an absolute path. - case $dir in - [\\/]* | [A-Za-z]:[\\/]*) ;; - *) -- $echo "$modename: only absolute run-paths are allowed" 1>&2 -- exit $EXIT_FAILURE -+ func_fatal_error "only absolute run-paths are allowed" - ;; - esac - case "$xrpath " in -@@ -1765,6 +4667,16 @@ EOF - continue - ;; - -+ -shared) -+ # The effects of -shared are defined in a previous loop. -+ continue -+ ;; -+ -+ -shrext) -+ prev=shrext -+ continue -+ ;; -+ - -static | -static-libtool-libs) - # The effects of -static are defined in a previous loop. - # We used to do the same as -all-static on platforms that -@@ -1783,47 +4695,49 @@ EOF - prev=vinfo - continue - ;; -+ - -version-number) - prev=vinfo - vinfo_number=yes - continue - ;; - -+ -weak) -+ prev=weak -+ continue -+ ;; -+ - -Wc,*) -- args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'` -+ func_stripname '-Wc,' '' "$arg" -+ args=$func_stripname_result - arg= - save_ifs="$IFS"; IFS=',' - for flag in $args; do - IFS="$save_ifs" -- case $flag in -- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") -- flag="\"$flag\"" -- ;; -- esac -- arg="$arg $wl$flag" -- compiler_flags="$compiler_flags $flag" -+ func_quote_for_eval "$flag" -+ arg="$arg $wl$func_quote_for_eval_result" -+ compiler_flags="$compiler_flags $func_quote_for_eval_result" - done - IFS="$save_ifs" -- arg=`$echo "X$arg" | $Xsed -e "s/^ //"` -+ func_stripname ' ' '' "$arg" -+ arg=$func_stripname_result - ;; - - -Wl,*) -- args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'` -+ func_stripname '-Wl,' '' "$arg" -+ args=$func_stripname_result - arg= - save_ifs="$IFS"; IFS=',' - for flag in $args; do - IFS="$save_ifs" -- case $flag in -- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") -- flag="\"$flag\"" -- ;; -- esac -- arg="$arg $wl$flag" -- compiler_flags="$compiler_flags $wl$flag" -- linker_flags="$linker_flags $flag" -+ func_quote_for_eval "$flag" -+ arg="$arg $wl$func_quote_for_eval_result" -+ compiler_flags="$compiler_flags $wl$func_quote_for_eval_result" -+ linker_flags="$linker_flags $func_quote_for_eval_result" - done - IFS="$save_ifs" -- arg=`$echo "X$arg" | $Xsed -e "s/^ //"` -+ func_stripname ' ' '' "$arg" -+ arg=$func_stripname_result - ;; - - -Xcompiler) -@@ -1841,16 +4755,36 @@ EOF - continue - ;; - -+ # -msg_* for osf cc -+ -msg_*) -+ func_quote_for_eval "$arg" -+ arg="$func_quote_for_eval_result" -+ ;; -+ -+ # -64, -mips[0-9] enable 64-bit mode on the SGI compiler -+ # -r[0-9][0-9]* specifies the processor on the SGI compiler -+ # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler -+ # +DA*, +DD* enable 64-bit mode on the HP compiler -+ # -q* pass through compiler args for the IBM compiler -+ # -m*, -t[45]*, -txscale* pass through architecture-specific -+ # compiler args for GCC -+ # -F/path gives path to uninstalled frameworks, gcc on darwin -+ # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC -+ # @file GCC response files -+ -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ -+ -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*) -+ func_quote_for_eval "$arg" -+ arg="$func_quote_for_eval_result" -+ func_append compile_command " $arg" -+ func_append finalize_command " $arg" -+ compiler_flags="$compiler_flags $arg" -+ continue -+ ;; -+ - # Some other compiler flag. - -* | +*) -- # Unknown arguments in both finalize_command and compile_command need -- # to be aesthetically quoted because they are evaled later. -- arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` -- case $arg in -- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") -- arg="\"$arg\"" -- ;; -- esac -+ func_quote_for_eval "$arg" -+ arg="$func_quote_for_eval_result" - ;; - - *.$objext) -@@ -1862,32 +4796,23 @@ EOF - # A libtool-controlled object. - - # Check to see that this really is a libtool object. -- if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then -+ if func_lalib_unsafe_p "$arg"; then - pic_object= - non_pic_object= - - # Read the .lo file -- # If there is no directory component, then add one. -- case $arg in -- */* | *\\*) . $arg ;; -- *) . ./$arg ;; -- esac -+ func_source "$arg" - -- if test -z "$pic_object" || \ -+ if test -z "$pic_object" || - test -z "$non_pic_object" || -- test "$pic_object" = none && \ -+ test "$pic_object" = none && - test "$non_pic_object" = none; then -- $echo "$modename: cannot find name of object for \`$arg'" 1>&2 -- exit $EXIT_FAILURE -+ func_fatal_error "cannot find name of object for \`$arg'" - fi - - # Extract subdirectory from the argument. -- xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` -- if test "X$xdir" = "X$arg"; then -- xdir= -- else -- xdir="$xdir/" -- fi -+ func_dirname "$arg" "/" "" -+ xdir="$func_dirname_result" - - if test "$pic_object" != none; then - # Prepend the subdirectory the object is found in. -@@ -1912,7 +4837,7 @@ EOF - fi - - # A PIC object. -- libobjs="$libobjs $pic_object" -+ func_append libobjs " $pic_object" - arg="$pic_object" - fi - -@@ -1922,7 +4847,7 @@ EOF - non_pic_object="$xdir$non_pic_object" - - # A standard non-PIC object -- non_pic_objects="$non_pic_objects $non_pic_object" -+ func_append non_pic_objects " $non_pic_object" - if test -z "$pic_object" || test "$pic_object" = none ; then - arg="$non_pic_object" - fi -@@ -1930,28 +4855,22 @@ EOF - # If the PIC object exists, use it instead. - # $xdir was prepended to $pic_object above. - non_pic_object="$pic_object" -- non_pic_objects="$non_pic_objects $non_pic_object" -+ func_append non_pic_objects " $non_pic_object" - fi - else - # Only an error if not doing a dry-run. -- if test -z "$run"; then -- $echo "$modename: \`$arg' is not a valid libtool object" 1>&2 -- exit $EXIT_FAILURE -- else -- # Dry-run case. -- -+ if $opt_dry_run; then - # Extract subdirectory from the argument. -- xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` -- if test "X$xdir" = "X$arg"; then -- xdir= -- else -- xdir="$xdir/" -- fi -+ func_dirname "$arg" "/" "" -+ xdir="$func_dirname_result" - -- pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"` -- non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"` -- libobjs="$libobjs $pic_object" -- non_pic_objects="$non_pic_objects $non_pic_object" -+ func_lo2o "$arg" -+ pic_object=$xdir$objdir/$func_lo2o_result -+ non_pic_object=$xdir$func_lo2o_result -+ func_append libobjs " $pic_object" -+ func_append non_pic_objects " $non_pic_object" -+ else -+ func_fatal_error "\`$arg' is not a valid libtool object" - fi - fi - ;; -@@ -1984,70 +4903,51 @@ EOF - *) - # Unknown arguments in both finalize_command and compile_command need - # to be aesthetically quoted because they are evaled later. -- arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` -- case $arg in -- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") -- arg="\"$arg\"" -- ;; -- esac -+ func_quote_for_eval "$arg" -+ arg="$func_quote_for_eval_result" - ;; - esac # arg - - # Now actually substitute the argument into the commands. - if test -n "$arg"; then -- compile_command="$compile_command $arg" -- finalize_command="$finalize_command $arg" -+ func_append compile_command " $arg" -+ func_append finalize_command " $arg" - fi - done # argument parsing loop - -- if test -n "$prev"; then -- $echo "$modename: the \`$prevarg' option requires an argument" 1>&2 -- $echo "$help" 1>&2 -- exit $EXIT_FAILURE -- fi -+ test -n "$prev" && \ -+ func_fatal_help "the \`$prevarg' option requires an argument" - - if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then - eval arg=\"$export_dynamic_flag_spec\" -- compile_command="$compile_command $arg" -- finalize_command="$finalize_command $arg" -+ func_append compile_command " $arg" -+ func_append finalize_command " $arg" - fi - - oldlibs= - # calculate the name of the file, without its directory -- outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'` -+ func_basename "$output" -+ outputname="$func_basename_result" - libobjs_save="$libobjs" - - if test -n "$shlibpath_var"; then - # get the directories listed in $shlibpath_var -- eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\` -+ eval shlib_search_path=\`\$ECHO \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\` - else - shlib_search_path= - fi - eval sys_lib_search_path=\"$sys_lib_search_path_spec\" - eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" - -- output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'` -- if test "X$output_objdir" = "X$output"; then -- output_objdir="$objdir" -- else -- output_objdir="$output_objdir/$objdir" -- fi -+ func_dirname "$output" "/" "" -+ output_objdir="$func_dirname_result$objdir" - # Create the object directory. -- if test ! -d "$output_objdir"; then -- $show "$mkdir $output_objdir" -- $run $mkdir $output_objdir -- exit_status=$? -- if test "$exit_status" -ne 0 && test ! -d "$output_objdir"; then -- exit $exit_status -- fi -- fi -+ func_mkdir_p "$output_objdir" - - # Determine the type of output - case $output in - "") -- $echo "$modename: you must specify an output file" 1>&2 -- $echo "$help" 1>&2 -- exit $EXIT_FAILURE -+ func_fatal_help "you must specify an output file" - ;; - *.$libext) linkmode=oldlib ;; - *.lo | *.$objext) linkmode=obj ;; -@@ -2055,22 +4955,13 @@ EOF - *) linkmode=prog ;; # Anything else should be a program. - esac - -- case $host in -- *cygwin* | *mingw* | *pw32*) -- # don't eliminate duplications in $postdeps and $predeps -- duplicate_compiler_generated_deps=yes -- ;; -- *) -- duplicate_compiler_generated_deps=$duplicate_deps -- ;; -- esac - specialdeplibs= - - libs= - # Find all interdependent deplibs by searching for libraries - # that are linked more than once (e.g. -la -lb -la) - for deplib in $deplibs; do -- if test "X$duplicate_deps" = "Xyes" ; then -+ if $opt_duplicate_deps ; then - case "$libs " in - *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; - esac -@@ -2085,7 +4976,7 @@ EOF - # $postdeps and mark them as special (i.e., whose duplicates are - # not to be eliminated). - pre_post_deps= -- if test "X$duplicate_compiler_generated_deps" = "Xyes" ; then -+ if $opt_duplicate_compiler_generated_deps; then - for pre_post_dep in $predeps $postdeps; do - case "$pre_post_deps " in - *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;; -@@ -2101,15 +4992,16 @@ EOF - newlib_search_path= - need_relink=no # whether we're linking any uninstalled libtool libraries - notinst_deplibs= # not-installed libtool libraries -+ notinst_path= # paths that contain not-installed libtool libraries -+ - case $linkmode in - lib) -- passes="conv link" -+ passes="conv dlpreopen link" - for file in $dlfiles $dlprefiles; do - case $file in - *.la) ;; - *) -- $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2 -- exit $EXIT_FAILURE -+ func_fatal_help "libraries can \`-dlopen' only libtool libraries: $file" - ;; - esac - done -@@ -2125,7 +5017,20 @@ EOF - *) passes="conv" - ;; - esac -+ - for pass in $passes; do -+ # The preopen pass in lib mode reverses $deplibs; put it back here -+ # so that -L comes before libs that need it for instance... -+ if test "$linkmode,$pass" = "lib,link"; then -+ ## FIXME: Find the place where the list is rebuilt in the wrong -+ ## order, and fix it there properly -+ tmp_deplibs= -+ for deplib in $deplibs; do -+ tmp_deplibs="$deplib $tmp_deplibs" -+ done -+ deplibs="$tmp_deplibs" -+ fi -+ - if test "$linkmode,$pass" = "lib,link" || - test "$linkmode,$pass" = "prog,scan"; then - libs="$deplibs" -@@ -2138,11 +5043,33 @@ EOF - link) libs="$deplibs %DEPLIBS% $dependency_libs" ;; - esac - fi -+ if test "$linkmode,$pass" = "lib,dlpreopen"; then -+ # Collect and forward deplibs of preopened libtool libs -+ for lib in $dlprefiles; do -+ # Ignore non-libtool-libs -+ dependency_libs= -+ case $lib in -+ *.la) func_source "$lib" ;; -+ esac -+ -+ # Collect preopened libtool deplibs, except any this library -+ # has declared as weak libs -+ for deplib in $dependency_libs; do -+ deplib_base=`$ECHO "X$deplib" | $Xsed -e "$basename"` -+ case " $weak_libs " in -+ *" $deplib_base "*) ;; -+ *) deplibs="$deplibs $deplib" ;; -+ esac -+ done -+ done -+ libs="$dlprefiles" -+ fi - if test "$pass" = dlopen; then - # Collect dlpreopened libraries - save_deplibs="$deplibs" - deplibs= - fi -+ - for deplib in $libs; do - lib= - found=no -@@ -2153,15 +5080,22 @@ EOF - finalize_deplibs="$deplib $finalize_deplibs" - else - compiler_flags="$compiler_flags $deplib" -+ if test "$linkmode" = lib ; then -+ case "$new_inherited_linker_flags " in -+ *" $deplib "*) ;; -+ * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;; -+ esac -+ fi - fi - continue - ;; - -l*) - if test "$linkmode" != lib && test "$linkmode" != prog; then -- $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2 -+ func_warning "\`-l' is ignored for archives/objects" - continue - fi -- name=`$echo "X$deplib" | $Xsed -e 's/^-l//'` -+ func_stripname '-l' '' "$deplib" -+ name=$func_stripname_result - if test "$linkmode" = lib; then - searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path" - else -@@ -2197,21 +5131,17 @@ EOF - if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then - case " $predeps $postdeps " in - *" $deplib "*) -- if (${SED} -e '2q' $lib | -- grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then -+ if func_lalib_p "$lib"; then - library_names= - old_library= -- case $lib in -- */* | *\\*) . $lib ;; -- *) . ./$lib ;; -- esac -+ func_source "$lib" - for l in $old_library $library_names; do - ll="$l" - done - if test "X$ll" = "X$old_library" ; then # only static version available - found=no -- ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` -- test "X$ladir" = "X$lib" && ladir="." -+ func_dirname "$lib" "" "." -+ ladir="$func_dirname_result" - lib=$ladir/$old_library - if test "$linkmode,$pass" = "prog,link"; then - compile_deplibs="$deplib $compile_deplibs" -@@ -2223,19 +5153,35 @@ EOF - continue - fi - fi -- ;; -+ ;; - *) ;; - esac - fi - fi - ;; # -l -+ *.ltframework) -+ if test "$linkmode,$pass" = "prog,link"; then -+ compile_deplibs="$deplib $compile_deplibs" -+ finalize_deplibs="$deplib $finalize_deplibs" -+ else -+ deplibs="$deplib $deplibs" -+ if test "$linkmode" = lib ; then -+ case "$new_inherited_linker_flags " in -+ *" $deplib "*) ;; -+ * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;; -+ esac -+ fi -+ fi -+ continue -+ ;; - -L*) - case $linkmode in - lib) - deplibs="$deplib $deplibs" - test "$pass" = conv && continue - newdependency_libs="$deplib $newdependency_libs" -- newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` -+ func_stripname '-L' '' "$deplib" -+ newlib_search_path="$newlib_search_path $func_stripname_result" - ;; - prog) - if test "$pass" = conv; then -@@ -2248,17 +5194,19 @@ EOF - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - fi -- newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` -+ func_stripname '-L' '' "$deplib" -+ newlib_search_path="$newlib_search_path $func_stripname_result" - ;; - *) -- $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2 -+ func_warning "\`-L' is ignored for archives/objects" - ;; - esac # linkmode - continue - ;; # -L - -R*) - if test "$pass" = link; then -- dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'` -+ func_stripname '-R' '' "$deplib" -+ dir=$func_stripname_result - # Make sure the xrpath contains only unique directories. - case "$xrpath " in - *" $dir "*) ;; -@@ -2276,35 +5224,41 @@ EOF - fi - case $linkmode in - lib) -- valid_a_lib=no -- case $deplibs_check_method in -- match_pattern*) -- set dummy $deplibs_check_method -- match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` -- if eval $echo \"$deplib\" 2>/dev/null \ -- | $SED 10q \ -+ # Linking convenience modules into shared libraries is allowed, -+ # but linking other static libraries is non-portable. -+ case " $dlpreconveniencelibs " in -+ *" $deplib "*) ;; -+ *) -+ valid_a_lib=no -+ case $deplibs_check_method in -+ match_pattern*) -+ set dummy $deplibs_check_method; shift -+ match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` -+ if eval "\$ECHO \"X$deplib\"" 2>/dev/null | $Xsed -e 10q \ - | $EGREP "$match_pattern_regex" > /dev/null; then -- valid_a_lib=yes -- fi -+ valid_a_lib=yes -+ fi - ;; -- pass_all) -- valid_a_lib=yes -+ pass_all) -+ valid_a_lib=yes - ;; -- esac -- if test "$valid_a_lib" != yes; then -- $echo -- $echo "*** Warning: Trying to link with static lib archive $deplib." -- $echo "*** I have the capability to make that library automatically link in when" -- $echo "*** you link to this library. But I can only do this if you have a" -- $echo "*** shared version of the library, which you do not appear to have" -- $echo "*** because the file extensions .$libext of this argument makes me believe" -- $echo "*** that it is just a static archive that I should not used here." -- else -- $echo -- $echo "*** Warning: Linking the shared library $output against the" -- $echo "*** static library $deplib is not portable!" -- deplibs="$deplib $deplibs" -- fi -+ esac -+ if test "$valid_a_lib" != yes; then -+ $ECHO -+ $ECHO "*** Warning: Trying to link with static lib archive $deplib." -+ $ECHO "*** I have the capability to make that library automatically link in when" -+ $ECHO "*** you link to this library. But I can only do this if you have a" -+ $ECHO "*** shared version of the library, which you do not appear to have" -+ $ECHO "*** because the file extensions .$libext of this argument makes me believe" -+ $ECHO "*** that it is just a static archive that I should not use here." -+ else -+ $ECHO -+ $ECHO "*** Warning: Linking the shared library $output against the" -+ $ECHO "*** static library $deplib is not portable!" -+ deplibs="$deplib $deplibs" -+ fi -+ ;; -+ esac - continue - ;; - prog) -@@ -2339,21 +5293,18 @@ EOF - continue - ;; - esac # case $deplib -+ - if test "$found" = yes || test -f "$lib"; then : - else -- $echo "$modename: cannot find the library \`$lib' or unhandled argument \`$deplib'" 1>&2 -- exit $EXIT_FAILURE -+ func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'" - fi - - # Check to see that this really is a libtool archive. -- if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : -- else -- $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 -- exit $EXIT_FAILURE -- fi -+ func_lalib_unsafe_p "$lib" \ -+ || func_fatal_error "\`$lib' is not a valid libtool archive" - -- ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` -- test "X$ladir" = "X$lib" && ladir="." -+ func_dirname "$lib" "" "." -+ ladir="$func_dirname_result" - - dlname= - dlopen= -@@ -2361,6 +5312,7 @@ EOF - libdir= - library_names= - old_library= -+ inherited_linker_flags= - # If the library was installed with an old release of libtool, - # it will not redefine variables installed, or shouldnotlink - installed=yes -@@ -2369,11 +5321,19 @@ EOF - - - # Read the .la file -- case $lib in -- */* | *\\*) . $lib ;; -- *) . ./$lib ;; -- esac -+ func_source "$lib" - -+ # Convert "-framework foo" to "foo.ltframework" -+ if test -n "$inherited_linker_flags"; then -+ tmp_inherited_linker_flags=`$ECHO "X$inherited_linker_flags" | $Xsed -e 's/-framework \([^ $]*\)/\1.ltframework/g'` -+ for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do -+ case " $new_inherited_linker_flags " in -+ *" $tmp_inherited_linker_flag "*) ;; -+ *) new_inherited_linker_flags="$new_inherited_linker_flags $tmp_inherited_linker_flag";; -+ esac -+ done -+ fi -+ dependency_libs=`$ECHO "X $dependency_libs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` - if test "$linkmode,$pass" = "lib,link" || - test "$linkmode,$pass" = "prog,scan" || - { test "$linkmode" != prog && test "$linkmode" != lib; }; then -@@ -2386,26 +5346,24 @@ EOF - deplibs="$lib $deplibs" - if test -z "$libdir"; then - if test -z "$old_library"; then -- $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 -- exit $EXIT_FAILURE -+ func_fatal_error "cannot find name of link library for \`$lib'" - fi - # It is a libtool convenience library, so add in its objects. - convenience="$convenience $ladir/$objdir/$old_library" - old_convenience="$old_convenience $ladir/$objdir/$old_library" -- tmp_libs= -- for deplib in $dependency_libs; do -- deplibs="$deplib $deplibs" -- if test "X$duplicate_deps" = "Xyes" ; then -- case "$tmp_libs " in -- *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; -- esac -- fi -- tmp_libs="$tmp_libs $deplib" -- done - elif test "$linkmode" != prog && test "$linkmode" != lib; then -- $echo "$modename: \`$lib' is not a convenience library" 1>&2 -- exit $EXIT_FAILURE -+ func_fatal_error "\`$lib' is not a convenience library" - fi -+ tmp_libs= -+ for deplib in $dependency_libs; do -+ deplibs="$deplib $deplibs" -+ if $opt_duplicate_deps ; then -+ case "$tmp_libs " in -+ *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; -+ esac -+ fi -+ tmp_libs="$tmp_libs $deplib" -+ done - continue - fi # $pass = conv - -@@ -2416,15 +5374,13 @@ EOF - linklib="$l" - done - if test -z "$linklib"; then -- $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 -- exit $EXIT_FAILURE -+ func_fatal_error "cannot find name of link library for \`$lib'" - fi - - # This library was specified with -dlopen. - if test "$pass" = dlopen; then - if test -z "$libdir"; then -- $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2 -- exit $EXIT_FAILURE -+ func_fatal_error "cannot -dlopen a convenience library: \`$lib'" - fi - if test -z "$dlname" || - test "$dlopen_support" != yes || -@@ -2446,18 +5402,19 @@ EOF - *) - abs_ladir=`cd "$ladir" && pwd` - if test -z "$abs_ladir"; then -- $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2 -- $echo "$modename: passing it literally to the linker, although it might fail" 1>&2 -+ func_warning "cannot determine absolute directory name of \`$ladir'" -+ func_warning "passing it literally to the linker, although it might fail" - abs_ladir="$ladir" - fi - ;; - esac -- laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` -+ func_basename "$lib" -+ laname="$func_basename_result" - - # Find the relevant object directory and library name. - if test "X$installed" = Xyes; then - if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then -- $echo "$modename: warning: library \`$lib' was moved." 1>&2 -+ func_warning "library \`$lib' was moved." - dir="$ladir" - absdir="$abs_ladir" - libdir="$abs_ladir" -@@ -2479,18 +5436,22 @@ EOF - notinst_path="$notinst_path $abs_ladir" - fi - fi # $installed = yes -- name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` -+ func_stripname 'lib' '.la' "$laname" -+ name=$func_stripname_result - - # This library was specified with -dlpreopen. - if test "$pass" = dlpreopen; then -- if test -z "$libdir"; then -- $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2 -- exit $EXIT_FAILURE -+ if test -z "$libdir" && test "$linkmode" = prog; then -+ func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'" - fi - # Prefer using a static library (so that no silly _DYNAMIC symbols - # are required to link). - if test -n "$old_library"; then - newdlprefiles="$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" && \ -+ dlpreconveniencelibs="$dlpreconveniencelibs $dir/$old_library" - # Otherwise, use the dlname, so that lt_dlopen finds it. - elif test -n "$dlname"; then - newdlprefiles="$newdlprefiles $dir/$dlname" -@@ -2526,7 +5487,9 @@ EOF - tmp_libs= - for deplib in $dependency_libs; do - case $deplib in -- -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test -+ -L*) func_stripname '-L' '' "$deplib" -+ newlib_search_path="$newlib_search_path $func_stripname_result" -+ ;; - esac - # Need to link against all dependency_libs? - if test "$linkalldeplibs" = yes; then -@@ -2536,7 +5499,7 @@ EOF - # or/and link against static libraries - newdependency_libs="$deplib $newdependency_libs" - fi -- if test "X$duplicate_deps" = "Xyes" ; then -+ if $opt_duplicate_deps ; then - case "$tmp_libs " in - *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; - esac -@@ -2549,15 +5512,14 @@ EOF - if test "$linkmode,$pass" = "prog,link"; then - if test -n "$library_names" && - { { test "$prefer_static_libs" = no || -- test "$prefer_static_libs,$installed" = "built,yes"; } || -+ test "$prefer_static_libs,$installed" = "built,yes"; } || - test -z "$old_library"; }; then - # We need to hardcode the library path - if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then - # Make sure the rpath contains only unique directories. -- case "$temp_rpath " in -- *" $dir "*) ;; -- *" $absdir "*) ;; -- *) temp_rpath="$temp_rpath $absdir" ;; -+ case "$temp_rpath:" in -+ *"$absdir:"*) ;; -+ *) temp_rpath="$temp_rpath$absdir:" ;; - esac - fi - -@@ -2595,27 +5557,43 @@ EOF - - link_static=no # Whether the deplib will be linked statically - use_static_libs=$prefer_static_libs -- if test "$use_static_libs" = built && test "$installed" = yes ; then -+ if test "$use_static_libs" = built && test "$installed" = yes; then - use_static_libs=no - fi - if test -n "$library_names" && - { test "$use_static_libs" = no || test -z "$old_library"; }; then -- if test "$installed" = no; then -- notinst_deplibs="$notinst_deplibs $lib" -- need_relink=yes -- fi -+ case $host in -+ *cygwin* | *mingw* | *cegcc*) -+ # No point in relinking DLLs because paths are not encoded -+ notinst_deplibs="$notinst_deplibs $lib" -+ need_relink=no -+ ;; -+ *) -+ if test "$installed" = no; then -+ notinst_deplibs="$notinst_deplibs $lib" -+ need_relink=yes -+ fi -+ ;; -+ esac - # This is a shared library - -- # Warn about portability, can't link against -module's on -- # some systems (darwin) -- if test "$shouldnotlink" = yes && test "$pass" = link ; then -- $echo -+ # Warn about portability, can't link against -module's on some -+ # systems (darwin). Don't bleat about dlopened modules though! -+ dlopenmodule="" -+ for dlpremoduletest in $dlprefiles; do -+ if test "X$dlpremoduletest" = "X$lib"; then -+ dlopenmodule="$dlpremoduletest" -+ break -+ fi -+ done -+ if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then -+ $ECHO - if test "$linkmode" = prog; then -- $echo "*** Warning: Linking the executable $output against the loadable module" -+ $ECHO "*** Warning: Linking the executable $output against the loadable module" - else -- $echo "*** Warning: Linking the shared library $output against the loadable module" -+ $ECHO "*** Warning: Linking the shared library $output against the loadable module" - fi -- $echo "*** $linklib is not portable!" -+ $ECHO "*** $linklib is not portable!" - fi - if test "$linkmode" = lib && - test "$hardcode_into_libs" = yes; then -@@ -2645,17 +5623,19 @@ EOF - if test -n "$old_archive_from_expsyms_cmds"; then - # figure out the soname - set dummy $library_names -- realname="$2" -- shift; shift -- libname=`eval \\$echo \"$libname_spec\"` -+ shift -+ realname="$1" -+ shift -+ libname=`eval "\\$ECHO \"$libname_spec\""` - # use dlname if we got it. it's perfectly good, no? - if test -n "$dlname"; then - soname="$dlname" - elif test -n "$soname_spec"; then - # bleh windows - case $host in -- *cygwin* | mingw*) -- major=`expr $current - $age` -+ *cygwin* | mingw* | *cegcc*) -+ func_arith $current - $age -+ major=$func_arith_result - versuffix="-$major" - ;; - esac -@@ -2666,36 +5646,22 @@ EOF - - # Make a new name for the extract_expsyms_cmds to use - soroot="$soname" -- soname=`$echo $soroot | ${SED} -e 's/^.*\///'` -- newlib="libimp-`$echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a" -+ func_basename "$soroot" -+ soname="$func_basename_result" -+ func_stripname 'lib' '.dll' "$soname" -+ newlib=libimp-$func_stripname_result.a - - # If the library has no export list, then create one now - if test -f "$output_objdir/$soname-def"; then : - else -- $show "extracting exported symbol list from \`$soname'" -- save_ifs="$IFS"; IFS='~' -- cmds=$extract_expsyms_cmds -- for cmd in $cmds; do -- IFS="$save_ifs" -- eval cmd=\"$cmd\" -- $show "$cmd" -- $run eval "$cmd" || exit $? -- done -- IFS="$save_ifs" -+ func_verbose "extracting exported symbol list from \`$soname'" -+ func_execute_cmds "$extract_expsyms_cmds" 'exit $?' - fi - - # Create $newlib - if test -f "$output_objdir/$newlib"; then :; else -- $show "generating import library for \`$soname'" -- save_ifs="$IFS"; IFS='~' -- cmds=$old_archive_from_expsyms_cmds -- for cmd in $cmds; do -- IFS="$save_ifs" -- eval cmd=\"$cmd\" -- $show "$cmd" -- $run eval "$cmd" || exit $? -- done -- IFS="$save_ifs" -+ func_verbose "generating import library for \`$soname'" -+ func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?' - fi - # make sure the library variables are pointing to the new library - dir=$output_objdir -@@ -2717,17 +5683,21 @@ EOF - *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ - *-*-unixware7*) add_dir="-L$dir" ;; - *-*-darwin* ) -- # if the lib is a module then we can not link against -- # it, someone is ignoring the new warnings I added -+ # if the lib is a (non-dlopened) module then we can not -+ # link against it, someone is ignoring the earlier warnings - if /usr/bin/file -L $add 2> /dev/null | -- $EGREP ": [^:]* bundle" >/dev/null ; then -- $echo "** Warning, lib $linklib is a module, not a shared library" -- if test -z "$old_library" ; then -- $echo -- $echo "** And there doesn't seem to be a static archive available" -- $echo "** The link will probably fail, sorry" -- else -- add="$dir/$old_library" -+ $GREP ": [^:]* bundle" >/dev/null ; then -+ if test "X$dlopenmodule" != "X$lib"; then -+ $ECHO "*** Warning: lib $linklib is a module, not a shared library" -+ if test -z "$old_library" ; then -+ $ECHO -+ $ECHO "*** And there doesn't seem to be a static archive available" -+ $ECHO "*** The link will probably fail, sorry" -+ else -+ add="$dir/$old_library" -+ fi -+ elif test -n "$old_library"; then -+ add="$dir/$old_library" - fi - fi - esac -@@ -2745,7 +5715,8 @@ EOF - fi - ;; - relink) -- if test "$hardcode_direct" = yes; then -+ if test "$hardcode_direct" = yes && -+ test "$hardcode_direct_absolute" = no; then - add="$dir/$linklib" - elif test "$hardcode_minus_L" = yes; then - add_dir="-L$dir" -@@ -2769,8 +5740,7 @@ EOF - esac - - if test "$lib_linked" != yes; then -- $echo "$modename: configuration error: unsupported hardcode properties" -- exit $EXIT_FAILURE -+ func_fatal_configuration "unsupported hardcode properties" - fi - - if test -n "$add_shlibpath"; then -@@ -2785,8 +5755,8 @@ EOF - else - test -n "$add_dir" && deplibs="$add_dir $deplibs" - test -n "$add" && deplibs="$add $deplibs" -- if test "$hardcode_direct" != yes && \ -- test "$hardcode_minus_L" != yes && \ -+ if test "$hardcode_direct" != yes && -+ test "$hardcode_minus_L" != yes && - test "$hardcode_shlibpath_var" = yes; then - case :$finalize_shlibpath: in - *":$libdir:"*) ;; -@@ -2801,7 +5771,8 @@ EOF - add_dir= - add= - # Finalize command for both is simple: just hardcode it. -- if test "$hardcode_direct" = yes; then -+ if test "$hardcode_direct" = yes && -+ test "$hardcode_direct_absolute" = no; then - add="$libdir/$linklib" - elif test "$hardcode_minus_L" = yes; then - add_dir="-L$libdir" -@@ -2815,9 +5786,9 @@ EOF - elif test "$hardcode_automatic" = yes; then - if test -n "$inst_prefix_dir" && - test -f "$inst_prefix_dir$libdir/$linklib" ; then -- add="$inst_prefix_dir$libdir/$linklib" -+ add="$inst_prefix_dir$libdir/$linklib" - else -- add="$libdir/$linklib" -+ add="$libdir/$linklib" - fi - else - # We cannot seem to hardcode it, guess we'll fake it. -@@ -2861,21 +5832,21 @@ EOF - - # Just print a warning and add the library to dependency_libs so - # that the program can be linked against the static library. -- $echo -- $echo "*** Warning: This system can not link to static lib archive $lib." -- $echo "*** I have the capability to make that library automatically link in when" -- $echo "*** you link to this library. But I can only do this if you have a" -- $echo "*** shared version of the library, which you do not appear to have." -+ $ECHO -+ $ECHO "*** Warning: This system can not link to static lib archive $lib." -+ $ECHO "*** I have the capability to make that library automatically link in when" -+ $ECHO "*** you link to this library. But I can only do this if you have a" -+ $ECHO "*** shared version of the library, which you do not appear to have." - if test "$module" = yes; then -- $echo "*** But as you try to build a module library, libtool will still create " -- $echo "*** a static module, that should work as long as the dlopening application" -- $echo "*** is linked with the -dlopen flag to resolve symbols at runtime." -+ $ECHO "*** But as you try to build a module library, libtool will still create " -+ $ECHO "*** a static module, that should work as long as the dlopening application" -+ $ECHO "*** is linked with the -dlopen flag to resolve symbols at runtime." - if test -z "$global_symbol_pipe"; then -- $echo -- $echo "*** However, this would only work if libtool was able to extract symbol" -- $echo "*** lists from a program, using \`nm' or equivalent, but libtool could" -- $echo "*** not find such a program. So, this module is probably useless." -- $echo "*** \`nm' from GNU binutils and a full rebuild may help." -+ $ECHO -+ $ECHO "*** However, this would only work if libtool was able to extract symbol" -+ $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could" -+ $ECHO "*** not find such a program. So, this module is probably useless." -+ $ECHO "*** \`nm' from GNU binutils and a full rebuild may help." - fi - if test "$build_old_libs" = no; then - build_libtool_libs=module -@@ -2899,7 +5870,8 @@ EOF - temp_deplibs= - for libdir in $dependency_libs; do - case $libdir in -- -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'` -+ -R*) func_stripname '-R' '' "$libdir" -+ temp_xrpath=$func_stripname_result - case " $xrpath " in - *" $temp_xrpath "*) ;; - *) xrpath="$xrpath $temp_xrpath";; -@@ -2917,7 +5889,7 @@ EOF - tmp_libs= - for deplib in $dependency_libs; do - newdependency_libs="$deplib $newdependency_libs" -- if test "X$duplicate_deps" = "Xyes" ; then -+ if $opt_duplicate_deps ; then - case "$tmp_libs " in - *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; - esac -@@ -2931,94 +5903,71 @@ EOF - case $deplib in - -L*) path="$deplib" ;; - *.la) -- dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'` -- test "X$dir" = "X$deplib" && dir="." -+ func_dirname "$deplib" "" "." -+ dir="$func_dirname_result" - # We need an absolute path. - case $dir in - [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; - *) - absdir=`cd "$dir" && pwd` - if test -z "$absdir"; then -- $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2 -+ func_warning "cannot determine absolute directory name of \`$dir'" - absdir="$dir" - fi - ;; - esac -- if grep "^installed=no" $deplib > /dev/null; then -- path="$absdir/$objdir" -- else -- eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` -- if test -z "$libdir"; then -- $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 -- exit $EXIT_FAILURE -- fi -- if test "$absdir" != "$libdir"; then -- $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2 -- fi -- path="$absdir" -- fi -- depdepl= -+ if $GREP "^installed=no" $deplib > /dev/null; then - case $host in - *-*-darwin*) -- # we do not want to link against static libs, -- # but need to link against shared -+ depdepl= - eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` -- eval deplibdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` - if test -n "$deplibrary_names" ; then - for tmp in $deplibrary_names ; do - depdepl=$tmp - done -- if test -f "$deplibdir/$depdepl" ; then -- depdepl="$deplibdir/$depdepl" -- elif test -f "$path/$depdepl" ; then -- depdepl="$path/$depdepl" -- else -- # Can't find it, oh well... -- depdepl= -+ if test -f "$absdir/$objdir/$depdepl" ; then -+ depdepl="$absdir/$objdir/$depdepl" -+ darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` -+ if test -z "$darwin_install_name"; then -+ darwin_install_name=`${OTOOL64} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` -+ fi -+ compiler_flags="$compiler_flags ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}" -+ linker_flags="$linker_flags -dylib_file ${darwin_install_name}:${depdepl}" -+ path= - fi -- # do not add paths which are already there -- case " $newlib_search_path " in -- *" $path "*) ;; -- *) newlib_search_path="$newlib_search_path $path";; -- esac - fi -- path="" - ;; - *) -- path="-L$path" -- ;; -- esac -- ;; -- -l*) -- case $host in -- *-*-darwin*) -- # Again, we only want to link against shared libraries -- eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"` -- for tmp in $newlib_search_path ; do -- if test -f "$tmp/lib$tmp_libs.dylib" ; then -- eval depdepl="$tmp/lib$tmp_libs.dylib" -- break -- fi -- done -- path="" -+ path="-L$absdir/$objdir" - ;; -- *) continue ;; - esac -+ else -+ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` -+ test -z "$libdir" && \ -+ func_fatal_error "\`$deplib' is not a valid libtool archive" -+ test "$absdir" != "$libdir" && \ -+ func_warning "\`$deplib' seems to be moved" -+ -+ path="-L$absdir" -+ fi - ;; -- *) continue ;; - esac - case " $deplibs " in - *" $path "*) ;; - *) deplibs="$path $deplibs" ;; - esac -- case " $deplibs " in -- *" $depdepl "*) ;; -- *) deplibs="$depdepl $deplibs" ;; -- esac - done - fi # link_all_deplibs != no - fi # linkmode = lib - done # for deplib in $libs -+ if test "$pass" = link; then -+ if test "$linkmode" = "prog"; then -+ compile_deplibs="$new_inherited_linker_flags $compile_deplibs" -+ finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" -+ else -+ compiler_flags="$compiler_flags "`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` -+ fi -+ fi - dependency_libs="$newdependency_libs" - if test "$pass" = dlpreopen; then - # Link the dlpreopened libraries before other libraries -@@ -3117,39 +6066,36 @@ EOF - done # for pass - if test "$linkmode" = prog; then - dlfiles="$newdlfiles" -+ fi -+ if test "$linkmode" = prog || test "$linkmode" = lib; then - dlprefiles="$newdlprefiles" - fi - - case $linkmode in - oldlib) -+ if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then -+ func_warning "\`-dlopen' is ignored for archives" -+ fi -+ - case " $deplibs" in - *\ -l* | *\ -L*) -- $echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2 ;; -+ func_warning "\`-l' and \`-L' are ignored for archives" ;; - esac - -- if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then -- $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2 -- fi -- -- if test -n "$rpath"; then -- $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2 -- fi -+ test -n "$rpath" && \ -+ func_warning "\`-rpath' is ignored for archives" - -- if test -n "$xrpath"; then -- $echo "$modename: warning: \`-R' is ignored for archives" 1>&2 -- fi -+ test -n "$xrpath" && \ -+ func_warning "\`-R' is ignored for archives" - -- if test -n "$vinfo"; then -- $echo "$modename: warning: \`-version-info/-version-number' is ignored for archives" 1>&2 -- fi -+ test -n "$vinfo" && \ -+ func_warning "\`-version-info/-version-number' is ignored for archives" - -- if test -n "$release"; then -- $echo "$modename: warning: \`-release' is ignored for archives" 1>&2 -- fi -+ test -n "$release" && \ -+ func_warning "\`-release' is ignored for archives" - -- if test -n "$export_symbols" || test -n "$export_symbols_regex"; then -- $echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2 -- fi -+ test -n "$export_symbols$export_symbols_regex" && \ -+ func_warning "\`-export-symbols' is ignored for archives" - - # Now set the variables for building old libraries. - build_libtool_libs=no -@@ -3161,48 +6107,48 @@ EOF - # Make sure we only generate libraries of the form `libNAME.la'. - case $outputname in - lib*) -- name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` -+ func_stripname 'lib' '.la' "$outputname" -+ name=$func_stripname_result - eval shared_ext=\"$shrext_cmds\" - eval libname=\"$libname_spec\" - ;; - *) -- if test "$module" = no; then -- $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2 -- $echo "$help" 1>&2 -- exit $EXIT_FAILURE -- fi -+ test "$module" = no && \ -+ func_fatal_help "libtool library \`$output' must begin with \`lib'" -+ - if test "$need_lib_prefix" != no; then - # Add the "lib" prefix for modules if required -- name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` -+ func_stripname '' '.la' "$outputname" -+ name=$func_stripname_result - eval shared_ext=\"$shrext_cmds\" - eval libname=\"$libname_spec\" - else -- libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` -+ func_stripname '' '.la' "$outputname" -+ libname=$func_stripname_result - fi - ;; - esac - - if test -n "$objs"; then - if test "$deplibs_check_method" != pass_all; then -- $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1 -- exit $EXIT_FAILURE -+ func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs" - else -- $echo -- $echo "*** Warning: Linking the shared library $output against the non-libtool" -- $echo "*** objects $objs is not portable!" -+ $ECHO -+ $ECHO "*** Warning: Linking the shared library $output against the non-libtool" -+ $ECHO "*** objects $objs is not portable!" - libobjs="$libobjs $objs" - fi - fi - -- if test "$dlself" != no; then -- $echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2 -- fi -+ test "$dlself" != no && \ -+ func_warning "\`-dlopen self' is ignored for libtool libraries" - - set dummy $rpath -- if test "$#" -gt 2; then -- $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2 -- fi -- install_libdir="$2" -+ shift -+ test "$#" -gt 1 && \ -+ func_warning "ignoring multiple \`-rpath's for a libtool library" -+ -+ install_libdir="$1" - - oldlibs= - if test -z "$rpath"; then -@@ -3216,25 +6162,21 @@ EOF - build_old_libs=yes - fi - -- if test -n "$vinfo"; then -- $echo "$modename: warning: \`-version-info/-version-number' is ignored for convenience libraries" 1>&2 -- fi -+ test -n "$vinfo" && \ -+ func_warning "\`-version-info/-version-number' is ignored for convenience libraries" - -- if test -n "$release"; then -- $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2 -- fi -+ test -n "$release" && \ -+ func_warning "\`-release' is ignored for convenience libraries" - else - - # Parse the version information argument. - save_ifs="$IFS"; IFS=':' - set dummy $vinfo 0 0 0 -+ shift - IFS="$save_ifs" - -- if test -n "$8"; then -- $echo "$modename: too many parameters to \`-version-info'" 1>&2 -- $echo "$help" 1>&2 -- exit $EXIT_FAILURE -- fi -+ test -n "$7" && \ -+ func_fatal_help "too many parameters to \`-version-info'" - - # convert absolute version numbers to libtool ages - # this retains compatibility with .la files and attempts -@@ -3242,9 +6184,9 @@ EOF - - case $vinfo_number in - yes) -- number_major="$2" -- number_minor="$3" -- number_revision="$4" -+ number_major="$1" -+ number_minor="$2" -+ number_revision="$3" - # - # There are really only two kinds -- those that - # use the current revision as the major version -@@ -3254,7 +6196,8 @@ EOF - # - case $version_type in - darwin|linux|osf|windows|none) -- current=`expr $number_major + $number_minor` -+ func_arith $number_major + $number_minor -+ current=$func_arith_result - age="$number_minor" - revision="$number_revision" - ;; -@@ -3264,7 +6207,8 @@ EOF - age="0" - ;; - irix|nonstopux) -- current=`expr $number_major + $number_minor` -+ func_arith $number_major + $number_minor -+ current=$func_arith_result - age="$number_minor" - revision="$number_minor" - lt_irix_increment=no -@@ -3272,9 +6216,9 @@ EOF - esac - ;; - no) -- current="$2" -- revision="$3" -- age="$4" -+ current="$1" -+ revision="$2" -+ age="$3" - ;; - esac - -@@ -3282,34 +6226,30 @@ EOF - case $current in - 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; - *) -- $echo "$modename: CURRENT \`$current' must be a nonnegative integer" 1>&2 -- $echo "$modename: \`$vinfo' is not valid version information" 1>&2 -- exit $EXIT_FAILURE -+ func_error "CURRENT \`$current' must be a nonnegative integer" -+ func_fatal_error "\`$vinfo' is not valid version information" - ;; - esac - - case $revision in - 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; - *) -- $echo "$modename: REVISION \`$revision' must be a nonnegative integer" 1>&2 -- $echo "$modename: \`$vinfo' is not valid version information" 1>&2 -- exit $EXIT_FAILURE -+ func_error "REVISION \`$revision' must be a nonnegative integer" -+ func_fatal_error "\`$vinfo' is not valid version information" - ;; - esac - - case $age in - 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; - *) -- $echo "$modename: AGE \`$age' must be a nonnegative integer" 1>&2 -- $echo "$modename: \`$vinfo' is not valid version information" 1>&2 -- exit $EXIT_FAILURE -+ func_error "AGE \`$age' must be a nonnegative integer" -+ func_fatal_error "\`$vinfo' is not valid version information" - ;; - esac - - if test "$age" -gt "$current"; then -- $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2 -- $echo "$modename: \`$vinfo' is not valid version information" 1>&2 -- exit $EXIT_FAILURE -+ func_error "AGE \`$age' is greater than the current interface number \`$current'" -+ func_fatal_error "\`$vinfo' is not valid version information" - fi - - # Calculate the version variables. -@@ -3322,10 +6262,12 @@ EOF - darwin) - # Like Linux, but with the current version available in - # verstring for coding it into the library header -- major=.`expr $current - $age` -+ func_arith $current - $age -+ major=.$func_arith_result - versuffix="$major.$age.$revision" - # Darwin ld doesn't like 0 for these options... -- minor_current=`expr $current + 1` -+ func_arith $current + 1 -+ minor_current=$func_arith_result - xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" - verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" - ;; -@@ -3337,15 +6279,17 @@ EOF - - freebsd-elf) - major=".$current" -- versuffix=".$current"; -+ versuffix=".$current" - ;; - - irix | nonstopux) - if test "X$lt_irix_increment" = "Xno"; then -- major=`expr $current - $age` -+ func_arith $current - $age - else -- major=`expr $current - $age + 1` -+ func_arith $current - $age + 1 - fi -+ major=$func_arith_result -+ - case $version_type in - nonstopux) verstring_prefix=nonstopux ;; - *) verstring_prefix=sgi ;; -@@ -3355,8 +6299,10 @@ EOF - # Add in all the interfaces that we are compatible with. - loop=$revision - while test "$loop" -ne 0; do -- iface=`expr $revision - $loop` -- loop=`expr $loop - 1` -+ func_arith $revision - $loop -+ iface=$func_arith_result -+ func_arith $loop - 1 -+ loop=$func_arith_result - verstring="$verstring_prefix$major.$iface:$verstring" - done - -@@ -3366,20 +6312,24 @@ EOF - ;; - - linux) -- major=.`expr $current - $age` -+ func_arith $current - $age -+ major=.$func_arith_result - versuffix="$major.$age.$revision" - ;; - - osf) -- major=.`expr $current - $age` -+ func_arith $current - $age -+ major=.$func_arith_result - versuffix=".$current.$age.$revision" - verstring="$current.$age.$revision" - - # Add in all the interfaces that we are compatible with. - loop=$age - while test "$loop" -ne 0; do -- iface=`expr $current - $loop` -- loop=`expr $loop - 1` -+ func_arith $current - $loop -+ iface=$func_arith_result -+ func_arith $loop - 1 -+ loop=$func_arith_result - verstring="$verstring:${iface}.0" - done - -@@ -3387,6 +6337,11 @@ EOF - verstring="$verstring:${current}.0" - ;; - -+ qnx) -+ major=".$current" -+ versuffix=".$current" -+ ;; -+ - sunos) - major=".$current" - versuffix=".$current.$revision" -@@ -3395,14 +6350,13 @@ EOF - windows) - # Use '-' rather than '.', since we only want one - # extension on DOS 8.3 filesystems. -- major=`expr $current - $age` -+ func_arith $current - $age -+ major=$func_arith_result - versuffix="-$major" - ;; - - *) -- $echo "$modename: unknown library version type \`$version_type'" 1>&2 -- $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 -- exit $EXIT_FAILURE -+ func_fatal_configuration "unknown library version type \`$version_type'" - ;; - esac - -@@ -3436,7 +6390,7 @@ EOF - # Check to see if the archive will have undefined symbols. - if test "$allow_undefined" = yes; then - if test "$allow_undefined_flag" = unsupported; then -- $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2 -+ func_warning "undefined symbols not allowed in $host shared libraries" - build_libtool_libs=no - build_old_libs=yes - fi -@@ -3444,21 +6398,26 @@ EOF - # Don't allow undefined symbols. - allow_undefined_flag="$no_undefined_flag" - fi -+ - fi - -+ func_generate_dlsyms "$libname" "$libname" "yes" -+ libobjs="$libobjs $symfileobj" -+ test "X$libobjs" = "X " && libobjs= -+ - if test "$mode" != relink; then - # Remove our outputs, but don't remove object files since they - # may have been created when compiling PIC objects. - removelist= -- tempremovelist=`$echo "$output_objdir/*"` -+ tempremovelist=`$ECHO "$output_objdir/*"` - for p in $tempremovelist; do - case $p in -- *.$objext) -+ *.$objext | *.gcno) - ;; - $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) - if test "X$precious_files_regex" != "X"; then -- if echo $p | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 -- then -+ if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 -+ then - continue - fi - fi -@@ -3467,10 +6426,8 @@ EOF - *) ;; - esac - done -- if test -n "$removelist"; then -- $show "${rm}r $removelist" -- $run ${rm}r $removelist -- fi -+ test -n "$removelist" && \ -+ func_show_eval "${RM}r \$removelist" - fi - - # Now set the variables for building old libraries. -@@ -3478,14 +6435,14 @@ EOF - oldlibs="$oldlibs $output_objdir/$libname.$libext" - - # Transform .lo files to .o files. -- oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP` -+ oldobjs="$objs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP` - fi - - # Eliminate all temporary directories. - #for path in $notinst_path; do -- # lib_search_path=`$echo "$lib_search_path " | ${SED} -e "s% $path % %g"` -- # deplibs=`$echo "$deplibs " | ${SED} -e "s% -L$path % %g"` -- # dependency_libs=`$echo "$dependency_libs " | ${SED} -e "s% -L$path % %g"` -+ # lib_search_path=`$ECHO "X$lib_search_path " | $Xsed -e "s% $path % %g"` -+ # deplibs=`$ECHO "X$deplibs " | $Xsed -e "s% -L$path % %g"` -+ # dependency_libs=`$ECHO "X$dependency_libs " | $Xsed -e "s% -L$path % %g"` - #done - - if test -n "$xrpath"; then -@@ -3526,12 +6483,12 @@ EOF - if test "$build_libtool_libs" = yes; then - if test -n "$rpath"; then - case $host in -- *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*) -+ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc*) - # these systems don't actually have a c library (as such)! - ;; - *-*-rhapsody* | *-*-darwin1.[012]) - # Rhapsody C library is in the System framework -- deplibs="$deplibs -framework System" -+ deplibs="$deplibs System.ltframework" - ;; - *-*-netbsd*) - # Don't link with libc until the a.out ld.so is fixed. -@@ -3545,7 +6502,7 @@ EOF - *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) - # Compiler inserts libc in the correct place for threads to work - ;; -- *) -+ *) - # Add libc to deplibs on all other systems if necessary. - if test "$build_libtool_need_lc" = "yes"; then - deplibs="$deplibs -lc" -@@ -3582,17 +6539,18 @@ EOF - # limits. Maybe even breaks it. We compile a program, linking it - # against the deplibs as a proxy for the library. Then we can check - # whether they linked in statically or dynamically with ldd. -- $rm conftest.c -+ $opt_dry_run || $RM conftest.c - cat > conftest.c <<EOF - int main() { return 0; } - EOF -- $rm conftest -+ $opt_dry_run || $RM conftest - if $LTCC $LTCFLAGS -o conftest conftest.c $deplibs; then - ldd_output=`ldd conftest` - for i in $deplibs; do -- name=`expr $i : '-l\(.*\)'` -- # If $name is empty we are operating on a -L argument. -- if test "$name" != "" && test "$name" != "0"; then -+ case $i in -+ -l*) -+ func_stripname -l '' "$i" -+ name=$func_stripname_result - if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then - case " $predeps $postdeps " in - *" $i "*) -@@ -3600,37 +6558,40 @@ EOF - i="" - ;; - esac -- fi -+ fi - if test -n "$i" ; then -- libname=`eval \\$echo \"$libname_spec\"` -- deplib_matches=`eval \\$echo \"$library_names_spec\"` -- set dummy $deplib_matches -- deplib_match=$2 -+ libname=`eval "\\$ECHO \"$libname_spec\""` -+ deplib_matches=`eval "\\$ECHO \"$library_names_spec\""` -+ set dummy $deplib_matches; shift -+ deplib_match=$1 - if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then - newdeplibs="$newdeplibs $i" - else - droppeddeps=yes -- $echo -- $echo "*** Warning: dynamic linker does not accept needed library $i." -- $echo "*** I have the capability to make that library automatically link in when" -- $echo "*** you link to this library. But I can only do this if you have a" -- $echo "*** shared version of the library, which I believe you do not have" -- $echo "*** because a test_compile did reveal that the linker did not use it for" -- $echo "*** its dynamic dependency list that programs get resolved with at runtime." -+ $ECHO -+ $ECHO "*** Warning: dynamic linker does not accept needed library $i." -+ $ECHO "*** I have the capability to make that library automatically link in when" -+ $ECHO "*** you link to this library. But I can only do this if you have a" -+ $ECHO "*** shared version of the library, which I believe you do not have" -+ $ECHO "*** because a test_compile did reveal that the linker did not use it for" -+ $ECHO "*** its dynamic dependency list that programs get resolved with at runtime." - fi - fi -- else -+ ;; -+ *) - newdeplibs="$newdeplibs $i" -- fi -+ ;; -+ esac - done - else - # Error occurred in the first compile. Let's try to salvage - # the situation: Compile a separate program for each library. - for i in $deplibs; do -- name=`expr $i : '-l\(.*\)'` -- # If $name is empty we are operating on a -L argument. -- if test "$name" != "" && test "$name" != "0"; then -- $rm conftest -+ case $i in -+ -l*) -+ func_stripname -l '' "$i" -+ name=$func_stripname_result -+ $opt_dry_run || $RM conftest - if $LTCC $LTCFLAGS -o conftest conftest.c $i; then - ldd_output=`ldd conftest` - if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then -@@ -3642,44 +6603,47 @@ EOF - esac - fi - if test -n "$i" ; then -- libname=`eval \\$echo \"$libname_spec\"` -- deplib_matches=`eval \\$echo \"$library_names_spec\"` -- set dummy $deplib_matches -- deplib_match=$2 -+ libname=`eval "\\$ECHO \"$libname_spec\""` -+ deplib_matches=`eval "\\$ECHO \"$library_names_spec\""` -+ set dummy $deplib_matches; shift -+ deplib_match=$1 - if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then - newdeplibs="$newdeplibs $i" - else - droppeddeps=yes -- $echo -- $echo "*** Warning: dynamic linker does not accept needed library $i." -- $echo "*** I have the capability to make that library automatically link in when" -- $echo "*** you link to this library. But I can only do this if you have a" -- $echo "*** shared version of the library, which you do not appear to have" -- $echo "*** because a test_compile did reveal that the linker did not use this one" -- $echo "*** as a dynamic dependency that programs can get resolved with at runtime." -+ $ECHO -+ $ECHO "*** Warning: dynamic linker does not accept needed library $i." -+ $ECHO "*** I have the capability to make that library automatically link in when" -+ $ECHO "*** you link to this library. But I can only do this if you have a" -+ $ECHO "*** shared version of the library, which you do not appear to have" -+ $ECHO "*** because a test_compile did reveal that the linker did not use this one" -+ $ECHO "*** as a dynamic dependency that programs can get resolved with at runtime." - fi - fi - else - droppeddeps=yes -- $echo -- $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 install it or some" -- $echo "*** library that it depends on before this library will be fully" -- $echo "*** functional. Installing it before continuing would be even better." -+ $ECHO -+ $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 install it or some" -+ $ECHO "*** library that it depends on before this library will be fully" -+ $ECHO "*** functional. Installing it before continuing would be even better." - fi -- else -+ ;; -+ *) - newdeplibs="$newdeplibs $i" -- fi -+ ;; -+ esac - done - fi - ;; - file_magic*) -- set dummy $deplibs_check_method -- file_magic_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` -+ set dummy $deplibs_check_method; shift -+ file_magic_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` - for a_deplib in $deplibs; do -- name=`expr $a_deplib : '-l\(.*\)'` -- # If $name is empty we are operating on a -L argument. -- if test "$name" != "" && test "$name" != "0"; then -+ case $a_deplib in -+ -l*) -+ func_stripname -l '' "$a_deplib" -+ name=$func_stripname_result - if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then - case " $predeps $postdeps " in - *" $a_deplib "*) -@@ -3689,13 +6653,13 @@ EOF - esac - fi - 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 - potential_libs=`ls $i/$libname[.-]* 2>/dev/null` - for potent_lib in $potential_libs; do - # Follow soft links. -- if ls -lLd "$potent_lib" 2>/dev/null \ -- | grep " -> " >/dev/null; then -+ if ls -lLd "$potent_lib" 2>/dev/null | -+ $GREP " -> " >/dev/null; then - continue - fi - # The statement above tries to avoid entering an -@@ -3708,12 +6672,12 @@ EOF - potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` - case $potliblink in - [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; -- *) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";; -+ *) potlib=`$ECHO "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";; - esac - done -- if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \ -- | ${SED} 10q \ -- | $EGREP "$file_magic_regex" > /dev/null; then -+ if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | -+ $SED -e 10q | -+ $EGREP "$file_magic_regex" > /dev/null; then - newdeplibs="$newdeplibs $a_deplib" - a_deplib="" - break 2 -@@ -3723,32 +6687,35 @@ EOF - fi - if test -n "$a_deplib" ; then - droppeddeps=yes -- $echo -- $echo "*** Warning: linker path does not have real file for library $a_deplib." -- $echo "*** I have the capability to make that library automatically link in when" -- $echo "*** you link to this library. But I can only do this if you have a" -- $echo "*** shared version of the library, which you do not appear to have" -- $echo "*** because I did check the linker path looking for a file starting" -+ $ECHO -+ $ECHO "*** Warning: linker path does not have real file for library $a_deplib." -+ $ECHO "*** I have the capability to make that library automatically link in when" -+ $ECHO "*** you link to this library. But I can only do this if you have a" -+ $ECHO "*** shared version of the library, which you do not appear to have" -+ $ECHO "*** because I did check the linker path looking for a file starting" - 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 -- $echo "*** with $libname and none of the candidates passed a file format test" -- $echo "*** using a file magic. Last file checked: $potlib" -+ $ECHO "*** with $libname and none of the candidates passed a file format test" -+ $ECHO "*** using a file magic. Last file checked: $potlib" - fi - fi -- else -+ ;; -+ *) - # Add a -L argument. - newdeplibs="$newdeplibs $a_deplib" -- fi -+ ;; -+ esac - done # Gone through all deplibs. - ;; - match_pattern*) -- set dummy $deplibs_check_method -- match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` -+ set dummy $deplibs_check_method; shift -+ match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` - for a_deplib in $deplibs; do -- name=`expr $a_deplib : '-l\(.*\)'` -- # If $name is empty we are operating on a -L argument. -- if test -n "$name" && test "$name" != "0"; then -+ case $a_deplib in -+ -l*) -+ func_stripname -l '' "$a_deplib" -+ name=$func_stripname_result - if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then - case " $predeps $postdeps " in - *" $a_deplib "*) -@@ -3758,14 +6725,13 @@ EOF - esac - fi - 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 - potential_libs=`ls $i/$libname[.-]* 2>/dev/null` - for potent_lib in $potential_libs; do - potlib="$potent_lib" # see symlink-check above in file_magic test -- if eval $echo \"$potent_lib\" 2>/dev/null \ -- | ${SED} 10q \ -- | $EGREP "$match_pattern_regex" > /dev/null; then -+ if eval "\$ECHO \"X$potent_lib\"" 2>/dev/null | $Xsed -e 10q | \ -+ $EGREP "$match_pattern_regex" > /dev/null; then - newdeplibs="$newdeplibs $a_deplib" - a_deplib="" - break 2 -@@ -3775,44 +6741,46 @@ EOF - fi - if test -n "$a_deplib" ; then - droppeddeps=yes -- $echo -- $echo "*** Warning: linker path does not have real file for library $a_deplib." -- $echo "*** I have the capability to make that library automatically link in when" -- $echo "*** you link to this library. But I can only do this if you have a" -- $echo "*** shared version of the library, which you do not appear to have" -- $echo "*** because I did check the linker path looking for a file starting" -+ $ECHO -+ $ECHO "*** Warning: linker path does not have real file for library $a_deplib." -+ $ECHO "*** I have the capability to make that library automatically link in when" -+ $ECHO "*** you link to this library. But I can only do this if you have a" -+ $ECHO "*** shared version of the library, which you do not appear to have" -+ $ECHO "*** because I did check the linker path looking for a file starting" - 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 -- $echo "*** with $libname and none of the candidates passed a file format test" -- $echo "*** using a regex pattern. Last file checked: $potlib" -+ $ECHO "*** with $libname and none of the candidates passed a file format test" -+ $ECHO "*** using a regex pattern. Last file checked: $potlib" - fi - fi -- else -+ ;; -+ *) - # Add a -L argument. - newdeplibs="$newdeplibs $a_deplib" -- fi -+ ;; -+ esac - done # Gone through all deplibs. - ;; - none | unknown | *) - newdeplibs="" -- tmp_deplibs=`$echo "X $deplibs" | $Xsed -e 's/ -lc$//' \ -- -e 's/ -[LR][^ ]*//g'` -+ tmp_deplibs=`$ECHO "X $deplibs" | $Xsed \ -+ -e 's/ -lc$//' -e 's/ -[LR][^ ]*//g'` - if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then - for i in $predeps $postdeps ; do - # can't use Xsed below, because $i might contain '/' -- tmp_deplibs=`$echo "X $tmp_deplibs" | ${SED} -e "1s,^X,," -e "s,$i,,"` -+ tmp_deplibs=`$ECHO "X $tmp_deplibs" | $Xsed -e "s,$i,,"` - done - fi -- if $echo "X $tmp_deplibs" | $Xsed -e 's/[ ]//g' \ -- | grep . >/dev/null; then -- $echo -+ if $ECHO "X $tmp_deplibs" | $Xsed -e 's/[ ]//g' | -+ $GREP . >/dev/null; then -+ $ECHO - if test "X$deplibs_check_method" = "Xnone"; then -- $echo "*** Warning: inter-library dependencies are not supported in this platform." -+ $ECHO "*** Warning: inter-library dependencies are not supported in this platform." - else -- $echo "*** Warning: inter-library dependencies are not known to be supported." -+ $ECHO "*** Warning: inter-library dependencies are not known to be supported." - fi -- $echo "*** All declared inter-library dependencies are being dropped." -+ $ECHO "*** All declared inter-library dependencies are being dropped." - droppeddeps=yes - fi - ;; -@@ -3825,24 +6793,24 @@ EOF - - case $host in - *-*-rhapsody* | *-*-darwin1.[012]) -- # On Rhapsody replace the C library is the System framework -- newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'` -+ # On Rhapsody replace the C library with the System framework -+ newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's/ -lc / System.ltframework /'` - ;; - esac - - if test "$droppeddeps" = yes; then - if test "$module" = yes; then -- $echo -- $echo "*** Warning: libtool could not satisfy all declared inter-library" -- $echo "*** dependencies of module $libname. Therefore, libtool will create" -- $echo "*** a static module, that should work as long as the dlopening" -- $echo "*** application is linked with the -dlopen flag." -+ $ECHO -+ $ECHO "*** Warning: libtool could not satisfy all declared inter-library" -+ $ECHO "*** dependencies of module $libname. Therefore, libtool will create" -+ $ECHO "*** a static module, that should work as long as the dlopening" -+ $ECHO "*** application is linked with the -dlopen flag." - if test -z "$global_symbol_pipe"; then -- $echo -- $echo "*** However, this would only work if libtool was able to extract symbol" -- $echo "*** lists from a program, using \`nm' or equivalent, but libtool could" -- $echo "*** not find such a program. So, this module is probably useless." -- $echo "*** \`nm' from GNU binutils and a full rebuild may help." -+ $ECHO -+ $ECHO "*** However, this would only work if libtool was able to extract symbol" -+ $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could" -+ $ECHO "*** not find such a program. So, this module is probably useless." -+ $ECHO "*** \`nm' from GNU binutils and a full rebuild may help." - fi - if test "$build_old_libs" = no; then - oldlibs="$output_objdir/$libname.$libext" -@@ -3852,16 +6820,16 @@ EOF - build_libtool_libs=no - fi - else -- $echo "*** The inter-library dependencies that have been dropped here will be" -- $echo "*** automatically added whenever a program is linked with this library" -- $echo "*** or is declared to -dlopen it." -+ $ECHO "*** The inter-library dependencies that have been dropped here will be" -+ $ECHO "*** automatically added whenever a program is linked with this library" -+ $ECHO "*** or is declared to -dlopen it." - - if test "$allow_undefined" = no; then -- $echo -- $echo "*** Since this library must not contain undefined symbols," -- $echo "*** because either the platform does not support them or" -- $echo "*** it was explicitly requested with -no-undefined," -- $echo "*** libtool will only create a static version of it." -+ $ECHO -+ $ECHO "*** Since this library must not contain undefined symbols," -+ $ECHO "*** because either the platform does not support them or" -+ $ECHO "*** it was explicitly requested with -no-undefined," -+ $ECHO "*** libtool will only create a static version of it." - if test "$build_old_libs" = no; then - oldlibs="$output_objdir/$libname.$libext" - build_libtool_libs=module -@@ -3875,7 +6843,14 @@ EOF - # Done checking deplibs! - deplibs=$newdeplibs - fi -- -+ # Time to change all our "foo.ltframework" stuff back to "-framework foo" -+ case $host in -+ *-*-darwin*) -+ newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` -+ new_inherited_linker_flags=`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` -+ deplibs=`$ECHO "X $deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` -+ ;; -+ esac - - # move library search paths that coincide with paths to not yet - # installed libraries to the beginning of the library search list -@@ -3904,7 +6879,6 @@ EOF - done - deplibs="$new_libs" - -- - # All the library-specific variables (install_libdir is set above). - library_names= - old_library= -@@ -3949,10 +6923,7 @@ EOF - test -n "$hardcode_libdirs"; then - libdir="$hardcode_libdirs" - if test -n "$hardcode_libdir_flag_spec_ld"; then -- case $archive_cmds in -- *\$LD*) eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" ;; -- *) eval dep_rpath=\"$hardcode_libdir_flag_spec\" ;; -- esac -+ eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" - else - eval dep_rpath=\"$hardcode_libdir_flag_spec\" - fi -@@ -3978,8 +6949,9 @@ EOF - eval shared_ext=\"$shrext_cmds\" - eval library_names=\"$library_names_spec\" - set dummy $library_names -- realname="$2" -- shift; shift -+ shift -+ realname="$1" -+ shift - - if test -n "$soname_spec"; then - eval soname=\"$soname_spec\" -@@ -3998,71 +6970,122 @@ EOF - done - - # Use standard objects if they are pic -- test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` -+ test -z "$pic_flag" && libobjs=`$ECHO "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` -+ test "X$libobjs" = "X " && libobjs= -+ -+ delfiles= -+ if test -n "$export_symbols" && test -n "$include_expsyms"; then -+ $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" -+ export_symbols="$output_objdir/$libname.uexp" -+ delfiles="$delfiles $export_symbols" -+ fi -+ -+ orig_export_symbols= -+ case $host_os in -+ cygwin* | mingw* | cegcc*) -+ if test -n "$export_symbols" && test -z "$export_symbols_regex"; then -+ # exporting using user supplied symfile -+ if test "x`$SED 1q $export_symbols`" != xEXPORTS; then -+ # and it's NOT already a .def file. Must figure out -+ # which of the given symbols are data symbols and tag -+ # them as such. So, trigger use of export_symbols_cmds. -+ # export_symbols gets reassigned inside the "prepare -+ # the list of exported symbols" if statement, so the -+ # include_expsyms logic still works. -+ orig_export_symbols="$export_symbols" -+ export_symbols= -+ always_export_symbols=yes -+ fi -+ fi -+ ;; -+ esac - - # Prepare the list of exported symbols - if test -z "$export_symbols"; then - if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then -- $show "generating symbol list for \`$libname.la'" -+ func_verbose "generating symbol list for \`$libname.la'" - export_symbols="$output_objdir/$libname.exp" -- $run $rm $export_symbols -+ $opt_dry_run || $RM $export_symbols - cmds=$export_symbols_cmds - save_ifs="$IFS"; IFS='~' - for cmd in $cmds; do - IFS="$save_ifs" - eval cmd=\"$cmd\" -- if len=`expr "X$cmd" : ".*"` && -- test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then -- $show "$cmd" -- $run eval "$cmd" || exit $? -- skipped_export=false -+ func_len " $cmd" -+ len=$func_len_result -+ if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then -+ func_show_eval "$cmd" 'exit $?' -+ skipped_export=false - else -- # The command line is too long to execute in one step. -- $show "using reloadable object file for export list..." -- skipped_export=: -+ # The command line is too long to execute in one step. -+ func_verbose "using reloadable object file for export list..." -+ skipped_export=: - # Break out early, otherwise skipped_export may be - # set to false by a later but shorter cmd. - break - fi - done - IFS="$save_ifs" -- if test -n "$export_symbols_regex"; then -- $show "$EGREP -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\"" -- $run eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' -- $show "$mv \"${export_symbols}T\" \"$export_symbols\"" -- $run eval '$mv "${export_symbols}T" "$export_symbols"' -+ if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then -+ func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' -+ func_show_eval '$MV "${export_symbols}T" "$export_symbols"' - fi - fi - fi - - if test -n "$export_symbols" && test -n "$include_expsyms"; then -- $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"' -+ tmp_export_symbols="$export_symbols" -+ test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" -+ $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"' -+ fi -+ -+ if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then -+ # The given exports_symbols file has to be filtered, so filter it. -+ func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" -+ # FIXME: $output_objdir/$libname.filter potentially contains lots of -+ # 's' commands which not all seds can handle. GNU sed should be fine -+ # though. Also, the filter scales superlinearly with the number of -+ # global variables. join(1) would be nice here, but unfortunately -+ # isn't a blessed tool. -+ $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" -+ export_symbols=$output_objdir/$libname.def -+ $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols - fi - - tmp_deplibs= - for test_deplib in $deplibs; do -- case " $convenience " in -- *" $test_deplib "*) ;; -- *) -- tmp_deplibs="$tmp_deplibs $test_deplib" -- ;; -- esac -+ case " $convenience " in -+ *" $test_deplib "*) ;; -+ *) -+ tmp_deplibs="$tmp_deplibs $test_deplib" -+ ;; -+ esac - done - deplibs="$tmp_deplibs" - - if test -n "$convenience"; then -+ if test -n "$whole_archive_flag_spec" && -+ test "$compiler_needs_object" = yes && -+ test -z "$libobjs"; then -+ # extract the archives, so we have objects to list. -+ # TODO: could optimize this to just extract one archive. -+ whole_archive_flag_spec= -+ fi - if test -n "$whole_archive_flag_spec"; then - save_libobjs=$libobjs - eval libobjs=\"\$libobjs $whole_archive_flag_spec\" -+ test "X$libobjs" = "X " && libobjs= - else - gentop="$output_objdir/${outputname}x" - generated="$generated $gentop" - - func_extract_archives $gentop $convenience - libobjs="$libobjs $func_extract_archives_result" -+ test "X$libobjs" = "X " && libobjs= - fi - fi -- -+ - if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then - eval flag=\"$thread_safe_flag_spec\" - linker_flags="$linker_flags $flag" -@@ -4070,7 +7093,7 @@ EOF - - # Make a backup of the uninstalled library when relinking - if test "$mode" = relink; then -- $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $? -+ $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? - fi - - # Do each of the archive commands. -@@ -4083,22 +7106,24 @@ EOF - cmds=$module_cmds - fi - else -- if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then -- eval test_cmds=\"$archive_expsym_cmds\" -- cmds=$archive_expsym_cmds -- else -- eval test_cmds=\"$archive_cmds\" -- cmds=$archive_cmds -+ if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then -+ eval test_cmds=\"$archive_expsym_cmds\" -+ cmds=$archive_expsym_cmds -+ else -+ eval test_cmds=\"$archive_cmds\" -+ cmds=$archive_cmds - fi - fi - - if test "X$skipped_export" != "X:" && -- len=`expr "X$test_cmds" : ".*" 2>/dev/null` && -- test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then -+ func_len " $test_cmds" && -+ len=$func_len_result && -+ test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then - : - else -- # The command line is too long to link in one step, link piecewise. -- $echo "creating reloadable object files..." -+ # The command line is too long to link in one step, link piecewise -+ # or, if using GNU ld and skipped_export is not :, use a linker -+ # script. - - # Save the value of $output and $libobjs because we want to - # use them later. If we have whole_archive_flag_spec, we -@@ -4112,77 +7137,162 @@ EOF - save_libobjs=$libobjs - fi - save_output=$output -- output_la=`$echo "X$output" | $Xsed -e "$basename"` -+ output_la=`$ECHO "X$output" | $Xsed -e "$basename"` - - # Clear the reloadable object creation command queue and - # initialize k to one. - test_cmds= - concat_cmds= - objlist= -- delfiles= - last_robj= - k=1 -- output=$output_objdir/$output_la-${k}.$objext -- # Loop over the list of objects to be linked. -- for obj in $save_libobjs -- do -- eval test_cmds=\"$reload_cmds $objlist $last_robj\" -- if test "X$objlist" = X || -- { len=`expr "X$test_cmds" : ".*" 2>/dev/null` && -- test "$len" -le "$max_cmd_len"; }; then -- objlist="$objlist $obj" -+ -+ if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then -+ output=${output_objdir}/${output_la}.lnkscript -+ func_verbose "creating GNU ld script: $output" -+ $ECHO 'INPUT (' > $output -+ for obj in $save_libobjs -+ do -+ $ECHO "$obj" >> $output -+ done -+ $ECHO ')' >> $output -+ delfiles="$delfiles $output" -+ elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then -+ output=${output_objdir}/${output_la}.lnk -+ func_verbose "creating linker input file list: $output" -+ : > $output -+ set x $save_libobjs -+ shift -+ firstobj= -+ if test "$compiler_needs_object" = yes; then -+ firstobj="$1 " -+ shift -+ fi -+ for obj -+ do -+ $ECHO "$obj" >> $output -+ done -+ delfiles="$delfiles $output" -+ output=$firstobj\"$file_list_spec$output\" -+ else -+ if test -n "$save_libobjs"; then -+ func_verbose "creating reloadable object files..." -+ output=$output_objdir/$output_la-${k}.$objext -+ eval test_cmds=\"$reload_cmds\" -+ func_len " $test_cmds" -+ len0=$func_len_result -+ len=$len0 -+ -+ # Loop over the list of objects to be linked. -+ for obj in $save_libobjs -+ do -+ func_len " $obj" -+ func_arith $len + $func_len_result -+ len=$func_arith_result -+ if test "X$objlist" = X || -+ test "$len" -lt "$max_cmd_len"; then -+ func_append objlist " $obj" -+ else -+ # The command $test_cmds is almost too long, add a -+ # command to the queue. -+ if test "$k" -eq 1 ; then -+ # The first file doesn't have a previous command to add. -+ eval concat_cmds=\"$reload_cmds $objlist $last_robj\" -+ else -+ # All subsequent reloadable object files will link in -+ # the last one created. -+ eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj~\$RM $last_robj\" -+ fi -+ last_robj=$output_objdir/$output_la-${k}.$objext -+ func_arith $k + 1 -+ k=$func_arith_result -+ output=$output_objdir/$output_la-${k}.$objext -+ objlist=$obj -+ func_len " $last_robj" -+ func_arith $len0 + $func_len_result -+ len=$func_arith_result -+ fi -+ done -+ # Handle the remaining objects by creating one last -+ # reloadable object file. All subsequent reloadable object -+ # files will link in the last one created. -+ test -z "$concat_cmds" || concat_cmds=$concat_cmds~ -+ eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\" -+ if test -n "$last_robj"; then -+ eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\" -+ fi -+ delfiles="$delfiles $output" -+ - else -- # The command $test_cmds is almost too long, add a -- # command to the queue. -- if test "$k" -eq 1 ; then -- # The first file doesn't have a previous command to add. -- eval concat_cmds=\"$reload_cmds $objlist $last_robj\" -- else -- # All subsequent reloadable object files will link in -- # the last one created. -- eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\" -+ output= -+ fi -+ -+ if ${skipped_export-false}; then -+ func_verbose "generating symbol list for \`$libname.la'" -+ export_symbols="$output_objdir/$libname.exp" -+ $opt_dry_run || $RM $export_symbols -+ libobjs=$output -+ # Append the command to create the export file. -+ test -z "$concat_cmds" || concat_cmds=$concat_cmds~ -+ eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\" -+ if test -n "$last_robj"; then -+ eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" - fi -- last_robj=$output_objdir/$output_la-${k}.$objext -- k=`expr $k + 1` -- output=$output_objdir/$output_la-${k}.$objext -- objlist=$obj -- len=1 - fi -- done -- # Handle the remaining objects by creating one last -- # reloadable object file. All subsequent reloadable object -- # files will link in the last one created. -- test -z "$concat_cmds" || concat_cmds=$concat_cmds~ -- eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\" - -- if ${skipped_export-false}; then -- $show "generating symbol list for \`$libname.la'" -- export_symbols="$output_objdir/$libname.exp" -- $run $rm $export_symbols -- libobjs=$output -- # Append the command to create the export file. -- eval concat_cmds=\"\$concat_cmds~$export_symbols_cmds\" -- fi -+ test -n "$save_libobjs" && -+ func_verbose "creating a temporary reloadable object file: $output" - -- # Set up a command to remove the reloadable object files -- # after they are used. -- i=0 -- while test "$i" -lt "$k" -- do -- i=`expr $i + 1` -- delfiles="$delfiles $output_objdir/$output_la-${i}.$objext" -- done -+ # Loop through the commands generated above and execute them. -+ save_ifs="$IFS"; IFS='~' -+ for cmd in $concat_cmds; do -+ IFS="$save_ifs" -+ $opt_silent || { -+ func_quote_for_expand "$cmd" -+ eval "func_echo $func_quote_for_expand_result" -+ } -+ $opt_dry_run || eval "$cmd" || { -+ lt_exit=$? - -- $echo "creating a temporary reloadable object file: $output" -+ # Restore the uninstalled library and exit -+ if test "$mode" = relink; then -+ ( cd "$output_objdir" && \ -+ $RM "${realname}T" && \ -+ $MV "${realname}U" "$realname" ) -+ fi - -- # Loop through the commands generated above and execute them. -- save_ifs="$IFS"; IFS='~' -- for cmd in $concat_cmds; do -+ exit $lt_exit -+ } -+ done - IFS="$save_ifs" -- $show "$cmd" -- $run eval "$cmd" || exit $? -- done -- IFS="$save_ifs" -+ -+ if test -n "$export_symbols_regex" && ${skipped_export-false}; then -+ func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' -+ func_show_eval '$MV "${export_symbols}T" "$export_symbols"' -+ fi -+ fi -+ -+ if ${skipped_export-false}; then -+ if test -n "$export_symbols" && test -n "$include_expsyms"; then -+ tmp_export_symbols="$export_symbols" -+ test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" -+ $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"' -+ fi -+ -+ if test -n "$orig_export_symbols"; then -+ # The given exports_symbols file has to be filtered, so filter it. -+ func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" -+ # FIXME: $output_objdir/$libname.filter potentially contains lots of -+ # 's' commands which not all seds can handle. GNU sed should be fine -+ # though. Also, the filter scales superlinearly with the number of -+ # global variables. join(1) would be nice here, but unfortunately -+ # isn't a blessed tool. -+ $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" -+ export_symbols=$output_objdir/$libname.def -+ $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols -+ fi -+ fi - - libobjs=$output - # Restore the value of output. -@@ -4190,6 +7300,7 @@ EOF - - if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then - eval libobjs=\"\$libobjs $whole_archive_flag_spec\" -+ test "X$libobjs" = "X " && libobjs= - fi - # Expand the library linking commands again to reset the - # value of $libobjs for piecewise linking. -@@ -4202,28 +7313,45 @@ EOF - cmds=$module_cmds - fi - else -- if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then -- cmds=$archive_expsym_cmds -- else -- cmds=$archive_cmds -+ if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then -+ cmds=$archive_expsym_cmds -+ else -+ cmds=$archive_cmds - fi - fi -+ fi - -- # Append the command to remove the reloadable object files -- # to the just-reset $cmds. -- eval cmds=\"\$cmds~\$rm $delfiles\" -+ if test -n "$delfiles"; then -+ # Append the command to remove temporary files to $cmds. -+ eval cmds=\"\$cmds~\$RM $delfiles\" - fi -+ -+ # Add any objects from preloaded convenience libraries -+ if test -n "$dlprefiles"; then -+ gentop="$output_objdir/${outputname}x" -+ generated="$generated $gentop" -+ -+ func_extract_archives $gentop $dlprefiles -+ libobjs="$libobjs $func_extract_archives_result" -+ test "X$libobjs" = "X " && libobjs= -+ fi -+ - save_ifs="$IFS"; IFS='~' - for cmd in $cmds; do - IFS="$save_ifs" - eval cmd=\"$cmd\" -- $show "$cmd" -- $run eval "$cmd" || { -+ $opt_silent || { -+ func_quote_for_expand "$cmd" -+ eval "func_echo $func_quote_for_expand_result" -+ } -+ $opt_dry_run || eval "$cmd" || { - lt_exit=$? - - # Restore the uninstalled library and exit - if test "$mode" = relink; then -- $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)' -+ ( cd "$output_objdir" && \ -+ $RM "${realname}T" && \ -+ $MV "${realname}U" "$realname" ) - fi - - exit $lt_exit -@@ -4233,12 +7361,11 @@ EOF - - # Restore the uninstalled library and exit - if test "$mode" = relink; then -- $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $? -+ $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? - - if test -n "$convenience"; then - if test -z "$whole_archive_flag_spec"; then -- $show "${rm}r $gentop" -- $run ${rm}r "$gentop" -+ func_show_eval '${RM}r "$gentop"' - fi - fi - -@@ -4248,8 +7375,7 @@ EOF - # Create links to the real library. - for linkname in $linknames; do - if test "$realname" != "$linkname"; then -- $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)" -- $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $? -+ func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?' - fi - done - -@@ -4262,39 +7388,35 @@ EOF - ;; - - obj) -+ if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then -+ func_warning "\`-dlopen' is ignored for objects" -+ fi -+ - case " $deplibs" in - *\ -l* | *\ -L*) -- $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2 ;; -+ func_warning "\`-l' and \`-L' are ignored for objects" ;; - esac - -- if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then -- $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2 -- fi -- -- if test -n "$rpath"; then -- $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2 -- fi -+ test -n "$rpath" && \ -+ func_warning "\`-rpath' is ignored for objects" - -- if test -n "$xrpath"; then -- $echo "$modename: warning: \`-R' is ignored for objects" 1>&2 -- fi -+ test -n "$xrpath" && \ -+ func_warning "\`-R' is ignored for objects" - -- if test -n "$vinfo"; then -- $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2 -- fi -+ test -n "$vinfo" && \ -+ func_warning "\`-version-info' is ignored for objects" - -- if test -n "$release"; then -- $echo "$modename: warning: \`-release' is ignored for objects" 1>&2 -- fi -+ test -n "$release" && \ -+ func_warning "\`-release' is ignored for objects" - - case $output in - *.lo) -- if test -n "$objs$old_deplibs"; then -- $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2 -- exit $EXIT_FAILURE -- fi -- libobj="$output" -- obj=`$echo "X$output" | $Xsed -e "$lo2o"` -+ test -n "$objs$old_deplibs" && \ -+ func_fatal_error "cannot build library object \`$output' from non-libtool objects" -+ -+ libobj=$output -+ func_lo2o "$libobj" -+ obj=$func_lo2o_result - ;; - *) - libobj= -@@ -4303,7 +7425,7 @@ EOF - esac - - # Delete the old objects. -- $run $rm $obj $libobj -+ $opt_dry_run || $RM $obj $libobj - - # Objects from convenience libraries. This assumes - # single-version convenience libraries. Whenever we create -@@ -4319,7 +7441,7 @@ EOF - if test -n "$convenience"; then - if test -n "$whole_archive_flag_spec"; then - eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" -- reload_conv_objs=$reload_objs\ `$echo "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'` -+ reload_conv_objs=$reload_objs\ `$ECHO "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'` - else - gentop="$output_objdir/${obj}x" - generated="$generated $gentop" -@@ -4330,24 +7452,15 @@ EOF - fi - - # Create the old-style object. -- reload_objs="$objs$old_deplibs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test -+ reload_objs="$objs$old_deplibs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test - - output="$obj" -- cmds=$reload_cmds -- save_ifs="$IFS"; IFS='~' -- for cmd in $cmds; do -- IFS="$save_ifs" -- eval cmd=\"$cmd\" -- $show "$cmd" -- $run eval "$cmd" || exit $? -- done -- IFS="$save_ifs" -+ func_execute_cmds "$reload_cmds" 'exit $?' - - # Exit if we aren't doing a library object file. - if test -z "$libobj"; then - if test -n "$gentop"; then -- $show "${rm}r $gentop" -- $run ${rm}r $gentop -+ func_show_eval '${RM}r "$gentop"' - fi - - exit $EXIT_SUCCESS -@@ -4355,14 +7468,13 @@ EOF - - if test "$build_libtool_libs" != yes; then - if test -n "$gentop"; then -- $show "${rm}r $gentop" -- $run ${rm}r $gentop -+ func_show_eval '${RM}r "$gentop"' - fi - - # Create an invalid libtool object if no PIC, so that we don't - # accidentally link it into a program. - # $show "echo timestamp > $libobj" -- # $run eval "echo timestamp > $libobj" || exit $? -+ # $opt_dry_run || eval "echo timestamp > $libobj" || exit $? - exit $EXIT_SUCCESS - fi - -@@ -4370,20 +7482,11 @@ EOF - # Only do commands if we really have different PIC objects. - reload_objs="$libobjs $reload_conv_objs" - output="$libobj" -- cmds=$reload_cmds -- save_ifs="$IFS"; IFS='~' -- for cmd in $cmds; do -- IFS="$save_ifs" -- eval cmd=\"$cmd\" -- $show "$cmd" -- $run eval "$cmd" || exit $? -- done -- IFS="$save_ifs" -+ func_execute_cmds "$reload_cmds" 'exit $?' - fi - - if test -n "$gentop"; then -- $show "${rm}r $gentop" -- $run ${rm}r $gentop -+ func_show_eval '${RM}r "$gentop"' - fi - - exit $EXIT_SUCCESS -@@ -4391,39 +7494,45 @@ EOF - - prog) - case $host in -- *cygwin*) output=`$echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;; -+ *cygwin*) func_stripname '' '.exe' "$output" -+ output=$func_stripname_result.exe;; - esac -- if test -n "$vinfo"; then -- $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2 -- fi -+ test -n "$vinfo" && \ -+ func_warning "\`-version-info' is ignored for programs" - -- if test -n "$release"; then -- $echo "$modename: warning: \`-release' is ignored for programs" 1>&2 -- fi -+ test -n "$release" && \ -+ func_warning "\`-release' is ignored for programs" - -- if test "$preload" = yes; then -- if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown && -- test "$dlopen_self_static" = unknown; then -- $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support." -- fi -- fi -+ test "$preload" = yes \ -+ && test "$dlopen_support" = unknown \ -+ && test "$dlopen_self" = unknown \ -+ && test "$dlopen_self_static" = unknown && \ -+ func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support." - - case $host in - *-*-rhapsody* | *-*-darwin1.[012]) - # On Rhapsody replace the C library is the System framework -- compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'` -- finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'` -+ compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'` -+ finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'` - ;; - esac - - case $host in -- *darwin*) -- # Don't allow lazy linking, it breaks C++ global constructors -- if test "$tagname" = CXX ; then -- compile_command="$compile_command ${wl}-bind_at_load" -- finalize_command="$finalize_command ${wl}-bind_at_load" -- fi -- ;; -+ *-*-darwin*) -+ # Don't allow lazy linking, it breaks C++ global constructors -+ # But is supposedly fixed on 10.4 or later (yay!). -+ if test "$tagname" = CXX ; then -+ case ${MACOSX_DEPLOYMENT_TARGET-10.0} in -+ 10.[0123]) -+ compile_command="$compile_command ${wl}-bind_at_load" -+ finalize_command="$finalize_command ${wl}-bind_at_load" -+ ;; -+ esac -+ fi -+ # Time to change all our "foo.ltframework" stuff back to "-framework foo" -+ compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` -+ finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` -+ ;; - esac - - -@@ -4498,14 +7607,16 @@ EOF - esac - fi - case $host in -- *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) -- testbindir=`$echo "X$libdir" | $Xsed -e 's*/lib$*/bin*'` -+ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) -+ testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'` - case :$dllsearchpath: in - *":$libdir:"*) ;; -+ ::) dllsearchpath=$libdir;; - *) dllsearchpath="$dllsearchpath:$libdir";; - esac - case :$dllsearchpath: in - *":$testbindir:"*) ;; -+ ::) dllsearchpath=$testbindir;; - *) dllsearchpath="$dllsearchpath:$testbindir";; - esac - ;; -@@ -4557,281 +7668,51 @@ EOF - - if test -n "$libobjs" && test "$build_old_libs" = yes; then - # Transform all the library objects into standard objects. -- compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` -- finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` -- fi -- -- dlsyms= -- if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then -- if test -n "$NM" && test -n "$global_symbol_pipe"; then -- dlsyms="${outputname}S.c" -- else -- $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2 -- fi -+ compile_command=`$ECHO "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` -+ finalize_command=`$ECHO "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` - fi - -- if test -n "$dlsyms"; then -- case $dlsyms in -- "") ;; -- *.c) -- # Discover the nlist of each of the dlfiles. -- nlist="$output_objdir/${outputname}.nm" -- -- $show "$rm $nlist ${nlist}S ${nlist}T" -- $run $rm "$nlist" "${nlist}S" "${nlist}T" -- -- # Parse the name list into a source file. -- $show "creating $output_objdir/$dlsyms" -- -- test -z "$run" && $echo > "$output_objdir/$dlsyms" "\ --/* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */ --/* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */ -- --#ifdef __cplusplus --extern \"C\" { --#endif -- --/* Prevent the only kind of declaration conflicts we can make. */ --#define lt_preloaded_symbols some_other_symbol -- --/* External symbol declarations for the compiler. */\ --" -- -- if test "$dlself" = yes; then -- $show "generating symbol list for \`$output'" -- -- test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist" -- -- # Add our own program objects to the symbol list. -- progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` -- for arg in $progfiles; do -- $show "extracting global C symbols from \`$arg'" -- $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" -- done -- -- if test -n "$exclude_expsyms"; then -- $run eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' -- $run eval '$mv "$nlist"T "$nlist"' -- fi -- -- if test -n "$export_symbols_regex"; then -- $run eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' -- $run eval '$mv "$nlist"T "$nlist"' -- fi -- -- # Prepare the list of exported symbols -- if test -z "$export_symbols"; then -- export_symbols="$output_objdir/$outputname.exp" -- $run $rm $export_symbols -- $run eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' -- case $host in -- *cygwin* | *mingw* ) -- $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' -- $run eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' -- ;; -- esac -- else -- $run eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' -- $run eval 'grep -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' -- $run eval 'mv "$nlist"T "$nlist"' -- case $host in -- *cygwin* | *mingw* ) -- $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' -- $run eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' -- ;; -- esac -- fi -- fi -- -- for arg in $dlprefiles; do -- $show "extracting global C symbols from \`$arg'" -- name=`$echo "$arg" | ${SED} -e 's%^.*/%%'` -- $run eval '$echo ": $name " >> "$nlist"' -- $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" -- done -- -- if test -z "$run"; then -- # Make sure we have at least an empty file. -- test -f "$nlist" || : > "$nlist" -- -- if test -n "$exclude_expsyms"; then -- $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T -- $mv "$nlist"T "$nlist" -- fi -- -- # Try sorting and uniquifying the output. -- if grep -v "^: " < "$nlist" | -- if sort -k 3 </dev/null >/dev/null 2>&1; then -- sort -k 3 -- else -- sort +2 -- fi | -- uniq > "$nlist"S; then -- : -- else -- grep -v "^: " < "$nlist" > "$nlist"S -- fi -- -- if test -f "$nlist"S; then -- eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"' -- else -- $echo '/* NONE */' >> "$output_objdir/$dlsyms" -- fi -- -- $echo >> "$output_objdir/$dlsyms" "\ -- --#undef lt_preloaded_symbols -- --#if defined (__STDC__) && __STDC__ --# define lt_ptr void * --#else --# define lt_ptr char * --# define const --#endif -- --/* The mapping between symbol names and symbols. */ --" -- -- case $host in -- *cygwin* | *mingw* ) -- $echo >> "$output_objdir/$dlsyms" "\ --/* DATA imports from DLLs on WIN32 can't be const, because -- runtime relocations are performed -- see ld's documentation -- on pseudo-relocs */ --struct { --" -- ;; -- * ) -- $echo >> "$output_objdir/$dlsyms" "\ --const struct { --" -- ;; -- esac -- -- -- $echo >> "$output_objdir/$dlsyms" "\ -- const char *name; -- lt_ptr address; --} --lt_preloaded_symbols[] = --{\ --" -- -- eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms" -- -- $echo >> "$output_objdir/$dlsyms" "\ -- {0, (lt_ptr) 0} --}; -- --/* This works around a problem in FreeBSD linker */ --#ifdef FREEBSD_WORKAROUND --static const void *lt_preloaded_setup() { -- return lt_preloaded_symbols; --} --#endif -- --#ifdef __cplusplus --} --#endif\ --" -- fi -- -- pic_flag_for_symtable= -- case $host in -- # compiling the symbol table file with pic_flag works around -- # a FreeBSD bug that causes programs to crash when -lm is -- # linked before any other PIC object. But we must not use -- # pic_flag when linking with -static. The problem exists in -- # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. -- *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) -- case "$compile_command " in -- *" -static "*) ;; -- *) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND";; -- esac;; -- *-*-hpux*) -- case "$compile_command " in -- *" -static "*) ;; -- *) pic_flag_for_symtable=" $pic_flag";; -- esac -- esac -- -- # Now compile the dynamic symbol file. -- $show "(cd $output_objdir && $LTCC $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")" -- $run eval '(cd $output_objdir && $LTCC $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $? -- -- # Clean up the generated files. -- $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T" -- $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T" -- -- # Transform the symbol file into the correct name. -- case $host in -- *cygwin* | *mingw* ) -- if test -f "$output_objdir/${outputname}.def" ; then -- compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%" | $NL2SP` -- finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%" | $NL2SP` -- else -- compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP` -- finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP` -- fi -- ;; -- * ) -- compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP` -- finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP` -- ;; -- esac -- ;; -- *) -- $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2 -- exit $EXIT_FAILURE -- ;; -- esac -- else -- # We keep going just in case the user didn't refer to -- # lt_preloaded_symbols. The linker will fail if global_symbol_pipe -- # really was required. -+ func_generate_dlsyms "$outputname" "@PROGRAM@" "no" - -- # Nullify the symbol file. -- compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s% @SYMFILE@%%" | $NL2SP` -- finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s% @SYMFILE@%%" | $NL2SP` -+ # template prelinking step -+ if test -n "$prelink_cmds"; then -+ func_execute_cmds "$prelink_cmds" 'exit $?' - fi - -- if test "$need_relink" = no || test "$build_libtool_libs" != yes; then -+ wrappers_required=yes -+ case $host in -+ *cygwin* | *mingw* ) -+ if test "$build_libtool_libs" != yes; then -+ wrappers_required=no -+ fi -+ ;; -+ *cegcc) -+ # Disable wrappers for cegcc, we are cross compiling anyway. -+ wrappers_required=no -+ ;; -+ *) -+ if test "$need_relink" = no || test "$build_libtool_libs" != yes; then -+ wrappers_required=no -+ fi -+ ;; -+ esac -+ if test "$wrappers_required" = no; then - # Replace the output file specification. -- compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e 's%@OUTPUT@%'"$output"'%g' | $NL2SP` -+ compile_command=`$ECHO "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` - link_command="$compile_command$compile_rpath" - - # We have no uninstalled library dependencies, so finalize right now. -- $show "$link_command" -- $run eval "$link_command" -- exit_status=$? -+ exit_status=0 -+ func_show_eval "$link_command" 'exit_status=$?' - - # Delete the generated files. -- if test -n "$dlsyms"; then -- $show "$rm $output_objdir/${outputname}S.${objext}" -- $run $rm "$output_objdir/${outputname}S.${objext}" -+ if test -f "$output_objdir/${outputname}S.${objext}"; then -+ func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"' - fi - - exit $exit_status - fi - -- if test -n "$shlibpath_var"; then -- # We should set the shlibpath_var -- rpath= -- for dir in $temp_rpath; do -- case $dir in -- [\\/]* | [A-Za-z]:[\\/]*) -- # Absolute path. -- rpath="$rpath$dir:" -- ;; -- *) -- # Relative path: add a thisdir entry. -- rpath="$rpath\$thisdir/$dir:" -- ;; -- esac -- done -- temp_rpath="$rpath" -- fi -- - if test -n "$compile_shlibpath$finalize_shlibpath"; then - compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" - fi -@@ -4864,12 +7745,11 @@ static const void *lt_preloaded_setup() - # We don't need to create a wrapper script. - link_command="$compile_var$compile_command$compile_rpath" - # Replace the output file specification. -- link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` -+ link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` - # Delete the old output file. -- $run $rm $output -+ $opt_dry_run || $RM $output - # Link the executable and exit -- $show "$link_command" -- $run eval "$link_command" || exit $? -+ func_show_eval "$link_command" 'exit $?' - exit $EXIT_SUCCESS - fi - -@@ -4878,13 +7758,13 @@ static const void *lt_preloaded_setup() - link_command="$compile_var$compile_command$compile_rpath" - relink_command="$finalize_var$finalize_command$finalize_rpath" - -- $echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2 -- $echo "$modename: \`$output' will be relinked during installation" 1>&2 -+ func_warning "this platform does not like uninstalled shared libraries" -+ func_warning "\`$output' will be relinked during installation" - else - if test "$fast_install" != no; then - link_command="$finalize_var$compile_command$finalize_rpath" - if test "$fast_install" = yes; then -- relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $SP2NL | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g' | $NL2SP` -+ relink_command=`$ECHO "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'` - else - # fast_install is set to needless - relink_command= -@@ -4896,608 +7776,103 @@ static const void *lt_preloaded_setup() - fi - - # Replace the output file specification. -- link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` -+ link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` - - # Delete the old output files. -- $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname -+ $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname - -- $show "$link_command" -- $run eval "$link_command" || exit $? -+ func_show_eval "$link_command" 'exit $?' - - # Now create the wrapper script. -- $show "creating $output" -+ func_verbose "creating $output" - - # Quote the relink command for shipping. - if test -n "$relink_command"; then - # Preserve any variables that may affect compiler behavior - for var in $variables_saved_for_relink; do - if eval test -z \"\${$var+set}\"; then -- relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command" -+ relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" - elif eval var_value=\$$var; test -z "$var_value"; then - relink_command="$var=; export $var; $relink_command" - else -- var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` -- relink_command="$var=\"$var_value\"; export $var; $relink_command" -+ func_quote_for_eval "$var_value" -+ relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" - fi - done - relink_command="(cd `pwd`; $relink_command)" -- relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e "$sed_quote_subst" | $NL2SP` -+ relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"` - fi - -- # Quote $echo for shipping. -- if test "X$echo" = "X$SHELL $progpath --fallback-echo"; then -+ # Quote $ECHO for shipping. -+ if test "X$ECHO" = "X$SHELL $progpath --fallback-echo"; then - case $progpath in - [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";; - *) qecho="$SHELL `pwd`/$progpath --fallback-echo";; - esac -- qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"` -+ qecho=`$ECHO "X$qecho" | $Xsed -e "$sed_quote_subst"` - else -- qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"` -+ qecho=`$ECHO "X$ECHO" | $Xsed -e "$sed_quote_subst"` - fi - -- # Only actually do things if our run command is non-null. -- if test -z "$run"; then -+ # Only actually do things if not in dry run mode. -+ $opt_dry_run || { - # win32 will think the script is a binary if it has - # a .exe suffix, so we strip it off here. - case $output in -- *.exe) output=`$echo $output|${SED} 's,.exe$,,'` ;; -+ *.exe) func_stripname '' '.exe' "$output" -+ output=$func_stripname_result ;; - esac - # test for cygwin because mv fails w/o .exe extensions - case $host in - *cygwin*) - exeext=.exe -- outputname=`$echo $outputname|${SED} 's,.exe$,,'` ;; -+ func_stripname '' '.exe' "$outputname" -+ outputname=$func_stripname_result ;; - *) exeext= ;; - esac - case $host in - *cygwin* | *mingw* ) -- output_name=`basename $output` -- output_path=`dirname $output` -- cwrappersource="$output_path/$objdir/lt-$output_name.c" -- cwrapper="$output_path/$output_name.exe" -- $rm $cwrappersource $cwrapper -- trap "$rm $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 -- -- cat > $cwrappersource <<EOF -- --/* $cwrappersource - temporary wrapper executable for $objdir/$outputname -- Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP -- -- The $output program cannot be directly executed until all the libtool -- libraries that it depends on are installed. -- -- This wrapper executable should never be moved out of the build directory. -- If it is, it will not operate correctly. -- -- Currently, it simply execs the wrapper *script* "/bin/sh $output", -- but could eventually absorb all of the scripts functionality and -- exec $objdir/$outputname directly. --*/ --EOF -- cat >> $cwrappersource<<"EOF" --#include <stdio.h> --#include <stdlib.h> --#include <unistd.h> --#include <malloc.h> --#include <stdarg.h> --#include <assert.h> --#include <string.h> --#include <ctype.h> --#include <sys/stat.h> -- --#if defined(PATH_MAX) --# define LT_PATHMAX PATH_MAX --#elif defined(MAXPATHLEN) --# define LT_PATHMAX MAXPATHLEN --#else --# define LT_PATHMAX 1024 --#endif -- --#ifndef DIR_SEPARATOR --# define DIR_SEPARATOR '/' --# define PATH_SEPARATOR ':' --#endif -- --#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ -- defined (__OS2__) --# define HAVE_DOS_BASED_FILE_SYSTEM --# ifndef DIR_SEPARATOR_2 --# define DIR_SEPARATOR_2 '\\' --# endif --# ifndef PATH_SEPARATOR_2 --# define PATH_SEPARATOR_2 ';' --# endif --#endif -- --#ifndef DIR_SEPARATOR_2 --# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) --#else /* DIR_SEPARATOR_2 */ --# define IS_DIR_SEPARATOR(ch) \ -- (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) --#endif /* DIR_SEPARATOR_2 */ -- --#ifndef PATH_SEPARATOR_2 --# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) --#else /* PATH_SEPARATOR_2 */ --# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) --#endif /* PATH_SEPARATOR_2 */ -- --#define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) --#define XFREE(stale) do { \ -- if (stale) { free ((void *) stale); stale = 0; } \ --} while (0) -- --/* -DDEBUG is fairly common in CFLAGS. */ --#undef DEBUG --#if defined DEBUGWRAPPER --# define DEBUG(format, ...) fprintf(stderr, format, __VA_ARGS__) --#else --# define DEBUG(format, ...) --#endif -- --const char *program_name = NULL; -- --void * xmalloc (size_t num); --char * xstrdup (const char *string); --const char * base_name (const char *name); --char * find_executable(const char *wrapper); --int check_executable(const char *path); --char * strendzap(char *str, const char *pat); --void lt_fatal (const char *message, ...); -- --int --main (int argc, char *argv[]) --{ -- char **newargz; -- int i; -- -- program_name = (char *) xstrdup (base_name (argv[0])); -- DEBUG("(main) argv[0] : %s\n",argv[0]); -- DEBUG("(main) program_name : %s\n",program_name); -- newargz = XMALLOC(char *, argc+2); --EOF -- -- cat >> $cwrappersource <<EOF -- newargz[0] = (char *) xstrdup("$SHELL"); --EOF -- -- cat >> $cwrappersource <<"EOF" -- newargz[1] = find_executable(argv[0]); -- if (newargz[1] == NULL) -- lt_fatal("Couldn't find %s", argv[0]); -- DEBUG("(main) found exe at : %s\n",newargz[1]); -- /* we know the script has the same name, without the .exe */ -- /* so make sure newargz[1] doesn't end in .exe */ -- strendzap(newargz[1],".exe"); -- for (i = 1; i < argc; i++) -- newargz[i+1] = xstrdup(argv[i]); -- newargz[argc+1] = NULL; -- -- for (i=0; i<argc+1; i++) -- { -- DEBUG("(main) newargz[%d] : %s\n",i,newargz[i]); -- ; -- } -- --EOF -- -- case $host_os in -- mingw*) -- cat >> $cwrappersource <<EOF -- execv("$SHELL",(char const **)newargz); --EOF -- ;; -- *) -- cat >> $cwrappersource <<EOF -- execv("$SHELL",newargz); --EOF -- ;; -- esac -- -- cat >> $cwrappersource <<"EOF" -- return 127; --} -- --void * --xmalloc (size_t num) --{ -- void * p = (void *) malloc (num); -- if (!p) -- lt_fatal ("Memory exhausted"); -- -- return p; --} -- --char * --xstrdup (const char *string) --{ -- return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL --; --} -- --const char * --base_name (const char *name) --{ -- const char *base; -- --#if defined (HAVE_DOS_BASED_FILE_SYSTEM) -- /* Skip over the disk name in MSDOS pathnames. */ -- if (isalpha ((unsigned char)name[0]) && name[1] == ':') -- name += 2; --#endif -- -- for (base = name; *name; name++) -- if (IS_DIR_SEPARATOR (*name)) -- base = name + 1; -- return base; --} -- --int --check_executable(const char * path) --{ -- struct stat st; -- -- DEBUG("(check_executable) : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!"); -- if ((!path) || (!*path)) -- return 0; -- -- if ((stat (path, &st) >= 0) && -- ( -- /* MinGW & native WIN32 do not support S_IXOTH or S_IXGRP */ --#if defined (S_IXOTH) -- ((st.st_mode & S_IXOTH) == S_IXOTH) || --#endif --#if defined (S_IXGRP) -- ((st.st_mode & S_IXGRP) == S_IXGRP) || --#endif -- ((st.st_mode & S_IXUSR) == S_IXUSR)) -- ) -- return 1; -- else -- return 0; --} -- --/* Searches for the full path of the wrapper. Returns -- newly allocated full path name if found, NULL otherwise */ --char * --find_executable (const char* wrapper) --{ -- int has_slash = 0; -- const char* p; -- const char* p_next; -- /* static buffer for getcwd */ -- char tmp[LT_PATHMAX + 1]; -- int tmp_len; -- char* concat_name; -- -- DEBUG("(find_executable) : %s\n", wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!"); -- -- if ((wrapper == NULL) || (*wrapper == '\0')) -- return NULL; -- -- /* Absolute path? */ --#if defined (HAVE_DOS_BASED_FILE_SYSTEM) -- if (isalpha ((unsigned char)wrapper[0]) && wrapper[1] == ':') -- { -- concat_name = xstrdup (wrapper); -- if (check_executable(concat_name)) -- return concat_name; -- XFREE(concat_name); -- } -- else -- { --#endif -- if (IS_DIR_SEPARATOR (wrapper[0])) -- { -- concat_name = xstrdup (wrapper); -- if (check_executable(concat_name)) -- return concat_name; -- XFREE(concat_name); -- } --#if defined (HAVE_DOS_BASED_FILE_SYSTEM) -- } --#endif -- -- for (p = wrapper; *p; p++) -- if (*p == '/') -- { -- has_slash = 1; -- break; -- } -- if (!has_slash) -- { -- /* no slashes; search PATH */ -- const char* path = getenv ("PATH"); -- if (path != NULL) -- { -- for (p = path; *p; p = p_next) -- { -- const char* q; -- size_t p_len; -- for (q = p; *q; q++) -- if (IS_PATH_SEPARATOR(*q)) -- break; -- p_len = q - p; -- p_next = (*q == '\0' ? q : q + 1); -- if (p_len == 0) -- { -- /* empty path: current directory */ -- if (getcwd (tmp, LT_PATHMAX) == NULL) -- lt_fatal ("getcwd failed"); -- tmp_len = strlen(tmp); -- concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1); -- memcpy (concat_name, tmp, tmp_len); -- concat_name[tmp_len] = '/'; -- strcpy (concat_name + tmp_len + 1, wrapper); -- } -- else -- { -- concat_name = XMALLOC(char, p_len + 1 + strlen(wrapper) + 1); -- memcpy (concat_name, p, p_len); -- concat_name[p_len] = '/'; -- strcpy (concat_name + p_len + 1, wrapper); -- } -- if (check_executable(concat_name)) -- return concat_name; -- XFREE(concat_name); -- } -- } -- /* not found in PATH; assume curdir */ -- } -- /* Relative path | not found in path: prepend cwd */ -- if (getcwd (tmp, LT_PATHMAX) == NULL) -- lt_fatal ("getcwd failed"); -- tmp_len = strlen(tmp); -- concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1); -- memcpy (concat_name, tmp, tmp_len); -- concat_name[tmp_len] = '/'; -- strcpy (concat_name + tmp_len + 1, wrapper); -- -- if (check_executable(concat_name)) -- return concat_name; -- XFREE(concat_name); -- return NULL; --} -- --char * --strendzap(char *str, const char *pat) --{ -- size_t len, patlen; -- -- assert(str != NULL); -- assert(pat != NULL); -- -- len = strlen(str); -- patlen = strlen(pat); -- -- if (patlen <= len) -- { -- str += len - patlen; -- if (strcmp(str, pat) == 0) -- *str = '\0'; -- } -- return str; --} -- --static void --lt_error_core (int exit_status, const char * mode, -- const char * message, va_list ap) --{ -- fprintf (stderr, "%s: %s: ", program_name, mode); -- vfprintf (stderr, message, ap); -- fprintf (stderr, ".\n"); -- -- if (exit_status >= 0) -- exit (exit_status); --} -- --void --lt_fatal (const char *message, ...) --{ -- va_list ap; -- va_start (ap, message); -- lt_error_core (EXIT_FAILURE, "FATAL", message, ap); -- va_end (ap); --} --EOF -- # we should really use a build-platform specific compiler -- # here, but OTOH, the wrappers (shell script and this C one) -- # are only useful if you want to execute the "real" binary. -- # Since the "real" binary is built for $host, then this -- # wrapper might as well be built for $host, too. -- $run $LTCC $LTCFLAGS -s -o $cwrapper $cwrappersource -- ;; -- esac -- $rm $output -- trap "$rm $output; exit $EXIT_FAILURE" 1 2 15 -- -- $echo > $output "\ --#! $SHELL -- --# $output - temporary wrapper script for $objdir/$outputname --# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP --# --# The $output program cannot be directly executed until all the libtool --# libraries that it depends on are installed. --# --# This wrapper script should never be moved out of the build directory. --# If it is, it will not operate correctly. -- --# Sed substitution that helps us do robust quoting. It backslashifies --# metacharacters that are still active within double-quoted strings. --Xsed='${SED} -e 1s/^X//' --sed_quote_subst='$sed_quote_subst' -- --# Be Bourne compatible (taken from Autoconf:_AS_BOURNE_COMPATIBLE). --if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then -- emulate sh -- NULLCMD=: -- # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which -- # is contrary to our usage. Disable this feature. -- alias -g '\${1+\"\$@\"}'='\"\$@\"' -- setopt NO_GLOB_SUBST --else -- case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac --fi --BIN_SH=xpg4; export BIN_SH # for Tru64 --DUALCASE=1; export DUALCASE # for MKS sh -- --# The HP-UX ksh and POSIX shell print the target directory to stdout --# if CDPATH is set. --(unset CDPATH) >/dev/null 2>&1 && unset CDPATH -- --relink_command=\"$relink_command\" -- --# This environment variable determines our operation mode. --if test \"\$libtool_install_magic\" = \"$magic\"; then -- # install mode needs the following variable: -- notinst_deplibs='$notinst_deplibs' --else -- # When we are sourced in execute mode, \$file and \$echo are already set. -- if test \"\$libtool_execute_magic\" != \"$magic\"; then -- echo=\"$qecho\" -- file=\"\$0\" -- # Make sure echo works. -- if test \"X\$1\" = X--no-reexec; then -- # Discard the --no-reexec flag, and continue. -- shift -- elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then -- # Yippee, \$echo works! -- : -- else -- # Restart under the correct shell, and then maybe \$echo will work. -- exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"} -- fi -- fi\ --" -- $echo >> $output "\ -- -- # Find the directory that this script lives in. -- thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\` -- test \"x\$thisdir\" = \"x\$file\" && thisdir=. -- -- # Follow symbolic links until we get to the real thisdir. -- file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\` -- while test -n \"\$file\"; do -- destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\` -- -- # If there was a directory component, then change thisdir. -- if test \"x\$destdir\" != \"x\$file\"; then -- case \"\$destdir\" in -- [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; -- *) thisdir=\"\$thisdir/\$destdir\" ;; -- esac -- fi -- -- file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\` -- file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\` -- done -- -- # Try to get the absolute directory name. -- absdir=\`cd \"\$thisdir\" && pwd\` -- test -n \"\$absdir\" && thisdir=\"\$absdir\" --" -- -- if test "$fast_install" = yes; then -- $echo >> $output "\ -- program=lt-'$outputname'$exeext -- progdir=\"\$thisdir/$objdir\" -- -- if test ! -f \"\$progdir/\$program\" || \\ -- { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ -- test \"X\$file\" != \"X\$progdir/\$program\"; }; then -- -- file=\"\$\$-\$program\" -- -- if test ! -d \"\$progdir\"; then -- $mkdir \"\$progdir\" -- else -- $rm \"\$progdir/\$file\" -- fi" -- -- $echo >> $output "\ -- -- # relink executable if necessary -- if test -n \"\$relink_command\"; then -- if relink_command_output=\`eval \$relink_command 2>&1\`; then : -- else -- $echo \"\$relink_command_output\" >&2 -- $rm \"\$progdir/\$file\" -- exit $EXIT_FAILURE -- fi -- fi -- -- $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || -- { $rm \"\$progdir/\$program\"; -- $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; } -- $rm \"\$progdir/\$file\" -- fi" -- else -- $echo >> $output "\ -- program='$outputname' -- progdir=\"\$thisdir/$objdir\" --" -- fi -- -- $echo >> $output "\ -- -- if test -f \"\$progdir/\$program\"; then" -- -- # Export our shlibpath_var if we have one. -- if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then -- $echo >> $output "\ -- # Add our own library path to $shlibpath_var -- $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" -- -- # Some systems cannot cope with colon-terminated $shlibpath_var -- # The second colon is a workaround for a bug in BeOS R4 sed -- $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\` -+ func_dirname_and_basename "$output" "" "." -+ output_name=$func_basename_result -+ output_path=$func_dirname_result -+ cwrappersource="$output_path/$objdir/lt-$output_name.c" -+ cwrapper="$output_path/$output_name.exe" -+ $RM $cwrappersource $cwrapper -+ trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 - -- export $shlibpath_var --" -- fi -+ func_emit_cwrapperexe_src > $cwrappersource - -- # fixup the dll searchpath if we need to. -- if test -n "$dllsearchpath"; then -- $echo >> $output "\ -- # Add the dll search path components to the executable PATH -- PATH=$dllsearchpath:\$PATH --" -- fi -+ # The wrapper executable is built using the $host compiler, -+ # because it contains $host paths and files. If cross- -+ # compiling, it, like the target executable, must be -+ # executed on the $host or under an emulation environment. -+ $opt_dry_run || { -+ $LTCC $LTCFLAGS -o $cwrapper $cwrappersource -+ $STRIP $cwrapper -+ } - -- $echo >> $output "\ -- if test \"\$libtool_execute_magic\" != \"$magic\"; then -- # Run the actual program with our arguments. --" -- case $host in -- # Backslashes separate directories on plain windows -- *-*-mingw | *-*-os2*) -- $echo >> $output "\ -- exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} --" -+ # Now, create the wrapper script for func_source use: -+ func_ltwrapper_scriptname $cwrapper -+ $RM $func_ltwrapper_scriptname_result -+ trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15 -+ $opt_dry_run || { -+ # note: this script will not be executed, so do not chmod. -+ if test "x$build" = "x$host" ; then -+ $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result -+ else -+ func_emit_wrapper no > $func_ltwrapper_scriptname_result -+ fi -+ } - ;; -+ * ) -+ $RM $output -+ trap "$RM $output; exit $EXIT_FAILURE" 1 2 15 - -- *) -- $echo >> $output "\ -- exec \"\$progdir/\$program\" \${1+\"\$@\"} --" -+ func_emit_wrapper no > $output -+ chmod +x $output - ;; - esac -- $echo >> $output "\ -- \$echo \"\$0: cannot exec \$program \$*\" -- exit $EXIT_FAILURE -- fi -- else -- # The program doesn't exist. -- \$echo \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 -- \$echo \"This script is just a wrapper for \$program.\" 1>&2 -- $echo \"See the $PACKAGE documentation for more information.\" 1>&2 -- exit $EXIT_FAILURE -- fi --fi\ --" -- chmod +x $output -- fi -+ } - exit $EXIT_SUCCESS - ;; - esac -@@ -5506,7 +7881,7 @@ fi\ - for oldlib in $oldlibs; do - - if test "$build_libtool_libs" = convenience; then -- oldobjs="$libobjs_save" -+ oldobjs="$libobjs_save $symfileobj" - addlibs="$convenience" - build_libtool_libs=no - else -@@ -5515,6 +7890,9 @@ fi\ - build_libtool_libs=no - else - oldobjs="$old_deplibs $non_pic_objects" -+ if test "$preload" = yes && test -f "$symfileobj"; then -+ oldobjs="$oldobjs $symfileobj" -+ fi - fi - addlibs="$old_convenience" - fi -@@ -5529,8 +7907,18 @@ fi\ - - # Do each command in the archive commands. - 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 -+ -+ # Add any objects from preloaded convenience libraries -+ if test -n "$dlprefiles"; then -+ gentop="$output_objdir/${outputname}x" -+ generated="$generated $gentop" -+ -+ func_extract_archives $gentop $dlprefiles -+ oldobjs="$oldobjs $func_extract_archives_result" -+ fi -+ - # POSIX demands no paths to be encoded in archives. We have - # to avoid creating archives with duplicate basenames if we - # might have to extract them afterwards, e.g., when creating a -@@ -5539,32 +7927,22 @@ fi\ - # not supported by libtool). - if (for obj in $oldobjs - do -- $echo "X$obj" | $Xsed -e 's%^.*/%%' -+ func_basename "$obj" -+ $ECHO "$func_basename_result" - done | sort | sort -uc >/dev/null 2>&1); then - : - else -- $echo "copying selected object files to avoid basename conflicts..." -- -- if test -z "$gentop"; then -- gentop="$output_objdir/${outputname}x" -- generated="$generated $gentop" -- -- $show "${rm}r $gentop" -- $run ${rm}r "$gentop" -- $show "$mkdir $gentop" -- $run $mkdir "$gentop" -- exit_status=$? -- if test "$exit_status" -ne 0 && test ! -d "$gentop"; then -- exit $exit_status -- fi -- fi -- -+ $ECHO "copying selected object files to avoid basename conflicts..." -+ gentop="$output_objdir/${outputname}x" -+ generated="$generated $gentop" -+ func_mkdir_p "$gentop" - save_oldobjs=$oldobjs - oldobjs= - counter=1 - for obj in $save_oldobjs - do -- objbase=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` -+ func_basename "$obj" -+ objbase="$func_basename_result" - case " $oldobjs " in - " ") oldobjs=$obj ;; - *[\ /]"$objbase "*) -@@ -5572,58 +7950,62 @@ fi\ - # Make sure we don't pick an alternate name that also - # overlaps. - newobj=lt$counter-$objbase -- counter=`expr $counter + 1` -+ func_arith $counter + 1 -+ counter=$func_arith_result - case " $oldobjs " in - *[\ /]"$newobj "*) ;; - *) if test ! -f "$gentop/$newobj"; then break; fi ;; - esac - done -- $show "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" -- $run ln "$obj" "$gentop/$newobj" || -- $run cp "$obj" "$gentop/$newobj" -+ func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" - oldobjs="$oldobjs $gentop/$newobj" - ;; - *) oldobjs="$oldobjs $obj" ;; - esac - done - fi -- - eval cmds=\"$old_archive_cmds\" - -- if len=`expr "X$cmds" : ".*"` && -- test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then -+ func_len " $cmds" -+ len=$func_len_result -+ if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then - cmds=$old_archive_cmds - else - # the command line is too long to link in one step, link in parts -- $echo "using piecewise archive linking..." -+ func_verbose "using piecewise archive linking..." - save_RANLIB=$RANLIB - RANLIB=: - objlist= - concat_cmds= - save_oldobjs=$oldobjs -- -+ oldobjs= - # Is there a better way of finding the last object in the list? - for obj in $save_oldobjs - do - last_oldobj=$obj - done -+ eval test_cmds=\"$old_archive_cmds\" -+ func_len " $test_cmds" -+ len0=$func_len_result -+ len=$len0 - for obj in $save_oldobjs - do -- oldobjs="$objlist $obj" -- objlist="$objlist $obj" -- eval test_cmds=\"$old_archive_cmds\" -- if len=`expr "X$test_cmds" : ".*" 2>/dev/null` && -- test "$len" -le "$max_cmd_len"; then -+ func_len " $obj" -+ func_arith $len + $func_len_result -+ len=$func_arith_result -+ func_append objlist " $obj" -+ if test "$len" -lt "$max_cmd_len"; then - : - else - # the above command should be used before it gets too long - oldobjs=$objlist - if test "$obj" = "$last_oldobj" ; then -- RANLIB=$save_RANLIB -+ RANLIB=$save_RANLIB - fi - test -z "$concat_cmds" || concat_cmds=$concat_cmds~ - eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" - objlist= -+ len=$len0 - fi - done - RANLIB=$save_RANLIB -@@ -5635,49 +8017,39 @@ fi\ - fi - fi - fi -- save_ifs="$IFS"; IFS='~' -- for cmd in $cmds; do -- eval cmd=\"$cmd\" -- IFS="$save_ifs" -- $show "$cmd" -- $run eval "$cmd" || exit $? -- done -- IFS="$save_ifs" -+ func_execute_cmds "$cmds" 'exit $?' - done - -- if test -n "$generated"; then -- $show "${rm}r$generated" -- $run ${rm}r$generated -- fi -+ test -n "$generated" && \ -+ func_show_eval "${RM}r$generated" - - # Now create the libtool archive. - case $output in - *.la) - old_library= - test "$build_old_libs" = yes && old_library="$libname.$libext" -- $show "creating $output" -+ func_verbose "creating $output" - - # Preserve any variables that may affect compiler behavior - for var in $variables_saved_for_relink; do - if eval test -z \"\${$var+set}\"; then -- relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command" -+ relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" - elif eval var_value=\$$var; test -z "$var_value"; then - relink_command="$var=; export $var; $relink_command" - else -- var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` -- relink_command="$var=\"$var_value\"; export $var; $relink_command" -+ func_quote_for_eval "$var_value" -+ relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" - fi - done - # Quote the link command for shipping. - relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" -- relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e "$sed_quote_subst" | $NL2SP` -+ relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"` - if test "$hardcode_automatic" = yes ; then - relink_command= - fi - -- - # Only create the output if not a dry run. -- if test -z "$run"; then -+ $opt_dry_run || { - for installed in no yes; do - if test "$installed" = yes; then - if test -z "$install_libdir"; then -@@ -5689,38 +8061,93 @@ fi\ - for deplib in $dependency_libs; do - case $deplib in - *.la) -- name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'` -+ func_basename "$deplib" -+ name="$func_basename_result" - eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` -- if test -z "$libdir"; then -- $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 -- exit $EXIT_FAILURE -+ test -z "$libdir" && \ -+ func_fatal_error "\`$deplib' is not a valid libtool archive" -+ if test "x$EGREP" = x ; then -+ EGREP=egrep -+ fi -+ # We do not want portage's install root ($D) present. Check only for -+ # this if the .la is being installed. -+ if test "$installed" = yes && test "$D"; then -+ eval mynewdependency_lib=`echo "$libdir/$name" |sed -e "s:$D:/:g" -e 's:/\+:/:g'` -+ else -+ mynewdependency_lib="$libdir/$name" -+ fi -+ # Do not add duplicates -+ if test "$mynewdependency_lib"; then -+ my_little_ninja_foo_1=`echo $newdependency_libs |$EGREP -e "$mynewdependency_lib"` -+ if test -z "$my_little_ninja_foo_1"; then -+ newdependency_libs="$newdependency_libs $mynewdependency_lib" -+ fi -+ fi -+ ;; -+ *) -+ if test "$installed" = yes; then -+ # Rather use S=WORKDIR if our version of portage supports it. -+ # This is because some ebuild (gcc) do not use $S as buildroot. -+ if test "$PWORKDIR"; then -+ S="$PWORKDIR" -+ fi -+ # We do not want portage's build root ($S) present. -+ my_little_ninja_foo_2=`echo $deplib |$EGREP -e "$S"` -+ # We do not want portage's install root ($D) present. -+ my_little_ninja_foo_3=`echo $deplib |$EGREP -e "$D"` -+ if test -n "$my_little_ninja_foo_2" && test "$S"; then -+ mynewdependency_lib="" -+ elif test -n "$my_little_ninja_foo_3" && test "$D"; then -+ eval mynewdependency_lib=`echo "$deplib" |sed -e "s:$D:/:g" -e 's:/\+:/:g'` -+ else -+ mynewdependency_lib="$deplib" -+ fi -+ else -+ mynewdependency_lib="$deplib" -+ fi -+ # Do not add duplicates -+ if test "$mynewdependency_lib"; then -+ my_little_ninja_foo_4=`echo $newdependency_libs |$EGREP -e "$mynewdependency_lib"` -+ if test -z "$my_little_ninja_foo_4"; then -+ newdependency_libs="$newdependency_libs $mynewdependency_lib" -+ fi - fi -- newdependency_libs="$newdependency_libs $libdir/$name" - ;; -- *) newdependency_libs="$newdependency_libs $deplib" ;; - esac - done - dependency_libs="$newdependency_libs" - newdlfiles= -+ - for lib in $dlfiles; do -- name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` -- eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` -- if test -z "$libdir"; then -- $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 -- exit $EXIT_FAILURE -- fi -- newdlfiles="$newdlfiles $libdir/$name" -+ case $lib in -+ *.la) -+ func_basename "$lib" -+ name="$func_basename_result" -+ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` -+ test -z "$libdir" && \ -+ func_fatal_error "\`$lib' is not a valid libtool archive" -+ newdlfiles="$newdlfiles $libdir/$name" -+ ;; -+ *) newdlfiles="$newdlfiles $lib" ;; -+ esac - done - dlfiles="$newdlfiles" - newdlprefiles= - for lib in $dlprefiles; do -- name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` -- eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` -- if test -z "$libdir"; then -- $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 -- exit $EXIT_FAILURE -- fi -- newdlprefiles="$newdlprefiles $libdir/$name" -+ case $lib in -+ *.la) -+ # Only pass preopened files to the pseudo-archive (for -+ # eventual linking with the app. that links it) if we -+ # didn't already link the preopened objects directly into -+ # the library: -+ func_basename "$lib" -+ name="$func_basename_result" -+ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` -+ test -z "$libdir" && \ -+ func_fatal_error "\`$lib' is not a valid libtool archive" -+ newdlprefiles="$newdlprefiles $libdir/$name" -+ ;; -+ esac - done - dlprefiles="$newdlprefiles" - else -@@ -5743,15 +8170,19 @@ fi\ - done - dlprefiles="$newdlprefiles" - fi -- $rm $output -+ $RM $output - # place dlname in correct position for cygwin - tdlname=$dlname - case $host,$output,$installed,$module,$dlname in -- *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;; -+ *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;; - esac -- $echo > $output "\ -+ # Do not add duplicates -+ if test "$installed" = yes && test "$D"; then -+ install_libdir=`echo "$install_libdir" |sed -e "s:$D:/:g" -e 's:/\+:/:g'` -+ fi -+ $ECHO > $output "\ - # $outputname - a libtool library file --# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP -+# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION - # - # Please DO NOT delete this file! - # It is necessary for linking the library. -@@ -5765,9 +8196,15 @@ library_names='$library_names' - # The name of the static archive. - old_library='$old_library' - -+# Linker flags that can not go in dependency_libs. -+inherited_linker_flags='$new_inherited_linker_flags' -+ - # Libraries that this one depends upon. - dependency_libs='$dependency_libs' - -+# Names of additional weak libraries provided by this library -+weak_library_names='$weak_libs' -+ - # Version information for $libname. - current=$current - age=$age -@@ -5786,748 +8223,29 @@ dlpreopen='$dlprefiles' - # Directory that this library needs to be installed in: - libdir='$install_libdir'" - if test "$installed" = no && test "$need_relink" = yes; then -- $echo >> $output "\ -+ $ECHO >> $output "\ - relink_command=\"$relink_command\"" - fi - done -- fi -+ } - - # Do a symbolic link so that the libtool archive can be found in - # LD_LIBRARY_PATH before the program is installed. -- $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)" -- $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $? -- ;; -- esac -- exit $EXIT_SUCCESS -- ;; -- -- # libtool install mode -- install) -- modename="$modename: install" -- -- # There may be an optional sh(1) argument at the beginning of -- # install_prog (especially on Windows NT). -- if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || -- # Allow the use of GNU shtool's install command. -- $echo "X$nonopt" | grep shtool > /dev/null; then -- # Aesthetically quote it. -- arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"` -- case $arg in -- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") -- arg="\"$arg\"" -- ;; -- esac -- install_prog="$arg " -- arg="$1" -- shift -- else -- install_prog= -- arg=$nonopt -- fi -- -- # The real first argument should be the name of the installation program. -- # Aesthetically quote it. -- arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` -- case $arg in -- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") -- arg="\"$arg\"" -- ;; -- esac -- install_prog="$install_prog$arg" -- -- # We need to accept at least all the BSD install flags. -- dest= -- files= -- opts= -- prev= -- install_type= -- isdir=no -- stripme= -- for arg -- do -- if test -n "$dest"; then -- files="$files $dest" -- dest=$arg -- continue -- fi -- -- case $arg in -- -d) isdir=yes ;; -- -f) -- case " $install_prog " in -- *[\\\ /]cp\ *) ;; -- *) prev=$arg ;; -- esac -- ;; -- -g | -m | -o) prev=$arg ;; -- -s) -- stripme=" -s" -- continue -- ;; -- -*) -- ;; -- *) -- # If the previous option needed an argument, then skip it. -- if test -n "$prev"; then -- prev= -- else -- dest=$arg -- continue -- fi -- ;; -- esac -- -- # Aesthetically quote the argument. -- arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` -- case $arg in -- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") -- arg="\"$arg\"" -- ;; -- esac -- install_prog="$install_prog $arg" -- done -- -- if test -z "$install_prog"; then -- $echo "$modename: you must specify an install program" 1>&2 -- $echo "$help" 1>&2 -- exit $EXIT_FAILURE -- fi -- -- if test -n "$prev"; then -- $echo "$modename: the \`$prev' option requires an argument" 1>&2 -- $echo "$help" 1>&2 -- exit $EXIT_FAILURE -- fi -- -- if test -z "$files"; then -- if test -z "$dest"; then -- $echo "$modename: no file or destination specified" 1>&2 -- else -- $echo "$modename: you must specify a destination" 1>&2 -- fi -- $echo "$help" 1>&2 -- exit $EXIT_FAILURE -- fi -- -- # Strip any trailing slash from the destination. -- dest=`$echo "X$dest" | $Xsed -e 's%/$%%'` -- -- # Check to see that the destination is a directory. -- test -d "$dest" && isdir=yes -- if test "$isdir" = yes; then -- destdir="$dest" -- destname= -- else -- destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'` -- test "X$destdir" = "X$dest" && destdir=. -- destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'` -- -- # Not a directory, so check to see that there is only one file specified. -- set dummy $files -- if test "$#" -gt 2; then -- $echo "$modename: \`$dest' is not a directory" 1>&2 -- $echo "$help" 1>&2 -- exit $EXIT_FAILURE -- fi -- fi -- case $destdir in -- [\\/]* | [A-Za-z]:[\\/]*) ;; -- *) -- for file in $files; do -- case $file in -- *.lo) ;; -- *) -- $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2 -- $echo "$help" 1>&2 -- exit $EXIT_FAILURE -- ;; -- esac -- done -+ func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?' - ;; - esac -- -- # This variable tells wrapper scripts just to set variables rather -- # than running their programs. -- libtool_install_magic="$magic" -- -- staticlibs= -- future_libdirs= -- current_libdirs= -- for file in $files; do -- -- # Do each installation. -- case $file in -- *.$libext) -- # Do the static libraries later. -- staticlibs="$staticlibs $file" -- ;; -- -- *.la) -- # Check to see that this really is a libtool archive. -- if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : -- else -- $echo "$modename: \`$file' is not a valid libtool archive" 1>&2 -- $echo "$help" 1>&2 -- exit $EXIT_FAILURE -- fi -- -- library_names= -- old_library= -- relink_command= -- # If there is no directory component, then add one. -- case $file in -- */* | *\\*) . $file ;; -- *) . ./$file ;; -- esac -- -- # Add the libdir to current_libdirs if it is the destination. -- if test "X$destdir" = "X$libdir"; then -- case "$current_libdirs " in -- *" $libdir "*) ;; -- *) current_libdirs="$current_libdirs $libdir" ;; -- esac -- else -- # Note the libdir as a future libdir. -- case "$future_libdirs " in -- *" $libdir "*) ;; -- *) future_libdirs="$future_libdirs $libdir" ;; -- esac -- fi -- -- dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/ -- test "X$dir" = "X$file/" && dir= -- dir="$dir$objdir" -- -- if test -n "$relink_command"; then -- # Determine the prefix the user has applied to our future dir. -- inst_prefix_dir=`$echo "$destdir" | $SED "s%$libdir\$%%"` -- -- # Don't allow the user to place us outside of our expected -- # location b/c this prevents finding dependent libraries that -- # are installed to the same prefix. -- # At present, this check doesn't affect windows .dll's that -- # are installed into $libdir/../bin (currently, that works fine) -- # but it's something to keep an eye on. -- if test "$inst_prefix_dir" = "$destdir"; then -- $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2 -- exit $EXIT_FAILURE -- fi -- -- if test -n "$inst_prefix_dir"; then -- # Stick the inst_prefix_dir data into the link command. -- relink_command=`$echo "$relink_command" | $SP2NL | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%" | $NL2SP` -- else -- relink_command=`$echo "$relink_command" | $SP2NL | $SED "s%@inst_prefix_dir@%%" | $NL2SP` -- fi -- -- $echo "$modename: warning: relinking \`$file'" 1>&2 -- $show "$relink_command" -- if $run eval "$relink_command"; then : -- else -- $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 -- exit $EXIT_FAILURE -- fi -- fi -- -- # See the names of the shared library. -- set dummy $library_names -- if test -n "$2"; then -- realname="$2" -- shift -- shift -- -- srcname="$realname" -- test -n "$relink_command" && srcname="$realname"T -- -- # Install the shared library and build the symlinks. -- $show "$install_prog $dir/$srcname $destdir/$realname" -- $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $? -- if test -n "$stripme" && test -n "$striplib"; then -- $show "$striplib $destdir/$realname" -- $run eval "$striplib $destdir/$realname" || exit $? -- fi -- -- if test "$#" -gt 0; then -- # Delete the old symlinks, and create new ones. -- # Try `ln -sf' first, because the `ln' binary might depend on -- # the symlink we replace! Solaris /bin/ln does not understand -f, -- # so we also need to try rm && ln -s. -- for linkname -- do -- if test "$linkname" != "$realname"; then -- $show "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })" -- $run eval "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })" -- fi -- done -- fi -- -- # Do each command in the postinstall commands. -- lib="$destdir/$realname" -- cmds=$postinstall_cmds -- save_ifs="$IFS"; IFS='~' -- for cmd in $cmds; do -- IFS="$save_ifs" -- eval cmd=\"$cmd\" -- $show "$cmd" -- $run eval "$cmd" || { -- lt_exit=$? -- -- # Restore the uninstalled library and exit -- if test "$mode" = relink; then -- $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)' -- fi -- -- exit $lt_exit -- } -- done -- IFS="$save_ifs" -- fi -- -- # Install the pseudo-library for information purposes. -- name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` -- instname="$dir/$name"i -- $show "$install_prog $instname $destdir/$name" -- $run eval "$install_prog $instname $destdir/$name" || exit $? -- -- # Maybe install the static library, too. -- test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library" -- ;; -- -- *.lo) -- # Install (i.e. copy) a libtool object. -- -- # Figure out destination file name, if it wasn't already specified. -- if test -n "$destname"; then -- destfile="$destdir/$destname" -- else -- destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` -- destfile="$destdir/$destfile" -- fi -- -- # Deduce the name of the destination old-style object file. -- case $destfile in -- *.lo) -- staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"` -- ;; -- *.$objext) -- staticdest="$destfile" -- destfile= -- ;; -- *) -- $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2 -- $echo "$help" 1>&2 -- exit $EXIT_FAILURE -- ;; -- esac -- -- # Install the libtool object if requested. -- if test -n "$destfile"; then -- $show "$install_prog $file $destfile" -- $run eval "$install_prog $file $destfile" || exit $? -- fi -- -- # Install the old object if enabled. -- if test "$build_old_libs" = yes; then -- # Deduce the name of the old-style object file. -- staticobj=`$echo "X$file" | $Xsed -e "$lo2o"` -- -- $show "$install_prog $staticobj $staticdest" -- $run eval "$install_prog \$staticobj \$staticdest" || exit $? -- fi -- exit $EXIT_SUCCESS -- ;; -- -- *) -- # Figure out destination file name, if it wasn't already specified. -- if test -n "$destname"; then -- destfile="$destdir/$destname" -- else -- destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` -- destfile="$destdir/$destfile" -- fi -- -- # If the file is missing, and there is a .exe on the end, strip it -- # because it is most likely a libtool script we actually want to -- # install -- stripped_ext="" -- case $file in -- *.exe) -- if test ! -f "$file"; then -- file=`$echo $file|${SED} 's,.exe$,,'` -- stripped_ext=".exe" -- fi -- ;; -- esac -- -- # Do a test to see if this is really a libtool program. -- case $host in -- *cygwin*|*mingw*) -- wrapper=`$echo $file | ${SED} -e 's,.exe$,,'` -- ;; -- *) -- wrapper=$file -- ;; -- esac -- if (${SED} -e '4q' $wrapper | grep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then -- notinst_deplibs= -- relink_command= -- -- # Note that it is not necessary on cygwin/mingw to append a dot to -- # foo even if both foo and FILE.exe exist: automatic-append-.exe -- # behavior happens only for exec(3), not for open(2)! Also, sourcing -- # `FILE.' does not work on cygwin managed mounts. -- # -- # If there is no directory component, then add one. -- case $wrapper in -- */* | *\\*) . ${wrapper} ;; -- *) . ./${wrapper} ;; -- esac -- -- # Check the variables that should have been set. -- if test -z "$notinst_deplibs"; then -- $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2 -- exit $EXIT_FAILURE -- fi -- -- finalize=yes -- for lib in $notinst_deplibs; do -- # Check to see that each library is installed. -- libdir= -- if test -f "$lib"; then -- # If there is no directory component, then add one. -- case $lib in -- */* | *\\*) . $lib ;; -- *) . ./$lib ;; -- esac -- fi -- libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test -- if test -n "$libdir" && test ! -f "$libfile"; then -- $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2 -- finalize=no -- fi -- done -- -- relink_command= -- # Note that it is not necessary on cygwin/mingw to append a dot to -- # foo even if both foo and FILE.exe exist: automatic-append-.exe -- # behavior happens only for exec(3), not for open(2)! Also, sourcing -- # `FILE.' does not work on cygwin managed mounts. -- # -- # If there is no directory component, then add one. -- case $wrapper in -- */* | *\\*) . ${wrapper} ;; -- *) . ./${wrapper} ;; -- esac -- -- outputname= -- if test "$fast_install" = no && test -n "$relink_command"; then -- if test "$finalize" = yes && test -z "$run"; then -- tmpdir=`func_mktempdir` -- file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'` -- outputname="$tmpdir/$file" -- # Replace the output file specification. -- relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g' | $NL2SP` -- -- $show "$relink_command" -- if $run eval "$relink_command"; then : -- else -- $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 -- ${rm}r "$tmpdir" -- continue -- fi -- file="$outputname" -- else -- $echo "$modename: warning: cannot relink \`$file'" 1>&2 -- fi -- else -- # Install the binary that we compiled earlier. -- file=`$echo "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"` -- fi -- fi -- -- # remove .exe since cygwin /usr/bin/install will append another -- # one anyway -- case $install_prog,$host in -- */usr/bin/install*,*cygwin*) -- case $file:$destfile in -- *.exe:*.exe) -- # this is ok -- ;; -- *.exe:*) -- destfile=$destfile.exe -- ;; -- *:*.exe) -- destfile=`$echo $destfile | ${SED} -e 's,.exe$,,'` -- ;; -- esac -- ;; -- esac -- $show "$install_prog$stripme $file $destfile" -- $run eval "$install_prog\$stripme \$file \$destfile" || exit $? -- test -n "$outputname" && ${rm}r "$tmpdir" -- ;; -- esac -- done -- -- for file in $staticlibs; do -- name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` -- -- # Set up the ranlib parameters. -- oldlib="$destdir/$name" -- -- $show "$install_prog $file $oldlib" -- $run eval "$install_prog \$file \$oldlib" || exit $? -- -- if test -n "$stripme" && test -n "$old_striplib"; then -- $show "$old_striplib $oldlib" -- $run eval "$old_striplib $oldlib" || exit $? -- fi -- -- # Do each command in the postinstall commands. -- cmds=$old_postinstall_cmds -- save_ifs="$IFS"; IFS='~' -- for cmd in $cmds; do -- IFS="$save_ifs" -- eval cmd=\"$cmd\" -- $show "$cmd" -- $run eval "$cmd" || exit $? -- done -- IFS="$save_ifs" -- done -- -- if test -n "$future_libdirs"; then -- $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2 -- fi -- -- if test -n "$current_libdirs"; then -- # Maybe just do a dry run. -- test -n "$run" && current_libdirs=" -n$current_libdirs" -- exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' -- else -- exit $EXIT_SUCCESS -- fi -- ;; -- -- # libtool finish mode -- finish) -- modename="$modename: finish" -- libdirs="$nonopt" -- admincmds= -- -- if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then -- for dir -- do -- libdirs="$libdirs $dir" -- done -- -- for libdir in $libdirs; do -- if test -n "$finish_cmds"; then -- # Do each command in the finish commands. -- cmds=$finish_cmds -- save_ifs="$IFS"; IFS='~' -- for cmd in $cmds; do -- IFS="$save_ifs" -- eval cmd=\"$cmd\" -- $show "$cmd" -- $run eval "$cmd" || admincmds="$admincmds -- $cmd" -- done -- IFS="$save_ifs" -- fi -- if test -n "$finish_eval"; then -- # Do the single finish_eval. -- eval cmds=\"$finish_eval\" -- $run eval "$cmds" || admincmds="$admincmds -- $cmds" -- fi -- done -- fi -- -- # Exit here if they wanted silent mode. -- test "$show" = : && exit $EXIT_SUCCESS -- -- $echo "X----------------------------------------------------------------------" | $Xsed -- $echo "Libraries have been installed in:" -- for libdir in $libdirs; do -- $echo " $libdir" -- done -- $echo -- $echo "If you ever happen to want to link against installed libraries" -- $echo "in a given directory, LIBDIR, you must either use libtool, and" -- $echo "specify the full pathname of the library, or use the \`-LLIBDIR'" -- $echo "flag during linking and do at least one of the following:" -- if test -n "$shlibpath_var"; then -- $echo " - add LIBDIR to the \`$shlibpath_var' environment variable" -- $echo " during execution" -- fi -- if test -n "$runpath_var"; then -- $echo " - add LIBDIR to the \`$runpath_var' environment variable" -- $echo " during linking" -- fi -- if test -n "$hardcode_libdir_flag_spec"; then -- libdir=LIBDIR -- eval flag=\"$hardcode_libdir_flag_spec\" -- -- $echo " - use the \`$flag' linker flag" -- fi -- if test -n "$admincmds"; then -- $echo " - have your system administrator run these commands:$admincmds" -- fi -- if test -f /etc/ld.so.conf; then -- $echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" -- fi -- $echo -- $echo "See any operating system documentation about shared libraries for" -- $echo "more information, such as the ld(1) and ld.so(8) manual pages." -- $echo "X----------------------------------------------------------------------" | $Xsed - exit $EXIT_SUCCESS -- ;; -- -- # libtool execute mode -- execute) -- modename="$modename: execute" -- -- # The first argument is the command name. -- cmd="$nonopt" -- if test -z "$cmd"; then -- $echo "$modename: you must specify a COMMAND" 1>&2 -- $echo "$help" -- exit $EXIT_FAILURE -- fi -- -- # Handle -dlopen flags immediately. -- for file in $execute_dlfiles; do -- if test ! -f "$file"; then -- $echo "$modename: \`$file' is not a file" 1>&2 -- $echo "$help" 1>&2 -- exit $EXIT_FAILURE -- fi -- -- dir= -- case $file in -- *.la) -- # Check to see that this really is a libtool archive. -- if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : -- else -- $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 -- $echo "$help" 1>&2 -- exit $EXIT_FAILURE -- fi -- -- # Read the libtool library. -- dlname= -- library_names= -- -- # If there is no directory component, then add one. -- case $file in -- */* | *\\*) . $file ;; -- *) . ./$file ;; -- esac -- -- # Skip this library if it cannot be dlopened. -- if test -z "$dlname"; then -- # Warn if it was a shared library. -- test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'" -- continue -- fi -- -- dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` -- test "X$dir" = "X$file" && dir=. -- -- if test -f "$dir/$objdir/$dlname"; then -- dir="$dir/$objdir" -- else -- if test ! -f "$dir/$dlname"; then -- $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2 -- exit $EXIT_FAILURE -- fi -- fi -- ;; -- -- *.lo) -- # Just add the directory containing the .lo file. -- dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` -- test "X$dir" = "X$file" && dir=. -- ;; -- -- *) -- $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2 -- continue -- ;; -- esac -- -- # Get the absolute pathname. -- absdir=`cd "$dir" && pwd` -- test -n "$absdir" && dir="$absdir" -- -- # Now add the directory to shlibpath_var. -- if eval "test -z \"\$$shlibpath_var\""; then -- eval "$shlibpath_var=\"\$dir\"" -- else -- eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" -- fi -- done -- -- # This variable tells wrapper scripts just to set shlibpath_var -- # rather than running their programs. -- libtool_execute_magic="$magic" -- -- # Check if any of the arguments is a wrapper script. -- args= -- for file -- do -- case $file in -- -*) ;; -- *) -- # Do a test to see if this is really a libtool program. -- if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then -- # If there is no directory component, then add one. -- case $file in -- */* | *\\*) . $file ;; -- *) . ./$file ;; -- esac -- -- # Transform arg to wrapped name. -- file="$progdir/$program" -- fi -- ;; -- esac -- # Quote arguments (to preserve shell metacharacters). -- file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"` -- args="$args \"$file\"" -- done -+} - -- if test -z "$run"; then -- if test -n "$shlibpath_var"; then -- # Export the shlibpath_var. -- eval "export $shlibpath_var" -- fi -+{ test "$mode" = link || test "$mode" = relink; } && -+ func_mode_link ${1+"$@"} - -- # Restore saved environment variables -- for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES -- do -- eval "if test \"\${save_$lt_var+set}\" = set; then -- $lt_var=\$save_$lt_var; export $lt_var -- fi" -- done - -- # Now prepare to actually exec the command. -- exec_cmd="\$cmd$args" -- else -- # Display what would be done. -- if test -n "$shlibpath_var"; then -- eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\"" -- $echo "export $shlibpath_var" -- fi -- $echo "$cmd$args" -- exit $EXIT_SUCCESS -- fi -- ;; -- -- # libtool clean and uninstall mode -- clean | uninstall) -- modename="$modename: $mode" -- rm="$nonopt" -+# func_mode_uninstall arg... -+func_mode_uninstall () -+{ -+ $opt_debug -+ RM="$nonopt" - files= - rmforce= - exit_status=0 -@@ -6539,30 +8257,28 @@ relink_command=\"$relink_command\"" - for arg - do - case $arg in -- -f) rm="$rm $arg"; rmforce=yes ;; -- -*) rm="$rm $arg" ;; -+ -f) RM="$RM $arg"; rmforce=yes ;; -+ -*) RM="$RM $arg" ;; - *) files="$files $arg" ;; - esac - done - -- if test -z "$rm"; then -- $echo "$modename: you must specify an RM program" 1>&2 -- $echo "$help" 1>&2 -- exit $EXIT_FAILURE -- fi -+ test -z "$RM" && \ -+ func_fatal_help "you must specify an RM program" - - rmdirs= - - origobjdir="$objdir" - for file in $files; do -- dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` -- if test "X$dir" = "X$file"; then -- dir=. -+ func_dirname "$file" "" "." -+ dir="$func_dirname_result" -+ if test "X$dir" = X.; then - objdir="$origobjdir" - else - objdir="$dir/$origobjdir" - fi -- name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` -+ func_basename "$file" -+ name="$func_basename_result" - test "$mode" = uninstall && objdir="$dir" - - # Remember objdir for removal later, being careful to avoid duplicates -@@ -6574,9 +8290,9 @@ relink_command=\"$relink_command\"" - fi - - # Don't error if the file doesn't exist and rm -f was used. -- if (test -L "$file") >/dev/null 2>&1 \ -- || (test -h "$file") >/dev/null 2>&1 \ -- || test -f "$file"; then -+ if { test -L "$file"; } >/dev/null 2>&1 || -+ { test -h "$file"; } >/dev/null 2>&1 || -+ test -f "$file"; then - : - elif test -d "$file"; then - exit_status=1 -@@ -6590,8 +8306,8 @@ relink_command=\"$relink_command\"" - case $name in - *.la) - # Possibly a libtool archive, so verify it. -- if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then -- . $dir/$name -+ if func_lalib_p "$file"; then -+ func_source $dir/$name - - # Delete the libtool libraries and symlinks. - for n in $library_names; do -@@ -6606,39 +8322,17 @@ relink_command=\"$relink_command\"" - *" $dlname "*) ;; - *) rmfiles="$rmfiles $objdir/$dlname" ;; - esac -- test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" -+ test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" - ;; - uninstall) - if test -n "$library_names"; then - # Do each command in the postuninstall commands. -- cmds=$postuninstall_cmds -- save_ifs="$IFS"; IFS='~' -- for cmd in $cmds; do -- IFS="$save_ifs" -- eval cmd=\"$cmd\" -- $show "$cmd" -- $run eval "$cmd" -- if test "$?" -ne 0 && test "$rmforce" != yes; then -- exit_status=1 -- fi -- done -- IFS="$save_ifs" -+ func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' - fi - - if test -n "$old_library"; then - # Do each command in the old_postuninstall commands. -- cmds=$old_postuninstall_cmds -- save_ifs="$IFS"; IFS='~' -- for cmd in $cmds; do -- IFS="$save_ifs" -- eval cmd=\"$cmd\" -- $show "$cmd" -- $run eval "$cmd" -- if test "$?" -ne 0 && test "$rmforce" != yes; then -- exit_status=1 -- fi -- done -- IFS="$save_ifs" -+ func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' - fi - # FIXME: should reinstall the best remaining shared library. - ;; -@@ -6648,20 +8342,20 @@ relink_command=\"$relink_command\"" - - *.lo) - # Possibly a libtool object, so verify it. -- if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then -+ if func_lalib_p "$file"; then - - # Read the .lo file -- . $dir/$name -+ func_source $dir/$name - - # Add PIC object to the list of files to remove. -- if test -n "$pic_object" \ -- && test "$pic_object" != none; then -+ if test -n "$pic_object" && -+ test "$pic_object" != none; then - rmfiles="$rmfiles $dir/$pic_object" - fi - - # Add non-PIC object to the list of files to remove. -- if test -n "$non_pic_object" \ -- && test "$non_pic_object" != none; then -+ if test -n "$non_pic_object" && -+ test "$non_pic_object" != none; then - rmfiles="$rmfiles $dir/$non_pic_object" - fi - fi -@@ -6672,17 +8366,26 @@ relink_command=\"$relink_command\"" - noexename=$name - case $file in - *.exe) -- file=`$echo $file|${SED} 's,.exe$,,'` -- noexename=`$echo $name|${SED} 's,.exe$,,'` -+ func_stripname '' '.exe' "$file" -+ file=$func_stripname_result -+ func_stripname '' '.exe' "$name" -+ noexename=$func_stripname_result - # $file with .exe has already been added to rmfiles, - # add $file without .exe - rmfiles="$rmfiles $file" - ;; - esac - # Do a test to see if this is a libtool program. -- if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then -- relink_command= -- . $dir/$noexename -+ if func_ltwrapper_p "$file"; then -+ if func_ltwrapper_executable_p "$file"; then -+ func_ltwrapper_scriptname "$file" -+ relink_command= -+ func_source $func_ltwrapper_scriptname_result -+ rmfiles="$rmfiles $func_ltwrapper_scriptname_result" -+ else -+ relink_command= -+ func_source $dir/$noexename -+ fi - - # note $name still contains .exe if it was in $file originally - # as does the version of $file that was added into $rmfiles -@@ -6697,239 +8400,38 @@ relink_command=\"$relink_command\"" - fi - ;; - esac -- $show "$rm $rmfiles" -- $run $rm $rmfiles || exit_status=1 -+ func_show_eval "$RM $rmfiles" 'exit_status=1' - done - objdir="$origobjdir" - - # Try to remove the ${objdir}s in the directories where we deleted files - for dir in $rmdirs; do - if test -d "$dir"; then -- $show "rmdir $dir" -- $run rmdir $dir >/dev/null 2>&1 -+ func_show_eval "rmdir $dir >/dev/null 2>&1" - fi - done - - exit $exit_status -- ;; -+} - -- "") -- $echo "$modename: you must specify a MODE" 1>&2 -- $echo "$generic_help" 1>&2 -- exit $EXIT_FAILURE -- ;; -- esac -+{ test "$mode" = uninstall || test "$mode" = clean; } && -+ func_mode_uninstall ${1+"$@"} - -- if test -z "$exec_cmd"; then -- $echo "$modename: invalid operation mode \`$mode'" 1>&2 -- $echo "$generic_help" 1>&2 -- exit $EXIT_FAILURE -- fi --fi # test -z "$show_help" -+test -z "$mode" && { -+ help="$generic_help" -+ func_fatal_help "you must specify a MODE" -+} -+ -+test -z "$exec_cmd" && \ -+ func_fatal_help "invalid operation mode \`$mode'" - - if test -n "$exec_cmd"; then -- eval exec $exec_cmd -+ eval exec "$exec_cmd" - exit $EXIT_FAILURE - fi - --# We need to display help for each of the modes. --case $mode in --"") $echo \ --"Usage: $modename [OPTION]... [MODE-ARG]... -- --Provide generalized library-building support services. -- -- --config show all configuration variables -- --debug enable verbose shell tracing ---n, --dry-run display commands without modifying any files -- --features display basic configuration information and exit -- --finish same as \`--mode=finish' -- --help display this help message and exit -- --mode=MODE use operation mode MODE [default=inferred from MODE-ARGS] -- --quiet same as \`--silent' -- --silent don't print informational messages -- --tag=TAG use configuration variables from tag TAG -- --version print version information -- --MODE must be one of the following: -- -- clean remove files from the build directory -- compile compile a source file into a libtool object -- execute automatically set library path, then run a program -- finish complete the installation of libtool libraries -- install install libraries or executables -- link create a library or an executable -- uninstall remove libraries from an installed directory -- --MODE-ARGS vary depending on the MODE. Try \`$modename --help --mode=MODE' for --a more detailed description of MODE. -- --Report bugs to <bug-libtool@gnu.org>." -- exit $EXIT_SUCCESS -- ;; -- --clean) -- $echo \ --"Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE... -- --Remove files from the build directory. -- --RM is the name of the program to use to delete files associated with each FILE --(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed --to RM. -- --If FILE is a libtool library, object or program, all the files associated --with it are deleted. Otherwise, only FILE itself is deleted using RM." -- ;; -- --compile) -- $echo \ --"Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE -- --Compile a source file into a libtool library object. -- --This mode accepts the following additional options: -- -- -o OUTPUT-FILE set the output file name to OUTPUT-FILE -- -prefer-pic try to building PIC objects only -- -prefer-non-pic try to building non-PIC objects only -- -static always build a \`.o' file suitable for static linking -- --COMPILE-COMMAND is a command to be used in creating a \`standard' object file --from the given SOURCEFILE. -- --The output file name is determined by removing the directory component from --SOURCEFILE, then substituting the C source code suffix \`.c' with the --library object suffix, \`.lo'." -- ;; -- --execute) -- $echo \ --"Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]... -- --Automatically set library path, then run a program. -- --This mode accepts the following additional options: -- -- -dlopen FILE add the directory containing FILE to the library path -- --This mode sets the library path environment variable according to \`-dlopen' --flags. -- --If any of the ARGS are libtool executable wrappers, then they are translated --into their corresponding uninstalled binary, and any of their required library --directories are added to the library path. -- --Then, COMMAND is executed, with ARGS as arguments." -- ;; -- --finish) -- $echo \ --"Usage: $modename [OPTION]... --mode=finish [LIBDIR]... -- --Complete the installation of libtool libraries. -- --Each LIBDIR is a directory that contains libtool libraries. -- --The commands that this mode executes may require superuser privileges. Use --the \`--dry-run' option if you just want to see what would be executed." -- ;; -- --install) -- $echo \ --"Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND... -- --Install executables or libraries. -- --INSTALL-COMMAND is the installation command. The first component should be --either the \`install' or \`cp' program. -- --The rest of the components are interpreted as arguments to that command (only --BSD-compatible install options are recognized)." -- ;; -- --link) -- $echo \ --"Usage: $modename [OPTION]... --mode=link LINK-COMMAND... -- --Link object files or libraries together to form another library, or to --create an executable program. -- --LINK-COMMAND is a command using the C compiler that you would use to create --a program from several object files. -- --The following components of LINK-COMMAND are treated specially: -- -- -all-static do not do any dynamic linking at all -- -avoid-version do not add a version suffix if possible -- -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime -- -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols -- -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) -- -export-symbols SYMFILE -- try to export only the symbols listed in SYMFILE -- -export-symbols-regex REGEX -- try to export only the symbols matching REGEX -- -LLIBDIR search LIBDIR for required installed libraries -- -lNAME OUTPUT-FILE requires the installed library libNAME -- -module build a library that can dlopened -- -no-fast-install disable the fast-install mode -- -no-install link a not-installable executable -- -no-undefined declare that a library does not refer to external symbols -- -o OUTPUT-FILE create OUTPUT-FILE from the specified objects -- -objectlist FILE Use a list of object files found in FILE to specify objects -- -precious-files-regex REGEX -- don't remove output files matching REGEX -- -release RELEASE specify package release information -- -rpath LIBDIR the created library will eventually be installed in LIBDIR -- -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries -- -static do not do any dynamic linking of uninstalled libtool libraries -- -static-libtool-libs -- do not do any dynamic linking of libtool libraries -- -version-info CURRENT[:REVISION[:AGE]] -- specify library version info [each variable defaults to 0] -- --All other options (arguments beginning with \`-') are ignored. -- --Every other argument is treated as a filename. Files ending in \`.la' are --treated as uninstalled libtool libraries, other files are standard or library --object files. -- --If the OUTPUT-FILE ends in \`.la', then a libtool library is created, --only library objects (\`.lo' files) may be specified, and \`-rpath' is --required, except when creating a convenience library. -- --If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created --using \`ar' and \`ranlib', or on Windows using \`lib'. -- --If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file --is created, otherwise an executable program is created." -- ;; -- --uninstall) -- $echo \ --"Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... -- --Remove libraries from an installation directory. -- --RM is the name of the program to use to delete files associated with each FILE --(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed --to RM. -- --If FILE is a libtool library, all the files associated with it are deleted. --Otherwise, only FILE itself is deleted using RM." -- ;; -- --*) -- $echo "$modename: invalid operation mode \`$mode'" 1>&2 -- $echo "$help" 1>&2 -- exit $EXIT_FAILURE -- ;; --esac -- --$echo --$echo "Try \`$modename --help' for more information about other modes." -+exit $exit_status - --exit $? - - # The TAGs below are defined such that we never get into a situation - # in which we disable both kinds of libraries. Given conflicting -@@ -6943,14 +8445,17 @@ exit $? - # configuration. But we'll never go from static-only to shared-only. - - # ### BEGIN LIBTOOL TAG CONFIG: disable-shared --disable_libs=shared -+build_libtool_libs=no -+build_old_libs=yes - # ### END LIBTOOL TAG CONFIG: disable-shared - - # ### BEGIN LIBTOOL TAG CONFIG: disable-static --disable_libs=static -+build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` - # ### END LIBTOOL TAG CONFIG: disable-static - - # Local Variables: - # mode:shell-script - # sh-indentation:2 - # End: -+# vi:sw=2 -+ |