summaryrefslogtreecommitdiffstats
path: root/build-aux
diff options
context:
space:
mode:
authorHolger Weiss <holger@zedat.fu-berlin.de>2013-09-04 22:03:00 (GMT)
committerHolger Weiss <holger@zedat.fu-berlin.de>2013-09-04 22:03:00 (GMT)
commit8230bbd4a4a4b33c727ab187eb064373fc3b816e (patch)
tree8547073161dab557b3ac6b81d77feb94414b7171 /build-aux
parent317d2896dc29d66357fe067226dce440aad010f9 (diff)
downloadmonitoring-plugins-8230bbd4a4a4b33c727ab187eb064373fc3b816e.tar.gz
Update bundled libtool files
Import the current libtool version 2.4.2.
Diffstat (limited to 'build-aux')
-rw-r--r--[-rwxr-xr-x]build-aux/ltmain.sh4016
1 files changed, 2632 insertions, 1384 deletions
diff --git a/build-aux/ltmain.sh b/build-aux/ltmain.sh
index 7ed280b..33f642a 100755..100644
--- a/build-aux/ltmain.sh
+++ b/build-aux/ltmain.sh
@@ -1,9 +1,9 @@
1# Generated from ltmain.m4sh.
2 1
3# ltmain.sh (GNU libtool) 2.2.6b 2# libtool (GNU libtool) 2.4.2
4# Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996 3# Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
5 4
6# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, 2007 2008 Free Software Foundation, Inc. 5# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006,
6# 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
7# This is free software; see the source for copying conditions. There is NO 7# This is free software; see the source for copying conditions. There is NO
8# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 8# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
9 9
@@ -32,50 +32,57 @@
32# 32#
33# Provide generalized library-building support services. 33# Provide generalized library-building support services.
34# 34#
35# --config show all configuration variables 35# --config show all configuration variables
36# --debug enable verbose shell tracing 36# --debug enable verbose shell tracing
37# -n, --dry-run display commands without modifying any files 37# -n, --dry-run display commands without modifying any files
38# --features display basic configuration information and exit 38# --features display basic configuration information and exit
39# --mode=MODE use operation mode MODE 39# --mode=MODE use operation mode MODE
40# --preserve-dup-deps don't remove duplicate dependency libraries 40# --preserve-dup-deps don't remove duplicate dependency libraries
41# --quiet, --silent don't print informational messages 41# --quiet, --silent don't print informational messages
42# --tag=TAG use configuration variables from tag TAG 42# --no-quiet, --no-silent
43# -v, --verbose print informational messages (default) 43# print informational messages (default)
44# --version print version information 44# --no-warn don't display warning messages
45# -h, --help print short or long help message 45# --tag=TAG use configuration variables from tag TAG
46# -v, --verbose print more informational messages than default
47# --no-verbose don't print the extra informational messages
48# --version print version information
49# -h, --help, --help-all print short, long, or detailed help message
46# 50#
47# MODE must be one of the following: 51# MODE must be one of the following:
48# 52#
49# clean remove files from the build directory 53# clean remove files from the build directory
50# compile compile a source file into a libtool object 54# compile compile a source file into a libtool object
51# execute automatically set library path, then run a program 55# execute automatically set library path, then run a program
52# finish complete the installation of libtool libraries 56# finish complete the installation of libtool libraries
53# install install libraries or executables 57# install install libraries or executables
54# link create a library or an executable 58# link create a library or an executable
55# uninstall remove libraries from an installed directory 59# uninstall remove libraries from an installed directory
56# 60#
57# MODE-ARGS vary depending on the MODE. 61# MODE-ARGS vary depending on the MODE. When passed as first option,
62# `--mode=MODE' may be abbreviated as `MODE' or a unique abbreviation of that.
58# Try `$progname --help --mode=MODE' for a more detailed description of MODE. 63# Try `$progname --help --mode=MODE' for a more detailed description of MODE.
59# 64#
60# When reporting a bug, please describe a test case to reproduce it and 65# When reporting a bug, please describe a test case to reproduce it and
61# include the following information: 66# include the following information:
62# 67#
63# host-triplet: $host 68# host-triplet: $host
64# shell: $SHELL 69# shell: $SHELL
65# compiler: $LTCC 70# compiler: $LTCC
66# compiler flags: $LTCFLAGS 71# compiler flags: $LTCFLAGS
67# linker: $LD (gnu? $with_gnu_ld) 72# linker: $LD (gnu? $with_gnu_ld)
68# $progname: (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1 73# $progname: (GNU libtool) 2.4.2 Debian-2.4.2-1.1
69# automake: $automake_version 74# automake: $automake_version
70# autoconf: $autoconf_version 75# autoconf: $autoconf_version
71# 76#
72# Report bugs to <bug-libtool@gnu.org>. 77# Report bugs to <bug-libtool@gnu.org>.
78# GNU libtool home page: <http://www.gnu.org/software/libtool/>.
79# General help using GNU software: <http://www.gnu.org/gethelp/>.
73 80
74PROGRAM=ltmain.sh 81PROGRAM=libtool
75PACKAGE=libtool 82PACKAGE=libtool
76VERSION="2.2.6b Debian-2.2.6b-2ubuntu1" 83VERSION="2.4.2 Debian-2.4.2-1.1"
77TIMESTAMP="" 84TIMESTAMP=""
78package_revision=1.3017 85package_revision=1.3337
79 86
80# Be Bourne compatible 87# Be Bourne compatible
81if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then 88if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
@@ -91,10 +98,15 @@ fi
91BIN_SH=xpg4; export BIN_SH # for Tru64 98BIN_SH=xpg4; export BIN_SH # for Tru64
92DUALCASE=1; export DUALCASE # for MKS sh 99DUALCASE=1; export DUALCASE # for MKS sh
93 100
101# A function that is used when there is no print builtin or printf.
102func_fallback_echo ()
103{
104 eval 'cat <<_LTECHO_EOF
105$1
106_LTECHO_EOF'
107}
108
94# NLS nuisances: We save the old values to restore during execute mode. 109# NLS nuisances: We save the old values to restore during execute mode.
95# Only set LANG and LC_ALL to C if already set.
96# These must not be set unconditionally because not all systems understand
97# e.g. LANG=C (notably SCO).
98lt_user_locale= 110lt_user_locale=
99lt_safe_locale= 111lt_safe_locale=
100for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES 112for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
@@ -107,24 +119,28 @@ do
107 lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\" 119 lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\"
108 fi" 120 fi"
109done 121done
122LC_ALL=C
123LANGUAGE=C
124export LANGUAGE LC_ALL
110 125
111$lt_unset CDPATH 126$lt_unset CDPATH
112 127
113 128
129# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
130# is ksh but when the shell is invoked as "sh" and the current value of
131# the _XPG environment variable is not equal to 1 (one), the special
132# positional parameter $0, within a function call, is the name of the
133# function.
134progpath="$0"
114 135
115 136
116 137
117: ${CP="cp -f"} 138: ${CP="cp -f"}
118: ${ECHO="echo"} 139test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'}
119: ${EGREP="/bin/grep -E"}
120: ${FGREP="/bin/grep -F"}
121: ${GREP="/bin/grep"}
122: ${LN_S="ln -s"}
123: ${MAKE="make"} 140: ${MAKE="make"}
124: ${MKDIR="mkdir"} 141: ${MKDIR="mkdir"}
125: ${MV="mv -f"} 142: ${MV="mv -f"}
126: ${RM="rm -f"} 143: ${RM="rm -f"}
127: ${SED="/bin/sed"}
128: ${SHELL="${CONFIG_SHELL-/bin/sh}"} 144: ${SHELL="${CONFIG_SHELL-/bin/sh}"}
129: ${Xsed="$SED -e 1s/^X//"} 145: ${Xsed="$SED -e 1s/^X//"}
130 146
@@ -144,6 +160,27 @@ IFS=" $lt_nl"
144dirname="s,/[^/]*$,," 160dirname="s,/[^/]*$,,"
145basename="s,^.*/,," 161basename="s,^.*/,,"
146 162
163# func_dirname file append nondir_replacement
164# Compute the dirname of FILE. If nonempty, add APPEND to the result,
165# otherwise set result to NONDIR_REPLACEMENT.
166func_dirname ()
167{
168 func_dirname_result=`$ECHO "${1}" | $SED "$dirname"`
169 if test "X$func_dirname_result" = "X${1}"; then
170 func_dirname_result="${3}"
171 else
172 func_dirname_result="$func_dirname_result${2}"
173 fi
174} # func_dirname may be replaced by extended shell implementation
175
176
177# func_basename file
178func_basename ()
179{
180 func_basename_result=`$ECHO "${1}" | $SED "$basename"`
181} # func_basename may be replaced by extended shell implementation
182
183
147# func_dirname_and_basename file append nondir_replacement 184# func_dirname_and_basename file append nondir_replacement
148# perform func_basename and func_dirname in a single function 185# perform func_basename and func_dirname in a single function
149# call: 186# call:
@@ -158,33 +195,183 @@ basename="s,^.*/,,"
158# those functions but instead duplicate the functionality here. 195# those functions but instead duplicate the functionality here.
159func_dirname_and_basename () 196func_dirname_and_basename ()
160{ 197{
161 # Extract subdirectory from the argument. 198 # Extract subdirectory from the argument.
162 func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"` 199 func_dirname_result=`$ECHO "${1}" | $SED -e "$dirname"`
163 if test "X$func_dirname_result" = "X${1}"; then 200 if test "X$func_dirname_result" = "X${1}"; then
164 func_dirname_result="${3}" 201 func_dirname_result="${3}"
165 else 202 else
166 func_dirname_result="$func_dirname_result${2}" 203 func_dirname_result="$func_dirname_result${2}"
167 fi 204 fi
168 func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"` 205 func_basename_result=`$ECHO "${1}" | $SED -e "$basename"`
206} # func_dirname_and_basename may be replaced by extended shell implementation
207
208
209# func_stripname prefix suffix name
210# strip PREFIX and SUFFIX off of NAME.
211# PREFIX and SUFFIX must not contain globbing or regex special
212# characters, hashes, percent signs, but SUFFIX may contain a leading
213# dot (in which case that matches only a dot).
214# func_strip_suffix prefix name
215func_stripname ()
216{
217 case ${2} in
218 .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;;
219 *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;;
220 esac
221} # func_stripname may be replaced by extended shell implementation
222
223
224# These SED scripts presuppose an absolute path with a trailing slash.
225pathcar='s,^/\([^/]*\).*$,\1,'
226pathcdr='s,^/[^/]*,,'
227removedotparts=':dotsl
228 s@/\./@/@g
229 t dotsl
230 s,/\.$,/,'
231collapseslashes='s@/\{1,\}@/@g'
232finalslash='s,/*$,/,'
233
234# func_normal_abspath PATH
235# Remove doubled-up and trailing slashes, "." path components,
236# and cancel out any ".." path components in PATH after making
237# it an absolute path.
238# value returned in "$func_normal_abspath_result"
239func_normal_abspath ()
240{
241 # Start from root dir and reassemble the path.
242 func_normal_abspath_result=
243 func_normal_abspath_tpath=$1
244 func_normal_abspath_altnamespace=
245 case $func_normal_abspath_tpath in
246 "")
247 # Empty path, that just means $cwd.
248 func_stripname '' '/' "`pwd`"
249 func_normal_abspath_result=$func_stripname_result
250 return
251 ;;
252 # The next three entries are used to spot a run of precisely
253 # two leading slashes without using negated character classes;
254 # we take advantage of case's first-match behaviour.
255 ///*)
256 # Unusual form of absolute path, do nothing.
257 ;;
258 //*)
259 # Not necessarily an ordinary path; POSIX reserves leading '//'
260 # and for example Cygwin uses it to access remote file shares
261 # over CIFS/SMB, so we conserve a leading double slash if found.
262 func_normal_abspath_altnamespace=/
263 ;;
264 /*)
265 # Absolute path, do nothing.
266 ;;
267 *)
268 # Relative path, prepend $cwd.
269 func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath
270 ;;
271 esac
272 # Cancel out all the simple stuff to save iterations. We also want
273 # the path to end with a slash for ease of parsing, so make sure
274 # there is one (and only one) here.
275 func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \
276 -e "$removedotparts" -e "$collapseslashes" -e "$finalslash"`
277 while :; do
278 # Processed it all yet?
279 if test "$func_normal_abspath_tpath" = / ; then
280 # If we ascended to the root using ".." the result may be empty now.
281 if test -z "$func_normal_abspath_result" ; then
282 func_normal_abspath_result=/
283 fi
284 break
285 fi
286 func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \
287 -e "$pathcar"`
288 func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \
289 -e "$pathcdr"`
290 # Figure out what to do with it
291 case $func_normal_abspath_tcomponent in
292 "")
293 # Trailing empty path component, ignore it.
294 ;;
295 ..)
296 # Parent dir; strip last assembled component from result.
297 func_dirname "$func_normal_abspath_result"
298 func_normal_abspath_result=$func_dirname_result
299 ;;
300 *)
301 # Actual path component, append it.
302 func_normal_abspath_result=$func_normal_abspath_result/$func_normal_abspath_tcomponent
303 ;;
304 esac
305 done
306 # Restore leading double-slash if one was found on entry.
307 func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result
169} 308}
170 309
171# Generated shell functions inserted here. 310# func_relative_path SRCDIR DSTDIR
311# generates a relative path from SRCDIR to DSTDIR, with a trailing
312# slash if non-empty, suitable for immediately appending a filename
313# without needing to append a separator.
314# value returned in "$func_relative_path_result"
315func_relative_path ()
316{
317 func_relative_path_result=
318 func_normal_abspath "$1"
319 func_relative_path_tlibdir=$func_normal_abspath_result
320 func_normal_abspath "$2"
321 func_relative_path_tbindir=$func_normal_abspath_result
322
323 # Ascend the tree starting from libdir
324 while :; do
325 # check if we have found a prefix of bindir
326 case $func_relative_path_tbindir in
327 $func_relative_path_tlibdir)
328 # found an exact match
329 func_relative_path_tcancelled=
330 break
331 ;;
332 $func_relative_path_tlibdir*)
333 # found a matching prefix
334 func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir"
335 func_relative_path_tcancelled=$func_stripname_result
336 if test -z "$func_relative_path_result"; then
337 func_relative_path_result=.
338 fi
339 break
340 ;;
341 *)
342 func_dirname $func_relative_path_tlibdir
343 func_relative_path_tlibdir=${func_dirname_result}
344 if test "x$func_relative_path_tlibdir" = x ; then
345 # Have to descend all the way to the root!
346 func_relative_path_result=../$func_relative_path_result
347 func_relative_path_tcancelled=$func_relative_path_tbindir
348 break
349 fi
350 func_relative_path_result=../$func_relative_path_result
351 ;;
352 esac
353 done
172 354
173# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh 355 # Now calculate path; take care to avoid doubling-up slashes.
174# is ksh but when the shell is invoked as "sh" and the current value of 356 func_stripname '' '/' "$func_relative_path_result"
175# the _XPG environment variable is not equal to 1 (one), the special 357 func_relative_path_result=$func_stripname_result
176# positional parameter $0, within a function call, is the name of the 358 func_stripname '/' '/' "$func_relative_path_tcancelled"
177# function. 359 if test "x$func_stripname_result" != x ; then
178progpath="$0" 360 func_relative_path_result=${func_relative_path_result}/${func_stripname_result}
361 fi
362
363 # Normalisation. If bindir is libdir, return empty string,
364 # else relative path ending with a slash; either way, target
365 # file name can be directly appended.
366 if test ! -z "$func_relative_path_result"; then
367 func_stripname './' '' "$func_relative_path_result/"
368 func_relative_path_result=$func_stripname_result
369 fi
370}
179 371
180# The name of this program: 372# The name of this program:
181# In the unlikely event $progname began with a '-', it would play havoc with
182# func_echo (imagine progname=-n), so we prepend ./ in that case:
183func_dirname_and_basename "$progpath" 373func_dirname_and_basename "$progpath"
184progname=$func_basename_result 374progname=$func_basename_result
185case $progname in
186 -*) progname=./$progname ;;
187esac
188 375
189# Make sure we have an absolute path for reexecution: 376# Make sure we have an absolute path for reexecution:
190case $progpath in 377case $progpath in
@@ -196,7 +383,7 @@ case $progpath in
196 ;; 383 ;;
197 *) 384 *)
198 save_IFS="$IFS" 385 save_IFS="$IFS"
199 IFS=: 386 IFS=${PATH_SEPARATOR-:}
200 for progdir in $PATH; do 387 for progdir in $PATH; do
201 IFS="$save_IFS" 388 IFS="$save_IFS"
202 test -x "$progdir/$progname" && break 389 test -x "$progdir/$progname" && break
@@ -215,6 +402,15 @@ sed_quote_subst='s/\([`"$\\]\)/\\\1/g'
215# Same as above, but do not quote variable references. 402# Same as above, but do not quote variable references.
216double_quote_subst='s/\(["`\\]\)/\\\1/g' 403double_quote_subst='s/\(["`\\]\)/\\\1/g'
217 404
405# Sed substitution that turns a string into a regex matching for the
406# string literally.
407sed_make_literal_regex='s,[].[^$\\*\/],\\&,g'
408
409# Sed substitution that converts a w32 file name or path
410# which contains forward slashes, into one that contains
411# (escaped) backslashes. A very naive implementation.
412lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
413
218# Re-`\' parameter expansions in output of double_quote_subst that were 414# Re-`\' parameter expansions in output of double_quote_subst that were
219# `\'-ed in input to the same. If an odd number of `\' preceded a '$' 415# `\'-ed in input to the same. If an odd number of `\' preceded a '$'
220# in input to double_quote_subst, that '$' was protected from expansion. 416# in input to double_quote_subst, that '$' was protected from expansion.
@@ -243,7 +439,7 @@ opt_warning=:
243# name if it has been set yet. 439# name if it has been set yet.
244func_echo () 440func_echo ()
245{ 441{
246 $ECHO "$progname${mode+: }$mode: $*" 442 $ECHO "$progname: ${opt_mode+$opt_mode: }$*"
247} 443}
248 444
249# func_verbose arg... 445# func_verbose arg...
@@ -258,18 +454,25 @@ func_verbose ()
258 : 454 :
259} 455}
260 456
457# func_echo_all arg...
458# Invoke $ECHO with all args, space-separated.
459func_echo_all ()
460{
461 $ECHO "$*"
462}
463
261# func_error arg... 464# func_error arg...
262# Echo program name prefixed message to standard error. 465# Echo program name prefixed message to standard error.
263func_error () 466func_error ()
264{ 467{
265 $ECHO "$progname${mode+: }$mode: "${1+"$@"} 1>&2 468 $ECHO "$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2
266} 469}
267 470
268# func_warning arg... 471# func_warning arg...
269# Echo program name prefixed warning message to standard error. 472# Echo program name prefixed warning message to standard error.
270func_warning () 473func_warning ()
271{ 474{
272 $opt_warning && $ECHO "$progname${mode+: }$mode: warning: "${1+"$@"} 1>&2 475 $opt_warning && $ECHO "$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2
273 476
274 # bash bug again: 477 # bash bug again:
275 : 478 :
@@ -326,9 +529,9 @@ func_mkdir_p ()
326 case $my_directory_path in */*) ;; *) break ;; esac 529 case $my_directory_path in */*) ;; *) break ;; esac
327 530
328 # ...otherwise throw away the child directory and loop 531 # ...otherwise throw away the child directory and loop
329 my_directory_path=`$ECHO "X$my_directory_path" | $Xsed -e "$dirname"` 532 my_directory_path=`$ECHO "$my_directory_path" | $SED -e "$dirname"`
330 done 533 done
331 my_dir_list=`$ECHO "X$my_dir_list" | $Xsed -e 's,:*$,,'` 534 my_dir_list=`$ECHO "$my_dir_list" | $SED 's,:*$,,'`
332 535
333 save_mkdir_p_IFS="$IFS"; IFS=':' 536 save_mkdir_p_IFS="$IFS"; IFS=':'
334 for my_dir in $my_dir_list; do 537 for my_dir in $my_dir_list; do
@@ -378,7 +581,7 @@ func_mktempdir ()
378 func_fatal_error "cannot create temporary directory \`$my_tmpdir'" 581 func_fatal_error "cannot create temporary directory \`$my_tmpdir'"
379 fi 582 fi
380 583
381 $ECHO "X$my_tmpdir" | $Xsed 584 $ECHO "$my_tmpdir"
382} 585}
383 586
384 587
@@ -392,7 +595,7 @@ func_quote_for_eval ()
392{ 595{
393 case $1 in 596 case $1 in
394 *[\\\`\"\$]*) 597 *[\\\`\"\$]*)
395 func_quote_for_eval_unquoted_result=`$ECHO "X$1" | $Xsed -e "$sed_quote_subst"` ;; 598 func_quote_for_eval_unquoted_result=`$ECHO "$1" | $SED "$sed_quote_subst"` ;;
396 *) 599 *)
397 func_quote_for_eval_unquoted_result="$1" ;; 600 func_quote_for_eval_unquoted_result="$1" ;;
398 esac 601 esac
@@ -419,7 +622,7 @@ func_quote_for_expand ()
419{ 622{
420 case $1 in 623 case $1 in
421 *[\\\`\"]*) 624 *[\\\`\"]*)
422 my_arg=`$ECHO "X$1" | $Xsed \ 625 my_arg=`$ECHO "$1" | $SED \
423 -e "$double_quote_subst" -e "$sed_double_backslash"` ;; 626 -e "$double_quote_subst" -e "$sed_double_backslash"` ;;
424 *) 627 *)
425 my_arg="$1" ;; 628 my_arg="$1" ;;
@@ -488,15 +691,39 @@ func_show_eval_locale ()
488 fi 691 fi
489} 692}
490 693
491 694# func_tr_sh
492 695# Turn $1 into a string suitable for a shell variable name.
696# Result is stored in $func_tr_sh_result. All characters
697# not in the set a-zA-Z0-9_ are replaced with '_'. Further,
698# if $1 begins with a digit, a '_' is prepended as well.
699func_tr_sh ()
700{
701 case $1 in
702 [0-9]* | *[!a-zA-Z0-9_]*)
703 func_tr_sh_result=`$ECHO "$1" | $SED 's/^\([0-9]\)/_\1/; s/[^a-zA-Z0-9_]/_/g'`
704 ;;
705 * )
706 func_tr_sh_result=$1
707 ;;
708 esac
709}
493 710
494 711
495# func_version 712# func_version
496# Echo version message to standard output and exit. 713# Echo version message to standard output and exit.
497func_version () 714func_version ()
498{ 715{
499 $SED -n '/^# '$PROGRAM' (GNU /,/# warranty; / { 716 $opt_debug
717
718 $SED -n '/(C)/!b go
719 :more
720 /\./!{
721 N
722 s/\n# / /
723 b more
724 }
725 :go
726 /^# '$PROGRAM' (GNU /,/# warranty; / {
500 s/^# // 727 s/^# //
501 s/^# *$// 728 s/^# *$//
502 s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/ 729 s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/
@@ -509,22 +736,28 @@ func_version ()
509# Echo short help message to standard output and exit. 736# Echo short help message to standard output and exit.
510func_usage () 737func_usage ()
511{ 738{
512 $SED -n '/^# Usage:/,/# -h/ { 739 $opt_debug
740
741 $SED -n '/^# Usage:/,/^# *.*--help/ {
513 s/^# // 742 s/^# //
514 s/^# *$// 743 s/^# *$//
515 s/\$progname/'$progname'/ 744 s/\$progname/'$progname'/
516 p 745 p
517 }' < "$progpath" 746 }' < "$progpath"
518 $ECHO 747 echo
519 $ECHO "run \`$progname --help | more' for full usage" 748 $ECHO "run \`$progname --help | more' for full usage"
520 exit $? 749 exit $?
521} 750}
522 751
523# func_help 752# func_help [NOEXIT]
524# Echo long help message to standard output and exit. 753# Echo long help message to standard output and exit,
754# unless 'noexit' is passed as argument.
525func_help () 755func_help ()
526{ 756{
757 $opt_debug
758
527 $SED -n '/^# Usage:/,/# Report bugs to/ { 759 $SED -n '/^# Usage:/,/# Report bugs to/ {
760 :print
528 s/^# // 761 s/^# //
529 s/^# *$// 762 s/^# *$//
530 s*\$progname*'$progname'* 763 s*\$progname*'$progname'*
@@ -534,11 +767,18 @@ func_help ()
534 s*\$LTCFLAGS*'"$LTCFLAGS"'* 767 s*\$LTCFLAGS*'"$LTCFLAGS"'*
535 s*\$LD*'"$LD"'* 768 s*\$LD*'"$LD"'*
536 s/\$with_gnu_ld/'"$with_gnu_ld"'/ 769 s/\$with_gnu_ld/'"$with_gnu_ld"'/
537 s/\$automake_version/'"`(automake --version) 2>/dev/null |$SED 1q`"'/ 770 s/\$automake_version/'"`(${AUTOMAKE-automake} --version) 2>/dev/null |$SED 1q`"'/
538 s/\$autoconf_version/'"`(autoconf --version) 2>/dev/null |$SED 1q`"'/ 771 s/\$autoconf_version/'"`(${AUTOCONF-autoconf} --version) 2>/dev/null |$SED 1q`"'/
539 p 772 p
540 }' < "$progpath" 773 d
541 exit $? 774 }
775 /^# .* home page:/b print
776 /^# General help using/b print
777 ' < "$progpath"
778 ret=$?
779 if test -z "$1"; then
780 exit $ret
781 fi
542} 782}
543 783
544# func_missing_arg argname 784# func_missing_arg argname
@@ -546,63 +786,106 @@ func_help ()
546# exit_cmd. 786# exit_cmd.
547func_missing_arg () 787func_missing_arg ()
548{ 788{
549 func_error "missing argument for $1" 789 $opt_debug
790
791 func_error "missing argument for $1."
550 exit_cmd=exit 792 exit_cmd=exit
551} 793}
552 794
553exit_cmd=:
554 795
796# func_split_short_opt shortopt
797# Set func_split_short_opt_name and func_split_short_opt_arg shell
798# variables after splitting SHORTOPT after the 2nd character.
799func_split_short_opt ()
800{
801 my_sed_short_opt='1s/^\(..\).*$/\1/;q'
802 my_sed_short_rest='1s/^..\(.*\)$/\1/;q'
555 803
804 func_split_short_opt_name=`$ECHO "$1" | $SED "$my_sed_short_opt"`
805 func_split_short_opt_arg=`$ECHO "$1" | $SED "$my_sed_short_rest"`
806} # func_split_short_opt may be replaced by extended shell implementation
807
808
809# func_split_long_opt longopt
810# Set func_split_long_opt_name and func_split_long_opt_arg shell
811# variables after splitting LONGOPT at the `=' sign.
812func_split_long_opt ()
813{
814 my_sed_long_opt='1s/^\(--[^=]*\)=.*/\1/;q'
815 my_sed_long_arg='1s/^--[^=]*=//'
816
817 func_split_long_opt_name=`$ECHO "$1" | $SED "$my_sed_long_opt"`
818 func_split_long_opt_arg=`$ECHO "$1" | $SED "$my_sed_long_arg"`
819} # func_split_long_opt may be replaced by extended shell implementation
820
821exit_cmd=:
556 822
557 823
558 824
559# Check that we have a working $ECHO.
560if test "X$1" = X--no-reexec; then
561 # Discard the --no-reexec flag, and continue.
562 shift
563elif test "X$1" = X--fallback-echo; then
564 # Avoid inline document here, it may be left over
565 :
566elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t'; then
567 # Yippee, $ECHO works!
568 :
569else
570 # Restart under the correct shell, and then maybe $ECHO will work.
571 exec $SHELL "$progpath" --no-reexec ${1+"$@"}
572fi
573 825
574if test "X$1" = X--fallback-echo; then
575 # used as fallback echo
576 shift
577 cat <<EOF
578$*
579EOF
580 exit $EXIT_SUCCESS
581fi
582 826
583magic="%%%MAGIC variable%%%" 827magic="%%%MAGIC variable%%%"
584magic_exe="%%%MAGIC EXE variable%%%" 828magic_exe="%%%MAGIC EXE variable%%%"
585 829
586# Global variables. 830# Global variables.
587# $mode is unset
588nonopt= 831nonopt=
589execute_dlfiles=
590preserve_args= 832preserve_args=
591lo2o="s/\\.lo\$/.${objext}/" 833lo2o="s/\\.lo\$/.${objext}/"
592o2lo="s/\\.${objext}\$/.lo/" 834o2lo="s/\\.${objext}\$/.lo/"
593extracted_archives= 835extracted_archives=
594extracted_serial=0 836extracted_serial=0
595 837
596opt_dry_run=false
597opt_duplicate_deps=false
598opt_silent=false
599opt_debug=:
600
601# If this variable is set in any of the actions, the command in it 838# If this variable is set in any of the actions, the command in it
602# will be execed at the end. This prevents here-documents from being 839# will be execed at the end. This prevents here-documents from being
603# left over by shells. 840# left over by shells.
604exec_cmd= 841exec_cmd=
605 842
843# func_append var value
844# Append VALUE to the end of shell variable VAR.
845func_append ()
846{
847 eval "${1}=\$${1}\${2}"
848} # func_append may be replaced by extended shell implementation
849
850# func_append_quoted var value
851# Quote VALUE and append to the end of shell variable VAR, separated
852# by a space.
853func_append_quoted ()
854{
855 func_quote_for_eval "${2}"
856 eval "${1}=\$${1}\\ \$func_quote_for_eval_result"
857} # func_append_quoted may be replaced by extended shell implementation
858
859
860# func_arith arithmetic-term...
861func_arith ()
862{
863 func_arith_result=`expr "${@}"`
864} # func_arith may be replaced by extended shell implementation
865
866
867# func_len string
868# STRING may not start with a hyphen.
869func_len ()
870{
871 func_len_result=`expr "${1}" : ".*" 2>/dev/null || echo $max_cmd_len`
872} # func_len may be replaced by extended shell implementation
873
874
875# func_lo2o object
876func_lo2o ()
877{
878 func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"`
879} # func_lo2o may be replaced by extended shell implementation
880
881
882# func_xform libobj-or-source
883func_xform ()
884{
885 func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'`
886} # func_xform may be replaced by extended shell implementation
887
888
606# func_fatal_configuration arg... 889# func_fatal_configuration arg...
607# Echo program name prefixed message to standard error, followed by 890# Echo program name prefixed message to standard error, followed by
608# a configuration failure hint, and exit. 891# a configuration failure hint, and exit.
@@ -636,16 +919,16 @@ func_config ()
636# Display the features supported by this script. 919# Display the features supported by this script.
637func_features () 920func_features ()
638{ 921{
639 $ECHO "host: $host" 922 echo "host: $host"
640 if test "$build_libtool_libs" = yes; then 923 if test "$build_libtool_libs" = yes; then
641 $ECHO "enable shared libraries" 924 echo "enable shared libraries"
642 else 925 else
643 $ECHO "disable shared libraries" 926 echo "disable shared libraries"
644 fi 927 fi
645 if test "$build_old_libs" = yes; then 928 if test "$build_old_libs" = yes; then
646 $ECHO "enable static libraries" 929 echo "enable static libraries"
647 else 930 else
648 $ECHO "disable static libraries" 931 echo "disable static libraries"
649 fi 932 fi
650 933
651 exit $? 934 exit $?
@@ -692,117 +975,209 @@ func_enable_tag ()
692 esac 975 esac
693} 976}
694 977
695# Parse options once, thoroughly. This comes as soon as possible in 978# func_check_version_match
696# the script to make things like `libtool --version' happen quickly. 979# Ensure that we are using m4 macros, and libtool script from the same
980# release of libtool.
981func_check_version_match ()
697{ 982{
983 if test "$package_revision" != "$macro_revision"; then
984 if test "$VERSION" != "$macro_version"; then
985 if test -z "$macro_version"; then
986 cat >&2 <<_LT_EOF
987$progname: Version mismatch error. This is $PACKAGE $VERSION, but the
988$progname: definition of this LT_INIT comes from an older release.
989$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
990$progname: and run autoconf again.
991_LT_EOF
992 else
993 cat >&2 <<_LT_EOF
994$progname: Version mismatch error. This is $PACKAGE $VERSION, but the
995$progname: definition of this LT_INIT comes from $PACKAGE $macro_version.
996$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
997$progname: and run autoconf again.
998_LT_EOF
999 fi
1000 else
1001 cat >&2 <<_LT_EOF
1002$progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision,
1003$progname: but the definition of this LT_INIT comes from revision $macro_revision.
1004$progname: You should recreate aclocal.m4 with macros from revision $package_revision
1005$progname: of $PACKAGE $VERSION and run autoconf again.
1006_LT_EOF
1007 fi
1008
1009 exit $EXIT_MISMATCH
1010 fi
1011}
1012
1013
1014# Shorthand for --mode=foo, only valid as the first argument
1015case $1 in
1016clean|clea|cle|cl)
1017 shift; set dummy --mode clean ${1+"$@"}; shift
1018 ;;
1019compile|compil|compi|comp|com|co|c)
1020 shift; set dummy --mode compile ${1+"$@"}; shift
1021 ;;
1022execute|execut|execu|exec|exe|ex|e)
1023 shift; set dummy --mode execute ${1+"$@"}; shift
1024 ;;
1025finish|finis|fini|fin|fi|f)
1026 shift; set dummy --mode finish ${1+"$@"}; shift
1027 ;;
1028install|instal|insta|inst|ins|in|i)
1029 shift; set dummy --mode install ${1+"$@"}; shift
1030 ;;
1031link|lin|li|l)
1032 shift; set dummy --mode link ${1+"$@"}; shift
1033 ;;
1034uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u)
1035 shift; set dummy --mode uninstall ${1+"$@"}; shift
1036 ;;
1037esac
1038
698 1039
699 # Shorthand for --mode=foo, only valid as the first argument
700 case $1 in
701 clean|clea|cle|cl)
702 shift; set dummy --mode clean ${1+"$@"}; shift
703 ;;
704 compile|compil|compi|comp|com|co|c)
705 shift; set dummy --mode compile ${1+"$@"}; shift
706 ;;
707 execute|execut|execu|exec|exe|ex|e)
708 shift; set dummy --mode execute ${1+"$@"}; shift
709 ;;
710 finish|finis|fini|fin|fi|f)
711 shift; set dummy --mode finish ${1+"$@"}; shift
712 ;;
713 install|instal|insta|inst|ins|in|i)
714 shift; set dummy --mode install ${1+"$@"}; shift
715 ;;
716 link|lin|li|l)
717 shift; set dummy --mode link ${1+"$@"}; shift
718 ;;
719 uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u)
720 shift; set dummy --mode uninstall ${1+"$@"}; shift
721 ;;
722 esac
723 1040
724 # Parse non-mode specific arguments: 1041# Option defaults:
725 while test "$#" -gt 0; do 1042opt_debug=:
1043opt_dry_run=false
1044opt_config=false
1045opt_preserve_dup_deps=false
1046opt_features=false
1047opt_finish=false
1048opt_help=false
1049opt_help_all=false
1050opt_silent=:
1051opt_warning=:
1052opt_verbose=:
1053opt_silent=false
1054opt_verbose=false
1055
1056
1057# Parse options once, thoroughly. This comes as soon as possible in the
1058# script to make things like `--version' happen as quickly as we can.
1059{
1060 # this just eases exit handling
1061 while test $# -gt 0; do
726 opt="$1" 1062 opt="$1"
727 shift 1063 shift
728
729 case $opt in 1064 case $opt in
730 --config) func_config ;; 1065 --debug|-x) opt_debug='set -x'
731
732 --debug) preserve_args="$preserve_args $opt"
733 func_echo "enabling shell trace mode" 1066 func_echo "enabling shell trace mode"
734 opt_debug='set -x'
735 $opt_debug 1067 $opt_debug
736 ;; 1068 ;;
737 1069 --dry-run|--dryrun|-n)
738 -dlopen) test "$#" -eq 0 && func_missing_arg "$opt" && break 1070 opt_dry_run=:
739 execute_dlfiles="$execute_dlfiles $1"
740 shift
741 ;; 1071 ;;
742 1072 --config)
743 --dry-run | -n) opt_dry_run=: ;; 1073 opt_config=:
744 --features) func_features ;; 1074func_config
745 --finish) mode="finish" ;; 1075 ;;
746 1076 --dlopen|-dlopen)
747 --mode) test "$#" -eq 0 && func_missing_arg "$opt" && break 1077 optarg="$1"
748 case $1 in 1078 opt_dlopen="${opt_dlopen+$opt_dlopen
749 # Valid mode arguments: 1079}$optarg"
750 clean) ;;
751 compile) ;;
752 execute) ;;
753 finish) ;;
754 install) ;;
755 link) ;;
756 relink) ;;
757 uninstall) ;;
758
759 # Catch anything else as an error
760 *) func_error "invalid argument for $opt"
761 exit_cmd=exit
762 break
763 ;;
764 esac
765
766 mode="$1"
767 shift 1080 shift
768 ;; 1081 ;;
769
770 --preserve-dup-deps) 1082 --preserve-dup-deps)
771 opt_duplicate_deps=: ;; 1083 opt_preserve_dup_deps=:
772
773 --quiet|--silent) preserve_args="$preserve_args $opt"
774 opt_silent=:
775 ;; 1084 ;;
776 1085 --features)
777 --verbose| -v) preserve_args="$preserve_args $opt" 1086 opt_features=:
1087func_features
1088 ;;
1089 --finish)
1090 opt_finish=:
1091set dummy --mode finish ${1+"$@"}; shift
1092 ;;
1093 --help)
1094 opt_help=:
1095 ;;
1096 --help-all)
1097 opt_help_all=:
1098opt_help=': help-all'
1099 ;;
1100 --mode)
1101 test $# = 0 && func_missing_arg $opt && break
1102 optarg="$1"
1103 opt_mode="$optarg"
1104case $optarg in
1105 # Valid mode arguments:
1106 clean|compile|execute|finish|install|link|relink|uninstall) ;;
1107
1108 # Catch anything else as an error
1109 *) func_error "invalid argument for $opt"
1110 exit_cmd=exit
1111 break
1112 ;;
1113esac
1114 shift
1115 ;;
1116 --no-silent|--no-quiet)
778 opt_silent=false 1117 opt_silent=false
1118func_append preserve_args " $opt"
779 ;; 1119 ;;
780 1120 --no-warning|--no-warn)
781 --tag) test "$#" -eq 0 && func_missing_arg "$opt" && break 1121 opt_warning=false
782 preserve_args="$preserve_args $opt $1" 1122func_append preserve_args " $opt"
783 func_enable_tag "$1" # tagname is set here 1123 ;;
1124 --no-verbose)
1125 opt_verbose=false
1126func_append preserve_args " $opt"
1127 ;;
1128 --silent|--quiet)
1129 opt_silent=:
1130func_append preserve_args " $opt"
1131 opt_verbose=false
1132 ;;
1133 --verbose|-v)
1134 opt_verbose=:
1135func_append preserve_args " $opt"
1136opt_silent=false
1137 ;;
1138 --tag)
1139 test $# = 0 && func_missing_arg $opt && break
1140 optarg="$1"
1141 opt_tag="$optarg"
1142func_append preserve_args " $opt $optarg"
1143func_enable_tag "$optarg"
784 shift 1144 shift
785 ;; 1145 ;;
786 1146
1147 -\?|-h) func_usage ;;
1148 --help) func_help ;;
1149 --version) func_version ;;
1150
787 # Separate optargs to long options: 1151 # Separate optargs to long options:
788 -dlopen=*|--mode=*|--tag=*) 1152 --*=*)
789 func_opt_split "$opt" 1153 func_split_long_opt "$opt"
790 set dummy "$func_opt_split_opt" "$func_opt_split_arg" ${1+"$@"} 1154 set dummy "$func_split_long_opt_name" "$func_split_long_opt_arg" ${1+"$@"}
791 shift 1155 shift
792 ;; 1156 ;;
793 1157
794 -\?|-h) func_usage ;; 1158 # Separate non-argument short options:
795 --help) opt_help=: ;; 1159 -\?*|-h*|-n*|-v*)
796 --version) func_version ;; 1160 func_split_short_opt "$opt"
797 1161 set dummy "$func_split_short_opt_name" "-$func_split_short_opt_arg" ${1+"$@"}
798 -*) func_fatal_help "unrecognized option \`$opt'" ;; 1162 shift
799
800 *) nonopt="$opt"
801 break
802 ;; 1163 ;;
1164
1165 --) break ;;
1166 -*) func_fatal_help "unrecognized option \`$opt'" ;;
1167 *) set dummy "$opt" ${1+"$@"}; shift; break ;;
803 esac 1168 esac
804 done 1169 done
805 1170
1171 # Validate options:
1172
1173 # save first non-option argument
1174 if test "$#" -gt 0; then
1175 nonopt="$opt"
1176 shift
1177 fi
1178
1179 # preserve --debug
1180 test "$opt_debug" = : || func_append preserve_args " --debug"
806 1181
807 case $host in 1182 case $host in
808 *cygwin* | *mingw* | *pw32* | *cegcc*) 1183 *cygwin* | *mingw* | *pw32* | *cegcc*)
@@ -810,82 +1185,44 @@ func_enable_tag ()
810 opt_duplicate_compiler_generated_deps=: 1185 opt_duplicate_compiler_generated_deps=:
811 ;; 1186 ;;
812 *) 1187 *)
813 opt_duplicate_compiler_generated_deps=$opt_duplicate_deps 1188 opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps
814 ;; 1189 ;;
815 esac 1190 esac
816 1191
817 # Having warned about all mis-specified options, bail out if 1192 $opt_help || {
818 # anything was wrong. 1193 # Sanity checks first:
819 $exit_cmd $EXIT_FAILURE 1194 func_check_version_match
820}
821 1195
822# func_check_version_match 1196 if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
823# Ensure that we are using m4 macros, and libtool script from the same 1197 func_fatal_configuration "not configured to build any kind of library"
824# release of libtool.
825func_check_version_match ()
826{
827 if test "$package_revision" != "$macro_revision"; then
828 if test "$VERSION" != "$macro_version"; then
829 if test -z "$macro_version"; then
830 cat >&2 <<_LT_EOF
831$progname: Version mismatch error. This is $PACKAGE $VERSION, but the
832$progname: definition of this LT_INIT comes from an older release.
833$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
834$progname: and run autoconf again.
835_LT_EOF
836 else
837 cat >&2 <<_LT_EOF
838$progname: Version mismatch error. This is $PACKAGE $VERSION, but the
839$progname: definition of this LT_INIT comes from $PACKAGE $macro_version.
840$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
841$progname: and run autoconf again.
842_LT_EOF
843 fi
844 else
845 cat >&2 <<_LT_EOF
846$progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision,
847$progname: but the definition of this LT_INIT comes from revision $macro_revision.
848$progname: You should recreate aclocal.m4 with macros from revision $package_revision
849$progname: of $PACKAGE $VERSION and run autoconf again.
850_LT_EOF
851 fi 1198 fi
852 1199
853 exit $EXIT_MISMATCH 1200 # Darwin sucks
854 fi 1201 eval std_shrext=\"$shrext_cmds\"
855}
856
857
858## ----------- ##
859## Main. ##
860## ----------- ##
861
862$opt_help || {
863 # Sanity checks first:
864 func_check_version_match
865 1202
866 if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then 1203 # Only execute mode is allowed to have -dlopen flags.
867 func_fatal_configuration "not configured to build any kind of library" 1204 if test -n "$opt_dlopen" && test "$opt_mode" != execute; then
868 fi 1205 func_error "unrecognized option \`-dlopen'"
1206 $ECHO "$help" 1>&2
1207 exit $EXIT_FAILURE
1208 fi
869 1209
870 test -z "$mode" && func_fatal_error "error: you must specify a MODE." 1210 # Change the help message to a mode-specific one.
1211 generic_help="$help"
1212 help="Try \`$progname --help --mode=$opt_mode' for more information."
1213 }
871 1214
872 1215
873 # Darwin sucks 1216 # Bail if the options were screwed
874 eval std_shrext=\"$shrext_cmds\" 1217 $exit_cmd $EXIT_FAILURE
1218}
875 1219
876 1220
877 # Only execute mode is allowed to have -dlopen flags.
878 if test -n "$execute_dlfiles" && test "$mode" != execute; then
879 func_error "unrecognized option \`-dlopen'"
880 $ECHO "$help" 1>&2
881 exit $EXIT_FAILURE
882 fi
883 1221
884 # Change the help message to a mode-specific one.
885 generic_help="$help"
886 help="Try \`$progname --help --mode=$mode' for more information."
887}
888 1222
1223## ----------- ##
1224## Main. ##
1225## ----------- ##
889 1226
890# func_lalib_p file 1227# func_lalib_p file
891# True iff FILE is a libtool `.la' library or `.lo' object file. 1228# True iff FILE is a libtool `.la' library or `.lo' object file.
@@ -950,12 +1287,9 @@ func_ltwrapper_executable_p ()
950# temporary ltwrapper_script. 1287# temporary ltwrapper_script.
951func_ltwrapper_scriptname () 1288func_ltwrapper_scriptname ()
952{ 1289{
953 func_ltwrapper_scriptname_result="" 1290 func_dirname_and_basename "$1" "" "."
954 if func_ltwrapper_executable_p "$1"; then 1291 func_stripname '' '.exe' "$func_basename_result"
955 func_dirname_and_basename "$1" "" "." 1292 func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper"
956 func_stripname '' '.exe' "$func_basename_result"
957 func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper"
958 fi
959} 1293}
960 1294
961# func_ltwrapper_p file 1295# func_ltwrapper_p file
@@ -1001,6 +1335,37 @@ func_source ()
1001} 1335}
1002 1336
1003 1337
1338# func_resolve_sysroot PATH
1339# Replace a leading = in PATH with a sysroot. Store the result into
1340# func_resolve_sysroot_result
1341func_resolve_sysroot ()
1342{
1343 func_resolve_sysroot_result=$1
1344 case $func_resolve_sysroot_result in
1345 =*)
1346 func_stripname '=' '' "$func_resolve_sysroot_result"
1347 func_resolve_sysroot_result=$lt_sysroot$func_stripname_result
1348 ;;
1349 esac
1350}
1351
1352# func_replace_sysroot PATH
1353# If PATH begins with the sysroot, replace it with = and
1354# store the result into func_replace_sysroot_result.
1355func_replace_sysroot ()
1356{
1357 case "$lt_sysroot:$1" in
1358 ?*:"$lt_sysroot"*)
1359 func_stripname "$lt_sysroot" '' "$1"
1360 func_replace_sysroot_result="=$func_stripname_result"
1361 ;;
1362 *)
1363 # Including no sysroot.
1364 func_replace_sysroot_result=$1
1365 ;;
1366 esac
1367}
1368
1004# func_infer_tag arg 1369# func_infer_tag arg
1005# Infer tagged configuration to use if any are available and 1370# Infer tagged configuration to use if any are available and
1006# if one wasn't chosen via the "--tag" command line option. 1371# if one wasn't chosen via the "--tag" command line option.
@@ -1013,13 +1378,15 @@ func_infer_tag ()
1013 if test -n "$available_tags" && test -z "$tagname"; then 1378 if test -n "$available_tags" && test -z "$tagname"; then
1014 CC_quoted= 1379 CC_quoted=
1015 for arg in $CC; do 1380 for arg in $CC; do
1016 func_quote_for_eval "$arg" 1381 func_append_quoted CC_quoted "$arg"
1017 CC_quoted="$CC_quoted $func_quote_for_eval_result"
1018 done 1382 done
1383 CC_expanded=`func_echo_all $CC`
1384 CC_quoted_expanded=`func_echo_all $CC_quoted`
1019 case $@ in 1385 case $@ in
1020 # Blanks in the command may have been stripped by the calling shell, 1386 # Blanks in the command may have been stripped by the calling shell,
1021 # but not from the CC environment variable when configure was run. 1387 # but not from the CC environment variable when configure was run.
1022 " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) ;; 1388 " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \
1389 " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;;
1023 # Blanks at the start of $base_compile will cause this to fail 1390 # Blanks at the start of $base_compile will cause this to fail
1024 # if we don't check for them as well. 1391 # if we don't check for them as well.
1025 *) 1392 *)
@@ -1030,11 +1397,13 @@ func_infer_tag ()
1030 CC_quoted= 1397 CC_quoted=
1031 for arg in $CC; do 1398 for arg in $CC; do
1032 # Double-quote args containing other shell metacharacters. 1399 # Double-quote args containing other shell metacharacters.
1033 func_quote_for_eval "$arg" 1400 func_append_quoted CC_quoted "$arg"
1034 CC_quoted="$CC_quoted $func_quote_for_eval_result"
1035 done 1401 done
1402 CC_expanded=`func_echo_all $CC`
1403 CC_quoted_expanded=`func_echo_all $CC_quoted`
1036 case "$@ " in 1404 case "$@ " in
1037 " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) 1405 " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \
1406 " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*)
1038 # The compiler in the base compile command matches 1407 # The compiler in the base compile command matches
1039 # the one in the tagged configuration. 1408 # the one in the tagged configuration.
1040 # Assume this is the tagged configuration we want. 1409 # Assume this is the tagged configuration we want.
@@ -1097,6 +1466,486 @@ EOF
1097 } 1466 }
1098} 1467}
1099 1468
1469
1470##################################################
1471# FILE NAME AND PATH CONVERSION HELPER FUNCTIONS #
1472##################################################
1473
1474# func_convert_core_file_wine_to_w32 ARG
1475# Helper function used by file name conversion functions when $build is *nix,
1476# and $host is mingw, cygwin, or some other w32 environment. Relies on a
1477# correctly configured wine environment available, with the winepath program
1478# in $build's $PATH.
1479#
1480# ARG is the $build file name to be converted to w32 format.
1481# Result is available in $func_convert_core_file_wine_to_w32_result, and will
1482# be empty on error (or when ARG is empty)
1483func_convert_core_file_wine_to_w32 ()
1484{
1485 $opt_debug
1486 func_convert_core_file_wine_to_w32_result="$1"
1487 if test -n "$1"; then
1488 # Unfortunately, winepath does not exit with a non-zero error code, so we
1489 # are forced to check the contents of stdout. On the other hand, if the
1490 # command is not found, the shell will set an exit code of 127 and print
1491 # *an error message* to stdout. So we must check for both error code of
1492 # zero AND non-empty stdout, which explains the odd construction:
1493 func_convert_core_file_wine_to_w32_tmp=`winepath -w "$1" 2>/dev/null`
1494 if test "$?" -eq 0 && test -n "${func_convert_core_file_wine_to_w32_tmp}"; then
1495 func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" |
1496 $SED -e "$lt_sed_naive_backslashify"`
1497 else
1498 func_convert_core_file_wine_to_w32_result=
1499 fi
1500 fi
1501}
1502# end: func_convert_core_file_wine_to_w32
1503
1504
1505# func_convert_core_path_wine_to_w32 ARG
1506# Helper function used by path conversion functions when $build is *nix, and
1507# $host is mingw, cygwin, or some other w32 environment. Relies on a correctly
1508# configured wine environment available, with the winepath program in $build's
1509# $PATH. Assumes ARG has no leading or trailing path separator characters.
1510#
1511# ARG is path to be converted from $build format to win32.
1512# Result is available in $func_convert_core_path_wine_to_w32_result.
1513# Unconvertible file (directory) names in ARG are skipped; if no directory names
1514# are convertible, then the result may be empty.
1515func_convert_core_path_wine_to_w32 ()
1516{
1517 $opt_debug
1518 # unfortunately, winepath doesn't convert paths, only file names
1519 func_convert_core_path_wine_to_w32_result=""
1520 if test -n "$1"; then
1521 oldIFS=$IFS
1522 IFS=:
1523 for func_convert_core_path_wine_to_w32_f in $1; do
1524 IFS=$oldIFS
1525 func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f"
1526 if test -n "$func_convert_core_file_wine_to_w32_result" ; then
1527 if test -z "$func_convert_core_path_wine_to_w32_result"; then
1528 func_convert_core_path_wine_to_w32_result="$func_convert_core_file_wine_to_w32_result"
1529 else
1530 func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result"
1531 fi
1532 fi
1533 done
1534 IFS=$oldIFS
1535 fi
1536}
1537# end: func_convert_core_path_wine_to_w32
1538
1539
1540# func_cygpath ARGS...
1541# Wrapper around calling the cygpath program via LT_CYGPATH. This is used when
1542# when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2)
1543# $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or
1544# (2), returns the Cygwin file name or path in func_cygpath_result (input
1545# file name or path is assumed to be in w32 format, as previously converted
1546# from $build's *nix or MSYS format). In case (3), returns the w32 file name
1547# or path in func_cygpath_result (input file name or path is assumed to be in
1548# Cygwin format). Returns an empty string on error.
1549#
1550# ARGS are passed to cygpath, with the last one being the file name or path to
1551# be converted.
1552#
1553# Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH
1554# environment variable; do not put it in $PATH.
1555func_cygpath ()
1556{
1557 $opt_debug
1558 if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then
1559 func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null`
1560 if test "$?" -ne 0; then
1561 # on failure, ensure result is empty
1562 func_cygpath_result=
1563 fi
1564 else
1565 func_cygpath_result=
1566 func_error "LT_CYGPATH is empty or specifies non-existent file: \`$LT_CYGPATH'"
1567 fi
1568}
1569#end: func_cygpath
1570
1571
1572# func_convert_core_msys_to_w32 ARG
1573# Convert file name or path ARG from MSYS format to w32 format. Return
1574# result in func_convert_core_msys_to_w32_result.
1575func_convert_core_msys_to_w32 ()
1576{
1577 $opt_debug
1578 # awkward: cmd appends spaces to result
1579 func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null |
1580 $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"`
1581}
1582#end: func_convert_core_msys_to_w32
1583
1584
1585# func_convert_file_check ARG1 ARG2
1586# Verify that ARG1 (a file name in $build format) was converted to $host
1587# format in ARG2. Otherwise, emit an error message, but continue (resetting
1588# func_to_host_file_result to ARG1).
1589func_convert_file_check ()
1590{
1591 $opt_debug
1592 if test -z "$2" && test -n "$1" ; then
1593 func_error "Could not determine host file name corresponding to"
1594 func_error " \`$1'"
1595 func_error "Continuing, but uninstalled executables may not work."
1596 # Fallback:
1597 func_to_host_file_result="$1"
1598 fi
1599}
1600# end func_convert_file_check
1601
1602
1603# func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH
1604# Verify that FROM_PATH (a path in $build format) was converted to $host
1605# format in TO_PATH. Otherwise, emit an error message, but continue, resetting
1606# func_to_host_file_result to a simplistic fallback value (see below).
1607func_convert_path_check ()
1608{
1609 $opt_debug
1610 if test -z "$4" && test -n "$3"; then
1611 func_error "Could not determine the host path corresponding to"
1612 func_error " \`$3'"
1613 func_error "Continuing, but uninstalled executables may not work."
1614 # Fallback. This is a deliberately simplistic "conversion" and
1615 # should not be "improved". See libtool.info.
1616 if test "x$1" != "x$2"; then
1617 lt_replace_pathsep_chars="s|$1|$2|g"
1618 func_to_host_path_result=`echo "$3" |
1619 $SED -e "$lt_replace_pathsep_chars"`
1620 else
1621 func_to_host_path_result="$3"
1622 fi
1623 fi
1624}
1625# end func_convert_path_check
1626
1627
1628# func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG
1629# Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT
1630# and appending REPL if ORIG matches BACKPAT.
1631func_convert_path_front_back_pathsep ()
1632{
1633 $opt_debug
1634 case $4 in
1635 $1 ) func_to_host_path_result="$3$func_to_host_path_result"
1636 ;;
1637 esac
1638 case $4 in
1639 $2 ) func_append func_to_host_path_result "$3"
1640 ;;
1641 esac
1642}
1643# end func_convert_path_front_back_pathsep
1644
1645
1646##################################################
1647# $build to $host FILE NAME CONVERSION FUNCTIONS #
1648##################################################
1649# invoked via `$to_host_file_cmd ARG'
1650#
1651# In each case, ARG is the path to be converted from $build to $host format.
1652# Result will be available in $func_to_host_file_result.
1653
1654
1655# func_to_host_file ARG
1656# Converts the file name ARG from $build format to $host format. Return result
1657# in func_to_host_file_result.
1658func_to_host_file ()
1659{
1660 $opt_debug
1661 $to_host_file_cmd "$1"
1662}
1663# end func_to_host_file
1664
1665
1666# func_to_tool_file ARG LAZY
1667# converts the file name ARG from $build format to toolchain format. Return
1668# result in func_to_tool_file_result. If the conversion in use is listed
1669# in (the comma separated) LAZY, no conversion takes place.
1670func_to_tool_file ()
1671{
1672 $opt_debug
1673 case ,$2, in
1674 *,"$to_tool_file_cmd",*)
1675 func_to_tool_file_result=$1
1676 ;;
1677 *)
1678 $to_tool_file_cmd "$1"
1679 func_to_tool_file_result=$func_to_host_file_result
1680 ;;
1681 esac
1682}
1683# end func_to_tool_file
1684
1685
1686# func_convert_file_noop ARG
1687# Copy ARG to func_to_host_file_result.
1688func_convert_file_noop ()
1689{
1690 func_to_host_file_result="$1"
1691}
1692# end func_convert_file_noop
1693
1694
1695# func_convert_file_msys_to_w32 ARG
1696# Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic
1697# conversion to w32 is not available inside the cwrapper. Returns result in
1698# func_to_host_file_result.
1699func_convert_file_msys_to_w32 ()
1700{
1701 $opt_debug
1702 func_to_host_file_result="$1"
1703 if test -n "$1"; then
1704 func_convert_core_msys_to_w32 "$1"
1705 func_to_host_file_result="$func_convert_core_msys_to_w32_result"
1706 fi
1707 func_convert_file_check "$1" "$func_to_host_file_result"
1708}
1709# end func_convert_file_msys_to_w32
1710
1711
1712# func_convert_file_cygwin_to_w32 ARG
1713# Convert file name ARG from Cygwin to w32 format. Returns result in
1714# func_to_host_file_result.
1715func_convert_file_cygwin_to_w32 ()
1716{
1717 $opt_debug
1718 func_to_host_file_result="$1"
1719 if test -n "$1"; then
1720 # because $build is cygwin, we call "the" cygpath in $PATH; no need to use
1721 # LT_CYGPATH in this case.
1722 func_to_host_file_result=`cygpath -m "$1"`
1723 fi
1724 func_convert_file_check "$1" "$func_to_host_file_result"
1725}
1726# end func_convert_file_cygwin_to_w32
1727
1728
1729# func_convert_file_nix_to_w32 ARG
1730# Convert file name ARG from *nix to w32 format. Requires a wine environment
1731# and a working winepath. Returns result in func_to_host_file_result.
1732func_convert_file_nix_to_w32 ()
1733{
1734 $opt_debug
1735 func_to_host_file_result="$1"
1736 if test -n "$1"; then
1737 func_convert_core_file_wine_to_w32 "$1"
1738 func_to_host_file_result="$func_convert_core_file_wine_to_w32_result"
1739 fi
1740 func_convert_file_check "$1" "$func_to_host_file_result"
1741}
1742# end func_convert_file_nix_to_w32
1743
1744
1745# func_convert_file_msys_to_cygwin ARG
1746# Convert file name ARG from MSYS to Cygwin format. Requires LT_CYGPATH set.
1747# Returns result in func_to_host_file_result.
1748func_convert_file_msys_to_cygwin ()
1749{
1750 $opt_debug
1751 func_to_host_file_result="$1"
1752 if test -n "$1"; then
1753 func_convert_core_msys_to_w32 "$1"
1754 func_cygpath -u "$func_convert_core_msys_to_w32_result"
1755 func_to_host_file_result="$func_cygpath_result"
1756 fi
1757 func_convert_file_check "$1" "$func_to_host_file_result"
1758}
1759# end func_convert_file_msys_to_cygwin
1760
1761
1762# func_convert_file_nix_to_cygwin ARG
1763# Convert file name ARG from *nix to Cygwin format. Requires Cygwin installed
1764# in a wine environment, working winepath, and LT_CYGPATH set. Returns result
1765# in func_to_host_file_result.
1766func_convert_file_nix_to_cygwin ()
1767{
1768 $opt_debug
1769 func_to_host_file_result="$1"
1770 if test -n "$1"; then
1771 # convert from *nix to w32, then use cygpath to convert from w32 to cygwin.
1772 func_convert_core_file_wine_to_w32 "$1"
1773 func_cygpath -u "$func_convert_core_file_wine_to_w32_result"
1774 func_to_host_file_result="$func_cygpath_result"
1775 fi
1776 func_convert_file_check "$1" "$func_to_host_file_result"
1777}
1778# end func_convert_file_nix_to_cygwin
1779
1780
1781#############################################
1782# $build to $host PATH CONVERSION FUNCTIONS #
1783#############################################
1784# invoked via `$to_host_path_cmd ARG'
1785#
1786# In each case, ARG is the path to be converted from $build to $host format.
1787# The result will be available in $func_to_host_path_result.
1788#
1789# Path separators are also converted from $build format to $host format. If
1790# ARG begins or ends with a path separator character, it is preserved (but
1791# converted to $host format) on output.
1792#
1793# All path conversion functions are named using the following convention:
1794# file name conversion function : func_convert_file_X_to_Y ()
1795# path conversion function : func_convert_path_X_to_Y ()
1796# where, for any given $build/$host combination the 'X_to_Y' value is the
1797# same. If conversion functions are added for new $build/$host combinations,
1798# the two new functions must follow this pattern, or func_init_to_host_path_cmd
1799# will break.
1800
1801
1802# func_init_to_host_path_cmd
1803# Ensures that function "pointer" variable $to_host_path_cmd is set to the
1804# appropriate value, based on the value of $to_host_file_cmd.
1805to_host_path_cmd=
1806func_init_to_host_path_cmd ()
1807{
1808 $opt_debug
1809 if test -z "$to_host_path_cmd"; then
1810 func_stripname 'func_convert_file_' '' "$to_host_file_cmd"
1811 to_host_path_cmd="func_convert_path_${func_stripname_result}"
1812 fi
1813}
1814
1815
1816# func_to_host_path ARG
1817# Converts the path ARG from $build format to $host format. Return result
1818# in func_to_host_path_result.
1819func_to_host_path ()
1820{
1821 $opt_debug
1822 func_init_to_host_path_cmd
1823 $to_host_path_cmd "$1"
1824}
1825# end func_to_host_path
1826
1827
1828# func_convert_path_noop ARG
1829# Copy ARG to func_to_host_path_result.
1830func_convert_path_noop ()
1831{
1832 func_to_host_path_result="$1"
1833}
1834# end func_convert_path_noop
1835
1836
1837# func_convert_path_msys_to_w32 ARG
1838# Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic
1839# conversion to w32 is not available inside the cwrapper. Returns result in
1840# func_to_host_path_result.
1841func_convert_path_msys_to_w32 ()
1842{
1843 $opt_debug
1844 func_to_host_path_result="$1"
1845 if test -n "$1"; then
1846 # Remove leading and trailing path separator characters from ARG. MSYS
1847 # behavior is inconsistent here; cygpath turns them into '.;' and ';.';
1848 # and winepath ignores them completely.
1849 func_stripname : : "$1"
1850 func_to_host_path_tmp1=$func_stripname_result
1851 func_convert_core_msys_to_w32 "$func_to_host_path_tmp1"
1852 func_to_host_path_result="$func_convert_core_msys_to_w32_result"
1853 func_convert_path_check : ";" \
1854 "$func_to_host_path_tmp1" "$func_to_host_path_result"
1855 func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
1856 fi
1857}
1858# end func_convert_path_msys_to_w32
1859
1860
1861# func_convert_path_cygwin_to_w32 ARG
1862# Convert path ARG from Cygwin to w32 format. Returns result in
1863# func_to_host_file_result.
1864func_convert_path_cygwin_to_w32 ()
1865{
1866 $opt_debug
1867 func_to_host_path_result="$1"
1868 if test -n "$1"; then
1869 # See func_convert_path_msys_to_w32:
1870 func_stripname : : "$1"
1871 func_to_host_path_tmp1=$func_stripname_result
1872 func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"`
1873 func_convert_path_check : ";" \
1874 "$func_to_host_path_tmp1" "$func_to_host_path_result"
1875 func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
1876 fi
1877}
1878# end func_convert_path_cygwin_to_w32
1879
1880
1881# func_convert_path_nix_to_w32 ARG
1882# Convert path ARG from *nix to w32 format. Requires a wine environment and
1883# a working winepath. Returns result in func_to_host_file_result.
1884func_convert_path_nix_to_w32 ()
1885{
1886 $opt_debug
1887 func_to_host_path_result="$1"
1888 if test -n "$1"; then
1889 # See func_convert_path_msys_to_w32:
1890 func_stripname : : "$1"
1891 func_to_host_path_tmp1=$func_stripname_result
1892 func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1"
1893 func_to_host_path_result="$func_convert_core_path_wine_to_w32_result"
1894 func_convert_path_check : ";" \
1895 "$func_to_host_path_tmp1" "$func_to_host_path_result"
1896 func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
1897 fi
1898}
1899# end func_convert_path_nix_to_w32
1900
1901
1902# func_convert_path_msys_to_cygwin ARG
1903# Convert path ARG from MSYS to Cygwin format. Requires LT_CYGPATH set.
1904# Returns result in func_to_host_file_result.
1905func_convert_path_msys_to_cygwin ()
1906{
1907 $opt_debug
1908 func_to_host_path_result="$1"
1909 if test -n "$1"; then
1910 # See func_convert_path_msys_to_w32:
1911 func_stripname : : "$1"
1912 func_to_host_path_tmp1=$func_stripname_result
1913 func_convert_core_msys_to_w32 "$func_to_host_path_tmp1"
1914 func_cygpath -u -p "$func_convert_core_msys_to_w32_result"
1915 func_to_host_path_result="$func_cygpath_result"
1916 func_convert_path_check : : \
1917 "$func_to_host_path_tmp1" "$func_to_host_path_result"
1918 func_convert_path_front_back_pathsep ":*" "*:" : "$1"
1919 fi
1920}
1921# end func_convert_path_msys_to_cygwin
1922
1923
1924# func_convert_path_nix_to_cygwin ARG
1925# Convert path ARG from *nix to Cygwin format. Requires Cygwin installed in a
1926# a wine environment, working winepath, and LT_CYGPATH set. Returns result in
1927# func_to_host_file_result.
1928func_convert_path_nix_to_cygwin ()
1929{
1930 $opt_debug
1931 func_to_host_path_result="$1"
1932 if test -n "$1"; then
1933 # Remove leading and trailing path separator characters from
1934 # ARG. msys behavior is inconsistent here, cygpath turns them
1935 # into '.;' and ';.', and winepath ignores them completely.
1936 func_stripname : : "$1"
1937 func_to_host_path_tmp1=$func_stripname_result
1938 func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1"
1939 func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result"
1940 func_to_host_path_result="$func_cygpath_result"
1941 func_convert_path_check : : \
1942 "$func_to_host_path_tmp1" "$func_to_host_path_result"
1943 func_convert_path_front_back_pathsep ":*" "*:" : "$1"
1944 fi
1945}
1946# end func_convert_path_nix_to_cygwin
1947
1948
1100# func_mode_compile arg... 1949# func_mode_compile arg...
1101func_mode_compile () 1950func_mode_compile ()
1102{ 1951{
@@ -1137,12 +1986,12 @@ func_mode_compile ()
1137 ;; 1986 ;;
1138 1987
1139 -pie | -fpie | -fPIE) 1988 -pie | -fpie | -fPIE)
1140 pie_flag="$pie_flag $arg" 1989 func_append pie_flag " $arg"
1141 continue 1990 continue
1142 ;; 1991 ;;
1143 1992
1144 -shared | -static | -prefer-pic | -prefer-non-pic) 1993 -shared | -static | -prefer-pic | -prefer-non-pic)
1145 later="$later $arg" 1994 func_append later " $arg"
1146 continue 1995 continue
1147 ;; 1996 ;;
1148 1997
@@ -1163,15 +2012,14 @@ func_mode_compile ()
1163 save_ifs="$IFS"; IFS=',' 2012 save_ifs="$IFS"; IFS=','
1164 for arg in $args; do 2013 for arg in $args; do
1165 IFS="$save_ifs" 2014 IFS="$save_ifs"
1166 func_quote_for_eval "$arg" 2015 func_append_quoted lastarg "$arg"
1167 lastarg="$lastarg $func_quote_for_eval_result"
1168 done 2016 done
1169 IFS="$save_ifs" 2017 IFS="$save_ifs"
1170 func_stripname ' ' '' "$lastarg" 2018 func_stripname ' ' '' "$lastarg"
1171 lastarg=$func_stripname_result 2019 lastarg=$func_stripname_result
1172 2020
1173 # Add the arguments to base_compile. 2021 # Add the arguments to base_compile.
1174 base_compile="$base_compile $lastarg" 2022 func_append base_compile " $lastarg"
1175 continue 2023 continue
1176 ;; 2024 ;;
1177 2025
@@ -1187,8 +2035,7 @@ func_mode_compile ()
1187 esac # case $arg_mode 2035 esac # case $arg_mode
1188 2036
1189 # Aesthetically quote the previous argument. 2037 # Aesthetically quote the previous argument.
1190 func_quote_for_eval "$lastarg" 2038 func_append_quoted base_compile "$lastarg"
1191 base_compile="$base_compile $func_quote_for_eval_result"
1192 done # for arg 2039 done # for arg
1193 2040
1194 case $arg_mode in 2041 case $arg_mode in
@@ -1213,7 +2060,7 @@ func_mode_compile ()
1213 *.[cCFSifmso] | \ 2060 *.[cCFSifmso] | \
1214 *.ada | *.adb | *.ads | *.asm | \ 2061 *.ada | *.adb | *.ads | *.asm | \
1215 *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \ 2062 *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \
1216 *.[fF][09]? | *.for | *.java | *.obj | *.sx) 2063 *.[fF][09]? | *.for | *.java | *.go | *.obj | *.sx | *.cu | *.cup)
1217 func_xform "$libobj" 2064 func_xform "$libobj"
1218 libobj=$func_xform_result 2065 libobj=$func_xform_result
1219 ;; 2066 ;;
@@ -1288,7 +2135,7 @@ func_mode_compile ()
1288 # Calculate the filename of the output object if compiler does 2135 # Calculate the filename of the output object if compiler does
1289 # not support -o with -c 2136 # not support -o with -c
1290 if test "$compiler_c_o" = no; then 2137 if test "$compiler_c_o" = no; then
1291 output_obj=`$ECHO "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext} 2138 output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.${objext}
1292 lockfile="$output_obj.lock" 2139 lockfile="$output_obj.lock"
1293 else 2140 else
1294 output_obj= 2141 output_obj=
@@ -1319,17 +2166,16 @@ compiler."
1319 $opt_dry_run || $RM $removelist 2166 $opt_dry_run || $RM $removelist
1320 exit $EXIT_FAILURE 2167 exit $EXIT_FAILURE
1321 fi 2168 fi
1322 removelist="$removelist $output_obj" 2169 func_append removelist " $output_obj"
1323 $ECHO "$srcfile" > "$lockfile" 2170 $ECHO "$srcfile" > "$lockfile"
1324 fi 2171 fi
1325 2172
1326 $opt_dry_run || $RM $removelist 2173 $opt_dry_run || $RM $removelist
1327 removelist="$removelist $lockfile" 2174 func_append removelist " $lockfile"
1328 trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 2175 trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15
1329 2176
1330 if test -n "$fix_srcfile_path"; then 2177 func_to_tool_file "$srcfile" func_convert_file_msys_to_w32
1331 eval srcfile=\"$fix_srcfile_path\" 2178 srcfile=$func_to_tool_file_result
1332 fi
1333 func_quote_for_eval "$srcfile" 2179 func_quote_for_eval "$srcfile"
1334 qsrcfile=$func_quote_for_eval_result 2180 qsrcfile=$func_quote_for_eval_result
1335 2181
@@ -1349,7 +2195,7 @@ compiler."
1349 2195
1350 if test -z "$output_obj"; then 2196 if test -z "$output_obj"; then
1351 # Place PIC objects in $objdir 2197 # Place PIC objects in $objdir
1352 command="$command -o $lobj" 2198 func_append command " -o $lobj"
1353 fi 2199 fi
1354 2200
1355 func_show_eval_locale "$command" \ 2201 func_show_eval_locale "$command" \
@@ -1396,11 +2242,11 @@ compiler."
1396 command="$base_compile $qsrcfile $pic_flag" 2242 command="$base_compile $qsrcfile $pic_flag"
1397 fi 2243 fi
1398 if test "$compiler_c_o" = yes; then 2244 if test "$compiler_c_o" = yes; then
1399 command="$command -o $obj" 2245 func_append command " -o $obj"
1400 fi 2246 fi
1401 2247
1402 # Suppress compiler output if we already did a PIC compilation. 2248 # Suppress compiler output if we already did a PIC compilation.
1403 command="$command$suppress_output" 2249 func_append command "$suppress_output"
1404 func_show_eval_locale "$command" \ 2250 func_show_eval_locale "$command" \
1405 '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 2251 '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE'
1406 2252
@@ -1445,13 +2291,13 @@ compiler."
1445} 2291}
1446 2292
1447$opt_help || { 2293$opt_help || {
1448test "$mode" = compile && func_mode_compile ${1+"$@"} 2294 test "$opt_mode" = compile && func_mode_compile ${1+"$@"}
1449} 2295}
1450 2296
1451func_mode_help () 2297func_mode_help ()
1452{ 2298{
1453 # We need to display help for each of the modes. 2299 # We need to display help for each of the modes.
1454 case $mode in 2300 case $opt_mode in
1455 "") 2301 "")
1456 # Generic help is extracted from the usage comments 2302 # Generic help is extracted from the usage comments
1457 # at the start of this file. 2303 # at the start of this file.
@@ -1482,10 +2328,11 @@ This mode accepts the following additional options:
1482 2328
1483 -o OUTPUT-FILE set the output file name to OUTPUT-FILE 2329 -o OUTPUT-FILE set the output file name to OUTPUT-FILE
1484 -no-suppress do not suppress compiler output for multiple passes 2330 -no-suppress do not suppress compiler output for multiple passes
1485 -prefer-pic try to building PIC objects only 2331 -prefer-pic try to build PIC objects only
1486 -prefer-non-pic try to building non-PIC objects only 2332 -prefer-non-pic try to build non-PIC objects only
1487 -shared do not build a \`.o' file suitable for static linking 2333 -shared do not build a \`.o' file suitable for static linking
1488 -static only build a \`.o' file suitable for static linking 2334 -static only build a \`.o' file suitable for static linking
2335 -Wc,FLAG pass FLAG directly to the compiler
1489 2336
1490COMPILE-COMMAND is a command to be used in creating a \`standard' object file 2337COMPILE-COMMAND is a command to be used in creating a \`standard' object file
1491from the given SOURCEFILE. 2338from the given SOURCEFILE.
@@ -1538,7 +2385,7 @@ either the \`install' or \`cp' program.
1538 2385
1539The following components of INSTALL-COMMAND are treated specially: 2386The following components of INSTALL-COMMAND are treated specially:
1540 2387
1541 -inst-prefix PREFIX-DIR Use PREFIX-DIR as a staging area for installation 2388 -inst-prefix-dir PREFIX-DIR Use PREFIX-DIR as a staging area for installation
1542 2389
1543The rest of the components are interpreted as arguments to that command (only 2390The rest of the components are interpreted as arguments to that command (only
1544BSD-compatible install options are recognized)." 2391BSD-compatible install options are recognized)."
@@ -1558,6 +2405,8 @@ The following components of LINK-COMMAND are treated specially:
1558 2405
1559 -all-static do not do any dynamic linking at all 2406 -all-static do not do any dynamic linking at all
1560 -avoid-version do not add a version suffix if possible 2407 -avoid-version do not add a version suffix if possible
2408 -bindir BINDIR specify path to binaries directory (for systems where
2409 libraries must be found in the PATH setting at runtime)
1561 -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime 2410 -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime
1562 -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols 2411 -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols
1563 -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) 2412 -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
@@ -1586,6 +2435,11 @@ The following components of LINK-COMMAND are treated specially:
1586 -version-info CURRENT[:REVISION[:AGE]] 2435 -version-info CURRENT[:REVISION[:AGE]]
1587 specify library version info [each variable defaults to 0] 2436 specify library version info [each variable defaults to 0]
1588 -weak LIBNAME declare that the target provides the LIBNAME interface 2437 -weak LIBNAME declare that the target provides the LIBNAME interface
2438 -Wc,FLAG
2439 -Xcompiler FLAG pass linker-specific FLAG directly to the compiler
2440 -Wl,FLAG
2441 -Xlinker FLAG pass linker-specific FLAG directly to the linker
2442 -XCClinker FLAG pass link-specific FLAG to the compiler driver (CC)
1589 2443
1590All other options (arguments beginning with \`-') are ignored. 2444All other options (arguments beginning with \`-') are ignored.
1591 2445
@@ -1619,18 +2473,44 @@ Otherwise, only FILE itself is deleted using RM."
1619 ;; 2473 ;;
1620 2474
1621 *) 2475 *)
1622 func_fatal_help "invalid operation mode \`$mode'" 2476 func_fatal_help "invalid operation mode \`$opt_mode'"
1623 ;; 2477 ;;
1624 esac 2478 esac
1625 2479
1626 $ECHO 2480 echo
1627 $ECHO "Try \`$progname --help' for more information about other modes." 2481 $ECHO "Try \`$progname --help' for more information about other modes."
1628
1629 exit $?
1630} 2482}
1631 2483
1632 # Now that we've collected a possible --mode arg, show help if necessary 2484# Now that we've collected a possible --mode arg, show help if necessary
1633 $opt_help && func_mode_help 2485if $opt_help; then
2486 if test "$opt_help" = :; then
2487 func_mode_help
2488 else
2489 {
2490 func_help noexit
2491 for opt_mode in compile link execute install finish uninstall clean; do
2492 func_mode_help
2493 done
2494 } | sed -n '1p; 2,$s/^Usage:/ or: /p'
2495 {
2496 func_help noexit
2497 for opt_mode in compile link execute install finish uninstall clean; do
2498 echo
2499 func_mode_help
2500 done
2501 } |
2502 sed '1d
2503 /^When reporting/,/^Report/{
2504 H
2505 d
2506 }
2507 $x
2508 /information about other modes/d
2509 /more detailed .*MODE/d
2510 s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/'
2511 fi
2512 exit $?
2513fi
1634 2514
1635 2515
1636# func_mode_execute arg... 2516# func_mode_execute arg...
@@ -1643,13 +2523,16 @@ func_mode_execute ()
1643 func_fatal_help "you must specify a COMMAND" 2523 func_fatal_help "you must specify a COMMAND"
1644 2524
1645 # Handle -dlopen flags immediately. 2525 # Handle -dlopen flags immediately.
1646 for file in $execute_dlfiles; do 2526 for file in $opt_dlopen; do
1647 test -f "$file" \ 2527 test -f "$file" \
1648 || func_fatal_help "\`$file' is not a file" 2528 || func_fatal_help "\`$file' is not a file"
1649 2529
1650 dir= 2530 dir=
1651 case $file in 2531 case $file in
1652 *.la) 2532 *.la)
2533 func_resolve_sysroot "$file"
2534 file=$func_resolve_sysroot_result
2535
1653 # Check to see that this really is a libtool archive. 2536 # Check to see that this really is a libtool archive.
1654 func_lalib_unsafe_p "$file" \ 2537 func_lalib_unsafe_p "$file" \
1655 || func_fatal_help "\`$lib' is not a valid libtool archive" 2538 || func_fatal_help "\`$lib' is not a valid libtool archive"
@@ -1671,7 +2554,7 @@ func_mode_execute ()
1671 dir="$func_dirname_result" 2554 dir="$func_dirname_result"
1672 2555
1673 if test -f "$dir/$objdir/$dlname"; then 2556 if test -f "$dir/$objdir/$dlname"; then
1674 dir="$dir/$objdir" 2557 func_append dir "/$objdir"
1675 else 2558 else
1676 if test ! -f "$dir/$dlname"; then 2559 if test ! -f "$dir/$dlname"; then
1677 func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 2560 func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'"
@@ -1712,7 +2595,7 @@ func_mode_execute ()
1712 for file 2595 for file
1713 do 2596 do
1714 case $file in 2597 case $file in
1715 -*) ;; 2598 -* | *.la | *.lo ) ;;
1716 *) 2599 *)
1717 # Do a test to see if this is really a libtool program. 2600 # Do a test to see if this is really a libtool program.
1718 if func_ltwrapper_script_p "$file"; then 2601 if func_ltwrapper_script_p "$file"; then
@@ -1728,8 +2611,7 @@ func_mode_execute ()
1728 ;; 2611 ;;
1729 esac 2612 esac
1730 # Quote arguments (to preserve shell metacharacters). 2613 # Quote arguments (to preserve shell metacharacters).
1731 func_quote_for_eval "$file" 2614 func_append_quoted args "$file"
1732 args="$args $func_quote_for_eval_result"
1733 done 2615 done
1734 2616
1735 if test "X$opt_dry_run" = Xfalse; then 2617 if test "X$opt_dry_run" = Xfalse; then
@@ -1754,29 +2636,66 @@ func_mode_execute ()
1754 # Display what would be done. 2636 # Display what would be done.
1755 if test -n "$shlibpath_var"; then 2637 if test -n "$shlibpath_var"; then
1756 eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\"" 2638 eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\""
1757 $ECHO "export $shlibpath_var" 2639 echo "export $shlibpath_var"
1758 fi 2640 fi
1759 $ECHO "$cmd$args" 2641 $ECHO "$cmd$args"
1760 exit $EXIT_SUCCESS 2642 exit $EXIT_SUCCESS
1761 fi 2643 fi
1762} 2644}
1763 2645
1764test "$mode" = execute && func_mode_execute ${1+"$@"} 2646test "$opt_mode" = execute && func_mode_execute ${1+"$@"}
1765 2647
1766 2648
1767# func_mode_finish arg... 2649# func_mode_finish arg...
1768func_mode_finish () 2650func_mode_finish ()
1769{ 2651{
1770 $opt_debug 2652 $opt_debug
1771 libdirs="$nonopt" 2653 libs=
2654 libdirs=
1772 admincmds= 2655 admincmds=
1773 2656
1774 if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then 2657 for opt in "$nonopt" ${1+"$@"}
1775 for dir 2658 do
1776 do 2659 if test -d "$opt"; then
1777 libdirs="$libdirs $dir" 2660 func_append libdirs " $opt"
1778 done
1779 2661
2662 elif test -f "$opt"; then
2663 if func_lalib_unsafe_p "$opt"; then
2664 func_append libs " $opt"
2665 else
2666 func_warning "\`$opt' is not a valid libtool archive"
2667 fi
2668
2669 else
2670 func_fatal_error "invalid argument \`$opt'"
2671 fi
2672 done
2673
2674 if test -n "$libs"; then
2675 if test -n "$lt_sysroot"; then
2676 sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"`
2677 sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;"
2678 else
2679 sysroot_cmd=
2680 fi
2681
2682 # Remove sysroot references
2683 if $opt_dry_run; then
2684 for lib in $libs; do
2685 echo "removing references to $lt_sysroot and \`=' prefixes from $lib"
2686 done
2687 else
2688 tmpdir=`func_mktempdir`
2689 for lib in $libs; do
2690 sed -e "${sysroot_cmd} s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \
2691 > $tmpdir/tmp-la
2692 mv -f $tmpdir/tmp-la $lib
2693 done
2694 ${RM}r "$tmpdir"
2695 fi
2696 fi
2697
2698 if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
1780 for libdir in $libdirs; do 2699 for libdir in $libdirs; do
1781 if test -n "$finish_cmds"; then 2700 if test -n "$finish_cmds"; then
1782 # Do each command in the finish commands. 2701 # Do each command in the finish commands.
@@ -1786,7 +2705,7 @@ func_mode_finish ()
1786 if test -n "$finish_eval"; then 2705 if test -n "$finish_eval"; then
1787 # Do the single finish_eval. 2706 # Do the single finish_eval.
1788 eval cmds=\"$finish_eval\" 2707 eval cmds=\"$finish_eval\"
1789 $opt_dry_run || eval "$cmds" || admincmds="$admincmds 2708 $opt_dry_run || eval "$cmds" || func_append admincmds "
1790 $cmds" 2709 $cmds"
1791 fi 2710 fi
1792 done 2711 done
@@ -1795,53 +2714,55 @@ func_mode_finish ()
1795 # Exit here if they wanted silent mode. 2714 # Exit here if they wanted silent mode.
1796 $opt_silent && exit $EXIT_SUCCESS 2715 $opt_silent && exit $EXIT_SUCCESS
1797 2716
1798 $ECHO "X----------------------------------------------------------------------" | $Xsed 2717 if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
1799 $ECHO "Libraries have been installed in:" 2718 echo "----------------------------------------------------------------------"
1800 for libdir in $libdirs; do 2719 echo "Libraries have been installed in:"
1801 $ECHO " $libdir" 2720 for libdir in $libdirs; do
1802 done 2721 $ECHO " $libdir"
1803 $ECHO 2722 done
1804 $ECHO "If you ever happen to want to link against installed libraries" 2723 echo
1805 $ECHO "in a given directory, LIBDIR, you must either use libtool, and" 2724 echo "If you ever happen to want to link against installed libraries"
1806 $ECHO "specify the full pathname of the library, or use the \`-LLIBDIR'" 2725 echo "in a given directory, LIBDIR, you must either use libtool, and"
1807 $ECHO "flag during linking and do at least one of the following:" 2726 echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
1808 if test -n "$shlibpath_var"; then 2727 echo "flag during linking and do at least one of the following:"
1809 $ECHO " - add LIBDIR to the \`$shlibpath_var' environment variable" 2728 if test -n "$shlibpath_var"; then
1810 $ECHO " during execution" 2729 echo " - add LIBDIR to the \`$shlibpath_var' environment variable"
1811 fi 2730 echo " during execution"
1812 if test -n "$runpath_var"; then 2731 fi
1813 $ECHO " - add LIBDIR to the \`$runpath_var' environment variable" 2732 if test -n "$runpath_var"; then
1814 $ECHO " during linking" 2733 echo " - add LIBDIR to the \`$runpath_var' environment variable"
1815 fi 2734 echo " during linking"
1816 if test -n "$hardcode_libdir_flag_spec"; then 2735 fi
1817 libdir=LIBDIR 2736 if test -n "$hardcode_libdir_flag_spec"; then
1818 eval flag=\"$hardcode_libdir_flag_spec\" 2737 libdir=LIBDIR
2738 eval flag=\"$hardcode_libdir_flag_spec\"
1819 2739
1820 $ECHO " - use the \`$flag' linker flag" 2740 $ECHO " - use the \`$flag' linker flag"
1821 fi 2741 fi
1822 if test -n "$admincmds"; then 2742 if test -n "$admincmds"; then
1823 $ECHO " - have your system administrator run these commands:$admincmds" 2743 $ECHO " - have your system administrator run these commands:$admincmds"
1824 fi 2744 fi
1825 if test -f /etc/ld.so.conf; then 2745 if test -f /etc/ld.so.conf; then
1826 $ECHO " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" 2746 echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
1827 fi 2747 fi
1828 $ECHO 2748 echo
1829 2749
1830 $ECHO "See any operating system documentation about shared libraries for" 2750 echo "See any operating system documentation about shared libraries for"
1831 case $host in 2751 case $host in
1832 solaris2.[6789]|solaris2.1[0-9]) 2752 solaris2.[6789]|solaris2.1[0-9])
1833 $ECHO "more information, such as the ld(1), crle(1) and ld.so(8) manual" 2753 echo "more information, such as the ld(1), crle(1) and ld.so(8) manual"
1834 $ECHO "pages." 2754 echo "pages."
1835 ;; 2755 ;;
1836 *) 2756 *)
1837 $ECHO "more information, such as the ld(1) and ld.so(8) manual pages." 2757 echo "more information, such as the ld(1) and ld.so(8) manual pages."
1838 ;; 2758 ;;
1839 esac 2759 esac
1840 $ECHO "X----------------------------------------------------------------------" | $Xsed 2760 echo "----------------------------------------------------------------------"
2761 fi
1841 exit $EXIT_SUCCESS 2762 exit $EXIT_SUCCESS
1842} 2763}
1843 2764
1844test "$mode" = finish && func_mode_finish ${1+"$@"} 2765test "$opt_mode" = finish && func_mode_finish ${1+"$@"}
1845 2766
1846 2767
1847# func_mode_install arg... 2768# func_mode_install arg...
@@ -1852,7 +2773,7 @@ func_mode_install ()
1852 # install_prog (especially on Windows NT). 2773 # install_prog (especially on Windows NT).
1853 if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || 2774 if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
1854 # Allow the use of GNU shtool's install command. 2775 # Allow the use of GNU shtool's install command.
1855 $ECHO "X$nonopt" | $GREP shtool >/dev/null; then 2776 case $nonopt in *shtool*) :;; *) false;; esac; then
1856 # Aesthetically quote it. 2777 # Aesthetically quote it.
1857 func_quote_for_eval "$nonopt" 2778 func_quote_for_eval "$nonopt"
1858 install_prog="$func_quote_for_eval_result " 2779 install_prog="$func_quote_for_eval_result "
@@ -1866,7 +2787,12 @@ func_mode_install ()
1866 # The real first argument should be the name of the installation program. 2787 # The real first argument should be the name of the installation program.
1867 # Aesthetically quote it. 2788 # Aesthetically quote it.
1868 func_quote_for_eval "$arg" 2789 func_quote_for_eval "$arg"
1869 install_prog="$install_prog$func_quote_for_eval_result" 2790 func_append install_prog "$func_quote_for_eval_result"
2791 install_shared_prog=$install_prog
2792 case " $install_prog " in
2793 *[\\\ /]cp\ *) install_cp=: ;;
2794 *) install_cp=false ;;
2795 esac
1870 2796
1871 # We need to accept at least all the BSD install flags. 2797 # We need to accept at least all the BSD install flags.
1872 dest= 2798 dest=
@@ -1876,10 +2802,12 @@ func_mode_install ()
1876 install_type= 2802 install_type=
1877 isdir=no 2803 isdir=no
1878 stripme= 2804 stripme=
2805 no_mode=:
1879 for arg 2806 for arg
1880 do 2807 do
2808 arg2=
1881 if test -n "$dest"; then 2809 if test -n "$dest"; then
1882 files="$files $dest" 2810 func_append files " $dest"
1883 dest=$arg 2811 dest=$arg
1884 continue 2812 continue
1885 fi 2813 fi
@@ -1887,10 +2815,9 @@ func_mode_install ()
1887 case $arg in 2815 case $arg in
1888 -d) isdir=yes ;; 2816 -d) isdir=yes ;;
1889 -f) 2817 -f)
1890 case " $install_prog " in 2818 if $install_cp; then :; else
1891 *[\\\ /]cp\ *) ;; 2819 prev=$arg
1892 *) prev=$arg ;; 2820 fi
1893 esac
1894 ;; 2821 ;;
1895 -g | -m | -o) 2822 -g | -m | -o)
1896 prev=$arg 2823 prev=$arg
@@ -1904,6 +2831,10 @@ func_mode_install ()
1904 *) 2831 *)
1905 # If the previous option needed an argument, then skip it. 2832 # If the previous option needed an argument, then skip it.
1906 if test -n "$prev"; then 2833 if test -n "$prev"; then
2834 if test "x$prev" = x-m && test -n "$install_override_mode"; then
2835 arg2=$install_override_mode
2836 no_mode=false
2837 fi
1907 prev= 2838 prev=
1908 else 2839 else
1909 dest=$arg 2840 dest=$arg
@@ -1914,7 +2845,11 @@ func_mode_install ()
1914 2845
1915 # Aesthetically quote the argument. 2846 # Aesthetically quote the argument.
1916 func_quote_for_eval "$arg" 2847 func_quote_for_eval "$arg"
1917 install_prog="$install_prog $func_quote_for_eval_result" 2848 func_append install_prog " $func_quote_for_eval_result"
2849 if test -n "$arg2"; then
2850 func_quote_for_eval "$arg2"
2851 fi
2852 func_append install_shared_prog " $func_quote_for_eval_result"
1918 done 2853 done
1919 2854
1920 test -z "$install_prog" && \ 2855 test -z "$install_prog" && \
@@ -1923,6 +2858,13 @@ func_mode_install ()
1923 test -n "$prev" && \ 2858 test -n "$prev" && \
1924 func_fatal_help "the \`$prev' option requires an argument" 2859 func_fatal_help "the \`$prev' option requires an argument"
1925 2860
2861 if test -n "$install_override_mode" && $no_mode; then
2862 if $install_cp; then :; else
2863 func_quote_for_eval "$install_override_mode"
2864 func_append install_shared_prog " -m $func_quote_for_eval_result"
2865 fi
2866 fi
2867
1926 if test -z "$files"; then 2868 if test -z "$files"; then
1927 if test -z "$dest"; then 2869 if test -z "$dest"; then
1928 func_fatal_help "no file or destination specified" 2870 func_fatal_help "no file or destination specified"
@@ -1977,10 +2919,13 @@ func_mode_install ()
1977 case $file in 2919 case $file in
1978 *.$libext) 2920 *.$libext)
1979 # Do the static libraries later. 2921 # Do the static libraries later.
1980 staticlibs="$staticlibs $file" 2922 func_append staticlibs " $file"
1981 ;; 2923 ;;
1982 2924
1983 *.la) 2925 *.la)
2926 func_resolve_sysroot "$file"
2927 file=$func_resolve_sysroot_result
2928
1984 # Check to see that this really is a libtool archive. 2929 # Check to see that this really is a libtool archive.
1985 func_lalib_unsafe_p "$file" \ 2930 func_lalib_unsafe_p "$file" \
1986 || func_fatal_help "\`$file' is not a valid libtool archive" 2931 || func_fatal_help "\`$file' is not a valid libtool archive"
@@ -1994,23 +2939,23 @@ func_mode_install ()
1994 if test "X$destdir" = "X$libdir"; then 2939 if test "X$destdir" = "X$libdir"; then
1995 case "$current_libdirs " in 2940 case "$current_libdirs " in
1996 *" $libdir "*) ;; 2941 *" $libdir "*) ;;
1997 *) current_libdirs="$current_libdirs $libdir" ;; 2942 *) func_append current_libdirs " $libdir" ;;
1998 esac 2943 esac
1999 else 2944 else
2000 # Note the libdir as a future libdir. 2945 # Note the libdir as a future libdir.
2001 case "$future_libdirs " in 2946 case "$future_libdirs " in
2002 *" $libdir "*) ;; 2947 *" $libdir "*) ;;
2003 *) future_libdirs="$future_libdirs $libdir" ;; 2948 *) func_append future_libdirs " $libdir" ;;
2004 esac 2949 esac
2005 fi 2950 fi
2006 2951
2007 func_dirname "$file" "/" "" 2952 func_dirname "$file" "/" ""
2008 dir="$func_dirname_result" 2953 dir="$func_dirname_result"
2009 dir="$dir$objdir" 2954 func_append dir "$objdir"
2010 2955
2011 if test -n "$relink_command"; then 2956 if test -n "$relink_command"; then
2012 # Determine the prefix the user has applied to our future dir. 2957 # Determine the prefix the user has applied to our future dir.
2013 inst_prefix_dir=`$ECHO "X$destdir" | $Xsed -e "s%$libdir\$%%"` 2958 inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"`
2014 2959
2015 # Don't allow the user to place us outside of our expected 2960 # Don't allow the user to place us outside of our expected
2016 # location b/c this prevents finding dependent libraries that 2961 # location b/c this prevents finding dependent libraries that
@@ -2023,9 +2968,9 @@ func_mode_install ()
2023 2968
2024 if test -n "$inst_prefix_dir"; then 2969 if test -n "$inst_prefix_dir"; then
2025 # Stick the inst_prefix_dir data into the link command. 2970 # Stick the inst_prefix_dir data into the link command.
2026 relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` 2971 relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
2027 else 2972 else
2028 relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%%"` 2973 relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"`
2029 fi 2974 fi
2030 2975
2031 func_warning "relinking \`$file'" 2976 func_warning "relinking \`$file'"
@@ -2043,7 +2988,7 @@ func_mode_install ()
2043 test -n "$relink_command" && srcname="$realname"T 2988 test -n "$relink_command" && srcname="$realname"T
2044 2989
2045 # Install the shared library and build the symlinks. 2990 # Install the shared library and build the symlinks.
2046 func_show_eval "$install_prog $dir/$srcname $destdir/$realname" \ 2991 func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \
2047 'exit $?' 2992 'exit $?'
2048 tstripme="$stripme" 2993 tstripme="$stripme"
2049 case $host_os in 2994 case $host_os in
@@ -2083,7 +3028,7 @@ func_mode_install ()
2083 func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' 3028 func_show_eval "$install_prog $instname $destdir/$name" 'exit $?'
2084 3029
2085 # Maybe install the static library, too. 3030 # Maybe install the static library, too.
2086 test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library" 3031 test -n "$old_library" && func_append staticlibs " $dir/$old_library"
2087 ;; 3032 ;;
2088 3033
2089 *.lo) 3034 *.lo)
@@ -2183,7 +3128,7 @@ func_mode_install ()
2183 if test -f "$lib"; then 3128 if test -f "$lib"; then
2184 func_source "$lib" 3129 func_source "$lib"
2185 fi 3130 fi
2186 libfile="$libdir/"`$ECHO "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test 3131 libfile="$libdir/"`$ECHO "$lib" | $SED 's%^.*/%%g'` ### testsuite: skip nested quoting test
2187 if test -n "$libdir" && test ! -f "$libfile"; then 3132 if test -n "$libdir" && test ! -f "$libfile"; then
2188 func_warning "\`$lib' has not been installed in \`$libdir'" 3133 func_warning "\`$lib' has not been installed in \`$libdir'"
2189 finalize=no 3134 finalize=no
@@ -2202,7 +3147,7 @@ func_mode_install ()
2202 file="$func_basename_result" 3147 file="$func_basename_result"
2203 outputname="$tmpdir/$file" 3148 outputname="$tmpdir/$file"
2204 # Replace the output file specification. 3149 # Replace the output file specification.
2205 relink_command=`$ECHO "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'` 3150 relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'`
2206 3151
2207 $opt_silent || { 3152 $opt_silent || {
2208 func_quote_for_expand "$relink_command" 3153 func_quote_for_expand "$relink_command"
@@ -2221,7 +3166,7 @@ func_mode_install ()
2221 } 3166 }
2222 else 3167 else
2223 # Install the binary that we compiled earlier. 3168 # Install the binary that we compiled earlier.
2224 file=`$ECHO "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"` 3169 file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"`
2225 fi 3170 fi
2226 fi 3171 fi
2227 3172
@@ -2257,11 +3202,13 @@ func_mode_install ()
2257 3202
2258 # Set up the ranlib parameters. 3203 # Set up the ranlib parameters.
2259 oldlib="$destdir/$name" 3204 oldlib="$destdir/$name"
3205 func_to_tool_file "$oldlib" func_convert_file_msys_to_w32
3206 tool_oldlib=$func_to_tool_file_result
2260 3207
2261 func_show_eval "$install_prog \$file \$oldlib" 'exit $?' 3208 func_show_eval "$install_prog \$file \$oldlib" 'exit $?'
2262 3209
2263 if test -n "$stripme" && test -n "$old_striplib"; then 3210 if test -n "$stripme" && test -n "$old_striplib"; then
2264 func_show_eval "$old_striplib $oldlib" 'exit $?' 3211 func_show_eval "$old_striplib $tool_oldlib" 'exit $?'
2265 fi 3212 fi
2266 3213
2267 # Do each command in the postinstall commands. 3214 # Do each command in the postinstall commands.
@@ -2280,7 +3227,7 @@ func_mode_install ()
2280 fi 3227 fi
2281} 3228}
2282 3229
2283test "$mode" = install && func_mode_install ${1+"$@"} 3230test "$opt_mode" = install && func_mode_install ${1+"$@"}
2284 3231
2285 3232
2286# func_generate_dlsyms outputname originator pic_p 3233# func_generate_dlsyms outputname originator pic_p
@@ -2323,6 +3270,22 @@ func_generate_dlsyms ()
2323extern \"C\" { 3270extern \"C\" {
2324#endif 3271#endif
2325 3272
3273#if defined(__GNUC__) && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4))
3274#pragma GCC diagnostic ignored \"-Wstrict-prototypes\"
3275#endif
3276
3277/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */
3278#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE)
3279/* DATA imports from DLLs on WIN32 con't be const, because runtime
3280 relocations are performed -- see ld's documentation on pseudo-relocs. */
3281# define LT_DLSYM_CONST
3282#elif defined(__osf__)
3283/* This system does not cope well with relocations in const data. */
3284# define LT_DLSYM_CONST
3285#else
3286# define LT_DLSYM_CONST const
3287#endif
3288
2326/* External symbol declarations for the compiler. */\ 3289/* External symbol declarations for the compiler. */\
2327" 3290"
2328 3291
@@ -2332,10 +3295,11 @@ extern \"C\" {
2332 $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist" 3295 $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist"
2333 3296
2334 # Add our own program objects to the symbol list. 3297 # Add our own program objects to the symbol list.
2335 progfiles=`$ECHO "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` 3298 progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP`
2336 for progfile in $progfiles; do 3299 for progfile in $progfiles; do
2337 func_verbose "extracting global C symbols from \`$progfile'" 3300 func_to_tool_file "$progfile" func_convert_file_msys_to_w32
2338 $opt_dry_run || eval "$NM $progfile | $global_symbol_pipe >> '$nlist'" 3301 func_verbose "extracting global C symbols from \`$func_to_tool_file_result'"
3302 $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'"
2339 done 3303 done
2340 3304
2341 if test -n "$exclude_expsyms"; then 3305 if test -n "$exclude_expsyms"; then
@@ -2371,7 +3335,7 @@ extern \"C\" {
2371 eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' 3335 eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
2372 eval '$MV "$nlist"T "$nlist"' 3336 eval '$MV "$nlist"T "$nlist"'
2373 case $host in 3337 case $host in
2374 *cygwin | *mingw* | *cegcc* ) 3338 *cygwin* | *mingw* | *cegcc* )
2375 eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' 3339 eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
2376 eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' 3340 eval 'cat "$nlist" >> "$output_objdir/$outputname.def"'
2377 ;; 3341 ;;
@@ -2384,10 +3348,52 @@ extern \"C\" {
2384 func_verbose "extracting global C symbols from \`$dlprefile'" 3348 func_verbose "extracting global C symbols from \`$dlprefile'"
2385 func_basename "$dlprefile" 3349 func_basename "$dlprefile"
2386 name="$func_basename_result" 3350 name="$func_basename_result"
2387 $opt_dry_run || { 3351 case $host in
2388 eval '$ECHO ": $name " >> "$nlist"' 3352 *cygwin* | *mingw* | *cegcc* )
2389 eval "$NM $dlprefile 2>/dev/null | $global_symbol_pipe >> '$nlist'" 3353 # if an import library, we need to obtain dlname
2390 } 3354 if func_win32_import_lib_p "$dlprefile"; then
3355 func_tr_sh "$dlprefile"
3356 eval "curr_lafile=\$libfile_$func_tr_sh_result"
3357 dlprefile_dlbasename=""
3358 if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then
3359 # Use subshell, to avoid clobbering current variable values
3360 dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"`
3361 if test -n "$dlprefile_dlname" ; then
3362 func_basename "$dlprefile_dlname"
3363 dlprefile_dlbasename="$func_basename_result"
3364 else
3365 # no lafile. user explicitly requested -dlpreopen <import library>.
3366 $sharedlib_from_linklib_cmd "$dlprefile"
3367 dlprefile_dlbasename=$sharedlib_from_linklib_result
3368 fi
3369 fi
3370 $opt_dry_run || {
3371 if test -n "$dlprefile_dlbasename" ; then
3372 eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"'
3373 else
3374 func_warning "Could not compute DLL name from $name"
3375 eval '$ECHO ": $name " >> "$nlist"'
3376 fi
3377 func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
3378 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe |
3379 $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'"
3380 }
3381 else # not an import lib
3382 $opt_dry_run || {
3383 eval '$ECHO ": $name " >> "$nlist"'
3384 func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
3385 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'"
3386 }
3387 fi
3388 ;;
3389 *)
3390 $opt_dry_run || {
3391 eval '$ECHO ": $name " >> "$nlist"'
3392 func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
3393 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'"
3394 }
3395 ;;
3396 esac
2391 done 3397 done
2392 3398
2393 $opt_dry_run || { 3399 $opt_dry_run || {
@@ -2415,36 +3421,19 @@ extern \"C\" {
2415 if test -f "$nlist"S; then 3421 if test -f "$nlist"S; then
2416 eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"' 3422 eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"'
2417 else 3423 else
2418 $ECHO '/* NONE */' >> "$output_objdir/$my_dlsyms" 3424 echo '/* NONE */' >> "$output_objdir/$my_dlsyms"
2419 fi 3425 fi
2420 3426
2421 $ECHO >> "$output_objdir/$my_dlsyms" "\ 3427 echo >> "$output_objdir/$my_dlsyms" "\
2422 3428
2423/* The mapping between symbol names and symbols. */ 3429/* The mapping between symbol names and symbols. */
2424typedef struct { 3430typedef struct {
2425 const char *name; 3431 const char *name;
2426 void *address; 3432 void *address;
2427} lt_dlsymlist; 3433} lt_dlsymlist;
2428" 3434extern LT_DLSYM_CONST lt_dlsymlist
2429 case $host in
2430 *cygwin* | *mingw* | *cegcc* )
2431 $ECHO >> "$output_objdir/$my_dlsyms" "\
2432/* DATA imports from DLLs on WIN32 con't be const, because
2433 runtime relocations are performed -- see ld's documentation
2434 on pseudo-relocs. */"
2435 lt_dlsym_const= ;;
2436 *osf5*)
2437 echo >> "$output_objdir/$my_dlsyms" "\
2438/* This system does not cope well with relocations in const data */"
2439 lt_dlsym_const= ;;
2440 *)
2441 lt_dlsym_const=const ;;
2442 esac
2443
2444 $ECHO >> "$output_objdir/$my_dlsyms" "\
2445extern $lt_dlsym_const lt_dlsymlist
2446lt_${my_prefix}_LTX_preloaded_symbols[]; 3435lt_${my_prefix}_LTX_preloaded_symbols[];
2447$lt_dlsym_const lt_dlsymlist 3436LT_DLSYM_CONST lt_dlsymlist
2448lt_${my_prefix}_LTX_preloaded_symbols[] = 3437lt_${my_prefix}_LTX_preloaded_symbols[] =
2449{\ 3438{\
2450 { \"$my_originator\", (void *) 0 }," 3439 { \"$my_originator\", (void *) 0 },"
@@ -2457,7 +3446,7 @@ lt_${my_prefix}_LTX_preloaded_symbols[] =
2457 eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms" 3446 eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms"
2458 ;; 3447 ;;
2459 esac 3448 esac
2460 $ECHO >> "$output_objdir/$my_dlsyms" "\ 3449 echo >> "$output_objdir/$my_dlsyms" "\
2461 {0, (void *) 0} 3450 {0, (void *) 0}
2462}; 3451};
2463 3452
@@ -2484,7 +3473,7 @@ static const void *lt_preloaded_setup() {
2484 # linked before any other PIC object. But we must not use 3473 # linked before any other PIC object. But we must not use
2485 # pic_flag when linking with -static. The problem exists in 3474 # pic_flag when linking with -static. The problem exists in
2486 # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. 3475 # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
2487 *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) 3476 *-*-freebsd2.*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
2488 pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;; 3477 pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;;
2489 *-*-hpux*) 3478 *-*-hpux*)
2490 pic_flag_for_symtable=" $pic_flag" ;; 3479 pic_flag_for_symtable=" $pic_flag" ;;
@@ -2500,7 +3489,7 @@ static const void *lt_preloaded_setup() {
2500 for arg in $LTCFLAGS; do 3489 for arg in $LTCFLAGS; do
2501 case $arg in 3490 case $arg in
2502 -pie | -fpie | -fPIE) ;; 3491 -pie | -fpie | -fPIE) ;;
2503 *) symtab_cflags="$symtab_cflags $arg" ;; 3492 *) func_append symtab_cflags " $arg" ;;
2504 esac 3493 esac
2505 done 3494 done
2506 3495
@@ -2515,16 +3504,16 @@ static const void *lt_preloaded_setup() {
2515 case $host in 3504 case $host in
2516 *cygwin* | *mingw* | *cegcc* ) 3505 *cygwin* | *mingw* | *cegcc* )
2517 if test -f "$output_objdir/$my_outputname.def"; then 3506 if test -f "$output_objdir/$my_outputname.def"; then
2518 compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` 3507 compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
2519 finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` 3508 finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
2520 else 3509 else
2521 compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` 3510 compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"`
2522 finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` 3511 finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"`
2523 fi 3512 fi
2524 ;; 3513 ;;
2525 *) 3514 *)
2526 compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` 3515 compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"`
2527 finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` 3516 finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"`
2528 ;; 3517 ;;
2529 esac 3518 esac
2530 ;; 3519 ;;
@@ -2538,8 +3527,8 @@ static const void *lt_preloaded_setup() {
2538 # really was required. 3527 # really was required.
2539 3528
2540 # Nullify the symbol file. 3529 # Nullify the symbol file.
2541 compile_command=`$ECHO "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"` 3530 compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"`
2542 finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"` 3531 finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"`
2543 fi 3532 fi
2544} 3533}
2545 3534
@@ -2549,6 +3538,7 @@ static const void *lt_preloaded_setup() {
2549# Need a lot of goo to handle *both* DLLs and import libs 3538# Need a lot of goo to handle *both* DLLs and import libs
2550# Has to be a shell function in order to 'eat' the argument 3539# Has to be a shell function in order to 'eat' the argument
2551# that is supplied when $file_magic_command is called. 3540# that is supplied when $file_magic_command is called.
3541# Despite the name, also deal with 64 bit binaries.
2552func_win32_libid () 3542func_win32_libid ()
2553{ 3543{
2554 $opt_debug 3544 $opt_debug
@@ -2559,9 +3549,11 @@ func_win32_libid ()
2559 win32_libid_type="x86 archive import" 3549 win32_libid_type="x86 archive import"
2560 ;; 3550 ;;
2561 *ar\ archive*) # could be an import, or static 3551 *ar\ archive*) # could be an import, or static
3552 # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD.
2562 if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | 3553 if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null |
2563 $EGREP 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then 3554 $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then
2564 win32_nmres=`eval $NM -f posix -A $1 | 3555 func_to_tool_file "$1" func_convert_file_msys_to_w32
3556 win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" |
2565 $SED -n -e ' 3557 $SED -n -e '
2566 1,100{ 3558 1,100{
2567 / I /{ 3559 / I /{
@@ -2590,6 +3582,131 @@ func_win32_libid ()
2590 $ECHO "$win32_libid_type" 3582 $ECHO "$win32_libid_type"
2591} 3583}
2592 3584
3585# func_cygming_dll_for_implib ARG
3586#
3587# Platform-specific function to extract the
3588# name of the DLL associated with the specified
3589# import library ARG.
3590# Invoked by eval'ing the libtool variable
3591# $sharedlib_from_linklib_cmd
3592# Result is available in the variable
3593# $sharedlib_from_linklib_result
3594func_cygming_dll_for_implib ()
3595{
3596 $opt_debug
3597 sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"`
3598}
3599
3600# func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs
3601#
3602# The is the core of a fallback implementation of a
3603# platform-specific function to extract the name of the
3604# DLL associated with the specified import library LIBNAME.
3605#
3606# SECTION_NAME is either .idata$6 or .idata$7, depending
3607# on the platform and compiler that created the implib.
3608#
3609# Echos the name of the DLL associated with the
3610# specified import library.
3611func_cygming_dll_for_implib_fallback_core ()
3612{
3613 $opt_debug
3614 match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"`
3615 $OBJDUMP -s --section "$1" "$2" 2>/dev/null |
3616 $SED '/^Contents of section '"$match_literal"':/{
3617 # Place marker at beginning of archive member dllname section
3618 s/.*/====MARK====/
3619 p
3620 d
3621 }
3622 # These lines can sometimes be longer than 43 characters, but
3623 # are always uninteresting
3624 /:[ ]*file format pe[i]\{,1\}-/d
3625 /^In archive [^:]*:/d
3626 # Ensure marker is printed
3627 /^====MARK====/p
3628 # Remove all lines with less than 43 characters
3629 /^.\{43\}/!d
3630 # From remaining lines, remove first 43 characters
3631 s/^.\{43\}//' |
3632 $SED -n '
3633 # Join marker and all lines until next marker into a single line
3634 /^====MARK====/ b para
3635 H
3636 $ b para
3637 b
3638 :para
3639 x
3640 s/\n//g
3641 # Remove the marker
3642 s/^====MARK====//
3643 # Remove trailing dots and whitespace
3644 s/[\. \t]*$//
3645 # Print
3646 /./p' |
3647 # we now have a list, one entry per line, of the stringified
3648 # contents of the appropriate section of all members of the
3649 # archive which possess that section. Heuristic: eliminate
3650 # all those which have a first or second character that is
3651 # a '.' (that is, objdump's representation of an unprintable
3652 # character.) This should work for all archives with less than
3653 # 0x302f exports -- but will fail for DLLs whose name actually
3654 # begins with a literal '.' or a single character followed by
3655 # a '.'.
3656 #
3657 # Of those that remain, print the first one.
3658 $SED -e '/^\./d;/^.\./d;q'
3659}
3660
3661# func_cygming_gnu_implib_p ARG
3662# This predicate returns with zero status (TRUE) if
3663# ARG is a GNU/binutils-style import library. Returns
3664# with nonzero status (FALSE) otherwise.
3665func_cygming_gnu_implib_p ()
3666{
3667 $opt_debug
3668 func_to_tool_file "$1" func_convert_file_msys_to_w32
3669 func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'`
3670 test -n "$func_cygming_gnu_implib_tmp"
3671}
3672
3673# func_cygming_ms_implib_p ARG
3674# This predicate returns with zero status (TRUE) if
3675# ARG is an MS-style import library. Returns
3676# with nonzero status (FALSE) otherwise.
3677func_cygming_ms_implib_p ()
3678{
3679 $opt_debug
3680 func_to_tool_file "$1" func_convert_file_msys_to_w32
3681 func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'`
3682 test -n "$func_cygming_ms_implib_tmp"
3683}
3684
3685# func_cygming_dll_for_implib_fallback ARG
3686# Platform-specific function to extract the
3687# name of the DLL associated with the specified
3688# import library ARG.
3689#
3690# This fallback implementation is for use when $DLLTOOL
3691# does not support the --identify-strict option.
3692# Invoked by eval'ing the libtool variable
3693# $sharedlib_from_linklib_cmd
3694# Result is available in the variable
3695# $sharedlib_from_linklib_result
3696func_cygming_dll_for_implib_fallback ()
3697{
3698 $opt_debug
3699 if func_cygming_gnu_implib_p "$1" ; then
3700 # binutils import library
3701 sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"`
3702 elif func_cygming_ms_implib_p "$1" ; then
3703 # ms-generated import library
3704 sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"`
3705 else
3706 # unknown
3707 sharedlib_from_linklib_result=""
3708 fi
3709}
2593 3710
2594 3711
2595# func_extract_an_archive dir oldlib 3712# func_extract_an_archive dir oldlib
@@ -2598,7 +3715,18 @@ func_extract_an_archive ()
2598 $opt_debug 3715 $opt_debug
2599 f_ex_an_ar_dir="$1"; shift 3716 f_ex_an_ar_dir="$1"; shift
2600 f_ex_an_ar_oldlib="$1" 3717 f_ex_an_ar_oldlib="$1"
2601 func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" 'exit $?' 3718 if test "$lock_old_archive_extraction" = yes; then
3719 lockfile=$f_ex_an_ar_oldlib.lock
3720 until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do
3721 func_echo "Waiting for $lockfile to be removed"
3722 sleep 2
3723 done
3724 fi
3725 func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \
3726 'stat=$?; rm -f "$lockfile"; exit $stat'
3727 if test "$lock_old_archive_extraction" = yes; then
3728 $opt_dry_run || rm -f "$lockfile"
3729 fi
2602 if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then 3730 if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
2603 : 3731 :
2604 else 3732 else
@@ -2669,7 +3797,7 @@ func_extract_archives ()
2669 darwin_file= 3797 darwin_file=
2670 darwin_files= 3798 darwin_files=
2671 for darwin_file in $darwin_filelist; do 3799 for darwin_file in $darwin_filelist; do
2672 darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP` 3800 darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP`
2673 $LIPO -create -output "$darwin_file" $darwin_files 3801 $LIPO -create -output "$darwin_file" $darwin_files
2674 done # $darwin_filelist 3802 done # $darwin_filelist
2675 $RM -rf unfat-$$ 3803 $RM -rf unfat-$$
@@ -2684,25 +3812,30 @@ func_extract_archives ()
2684 func_extract_an_archive "$my_xdir" "$my_xabs" 3812 func_extract_an_archive "$my_xdir" "$my_xabs"
2685 ;; 3813 ;;
2686 esac 3814 esac
2687 my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` 3815 my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP`
2688 done 3816 done
2689 3817
2690 func_extract_archives_result="$my_oldobjs" 3818 func_extract_archives_result="$my_oldobjs"
2691} 3819}
2692 3820
2693 3821
2694 3822# func_emit_wrapper [arg=no]
2695# func_emit_wrapper_part1 [arg=no]
2696# 3823#
2697# Emit the first part of a libtool wrapper script on stdout. 3824# Emit a libtool wrapper script on stdout.
2698# For more information, see the description associated with 3825# Don't directly open a file because we may want to
2699# func_emit_wrapper(), below. 3826# incorporate the script contents within a cygwin/mingw
2700func_emit_wrapper_part1 () 3827# wrapper executable. Must ONLY be called from within
3828# func_mode_link because it depends on a number of variables
3829# set therein.
3830#
3831# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR
3832# variable will take. If 'yes', then the emitted script
3833# will assume that the directory in which it is stored is
3834# the $objdir directory. This is a cygwin/mingw-specific
3835# behavior.
3836func_emit_wrapper ()
2701{ 3837{
2702 func_emit_wrapper_part1_arg1=no 3838 func_emit_wrapper_arg1=${1-no}
2703 if test -n "$1" ; then
2704 func_emit_wrapper_part1_arg1=$1
2705 fi
2706 3839
2707 $ECHO "\ 3840 $ECHO "\
2708#! $SHELL 3841#! $SHELL
@@ -2718,7 +3851,6 @@ func_emit_wrapper_part1 ()
2718 3851
2719# Sed substitution that helps us do robust quoting. It backslashifies 3852# Sed substitution that helps us do robust quoting. It backslashifies
2720# metacharacters that are still active within double-quoted strings. 3853# metacharacters that are still active within double-quoted strings.
2721Xsed='${SED} -e 1s/^X//'
2722sed_quote_subst='$sed_quote_subst' 3854sed_quote_subst='$sed_quote_subst'
2723 3855
2724# Be Bourne compatible 3856# Be Bourne compatible
@@ -2749,31 +3881,135 @@ if test \"\$libtool_install_magic\" = \"$magic\"; then
2749else 3881else
2750 # When we are sourced in execute mode, \$file and \$ECHO are already set. 3882 # When we are sourced in execute mode, \$file and \$ECHO are already set.
2751 if test \"\$libtool_execute_magic\" != \"$magic\"; then 3883 if test \"\$libtool_execute_magic\" != \"$magic\"; then
2752 ECHO=\"$qecho\" 3884 file=\"\$0\""
2753 file=\"\$0\" 3885
2754 # Make sure echo works. 3886 qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"`
2755 if test \"X\$1\" = X--no-reexec; then 3887 $ECHO "\
2756 # Discard the --no-reexec flag, and continue. 3888
2757 shift 3889# A function that is used when there is no print builtin or printf.
2758 elif test \"X\`{ \$ECHO '\t'; } 2>/dev/null\`\" = 'X\t'; then 3890func_fallback_echo ()
2759 # Yippee, \$ECHO works! 3891{
2760 : 3892 eval 'cat <<_LTECHO_EOF
2761 else 3893\$1
2762 # Restart under the correct shell, and then maybe \$ECHO will work. 3894_LTECHO_EOF'
2763 exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"} 3895}
2764 fi 3896 ECHO=\"$qECHO\"
2765 fi\ 3897 fi
3898
3899# Very basic option parsing. These options are (a) specific to
3900# the libtool wrapper, (b) are identical between the wrapper
3901# /script/ and the wrapper /executable/ which is used only on
3902# windows platforms, and (c) all begin with the string "--lt-"
3903# (application programs are unlikely to have options which match
3904# this pattern).
3905#
3906# There are only two supported options: --lt-debug and
3907# --lt-dump-script. There is, deliberately, no --lt-help.
3908#
3909# The first argument to this parsing function should be the
3910# script's $0 value, followed by "$@".
3911lt_option_debug=
3912func_parse_lt_options ()
3913{
3914 lt_script_arg0=\$0
3915 shift
3916 for lt_opt
3917 do
3918 case \"\$lt_opt\" in
3919 --lt-debug) lt_option_debug=1 ;;
3920 --lt-dump-script)
3921 lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\`
3922 test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=.
3923 lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\`
3924 cat \"\$lt_dump_D/\$lt_dump_F\"
3925 exit 0
3926 ;;
3927 --lt-*)
3928 \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2
3929 exit 1
3930 ;;
3931 esac
3932 done
3933
3934 # Print the debug banner immediately:
3935 if test -n \"\$lt_option_debug\"; then
3936 echo \"${outputname}:${output}:\${LINENO}: libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\" 1>&2
3937 fi
3938}
3939
3940# Used when --lt-debug. Prints its arguments to stdout
3941# (redirection is the responsibility of the caller)
3942func_lt_dump_args ()
3943{
3944 lt_dump_args_N=1;
3945 for lt_arg
3946 do
3947 \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[\$lt_dump_args_N]: \$lt_arg\"
3948 lt_dump_args_N=\`expr \$lt_dump_args_N + 1\`
3949 done
3950}
3951
3952# Core function for launching the target application
3953func_exec_program_core ()
3954{
2766" 3955"
2767 $ECHO "\ 3956 case $host in
3957 # Backslashes separate directories on plain windows
3958 *-*-mingw | *-*-os2* | *-cegcc*)
3959 $ECHO "\
3960 if test -n \"\$lt_option_debug\"; then
3961 \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir\\\\\$program\" 1>&2
3962 func_lt_dump_args \${1+\"\$@\"} 1>&2
3963 fi
3964 exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
3965"
3966 ;;
3967
3968 *)
3969 $ECHO "\
3970 if test -n \"\$lt_option_debug\"; then
3971 \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir/\$program\" 1>&2
3972 func_lt_dump_args \${1+\"\$@\"} 1>&2
3973 fi
3974 exec \"\$progdir/\$program\" \${1+\"\$@\"}
3975"
3976 ;;
3977 esac
3978 $ECHO "\
3979 \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2
3980 exit 1
3981}
3982
3983# A function to encapsulate launching the target application
3984# Strips options in the --lt-* namespace from \$@ and
3985# launches target application with the remaining arguments.
3986func_exec_program ()
3987{
3988 case \" \$* \" in
3989 *\\ --lt-*)
3990 for lt_wr_arg
3991 do
3992 case \$lt_wr_arg in
3993 --lt-*) ;;
3994 *) set x \"\$@\" \"\$lt_wr_arg\"; shift;;
3995 esac
3996 shift
3997 done ;;
3998 esac
3999 func_exec_program_core \${1+\"\$@\"}
4000}
4001
4002 # Parse options
4003 func_parse_lt_options \"\$0\" \${1+\"\$@\"}
2768 4004
2769 # Find the directory that this script lives in. 4005 # Find the directory that this script lives in.
2770 thisdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\` 4006 thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\`
2771 test \"x\$thisdir\" = \"x\$file\" && thisdir=. 4007 test \"x\$thisdir\" = \"x\$file\" && thisdir=.
2772 4008
2773 # Follow symbolic links until we get to the real thisdir. 4009 # Follow symbolic links until we get to the real thisdir.
2774 file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\` 4010 file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\`
2775 while test -n \"\$file\"; do 4011 while test -n \"\$file\"; do
2776 destdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\` 4012 destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\`
2777 4013
2778 # If there was a directory component, then change thisdir. 4014 # If there was a directory component, then change thisdir.
2779 if test \"x\$destdir\" != \"x\$file\"; then 4015 if test \"x\$destdir\" != \"x\$file\"; then
@@ -2783,30 +4019,13 @@ else
2783 esac 4019 esac
2784 fi 4020 fi
2785 4021
2786 file=\`\$ECHO \"X\$file\" | \$Xsed -e 's%^.*/%%'\` 4022 file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\`
2787 file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\` 4023 file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\`
2788 done 4024 done
2789"
2790}
2791# end: func_emit_wrapper_part1
2792
2793# func_emit_wrapper_part2 [arg=no]
2794#
2795# Emit the second part of a libtool wrapper script on stdout.
2796# For more information, see the description associated with
2797# func_emit_wrapper(), below.
2798func_emit_wrapper_part2 ()
2799{
2800 func_emit_wrapper_part2_arg1=no
2801 if test -n "$1" ; then
2802 func_emit_wrapper_part2_arg1=$1
2803 fi
2804
2805 $ECHO "\
2806 4025
2807 # Usually 'no', except on cygwin/mingw when embedded into 4026 # Usually 'no', except on cygwin/mingw when embedded into
2808 # the cwrapper. 4027 # the cwrapper.
2809 WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_part2_arg1 4028 WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1
2810 if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then 4029 if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then
2811 # special case for '.' 4030 # special case for '.'
2812 if test \"\$thisdir\" = \".\"; then 4031 if test \"\$thisdir\" = \".\"; then
@@ -2814,7 +4033,7 @@ func_emit_wrapper_part2 ()
2814 fi 4033 fi
2815 # remove .libs from thisdir 4034 # remove .libs from thisdir
2816 case \"\$thisdir\" in 4035 case \"\$thisdir\" in
2817 *[\\\\/]$objdir ) thisdir=\`\$ECHO \"X\$thisdir\" | \$Xsed -e 's%[\\\\/][^\\\\/]*$%%'\` ;; 4036 *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;;
2818 $objdir ) thisdir=. ;; 4037 $objdir ) thisdir=. ;;
2819 esac 4038 esac
2820 fi 4039 fi
@@ -2869,6 +4088,18 @@ func_emit_wrapper_part2 ()
2869 4088
2870 if test -f \"\$progdir/\$program\"; then" 4089 if test -f \"\$progdir/\$program\"; then"
2871 4090
4091 # fixup the dll searchpath if we need to.
4092 #
4093 # Fix the DLL searchpath if we need to. Do this before prepending
4094 # to shlibpath, because on Windows, both are PATH and uninstalled
4095 # libraries must come first.
4096 if test -n "$dllsearchpath"; then
4097 $ECHO "\
4098 # Add the dll search path components to the executable PATH
4099 PATH=$dllsearchpath:\$PATH
4100"
4101 fi
4102
2872 # Export our shlibpath_var if we have one. 4103 # Export our shlibpath_var if we have one.
2873 if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then 4104 if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
2874 $ECHO "\ 4105 $ECHO "\
@@ -2877,254 +4108,29 @@ func_emit_wrapper_part2 ()
2877 4108
2878 # Some systems cannot cope with colon-terminated $shlibpath_var 4109 # Some systems cannot cope with colon-terminated $shlibpath_var
2879 # The second colon is a workaround for a bug in BeOS R4 sed 4110 # The second colon is a workaround for a bug in BeOS R4 sed
2880 $shlibpath_var=\`\$ECHO \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\` 4111 $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\`
2881 4112
2882 export $shlibpath_var 4113 export $shlibpath_var
2883" 4114"
2884 fi 4115 fi
2885 4116
2886 # fixup the dll searchpath if we need to.
2887 if test -n "$dllsearchpath"; then
2888 $ECHO "\
2889 # Add the dll search path components to the executable PATH
2890 PATH=$dllsearchpath:\$PATH
2891"
2892 fi
2893
2894 $ECHO "\ 4117 $ECHO "\
2895 if test \"\$libtool_execute_magic\" != \"$magic\"; then 4118 if test \"\$libtool_execute_magic\" != \"$magic\"; then
2896 # Run the actual program with our arguments. 4119 # Run the actual program with our arguments.
2897" 4120 func_exec_program \${1+\"\$@\"}
2898 case $host in
2899 # Backslashes separate directories on plain windows
2900 *-*-mingw | *-*-os2* | *-cegcc*)
2901 $ECHO "\
2902 exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
2903"
2904 ;;
2905
2906 *)
2907 $ECHO "\
2908 exec \"\$progdir/\$program\" \${1+\"\$@\"}
2909"
2910 ;;
2911 esac
2912 $ECHO "\
2913 \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2
2914 exit 1
2915 fi 4121 fi
2916 else 4122 else
2917 # The program doesn't exist. 4123 # The program doesn't exist.
2918 \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 4124 \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2
2919 \$ECHO \"This script is just a wrapper for \$program.\" 1>&2 4125 \$ECHO \"This script is just a wrapper for \$program.\" 1>&2
2920 $ECHO \"See the $PACKAGE documentation for more information.\" 1>&2 4126 \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2
2921 exit 1 4127 exit 1
2922 fi 4128 fi
2923fi\ 4129fi\
2924" 4130"
2925} 4131}
2926# end: func_emit_wrapper_part2
2927
2928
2929# func_emit_wrapper [arg=no]
2930#
2931# Emit a libtool wrapper script on stdout.
2932# Don't directly open a file because we may want to
2933# incorporate the script contents within a cygwin/mingw
2934# wrapper executable. Must ONLY be called from within
2935# func_mode_link because it depends on a number of variables
2936# set therein.
2937#
2938# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR
2939# variable will take. If 'yes', then the emitted script
2940# will assume that the directory in which it is stored is
2941# the $objdir directory. This is a cygwin/mingw-specific
2942# behavior.
2943func_emit_wrapper ()
2944{
2945 func_emit_wrapper_arg1=no
2946 if test -n "$1" ; then
2947 func_emit_wrapper_arg1=$1
2948 fi
2949
2950 # split this up so that func_emit_cwrapperexe_src
2951 # can call each part independently.
2952 func_emit_wrapper_part1 "${func_emit_wrapper_arg1}"
2953 func_emit_wrapper_part2 "${func_emit_wrapper_arg1}"
2954}
2955 4132
2956 4133
2957# func_to_host_path arg
2958#
2959# Convert paths to host format when used with build tools.
2960# Intended for use with "native" mingw (where libtool itself
2961# is running under the msys shell), or in the following cross-
2962# build environments:
2963# $build $host
2964# mingw (msys) mingw [e.g. native]
2965# cygwin mingw
2966# *nix + wine mingw
2967# where wine is equipped with the `winepath' executable.
2968# In the native mingw case, the (msys) shell automatically
2969# converts paths for any non-msys applications it launches,
2970# but that facility isn't available from inside the cwrapper.
2971# Similar accommodations are necessary for $host mingw and
2972# $build cygwin. Calling this function does no harm for other
2973# $host/$build combinations not listed above.
2974#
2975# ARG is the path (on $build) that should be converted to
2976# the proper representation for $host. The result is stored
2977# in $func_to_host_path_result.
2978func_to_host_path ()
2979{
2980 func_to_host_path_result="$1"
2981 if test -n "$1" ; then
2982 case $host in
2983 *mingw* )
2984 lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
2985 case $build in
2986 *mingw* ) # actually, msys
2987 # awkward: cmd appends spaces to result
2988 lt_sed_strip_trailing_spaces="s/[ ]*\$//"
2989 func_to_host_path_tmp1=`( cmd //c echo "$1" |\
2990 $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""`
2991 func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\
2992 $SED -e "$lt_sed_naive_backslashify"`
2993 ;;
2994 *cygwin* )
2995 func_to_host_path_tmp1=`cygpath -w "$1"`
2996 func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\
2997 $SED -e "$lt_sed_naive_backslashify"`
2998 ;;
2999 * )
3000 # Unfortunately, winepath does not exit with a non-zero
3001 # error code, so we are forced to check the contents of
3002 # stdout. On the other hand, if the command is not
3003 # found, the shell will set an exit code of 127 and print
3004 # *an error message* to stdout. So we must check for both
3005 # error code of zero AND non-empty stdout, which explains
3006 # the odd construction:
3007 func_to_host_path_tmp1=`winepath -w "$1" 2>/dev/null`
3008 if test "$?" -eq 0 && test -n "${func_to_host_path_tmp1}"; then
3009 func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\
3010 $SED -e "$lt_sed_naive_backslashify"`
3011 else
3012 # Allow warning below.
3013 func_to_host_path_result=""
3014 fi
3015 ;;
3016 esac
3017 if test -z "$func_to_host_path_result" ; then
3018 func_error "Could not determine host path corresponding to"
3019 func_error " '$1'"
3020 func_error "Continuing, but uninstalled executables may not work."
3021 # Fallback:
3022 func_to_host_path_result="$1"
3023 fi
3024 ;;
3025 esac
3026 fi
3027}
3028# end: func_to_host_path
3029
3030# func_to_host_pathlist arg
3031#
3032# Convert pathlists to host format when used with build tools.
3033# See func_to_host_path(), above. This function supports the
3034# following $build/$host combinations (but does no harm for
3035# combinations not listed here):
3036# $build $host
3037# mingw (msys) mingw [e.g. native]
3038# cygwin mingw
3039# *nix + wine mingw
3040#
3041# Path separators are also converted from $build format to
3042# $host format. If ARG begins or ends with a path separator
3043# character, it is preserved (but converted to $host format)
3044# on output.
3045#
3046# ARG is a pathlist (on $build) that should be converted to
3047# the proper representation on $host. The result is stored
3048# in $func_to_host_pathlist_result.
3049func_to_host_pathlist ()
3050{
3051 func_to_host_pathlist_result="$1"
3052 if test -n "$1" ; then
3053 case $host in
3054 *mingw* )
3055 lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
3056 # Remove leading and trailing path separator characters from
3057 # ARG. msys behavior is inconsistent here, cygpath turns them
3058 # into '.;' and ';.', and winepath ignores them completely.
3059 func_to_host_pathlist_tmp2="$1"
3060 # Once set for this call, this variable should not be
3061 # reassigned. It is used in tha fallback case.
3062 func_to_host_pathlist_tmp1=`echo "$func_to_host_pathlist_tmp2" |\
3063 $SED -e 's|^:*||' -e 's|:*$||'`
3064 case $build in
3065 *mingw* ) # Actually, msys.
3066 # Awkward: cmd appends spaces to result.
3067 lt_sed_strip_trailing_spaces="s/[ ]*\$//"
3068 func_to_host_pathlist_tmp2=`( cmd //c echo "$func_to_host_pathlist_tmp1" |\
3069 $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""`
3070 func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\
3071 $SED -e "$lt_sed_naive_backslashify"`
3072 ;;
3073 *cygwin* )
3074 func_to_host_pathlist_tmp2=`cygpath -w -p "$func_to_host_pathlist_tmp1"`
3075 func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\
3076 $SED -e "$lt_sed_naive_backslashify"`
3077 ;;
3078 * )
3079 # unfortunately, winepath doesn't convert pathlists
3080 func_to_host_pathlist_result=""
3081 func_to_host_pathlist_oldIFS=$IFS
3082 IFS=:
3083 for func_to_host_pathlist_f in $func_to_host_pathlist_tmp1 ; do
3084 IFS=$func_to_host_pathlist_oldIFS
3085 if test -n "$func_to_host_pathlist_f" ; then
3086 func_to_host_path "$func_to_host_pathlist_f"
3087 if test -n "$func_to_host_path_result" ; then
3088 if test -z "$func_to_host_pathlist_result" ; then
3089 func_to_host_pathlist_result="$func_to_host_path_result"
3090 else
3091 func_to_host_pathlist_result="$func_to_host_pathlist_result;$func_to_host_path_result"
3092 fi
3093 fi
3094 fi
3095 IFS=:
3096 done
3097 IFS=$func_to_host_pathlist_oldIFS
3098 ;;
3099 esac
3100 if test -z "$func_to_host_pathlist_result" ; then
3101 func_error "Could not determine the host path(s) corresponding to"
3102 func_error " '$1'"
3103 func_error "Continuing, but uninstalled executables may not work."
3104 # Fallback. This may break if $1 contains DOS-style drive
3105 # specifications. The fix is not to complicate the expression
3106 # below, but for the user to provide a working wine installation
3107 # with winepath so that path translation in the cross-to-mingw
3108 # case works properly.
3109 lt_replace_pathsep_nix_to_dos="s|:|;|g"
3110 func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp1" |\
3111 $SED -e "$lt_replace_pathsep_nix_to_dos"`
3112 fi
3113 # Now, add the leading and trailing path separators back
3114 case "$1" in
3115 :* ) func_to_host_pathlist_result=";$func_to_host_pathlist_result"
3116 ;;
3117 esac
3118 case "$1" in
3119 *: ) func_to_host_pathlist_result="$func_to_host_pathlist_result;"
3120 ;;
3121 esac
3122 ;;
3123 esac
3124 fi
3125}
3126# end: func_to_host_pathlist
3127
3128# func_emit_cwrapperexe_src 4134# func_emit_cwrapperexe_src
3129# emit the source code for a wrapper executable on stdout 4135# emit the source code for a wrapper executable on stdout
3130# Must ONLY be called from within func_mode_link because 4136# Must ONLY be called from within func_mode_link because
@@ -3141,31 +4147,23 @@ func_emit_cwrapperexe_src ()
3141 4147
3142 This wrapper executable should never be moved out of the build directory. 4148 This wrapper executable should never be moved out of the build directory.
3143 If it is, it will not operate correctly. 4149 If it is, it will not operate correctly.
3144
3145 Currently, it simply execs the wrapper *script* "$SHELL $output",
3146 but could eventually absorb all of the scripts functionality and
3147 exec $objdir/$outputname directly.
3148*/ 4150*/
3149EOF 4151EOF
3150 cat <<"EOF" 4152 cat <<"EOF"
4153#ifdef _MSC_VER
4154# define _CRT_SECURE_NO_DEPRECATE 1
4155#endif
3151#include <stdio.h> 4156#include <stdio.h>
3152#include <stdlib.h> 4157#include <stdlib.h>
3153#ifdef _MSC_VER 4158#ifdef _MSC_VER
3154# include <direct.h> 4159# include <direct.h>
3155# include <process.h> 4160# include <process.h>
3156# include <io.h> 4161# include <io.h>
3157# define setmode _setmode
3158#else 4162#else
3159# include <unistd.h> 4163# include <unistd.h>
3160# include <stdint.h> 4164# include <stdint.h>
3161# ifdef __CYGWIN__ 4165# ifdef __CYGWIN__
3162# include <io.h> 4166# include <io.h>
3163# define HAVE_SETENV
3164# ifdef __STRICT_ANSI__
3165char *realpath (const char *, char *);
3166int putenv (char *);
3167int setenv (const char *, const char *, int);
3168# endif
3169# endif 4167# endif
3170#endif 4168#endif
3171#include <malloc.h> 4169#include <malloc.h>
@@ -3177,6 +4175,44 @@ int setenv (const char *, const char *, int);
3177#include <fcntl.h> 4175#include <fcntl.h>
3178#include <sys/stat.h> 4176#include <sys/stat.h>
3179 4177
4178/* declarations of non-ANSI functions */
4179#if defined(__MINGW32__)
4180# ifdef __STRICT_ANSI__
4181int _putenv (const char *);
4182# endif
4183#elif defined(__CYGWIN__)
4184# ifdef __STRICT_ANSI__
4185char *realpath (const char *, char *);
4186int putenv (char *);
4187int setenv (const char *, const char *, int);
4188# endif
4189/* #elif defined (other platforms) ... */
4190#endif
4191
4192/* portability defines, excluding path handling macros */
4193#if defined(_MSC_VER)
4194# define setmode _setmode
4195# define stat _stat
4196# define chmod _chmod
4197# define getcwd _getcwd
4198# define putenv _putenv
4199# define S_IXUSR _S_IEXEC
4200# ifndef _INTPTR_T_DEFINED
4201# define _INTPTR_T_DEFINED
4202# define intptr_t int
4203# endif
4204#elif defined(__MINGW32__)
4205# define setmode _setmode
4206# define stat _stat
4207# define chmod _chmod
4208# define getcwd _getcwd
4209# define putenv _putenv
4210#elif defined(__CYGWIN__)
4211# define HAVE_SETENV
4212# define FOPEN_WB "wb"
4213/* #elif defined (other platforms) ... */
4214#endif
4215
3180#if defined(PATH_MAX) 4216#if defined(PATH_MAX)
3181# define LT_PATHMAX PATH_MAX 4217# define LT_PATHMAX PATH_MAX
3182#elif defined(MAXPATHLEN) 4218#elif defined(MAXPATHLEN)
@@ -3192,14 +4228,7 @@ int setenv (const char *, const char *, int);
3192# define S_IXGRP 0 4228# define S_IXGRP 0
3193#endif 4229#endif
3194 4230
3195#ifdef _MSC_VER 4231/* path handling portability macros */
3196# define S_IXUSR _S_IEXEC
3197# define stat _stat
3198# ifndef _INTPTR_T_DEFINED
3199# define intptr_t int
3200# endif
3201#endif
3202
3203#ifndef DIR_SEPARATOR 4232#ifndef DIR_SEPARATOR
3204# define DIR_SEPARATOR '/' 4233# define DIR_SEPARATOR '/'
3205# define PATH_SEPARATOR ':' 4234# define PATH_SEPARATOR ':'
@@ -3230,10 +4259,6 @@ int setenv (const char *, const char *, int);
3230# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) 4259# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2)
3231#endif /* PATH_SEPARATOR_2 */ 4260#endif /* PATH_SEPARATOR_2 */
3232 4261
3233#ifdef __CYGWIN__
3234# define FOPEN_WB "wb"
3235#endif
3236
3237#ifndef FOPEN_WB 4262#ifndef FOPEN_WB
3238# define FOPEN_WB "w" 4263# define FOPEN_WB "w"
3239#endif 4264#endif
@@ -3246,22 +4271,13 @@ int setenv (const char *, const char *, int);
3246 if (stale) { free ((void *) stale); stale = 0; } \ 4271 if (stale) { free ((void *) stale); stale = 0; } \
3247} while (0) 4272} while (0)
3248 4273
3249#undef LTWRAPPER_DEBUGPRINTF 4274#if defined(LT_DEBUGWRAPPER)
3250#if defined DEBUGWRAPPER 4275static int lt_debug = 1;
3251# define LTWRAPPER_DEBUGPRINTF(args) ltwrapper_debugprintf args
3252static void
3253ltwrapper_debugprintf (const char *fmt, ...)
3254{
3255 va_list args;
3256 va_start (args, fmt);
3257 (void) vfprintf (stderr, fmt, args);
3258 va_end (args);
3259}
3260#else 4276#else
3261# define LTWRAPPER_DEBUGPRINTF(args) 4277static int lt_debug = 0;
3262#endif 4278#endif
3263 4279
3264const char *program_name = NULL; 4280const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */
3265 4281
3266void *xmalloc (size_t num); 4282void *xmalloc (size_t num);
3267char *xstrdup (const char *string); 4283char *xstrdup (const char *string);
@@ -3271,41 +4287,27 @@ char *chase_symlinks (const char *pathspec);
3271int make_executable (const char *path); 4287int make_executable (const char *path);
3272int check_executable (const char *path); 4288int check_executable (const char *path);
3273char *strendzap (char *str, const char *pat); 4289char *strendzap (char *str, const char *pat);
3274void lt_fatal (const char *message, ...); 4290void lt_debugprintf (const char *file, int line, const char *fmt, ...);
4291void lt_fatal (const char *file, int line, const char *message, ...);
4292static const char *nonnull (const char *s);
4293static const char *nonempty (const char *s);
3275void lt_setenv (const char *name, const char *value); 4294void lt_setenv (const char *name, const char *value);
3276char *lt_extend_str (const char *orig_value, const char *add, int to_end); 4295char *lt_extend_str (const char *orig_value, const char *add, int to_end);
3277void lt_opt_process_env_set (const char *arg);
3278void lt_opt_process_env_prepend (const char *arg);
3279void lt_opt_process_env_append (const char *arg);
3280int lt_split_name_value (const char *arg, char** name, char** value);
3281void lt_update_exe_path (const char *name, const char *value); 4296void lt_update_exe_path (const char *name, const char *value);
3282void lt_update_lib_path (const char *name, const char *value); 4297void lt_update_lib_path (const char *name, const char *value);
3283 4298char **prepare_spawn (char **argv);
3284static const char *script_text_part1 = 4299void lt_dump_script (FILE *f);
3285EOF 4300EOF
3286 4301
3287 func_emit_wrapper_part1 yes |
3288 $SED -e 's/\([\\"]\)/\\\1/g' \
3289 -e 's/^/ "/' -e 's/$/\\n"/'
3290 echo ";"
3291 cat <<EOF 4302 cat <<EOF
3292 4303volatile const char * MAGIC_EXE = "$magic_exe";
3293static const char *script_text_part2 =
3294EOF
3295 func_emit_wrapper_part2 yes |
3296 $SED -e 's/\([\\"]\)/\\\1/g' \
3297 -e 's/^/ "/' -e 's/$/\\n"/'
3298 echo ";"
3299
3300 cat <<EOF
3301const char * MAGIC_EXE = "$magic_exe";
3302const char * LIB_PATH_VARNAME = "$shlibpath_var"; 4304const char * LIB_PATH_VARNAME = "$shlibpath_var";
3303EOF 4305EOF
3304 4306
3305 if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then 4307 if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
3306 func_to_host_pathlist "$temp_rpath" 4308 func_to_host_path "$temp_rpath"
3307 cat <<EOF 4309 cat <<EOF
3308const char * LIB_PATH_VALUE = "$func_to_host_pathlist_result"; 4310const char * LIB_PATH_VALUE = "$func_to_host_path_result";
3309EOF 4311EOF
3310 else 4312 else
3311 cat <<"EOF" 4313 cat <<"EOF"
@@ -3314,10 +4316,10 @@ EOF
3314 fi 4316 fi
3315 4317
3316 if test -n "$dllsearchpath"; then 4318 if test -n "$dllsearchpath"; then
3317 func_to_host_pathlist "$dllsearchpath:" 4319 func_to_host_path "$dllsearchpath:"
3318 cat <<EOF 4320 cat <<EOF
3319const char * EXE_PATH_VARNAME = "PATH"; 4321const char * EXE_PATH_VARNAME = "PATH";
3320const char * EXE_PATH_VALUE = "$func_to_host_pathlist_result"; 4322const char * EXE_PATH_VALUE = "$func_to_host_path_result";
3321EOF 4323EOF
3322 else 4324 else
3323 cat <<"EOF" 4325 cat <<"EOF"
@@ -3340,24 +4342,10 @@ EOF
3340 cat <<"EOF" 4342 cat <<"EOF"
3341 4343
3342#define LTWRAPPER_OPTION_PREFIX "--lt-" 4344#define LTWRAPPER_OPTION_PREFIX "--lt-"
3343#define LTWRAPPER_OPTION_PREFIX_LENGTH 5
3344 4345
3345static const size_t opt_prefix_len = LTWRAPPER_OPTION_PREFIX_LENGTH;
3346static const char *ltwrapper_option_prefix = LTWRAPPER_OPTION_PREFIX; 4346static const char *ltwrapper_option_prefix = LTWRAPPER_OPTION_PREFIX;
3347
3348static const char *dumpscript_opt = LTWRAPPER_OPTION_PREFIX "dump-script"; 4347static const char *dumpscript_opt = LTWRAPPER_OPTION_PREFIX "dump-script";
3349 4348static const char *debug_opt = LTWRAPPER_OPTION_PREFIX "debug";
3350static const size_t env_set_opt_len = LTWRAPPER_OPTION_PREFIX_LENGTH + 7;
3351static const char *env_set_opt = LTWRAPPER_OPTION_PREFIX "env-set";
3352 /* argument is putenv-style "foo=bar", value of foo is set to bar */
3353
3354static const size_t env_prepend_opt_len = LTWRAPPER_OPTION_PREFIX_LENGTH + 11;
3355static const char *env_prepend_opt = LTWRAPPER_OPTION_PREFIX "env-prepend";
3356 /* argument is putenv-style "foo=bar", new value of foo is bar${foo} */
3357
3358static const size_t env_append_opt_len = LTWRAPPER_OPTION_PREFIX_LENGTH + 10;
3359static const char *env_append_opt = LTWRAPPER_OPTION_PREFIX "env-append";
3360 /* argument is putenv-style "foo=bar", new value of foo is ${foo}bar */
3361 4349
3362int 4350int
3363main (int argc, char *argv[]) 4351main (int argc, char *argv[])
@@ -3374,10 +4362,13 @@ main (int argc, char *argv[])
3374 int i; 4362 int i;
3375 4363
3376 program_name = (char *) xstrdup (base_name (argv[0])); 4364 program_name = (char *) xstrdup (base_name (argv[0]));
3377 LTWRAPPER_DEBUGPRINTF (("(main) argv[0] : %s\n", argv[0])); 4365 newargz = XMALLOC (char *, argc + 1);
3378 LTWRAPPER_DEBUGPRINTF (("(main) program_name : %s\n", program_name));
3379 4366
3380 /* very simple arg parsing; don't want to rely on getopt */ 4367 /* very simple arg parsing; don't want to rely on getopt
4368 * also, copy all non cwrapper options to newargz, except
4369 * argz[0], which is handled differently
4370 */
4371 newargc=0;
3381 for (i = 1; i < argc; i++) 4372 for (i = 1; i < argc; i++)
3382 { 4373 {
3383 if (strcmp (argv[i], dumpscript_opt) == 0) 4374 if (strcmp (argv[i], dumpscript_opt) == 0)
@@ -3391,25 +4382,57 @@ EOF
3391 esac 4382 esac
3392 4383
3393 cat <<"EOF" 4384 cat <<"EOF"
3394 printf ("%s", script_text_part1); 4385 lt_dump_script (stdout);
3395 printf ("%s", script_text_part2);
3396 return 0; 4386 return 0;
3397 } 4387 }
4388 if (strcmp (argv[i], debug_opt) == 0)
4389 {
4390 lt_debug = 1;
4391 continue;
4392 }
4393 if (strcmp (argv[i], ltwrapper_option_prefix) == 0)
4394 {
4395 /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX
4396 namespace, but it is not one of the ones we know about and
4397 have already dealt with, above (inluding dump-script), then
4398 report an error. Otherwise, targets might begin to believe
4399 they are allowed to use options in the LTWRAPPER_OPTION_PREFIX
4400 namespace. The first time any user complains about this, we'll
4401 need to make LTWRAPPER_OPTION_PREFIX a configure-time option
4402 or a configure.ac-settable value.
4403 */
4404 lt_fatal (__FILE__, __LINE__,
4405 "unrecognized %s option: '%s'",
4406 ltwrapper_option_prefix, argv[i]);
4407 }
4408 /* otherwise ... */
4409 newargz[++newargc] = xstrdup (argv[i]);
3398 } 4410 }
4411 newargz[++newargc] = NULL;
4412
4413EOF
4414 cat <<EOF
4415 /* The GNU banner must be the first non-error debug message */
4416 lt_debugprintf (__FILE__, __LINE__, "libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\n");
4417EOF
4418 cat <<"EOF"
4419 lt_debugprintf (__FILE__, __LINE__, "(main) argv[0]: %s\n", argv[0]);
4420 lt_debugprintf (__FILE__, __LINE__, "(main) program_name: %s\n", program_name);
3399 4421
3400 newargz = XMALLOC (char *, argc + 1);
3401 tmp_pathspec = find_executable (argv[0]); 4422 tmp_pathspec = find_executable (argv[0]);
3402 if (tmp_pathspec == NULL) 4423 if (tmp_pathspec == NULL)
3403 lt_fatal ("Couldn't find %s", argv[0]); 4424 lt_fatal (__FILE__, __LINE__, "couldn't find %s", argv[0]);
3404 LTWRAPPER_DEBUGPRINTF (("(main) found exe (before symlink chase) at : %s\n", 4425 lt_debugprintf (__FILE__, __LINE__,
3405 tmp_pathspec)); 4426 "(main) found exe (before symlink chase) at: %s\n",
4427 tmp_pathspec);
3406 4428
3407 actual_cwrapper_path = chase_symlinks (tmp_pathspec); 4429 actual_cwrapper_path = chase_symlinks (tmp_pathspec);
3408 LTWRAPPER_DEBUGPRINTF (("(main) found exe (after symlink chase) at : %s\n", 4430 lt_debugprintf (__FILE__, __LINE__,
3409 actual_cwrapper_path)); 4431 "(main) found exe (after symlink chase) at: %s\n",
4432 actual_cwrapper_path);
3410 XFREE (tmp_pathspec); 4433 XFREE (tmp_pathspec);
3411 4434
3412 actual_cwrapper_name = xstrdup( base_name (actual_cwrapper_path)); 4435 actual_cwrapper_name = xstrdup (base_name (actual_cwrapper_path));
3413 strendzap (actual_cwrapper_path, actual_cwrapper_name); 4436 strendzap (actual_cwrapper_path, actual_cwrapper_name);
3414 4437
3415 /* wrapper name transforms */ 4438 /* wrapper name transforms */
@@ -3427,8 +4450,9 @@ EOF
3427 target_name = tmp_pathspec; 4450 target_name = tmp_pathspec;
3428 tmp_pathspec = 0; 4451 tmp_pathspec = 0;
3429 4452
3430 LTWRAPPER_DEBUGPRINTF (("(main) libtool target name: %s\n", 4453 lt_debugprintf (__FILE__, __LINE__,
3431 target_name)); 4454 "(main) libtool target name: %s\n",
4455 target_name);
3432EOF 4456EOF
3433 4457
3434 cat <<EOF 4458 cat <<EOF
@@ -3478,80 +4502,19 @@ EOF
3478 4502
3479 lt_setenv ("BIN_SH", "xpg4"); /* for Tru64 */ 4503 lt_setenv ("BIN_SH", "xpg4"); /* for Tru64 */
3480 lt_setenv ("DUALCASE", "1"); /* for MSK sh */ 4504 lt_setenv ("DUALCASE", "1"); /* for MSK sh */
3481 lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE); 4505 /* Update the DLL searchpath. EXE_PATH_VALUE ($dllsearchpath) must
4506 be prepended before (that is, appear after) LIB_PATH_VALUE ($temp_rpath)
4507 because on Windows, both *_VARNAMEs are PATH but uninstalled
4508 libraries must come first. */
3482 lt_update_exe_path (EXE_PATH_VARNAME, EXE_PATH_VALUE); 4509 lt_update_exe_path (EXE_PATH_VARNAME, EXE_PATH_VALUE);
4510 lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE);
3483 4511
3484 newargc=0; 4512 lt_debugprintf (__FILE__, __LINE__, "(main) lt_argv_zero: %s\n",
3485 for (i = 1; i < argc; i++) 4513 nonnull (lt_argv_zero));
3486 {
3487 if (strncmp (argv[i], env_set_opt, env_set_opt_len) == 0)
3488 {
3489 if (argv[i][env_set_opt_len] == '=')
3490 {
3491 const char *p = argv[i] + env_set_opt_len + 1;
3492 lt_opt_process_env_set (p);
3493 }
3494 else if (argv[i][env_set_opt_len] == '\0' && i + 1 < argc)
3495 {
3496 lt_opt_process_env_set (argv[++i]); /* don't copy */
3497 }
3498 else
3499 lt_fatal ("%s missing required argument", env_set_opt);
3500 continue;
3501 }
3502 if (strncmp (argv[i], env_prepend_opt, env_prepend_opt_len) == 0)
3503 {
3504 if (argv[i][env_prepend_opt_len] == '=')
3505 {
3506 const char *p = argv[i] + env_prepend_opt_len + 1;
3507 lt_opt_process_env_prepend (p);
3508 }
3509 else if (argv[i][env_prepend_opt_len] == '\0' && i + 1 < argc)
3510 {
3511 lt_opt_process_env_prepend (argv[++i]); /* don't copy */
3512 }
3513 else
3514 lt_fatal ("%s missing required argument", env_prepend_opt);
3515 continue;
3516 }
3517 if (strncmp (argv[i], env_append_opt, env_append_opt_len) == 0)
3518 {
3519 if (argv[i][env_append_opt_len] == '=')
3520 {
3521 const char *p = argv[i] + env_append_opt_len + 1;
3522 lt_opt_process_env_append (p);
3523 }
3524 else if (argv[i][env_append_opt_len] == '\0' && i + 1 < argc)
3525 {
3526 lt_opt_process_env_append (argv[++i]); /* don't copy */
3527 }
3528 else
3529 lt_fatal ("%s missing required argument", env_append_opt);
3530 continue;
3531 }
3532 if (strncmp (argv[i], ltwrapper_option_prefix, opt_prefix_len) == 0)
3533 {
3534 /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX
3535 namespace, but it is not one of the ones we know about and
3536 have already dealt with, above (inluding dump-script), then
3537 report an error. Otherwise, targets might begin to believe
3538 they are allowed to use options in the LTWRAPPER_OPTION_PREFIX
3539 namespace. The first time any user complains about this, we'll
3540 need to make LTWRAPPER_OPTION_PREFIX a configure-time option
3541 or a configure.ac-settable value.
3542 */
3543 lt_fatal ("Unrecognized option in %s namespace: '%s'",
3544 ltwrapper_option_prefix, argv[i]);
3545 }
3546 /* otherwise ... */
3547 newargz[++newargc] = xstrdup (argv[i]);
3548 }
3549 newargz[++newargc] = NULL;
3550
3551 LTWRAPPER_DEBUGPRINTF (("(main) lt_argv_zero : %s\n", (lt_argv_zero ? lt_argv_zero : "<NULL>")));
3552 for (i = 0; i < newargc; i++) 4514 for (i = 0; i < newargc; i++)
3553 { 4515 {
3554 LTWRAPPER_DEBUGPRINTF (("(main) newargz[%d] : %s\n", i, (newargz[i] ? newargz[i] : "<NULL>"))); 4516 lt_debugprintf (__FILE__, __LINE__, "(main) newargz[%d]: %s\n",
4517 i, nonnull (newargz[i]));
3555 } 4518 }
3556 4519
3557EOF 4520EOF
@@ -3560,11 +4523,14 @@ EOF
3560 mingw*) 4523 mingw*)
3561 cat <<"EOF" 4524 cat <<"EOF"
3562 /* execv doesn't actually work on mingw as expected on unix */ 4525 /* execv doesn't actually work on mingw as expected on unix */
4526 newargz = prepare_spawn (newargz);
3563 rval = _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz); 4527 rval = _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz);
3564 if (rval == -1) 4528 if (rval == -1)
3565 { 4529 {
3566 /* failed to start process */ 4530 /* failed to start process */
3567 LTWRAPPER_DEBUGPRINTF (("(main) failed to launch target \"%s\": errno = %d\n", lt_argv_zero, errno)); 4531 lt_debugprintf (__FILE__, __LINE__,
4532 "(main) failed to launch target \"%s\": %s\n",
4533 lt_argv_zero, nonnull (strerror (errno)));
3568 return 127; 4534 return 127;
3569 } 4535 }
3570 return rval; 4536 return rval;
@@ -3586,7 +4552,7 @@ xmalloc (size_t num)
3586{ 4552{
3587 void *p = (void *) malloc (num); 4553 void *p = (void *) malloc (num);
3588 if (!p) 4554 if (!p)
3589 lt_fatal ("Memory exhausted"); 4555 lt_fatal (__FILE__, __LINE__, "memory exhausted");
3590 4556
3591 return p; 4557 return p;
3592} 4558}
@@ -3620,8 +4586,8 @@ check_executable (const char *path)
3620{ 4586{
3621 struct stat st; 4587 struct stat st;
3622 4588
3623 LTWRAPPER_DEBUGPRINTF (("(check_executable) : %s\n", 4589 lt_debugprintf (__FILE__, __LINE__, "(check_executable): %s\n",
3624 path ? (*path ? path : "EMPTY!") : "NULL!")); 4590 nonempty (path));
3625 if ((!path) || (!*path)) 4591 if ((!path) || (!*path))
3626 return 0; 4592 return 0;
3627 4593
@@ -3638,8 +4604,8 @@ make_executable (const char *path)
3638 int rval = 0; 4604 int rval = 0;
3639 struct stat st; 4605 struct stat st;
3640 4606
3641 LTWRAPPER_DEBUGPRINTF (("(make_executable) : %s\n", 4607 lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n",
3642 path ? (*path ? path : "EMPTY!") : "NULL!")); 4608 nonempty (path));
3643 if ((!path) || (!*path)) 4609 if ((!path) || (!*path))
3644 return 0; 4610 return 0;
3645 4611
@@ -3665,8 +4631,8 @@ find_executable (const char *wrapper)
3665 int tmp_len; 4631 int tmp_len;
3666 char *concat_name; 4632 char *concat_name;
3667 4633
3668 LTWRAPPER_DEBUGPRINTF (("(find_executable) : %s\n", 4634 lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n",
3669 wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!")); 4635 nonempty (wrapper));
3670 4636
3671 if ((wrapper == NULL) || (*wrapper == '\0')) 4637 if ((wrapper == NULL) || (*wrapper == '\0'))
3672 return NULL; 4638 return NULL;
@@ -3719,7 +4685,8 @@ find_executable (const char *wrapper)
3719 { 4685 {
3720 /* empty path: current directory */ 4686 /* empty path: current directory */
3721 if (getcwd (tmp, LT_PATHMAX) == NULL) 4687 if (getcwd (tmp, LT_PATHMAX) == NULL)
3722 lt_fatal ("getcwd failed"); 4688 lt_fatal (__FILE__, __LINE__, "getcwd failed: %s",
4689 nonnull (strerror (errno)));
3723 tmp_len = strlen (tmp); 4690 tmp_len = strlen (tmp);
3724 concat_name = 4691 concat_name =
3725 XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); 4692 XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
@@ -3744,7 +4711,8 @@ find_executable (const char *wrapper)
3744 } 4711 }
3745 /* Relative path | not found in path: prepend cwd */ 4712 /* Relative path | not found in path: prepend cwd */
3746 if (getcwd (tmp, LT_PATHMAX) == NULL) 4713 if (getcwd (tmp, LT_PATHMAX) == NULL)
3747 lt_fatal ("getcwd failed"); 4714 lt_fatal (__FILE__, __LINE__, "getcwd failed: %s",
4715 nonnull (strerror (errno)));
3748 tmp_len = strlen (tmp); 4716 tmp_len = strlen (tmp);
3749 concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); 4717 concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
3750 memcpy (concat_name, tmp, tmp_len); 4718 memcpy (concat_name, tmp, tmp_len);
@@ -3770,8 +4738,9 @@ chase_symlinks (const char *pathspec)
3770 int has_symlinks = 0; 4738 int has_symlinks = 0;
3771 while (strlen (tmp_pathspec) && !has_symlinks) 4739 while (strlen (tmp_pathspec) && !has_symlinks)
3772 { 4740 {
3773 LTWRAPPER_DEBUGPRINTF (("checking path component for symlinks: %s\n", 4741 lt_debugprintf (__FILE__, __LINE__,
3774 tmp_pathspec)); 4742 "checking path component for symlinks: %s\n",
4743 tmp_pathspec);
3775 if (lstat (tmp_pathspec, &s) == 0) 4744 if (lstat (tmp_pathspec, &s) == 0)
3776 { 4745 {
3777 if (S_ISLNK (s.st_mode) != 0) 4746 if (S_ISLNK (s.st_mode) != 0)
@@ -3793,8 +4762,9 @@ chase_symlinks (const char *pathspec)
3793 } 4762 }
3794 else 4763 else
3795 { 4764 {
3796 char *errstr = strerror (errno); 4765 lt_fatal (__FILE__, __LINE__,
3797 lt_fatal ("Error accessing file %s (%s)", tmp_pathspec, errstr); 4766 "error accessing file \"%s\": %s",
4767 tmp_pathspec, nonnull (strerror (errno)));
3798 } 4768 }
3799 } 4769 }
3800 XFREE (tmp_pathspec); 4770 XFREE (tmp_pathspec);
@@ -3807,7 +4777,8 @@ chase_symlinks (const char *pathspec)
3807 tmp_pathspec = realpath (pathspec, buf); 4777 tmp_pathspec = realpath (pathspec, buf);
3808 if (tmp_pathspec == 0) 4778 if (tmp_pathspec == 0)
3809 { 4779 {
3810 lt_fatal ("Could not follow symlinks for %s", pathspec); 4780 lt_fatal (__FILE__, __LINE__,
4781 "could not follow symlinks for %s", pathspec);
3811 } 4782 }
3812 return xstrdup (tmp_pathspec); 4783 return xstrdup (tmp_pathspec);
3813#endif 4784#endif
@@ -3833,11 +4804,25 @@ strendzap (char *str, const char *pat)
3833 return str; 4804 return str;
3834} 4805}
3835 4806
4807void
4808lt_debugprintf (const char *file, int line, const char *fmt, ...)
4809{
4810 va_list args;
4811 if (lt_debug)
4812 {
4813 (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line);
4814 va_start (args, fmt);
4815 (void) vfprintf (stderr, fmt, args);
4816 va_end (args);
4817 }
4818}
4819
3836static void 4820static void
3837lt_error_core (int exit_status, const char *mode, 4821lt_error_core (int exit_status, const char *file,
4822 int line, const char *mode,
3838 const char *message, va_list ap) 4823 const char *message, va_list ap)
3839{ 4824{
3840 fprintf (stderr, "%s: %s: ", program_name, mode); 4825 fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode);
3841 vfprintf (stderr, message, ap); 4826 vfprintf (stderr, message, ap);
3842 fprintf (stderr, ".\n"); 4827 fprintf (stderr, ".\n");
3843 4828
@@ -3846,20 +4831,32 @@ lt_error_core (int exit_status, const char *mode,
3846} 4831}
3847 4832
3848void 4833void
3849lt_fatal (const char *message, ...) 4834lt_fatal (const char *file, int line, const char *message, ...)
3850{ 4835{
3851 va_list ap; 4836 va_list ap;
3852 va_start (ap, message); 4837 va_start (ap, message);
3853 lt_error_core (EXIT_FAILURE, "FATAL", message, ap); 4838 lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap);
3854 va_end (ap); 4839 va_end (ap);
3855} 4840}
3856 4841
4842static const char *
4843nonnull (const char *s)
4844{
4845 return s ? s : "(null)";
4846}
4847
4848static const char *
4849nonempty (const char *s)
4850{
4851 return (s && !*s) ? "(empty)" : nonnull (s);
4852}
4853
3857void 4854void
3858lt_setenv (const char *name, const char *value) 4855lt_setenv (const char *name, const char *value)
3859{ 4856{
3860 LTWRAPPER_DEBUGPRINTF (("(lt_setenv) setting '%s' to '%s'\n", 4857 lt_debugprintf (__FILE__, __LINE__,
3861 (name ? name : "<NULL>"), 4858 "(lt_setenv) setting '%s' to '%s'\n",
3862 (value ? value : "<NULL>"))); 4859 nonnull (name), nonnull (value));
3863 { 4860 {
3864#ifdef HAVE_SETENV 4861#ifdef HAVE_SETENV
3865 /* always make a copy, for consistency with !HAVE_SETENV */ 4862 /* always make a copy, for consistency with !HAVE_SETENV */
@@ -3904,95 +4901,12 @@ lt_extend_str (const char *orig_value, const char *add, int to_end)
3904 return new_value; 4901 return new_value;
3905} 4902}
3906 4903
3907int
3908lt_split_name_value (const char *arg, char** name, char** value)
3909{
3910 const char *p;
3911 int len;
3912 if (!arg || !*arg)
3913 return 1;
3914
3915 p = strchr (arg, (int)'=');
3916
3917 if (!p)
3918 return 1;
3919
3920 *value = xstrdup (++p);
3921
3922 len = strlen (arg) - strlen (*value);
3923 *name = XMALLOC (char, len);
3924 strncpy (*name, arg, len-1);
3925 (*name)[len - 1] = '\0';
3926
3927 return 0;
3928}
3929
3930void
3931lt_opt_process_env_set (const char *arg)
3932{
3933 char *name = NULL;
3934 char *value = NULL;
3935
3936 if (lt_split_name_value (arg, &name, &value) != 0)
3937 {
3938 XFREE (name);
3939 XFREE (value);
3940 lt_fatal ("bad argument for %s: '%s'", env_set_opt, arg);
3941 }
3942
3943 lt_setenv (name, value);
3944 XFREE (name);
3945 XFREE (value);
3946}
3947
3948void
3949lt_opt_process_env_prepend (const char *arg)
3950{
3951 char *name = NULL;
3952 char *value = NULL;
3953 char *new_value = NULL;
3954
3955 if (lt_split_name_value (arg, &name, &value) != 0)
3956 {
3957 XFREE (name);
3958 XFREE (value);
3959 lt_fatal ("bad argument for %s: '%s'", env_prepend_opt, arg);
3960 }
3961
3962 new_value = lt_extend_str (getenv (name), value, 0);
3963 lt_setenv (name, new_value);
3964 XFREE (new_value);
3965 XFREE (name);
3966 XFREE (value);
3967}
3968
3969void
3970lt_opt_process_env_append (const char *arg)
3971{
3972 char *name = NULL;
3973 char *value = NULL;
3974 char *new_value = NULL;
3975
3976 if (lt_split_name_value (arg, &name, &value) != 0)
3977 {
3978 XFREE (name);
3979 XFREE (value);
3980 lt_fatal ("bad argument for %s: '%s'", env_append_opt, arg);
3981 }
3982
3983 new_value = lt_extend_str (getenv (name), value, 1);
3984 lt_setenv (name, new_value);
3985 XFREE (new_value);
3986 XFREE (name);
3987 XFREE (value);
3988}
3989
3990void 4904void
3991lt_update_exe_path (const char *name, const char *value) 4905lt_update_exe_path (const char *name, const char *value)
3992{ 4906{
3993 LTWRAPPER_DEBUGPRINTF (("(lt_update_exe_path) modifying '%s' by prepending '%s'\n", 4907 lt_debugprintf (__FILE__, __LINE__,
3994 (name ? name : "<NULL>"), 4908 "(lt_update_exe_path) modifying '%s' by prepending '%s'\n",
3995 (value ? value : "<NULL>"))); 4909 nonnull (name), nonnull (value));
3996 4910
3997 if (name && *name && value && *value) 4911 if (name && *name && value && *value)
3998 { 4912 {
@@ -4011,9 +4925,9 @@ lt_update_exe_path (const char *name, const char *value)
4011void 4925void
4012lt_update_lib_path (const char *name, const char *value) 4926lt_update_lib_path (const char *name, const char *value)
4013{ 4927{
4014 LTWRAPPER_DEBUGPRINTF (("(lt_update_lib_path) modifying '%s' by prepending '%s'\n", 4928 lt_debugprintf (__FILE__, __LINE__,
4015 (name ? name : "<NULL>"), 4929 "(lt_update_lib_path) modifying '%s' by prepending '%s'\n",
4016 (value ? value : "<NULL>"))); 4930 nonnull (name), nonnull (value));
4017 4931
4018 if (name && *name && value && *value) 4932 if (name && *name && value && *value)
4019 { 4933 {
@@ -4023,11 +4937,158 @@ lt_update_lib_path (const char *name, const char *value)
4023 } 4937 }
4024} 4938}
4025 4939
4940EOF
4941 case $host_os in
4942 mingw*)
4943 cat <<"EOF"
4944
4945/* Prepares an argument vector before calling spawn().
4946 Note that spawn() does not by itself call the command interpreter
4947 (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") :
4948 ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
4949 GetVersionEx(&v);
4950 v.dwPlatformId == VER_PLATFORM_WIN32_NT;
4951 }) ? "cmd.exe" : "command.com").
4952 Instead it simply concatenates the arguments, separated by ' ', and calls
4953 CreateProcess(). We must quote the arguments since Win32 CreateProcess()
4954 interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a
4955 special way:
4956 - Space and tab are interpreted as delimiters. They are not treated as
4957 delimiters if they are surrounded by double quotes: "...".
4958 - Unescaped double quotes are removed from the input. Their only effect is
4959 that within double quotes, space and tab are treated like normal
4960 characters.
4961 - Backslashes not followed by double quotes are not special.
4962 - But 2*n+1 backslashes followed by a double quote become
4963 n backslashes followed by a double quote (n >= 0):
4964 \" -> "
4965 \\\" -> \"
4966 \\\\\" -> \\"
4967 */
4968#define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037"
4969#define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037"
4970char **
4971prepare_spawn (char **argv)
4972{
4973 size_t argc;
4974 char **new_argv;
4975 size_t i;
4976
4977 /* Count number of arguments. */
4978 for (argc = 0; argv[argc] != NULL; argc++)
4979 ;
4980
4981 /* Allocate new argument vector. */
4982 new_argv = XMALLOC (char *, argc + 1);
4983
4984 /* Put quoted arguments into the new argument vector. */
4985 for (i = 0; i < argc; i++)
4986 {
4987 const char *string = argv[i];
4026 4988
4989 if (string[0] == '\0')
4990 new_argv[i] = xstrdup ("\"\"");
4991 else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL)
4992 {
4993 int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL);
4994 size_t length;
4995 unsigned int backslashes;
4996 const char *s;
4997 char *quoted_string;
4998 char *p;
4999
5000 length = 0;
5001 backslashes = 0;
5002 if (quote_around)
5003 length++;
5004 for (s = string; *s != '\0'; s++)
5005 {
5006 char c = *s;
5007 if (c == '"')
5008 length += backslashes + 1;
5009 length++;
5010 if (c == '\\')
5011 backslashes++;
5012 else
5013 backslashes = 0;
5014 }
5015 if (quote_around)
5016 length += backslashes + 1;
5017
5018 quoted_string = XMALLOC (char, length + 1);
5019
5020 p = quoted_string;
5021 backslashes = 0;
5022 if (quote_around)
5023 *p++ = '"';
5024 for (s = string; *s != '\0'; s++)
5025 {
5026 char c = *s;
5027 if (c == '"')
5028 {
5029 unsigned int j;
5030 for (j = backslashes + 1; j > 0; j--)
5031 *p++ = '\\';
5032 }
5033 *p++ = c;
5034 if (c == '\\')
5035 backslashes++;
5036 else
5037 backslashes = 0;
5038 }
5039 if (quote_around)
5040 {
5041 unsigned int j;
5042 for (j = backslashes; j > 0; j--)
5043 *p++ = '\\';
5044 *p++ = '"';
5045 }
5046 *p = '\0';
5047
5048 new_argv[i] = quoted_string;
5049 }
5050 else
5051 new_argv[i] = (char *) string;
5052 }
5053 new_argv[argc] = NULL;
5054
5055 return new_argv;
5056}
5057EOF
5058 ;;
5059 esac
5060
5061 cat <<"EOF"
5062void lt_dump_script (FILE* f)
5063{
5064EOF
5065 func_emit_wrapper yes |
5066 $SED -n -e '
5067s/^\(.\{79\}\)\(..*\)/\1\
5068\2/
5069h
5070s/\([\\"]\)/\\\1/g
5071s/$/\\n/
5072s/\([^\n]*\).*/ fputs ("\1", f);/p
5073g
5074D'
5075 cat <<"EOF"
5076}
4027EOF 5077EOF
4028} 5078}
4029# end: func_emit_cwrapperexe_src 5079# end: func_emit_cwrapperexe_src
4030 5080
5081# func_win32_import_lib_p ARG
5082# True if ARG is an import lib, as indicated by $file_magic_cmd
5083func_win32_import_lib_p ()
5084{
5085 $opt_debug
5086 case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in
5087 *import*) : ;;
5088 *) false ;;
5089 esac
5090}
5091
4031# func_mode_link arg... 5092# func_mode_link arg...
4032func_mode_link () 5093func_mode_link ()
4033{ 5094{
@@ -4072,6 +5133,7 @@ func_mode_link ()
4072 new_inherited_linker_flags= 5133 new_inherited_linker_flags=
4073 5134
4074 avoid_version=no 5135 avoid_version=no
5136 bindir=
4075 dlfiles= 5137 dlfiles=
4076 dlprefiles= 5138 dlprefiles=
4077 dlself=no 5139 dlself=no
@@ -4164,6 +5226,11 @@ func_mode_link ()
4164 esac 5226 esac
4165 5227
4166 case $prev in 5228 case $prev in
5229 bindir)
5230 bindir="$arg"
5231 prev=
5232 continue
5233 ;;
4167 dlfiles|dlprefiles) 5234 dlfiles|dlprefiles)
4168 if test "$preload" = no; then 5235 if test "$preload" = no; then
4169 # Add the symbol object into the linking commands. 5236 # Add the symbol object into the linking commands.
@@ -4195,9 +5262,9 @@ func_mode_link ()
4195 ;; 5262 ;;
4196 *) 5263 *)
4197 if test "$prev" = dlfiles; then 5264 if test "$prev" = dlfiles; then
4198 dlfiles="$dlfiles $arg" 5265 func_append dlfiles " $arg"
4199 else 5266 else
4200 dlprefiles="$dlprefiles $arg" 5267 func_append dlprefiles " $arg"
4201 fi 5268 fi
4202 prev= 5269 prev=
4203 continue 5270 continue
@@ -4221,7 +5288,7 @@ func_mode_link ()
4221 *-*-darwin*) 5288 *-*-darwin*)
4222 case "$deplibs " in 5289 case "$deplibs " in
4223 *" $qarg.ltframework "*) ;; 5290 *" $qarg.ltframework "*) ;;
4224 *) deplibs="$deplibs $qarg.ltframework" # this is fixed later 5291 *) func_append deplibs " $qarg.ltframework" # this is fixed later
4225 ;; 5292 ;;
4226 esac 5293 esac
4227 ;; 5294 ;;
@@ -4240,7 +5307,7 @@ func_mode_link ()
4240 moreargs= 5307 moreargs=
4241 for fil in `cat "$save_arg"` 5308 for fil in `cat "$save_arg"`
4242 do 5309 do
4243# moreargs="$moreargs $fil" 5310# func_append moreargs " $fil"
4244 arg=$fil 5311 arg=$fil
4245 # A libtool-controlled object. 5312 # A libtool-controlled object.
4246 5313
@@ -4269,7 +5336,7 @@ func_mode_link ()
4269 5336
4270 if test "$prev" = dlfiles; then 5337 if test "$prev" = dlfiles; then
4271 if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then 5338 if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
4272 dlfiles="$dlfiles $pic_object" 5339 func_append dlfiles " $pic_object"
4273 prev= 5340 prev=
4274 continue 5341 continue
4275 else 5342 else
@@ -4281,7 +5348,7 @@ func_mode_link ()
4281 # CHECK ME: I think I busted this. -Ossama 5348 # CHECK ME: I think I busted this. -Ossama
4282 if test "$prev" = dlprefiles; then 5349 if test "$prev" = dlprefiles; then
4283 # Preload the old-style object. 5350 # Preload the old-style object.
4284 dlprefiles="$dlprefiles $pic_object" 5351 func_append dlprefiles " $pic_object"
4285 prev= 5352 prev=
4286 fi 5353 fi
4287 5354
@@ -4351,12 +5418,12 @@ func_mode_link ()
4351 if test "$prev" = rpath; then 5418 if test "$prev" = rpath; then
4352 case "$rpath " in 5419 case "$rpath " in
4353 *" $arg "*) ;; 5420 *" $arg "*) ;;
4354 *) rpath="$rpath $arg" ;; 5421 *) func_append rpath " $arg" ;;
4355 esac 5422 esac
4356 else 5423 else
4357 case "$xrpath " in 5424 case "$xrpath " in
4358 *" $arg "*) ;; 5425 *" $arg "*) ;;
4359 *) xrpath="$xrpath $arg" ;; 5426 *) func_append xrpath " $arg" ;;
4360 esac 5427 esac
4361 fi 5428 fi
4362 prev= 5429 prev=
@@ -4368,28 +5435,28 @@ func_mode_link ()
4368 continue 5435 continue
4369 ;; 5436 ;;
4370 weak) 5437 weak)
4371 weak_libs="$weak_libs $arg" 5438 func_append weak_libs " $arg"
4372 prev= 5439 prev=
4373 continue 5440 continue
4374 ;; 5441 ;;
4375 xcclinker) 5442 xcclinker)
4376 linker_flags="$linker_flags $qarg" 5443 func_append linker_flags " $qarg"
4377 compiler_flags="$compiler_flags $qarg" 5444 func_append compiler_flags " $qarg"
4378 prev= 5445 prev=
4379 func_append compile_command " $qarg" 5446 func_append compile_command " $qarg"
4380 func_append finalize_command " $qarg" 5447 func_append finalize_command " $qarg"
4381 continue 5448 continue
4382 ;; 5449 ;;
4383 xcompiler) 5450 xcompiler)
4384 compiler_flags="$compiler_flags $qarg" 5451 func_append compiler_flags " $qarg"
4385 prev= 5452 prev=
4386 func_append compile_command " $qarg" 5453 func_append compile_command " $qarg"
4387 func_append finalize_command " $qarg" 5454 func_append finalize_command " $qarg"
4388 continue 5455 continue
4389 ;; 5456 ;;
4390 xlinker) 5457 xlinker)
4391 linker_flags="$linker_flags $qarg" 5458 func_append linker_flags " $qarg"
4392 compiler_flags="$compiler_flags $wl$qarg" 5459 func_append compiler_flags " $wl$qarg"
4393 prev= 5460 prev=
4394 func_append compile_command " $wl$qarg" 5461 func_append compile_command " $wl$qarg"
4395 func_append finalize_command " $wl$qarg" 5462 func_append finalize_command " $wl$qarg"
@@ -4425,6 +5492,11 @@ func_mode_link ()
4425 continue 5492 continue
4426 ;; 5493 ;;
4427 5494
5495 -bindir)
5496 prev=bindir
5497 continue
5498 ;;
5499
4428 -dlopen) 5500 -dlopen)
4429 prev=dlfiles 5501 prev=dlfiles
4430 continue 5502 continue
@@ -4475,15 +5547,16 @@ func_mode_link ()
4475 ;; 5547 ;;
4476 5548
4477 -L*) 5549 -L*)
4478 func_stripname '-L' '' "$arg" 5550 func_stripname "-L" '' "$arg"
4479 dir=$func_stripname_result 5551 if test -z "$func_stripname_result"; then
4480 if test -z "$dir"; then
4481 if test "$#" -gt 0; then 5552 if test "$#" -gt 0; then
4482 func_fatal_error "require no space between \`-L' and \`$1'" 5553 func_fatal_error "require no space between \`-L' and \`$1'"
4483 else 5554 else
4484 func_fatal_error "need path for \`-L' option" 5555 func_fatal_error "need path for \`-L' option"
4485 fi 5556 fi
4486 fi 5557 fi
5558 func_resolve_sysroot "$func_stripname_result"
5559 dir=$func_resolve_sysroot_result
4487 # We need an absolute path. 5560 # We need an absolute path.
4488 case $dir in 5561 case $dir in
4489 [\\/]* | [A-Za-z]:[\\/]*) ;; 5562 [\\/]* | [A-Za-z]:[\\/]*) ;;
@@ -4495,24 +5568,30 @@ func_mode_link ()
4495 ;; 5568 ;;
4496 esac 5569 esac
4497 case "$deplibs " in 5570 case "$deplibs " in
4498 *" -L$dir "*) ;; 5571 *" -L$dir "* | *" $arg "*)
5572 # Will only happen for absolute or sysroot arguments
5573 ;;
4499 *) 5574 *)
4500 deplibs="$deplibs -L$dir" 5575 # Preserve sysroot, but never include relative directories
4501 lib_search_path="$lib_search_path $dir" 5576 case $dir in
5577 [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;;
5578 *) func_append deplibs " -L$dir" ;;
5579 esac
5580 func_append lib_search_path " $dir"
4502 ;; 5581 ;;
4503 esac 5582 esac
4504 case $host in 5583 case $host in
4505 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) 5584 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
4506 testbindir=`$ECHO "X$dir" | $Xsed -e 's*/lib$*/bin*'` 5585 testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'`
4507 case :$dllsearchpath: in 5586 case :$dllsearchpath: in
4508 *":$dir:"*) ;; 5587 *":$dir:"*) ;;
4509 ::) dllsearchpath=$dir;; 5588 ::) dllsearchpath=$dir;;
4510 *) dllsearchpath="$dllsearchpath:$dir";; 5589 *) func_append dllsearchpath ":$dir";;
4511 esac 5590 esac
4512 case :$dllsearchpath: in 5591 case :$dllsearchpath: in
4513 *":$testbindir:"*) ;; 5592 *":$testbindir:"*) ;;
4514 ::) dllsearchpath=$testbindir;; 5593 ::) dllsearchpath=$testbindir;;
4515 *) dllsearchpath="$dllsearchpath:$testbindir";; 5594 *) func_append dllsearchpath ":$testbindir";;
4516 esac 5595 esac
4517 ;; 5596 ;;
4518 esac 5597 esac
@@ -4522,7 +5601,7 @@ func_mode_link ()
4522 -l*) 5601 -l*)
4523 if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then 5602 if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
4524 case $host in 5603 case $host in
4525 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc*) 5604 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*)
4526 # These systems don't actually have a C or math library (as such) 5605 # These systems don't actually have a C or math library (as such)
4527 continue 5606 continue
4528 ;; 5607 ;;
@@ -4536,7 +5615,7 @@ func_mode_link ()
4536 ;; 5615 ;;
4537 *-*-rhapsody* | *-*-darwin1.[012]) 5616 *-*-rhapsody* | *-*-darwin1.[012])
4538 # Rhapsody C and math libraries are in the System framework 5617 # Rhapsody C and math libraries are in the System framework
4539 deplibs="$deplibs System.ltframework" 5618 func_append deplibs " System.ltframework"
4540 continue 5619 continue
4541 ;; 5620 ;;
4542 *-*-sco3.2v5* | *-*-sco5v6*) 5621 *-*-sco3.2v5* | *-*-sco5v6*)
@@ -4556,7 +5635,7 @@ func_mode_link ()
4556 ;; 5635 ;;
4557 esac 5636 esac
4558 fi 5637 fi
4559 deplibs="$deplibs $arg" 5638 func_append deplibs " $arg"
4560 continue 5639 continue
4561 ;; 5640 ;;
4562 5641
@@ -4568,21 +5647,22 @@ func_mode_link ()
4568 # Tru64 UNIX uses -model [arg] to determine the layout of C++ 5647 # Tru64 UNIX uses -model [arg] to determine the layout of C++
4569 # classes, name mangling, and exception handling. 5648 # classes, name mangling, and exception handling.
4570 # Darwin uses the -arch flag to determine output architecture. 5649 # Darwin uses the -arch flag to determine output architecture.
4571 -model|-arch|-isysroot) 5650 -model|-arch|-isysroot|--sysroot)
4572 compiler_flags="$compiler_flags $arg" 5651 func_append compiler_flags " $arg"
4573 func_append compile_command " $arg" 5652 func_append compile_command " $arg"
4574 func_append finalize_command " $arg" 5653 func_append finalize_command " $arg"
4575 prev=xcompiler 5654 prev=xcompiler
4576 continue 5655 continue
4577 ;; 5656 ;;
4578 5657
4579 -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) 5658 -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \
4580 compiler_flags="$compiler_flags $arg" 5659 |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*)
5660 func_append compiler_flags " $arg"
4581 func_append compile_command " $arg" 5661 func_append compile_command " $arg"
4582 func_append finalize_command " $arg" 5662 func_append finalize_command " $arg"
4583 case "$new_inherited_linker_flags " in 5663 case "$new_inherited_linker_flags " in
4584 *" $arg "*) ;; 5664 *" $arg "*) ;;
4585 * ) new_inherited_linker_flags="$new_inherited_linker_flags $arg" ;; 5665 * ) func_append new_inherited_linker_flags " $arg" ;;
4586 esac 5666 esac
4587 continue 5667 continue
4588 ;; 5668 ;;
@@ -4649,13 +5729,17 @@ func_mode_link ()
4649 # We need an absolute path. 5729 # We need an absolute path.
4650 case $dir in 5730 case $dir in
4651 [\\/]* | [A-Za-z]:[\\/]*) ;; 5731 [\\/]* | [A-Za-z]:[\\/]*) ;;
5732 =*)
5733 func_stripname '=' '' "$dir"
5734 dir=$lt_sysroot$func_stripname_result
5735 ;;
4652 *) 5736 *)
4653 func_fatal_error "only absolute run-paths are allowed" 5737 func_fatal_error "only absolute run-paths are allowed"
4654 ;; 5738 ;;
4655 esac 5739 esac
4656 case "$xrpath " in 5740 case "$xrpath " in
4657 *" $dir "*) ;; 5741 *" $dir "*) ;;
4658 *) xrpath="$xrpath $dir" ;; 5742 *) func_append xrpath " $dir" ;;
4659 esac 5743 esac
4660 continue 5744 continue
4661 ;; 5745 ;;
@@ -4708,8 +5792,8 @@ func_mode_link ()
4708 for flag in $args; do 5792 for flag in $args; do
4709 IFS="$save_ifs" 5793 IFS="$save_ifs"
4710 func_quote_for_eval "$flag" 5794 func_quote_for_eval "$flag"
4711 arg="$arg $wl$func_quote_for_eval_result" 5795 func_append arg " $func_quote_for_eval_result"
4712 compiler_flags="$compiler_flags $func_quote_for_eval_result" 5796 func_append compiler_flags " $func_quote_for_eval_result"
4713 done 5797 done
4714 IFS="$save_ifs" 5798 IFS="$save_ifs"
4715 func_stripname ' ' '' "$arg" 5799 func_stripname ' ' '' "$arg"
@@ -4724,9 +5808,9 @@ func_mode_link ()
4724 for flag in $args; do 5808 for flag in $args; do
4725 IFS="$save_ifs" 5809 IFS="$save_ifs"
4726 func_quote_for_eval "$flag" 5810 func_quote_for_eval "$flag"
4727 arg="$arg $wl$func_quote_for_eval_result" 5811 func_append arg " $wl$func_quote_for_eval_result"
4728 compiler_flags="$compiler_flags $wl$func_quote_for_eval_result" 5812 func_append compiler_flags " $wl$func_quote_for_eval_result"
4729 linker_flags="$linker_flags $func_quote_for_eval_result" 5813 func_append linker_flags " $func_quote_for_eval_result"
4730 done 5814 done
4731 IFS="$save_ifs" 5815 IFS="$save_ifs"
4732 func_stripname ' ' '' "$arg" 5816 func_stripname ' ' '' "$arg"
@@ -4754,23 +5838,27 @@ func_mode_link ()
4754 arg="$func_quote_for_eval_result" 5838 arg="$func_quote_for_eval_result"
4755 ;; 5839 ;;
4756 5840
4757 # -64, -mips[0-9] enable 64-bit mode on the SGI compiler 5841 # Flags to be passed through unchanged, with rationale:
4758 # -r[0-9][0-9]* specifies the processor on the SGI compiler 5842 # -64, -mips[0-9] enable 64-bit mode for the SGI compiler
4759 # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler 5843 # -r[0-9][0-9]* specify processor for the SGI compiler
4760 # +DA*, +DD* enable 64-bit mode on the HP compiler 5844 # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler
4761 # -q* pass through compiler args for the IBM compiler 5845 # +DA*, +DD* enable 64-bit mode for the HP compiler
4762 # -m*, -t[45]*, -txscale* pass through architecture-specific 5846 # -q* compiler args for the IBM compiler
4763 # compiler args for GCC 5847 # -m*, -t[45]*, -txscale* architecture-specific flags for GCC
4764 # -F/path gives path to uninstalled frameworks, gcc on darwin 5848 # -F/path path to uninstalled frameworks, gcc on darwin
4765 # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC 5849 # -p, -pg, --coverage, -fprofile-* profiling flags for GCC
4766 # @file GCC response files 5850 # @file GCC response files
5851 # -tp=* Portland pgcc target processor selection
5852 # --sysroot=* for sysroot support
5853 # -O*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization
4767 -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ 5854 -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
4768 -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*) 5855 -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \
5856 -O*|-flto*|-fwhopr*|-fuse-linker-plugin)
4769 func_quote_for_eval "$arg" 5857 func_quote_for_eval "$arg"
4770 arg="$func_quote_for_eval_result" 5858 arg="$func_quote_for_eval_result"
4771 func_append compile_command " $arg" 5859 func_append compile_command " $arg"
4772 func_append finalize_command " $arg" 5860 func_append finalize_command " $arg"
4773 compiler_flags="$compiler_flags $arg" 5861 func_append compiler_flags " $arg"
4774 continue 5862 continue
4775 ;; 5863 ;;
4776 5864
@@ -4782,7 +5870,7 @@ func_mode_link ()
4782 5870
4783 *.$objext) 5871 *.$objext)
4784 # A standard object. 5872 # A standard object.
4785 objs="$objs $arg" 5873 func_append objs " $arg"
4786 ;; 5874 ;;
4787 5875
4788 *.lo) 5876 *.lo)
@@ -4813,7 +5901,7 @@ func_mode_link ()
4813 5901
4814 if test "$prev" = dlfiles; then 5902 if test "$prev" = dlfiles; then
4815 if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then 5903 if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
4816 dlfiles="$dlfiles $pic_object" 5904 func_append dlfiles " $pic_object"
4817 prev= 5905 prev=
4818 continue 5906 continue
4819 else 5907 else
@@ -4825,7 +5913,7 @@ func_mode_link ()
4825 # CHECK ME: I think I busted this. -Ossama 5913 # CHECK ME: I think I busted this. -Ossama
4826 if test "$prev" = dlprefiles; then 5914 if test "$prev" = dlprefiles; then
4827 # Preload the old-style object. 5915 # Preload the old-style object.
4828 dlprefiles="$dlprefiles $pic_object" 5916 func_append dlprefiles " $pic_object"
4829 prev= 5917 prev=
4830 fi 5918 fi
4831 5919
@@ -4870,24 +5958,25 @@ func_mode_link ()
4870 5958
4871 *.$libext) 5959 *.$libext)
4872 # An archive. 5960 # An archive.
4873 deplibs="$deplibs $arg" 5961 func_append deplibs " $arg"
4874 old_deplibs="$old_deplibs $arg" 5962 func_append old_deplibs " $arg"
4875 continue 5963 continue
4876 ;; 5964 ;;
4877 5965
4878 *.la) 5966 *.la)
4879 # A libtool-controlled library. 5967 # A libtool-controlled library.
4880 5968
5969 func_resolve_sysroot "$arg"
4881 if test "$prev" = dlfiles; then 5970 if test "$prev" = dlfiles; then
4882 # This library was specified with -dlopen. 5971 # This library was specified with -dlopen.
4883 dlfiles="$dlfiles $arg" 5972 func_append dlfiles " $func_resolve_sysroot_result"
4884 prev= 5973 prev=
4885 elif test "$prev" = dlprefiles; then 5974 elif test "$prev" = dlprefiles; then
4886 # The library was specified with -dlpreopen. 5975 # The library was specified with -dlpreopen.
4887 dlprefiles="$dlprefiles $arg" 5976 func_append dlprefiles " $func_resolve_sysroot_result"
4888 prev= 5977 prev=
4889 else 5978 else
4890 deplibs="$deplibs $arg" 5979 func_append deplibs " $func_resolve_sysroot_result"
4891 fi 5980 fi
4892 continue 5981 continue
4893 ;; 5982 ;;
@@ -4925,7 +6014,7 @@ func_mode_link ()
4925 6014
4926 if test -n "$shlibpath_var"; then 6015 if test -n "$shlibpath_var"; then
4927 # get the directories listed in $shlibpath_var 6016 # get the directories listed in $shlibpath_var
4928 eval shlib_search_path=\`\$ECHO \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\` 6017 eval shlib_search_path=\`\$ECHO \"\${$shlibpath_var}\" \| \$SED \'s/:/ /g\'\`
4929 else 6018 else
4930 shlib_search_path= 6019 shlib_search_path=
4931 fi 6020 fi
@@ -4934,6 +6023,8 @@ func_mode_link ()
4934 6023
4935 func_dirname "$output" "/" "" 6024 func_dirname "$output" "/" ""
4936 output_objdir="$func_dirname_result$objdir" 6025 output_objdir="$func_dirname_result$objdir"
6026 func_to_tool_file "$output_objdir/"
6027 tool_output_objdir=$func_to_tool_file_result
4937 # Create the object directory. 6028 # Create the object directory.
4938 func_mkdir_p "$output_objdir" 6029 func_mkdir_p "$output_objdir"
4939 6030
@@ -4954,12 +6045,12 @@ func_mode_link ()
4954 # Find all interdependent deplibs by searching for libraries 6045 # Find all interdependent deplibs by searching for libraries
4955 # that are linked more than once (e.g. -la -lb -la) 6046 # that are linked more than once (e.g. -la -lb -la)
4956 for deplib in $deplibs; do 6047 for deplib in $deplibs; do
4957 if $opt_duplicate_deps ; then 6048 if $opt_preserve_dup_deps ; then
4958 case "$libs " in 6049 case "$libs " in
4959 *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; 6050 *" $deplib "*) func_append specialdeplibs " $deplib" ;;
4960 esac 6051 esac
4961 fi 6052 fi
4962 libs="$libs $deplib" 6053 func_append libs " $deplib"
4963 done 6054 done
4964 6055
4965 if test "$linkmode" = lib; then 6056 if test "$linkmode" = lib; then
@@ -4972,9 +6063,9 @@ func_mode_link ()
4972 if $opt_duplicate_compiler_generated_deps; then 6063 if $opt_duplicate_compiler_generated_deps; then
4973 for pre_post_dep in $predeps $postdeps; do 6064 for pre_post_dep in $predeps $postdeps; do
4974 case "$pre_post_deps " in 6065 case "$pre_post_deps " in
4975 *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;; 6066 *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;;
4976 esac 6067 esac
4977 pre_post_deps="$pre_post_deps $pre_post_dep" 6068 func_append pre_post_deps " $pre_post_dep"
4978 done 6069 done
4979 fi 6070 fi
4980 pre_post_deps= 6071 pre_post_deps=
@@ -5044,17 +6135,19 @@ func_mode_link ()
5044 for lib in $dlprefiles; do 6135 for lib in $dlprefiles; do
5045 # Ignore non-libtool-libs 6136 # Ignore non-libtool-libs
5046 dependency_libs= 6137 dependency_libs=
6138 func_resolve_sysroot "$lib"
5047 case $lib in 6139 case $lib in
5048 *.la) func_source "$lib" ;; 6140 *.la) func_source "$func_resolve_sysroot_result" ;;
5049 esac 6141 esac
5050 6142
5051 # Collect preopened libtool deplibs, except any this library 6143 # Collect preopened libtool deplibs, except any this library
5052 # has declared as weak libs 6144 # has declared as weak libs
5053 for deplib in $dependency_libs; do 6145 for deplib in $dependency_libs; do
5054 deplib_base=`$ECHO "X$deplib" | $Xsed -e "$basename"` 6146 func_basename "$deplib"
6147 deplib_base=$func_basename_result
5055 case " $weak_libs " in 6148 case " $weak_libs " in
5056 *" $deplib_base "*) ;; 6149 *" $deplib_base "*) ;;
5057 *) deplibs="$deplibs $deplib" ;; 6150 *) func_append deplibs " $deplib" ;;
5058 esac 6151 esac
5059 done 6152 done
5060 done 6153 done
@@ -5070,16 +6163,17 @@ func_mode_link ()
5070 lib= 6163 lib=
5071 found=no 6164 found=no
5072 case $deplib in 6165 case $deplib in
5073 -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) 6166 -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \
6167 |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*)
5074 if test "$linkmode,$pass" = "prog,link"; then 6168 if test "$linkmode,$pass" = "prog,link"; then
5075 compile_deplibs="$deplib $compile_deplibs" 6169 compile_deplibs="$deplib $compile_deplibs"
5076 finalize_deplibs="$deplib $finalize_deplibs" 6170 finalize_deplibs="$deplib $finalize_deplibs"
5077 else 6171 else
5078 compiler_flags="$compiler_flags $deplib" 6172 func_append compiler_flags " $deplib"
5079 if test "$linkmode" = lib ; then 6173 if test "$linkmode" = lib ; then
5080 case "$new_inherited_linker_flags " in 6174 case "$new_inherited_linker_flags " in
5081 *" $deplib "*) ;; 6175 *" $deplib "*) ;;
5082 * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;; 6176 * ) func_append new_inherited_linker_flags " $deplib" ;;
5083 esac 6177 esac
5084 fi 6178 fi
5085 fi 6179 fi
@@ -5164,7 +6258,7 @@ func_mode_link ()
5164 if test "$linkmode" = lib ; then 6258 if test "$linkmode" = lib ; then
5165 case "$new_inherited_linker_flags " in 6259 case "$new_inherited_linker_flags " in
5166 *" $deplib "*) ;; 6260 *" $deplib "*) ;;
5167 * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;; 6261 * ) func_append new_inherited_linker_flags " $deplib" ;;
5168 esac 6262 esac
5169 fi 6263 fi
5170 fi 6264 fi
@@ -5177,7 +6271,8 @@ func_mode_link ()
5177 test "$pass" = conv && continue 6271 test "$pass" = conv && continue
5178 newdependency_libs="$deplib $newdependency_libs" 6272 newdependency_libs="$deplib $newdependency_libs"
5179 func_stripname '-L' '' "$deplib" 6273 func_stripname '-L' '' "$deplib"
5180 newlib_search_path="$newlib_search_path $func_stripname_result" 6274 func_resolve_sysroot "$func_stripname_result"
6275 func_append newlib_search_path " $func_resolve_sysroot_result"
5181 ;; 6276 ;;
5182 prog) 6277 prog)
5183 if test "$pass" = conv; then 6278 if test "$pass" = conv; then
@@ -5191,7 +6286,8 @@ func_mode_link ()
5191 finalize_deplibs="$deplib $finalize_deplibs" 6286 finalize_deplibs="$deplib $finalize_deplibs"
5192 fi 6287 fi
5193 func_stripname '-L' '' "$deplib" 6288 func_stripname '-L' '' "$deplib"
5194 newlib_search_path="$newlib_search_path $func_stripname_result" 6289 func_resolve_sysroot "$func_stripname_result"
6290 func_append newlib_search_path " $func_resolve_sysroot_result"
5195 ;; 6291 ;;
5196 *) 6292 *)
5197 func_warning "\`-L' is ignored for archives/objects" 6293 func_warning "\`-L' is ignored for archives/objects"
@@ -5202,17 +6298,21 @@ func_mode_link ()
5202 -R*) 6298 -R*)
5203 if test "$pass" = link; then 6299 if test "$pass" = link; then
5204 func_stripname '-R' '' "$deplib" 6300 func_stripname '-R' '' "$deplib"
5205 dir=$func_stripname_result 6301 func_resolve_sysroot "$func_stripname_result"
6302 dir=$func_resolve_sysroot_result
5206 # Make sure the xrpath contains only unique directories. 6303 # Make sure the xrpath contains only unique directories.
5207 case "$xrpath " in 6304 case "$xrpath " in
5208 *" $dir "*) ;; 6305 *" $dir "*) ;;
5209 *) xrpath="$xrpath $dir" ;; 6306 *) func_append xrpath " $dir" ;;
5210 esac 6307 esac
5211 fi 6308 fi
5212 deplibs="$deplib $deplibs" 6309 deplibs="$deplib $deplibs"
5213 continue 6310 continue
5214 ;; 6311 ;;
5215 *.la) lib="$deplib" ;; 6312 *.la)
6313 func_resolve_sysroot "$deplib"
6314 lib=$func_resolve_sysroot_result
6315 ;;
5216 *.$libext) 6316 *.$libext)
5217 if test "$pass" = conv; then 6317 if test "$pass" = conv; then
5218 deplibs="$deplib $deplibs" 6318 deplibs="$deplib $deplibs"
@@ -5230,7 +6330,7 @@ func_mode_link ()
5230 match_pattern*) 6330 match_pattern*)
5231 set dummy $deplibs_check_method; shift 6331 set dummy $deplibs_check_method; shift
5232 match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` 6332 match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
5233 if eval "\$ECHO \"X$deplib\"" 2>/dev/null | $Xsed -e 10q \ 6333 if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \
5234 | $EGREP "$match_pattern_regex" > /dev/null; then 6334 | $EGREP "$match_pattern_regex" > /dev/null; then
5235 valid_a_lib=yes 6335 valid_a_lib=yes
5236 fi 6336 fi
@@ -5240,15 +6340,15 @@ func_mode_link ()
5240 ;; 6340 ;;
5241 esac 6341 esac
5242 if test "$valid_a_lib" != yes; then 6342 if test "$valid_a_lib" != yes; then
5243 $ECHO 6343 echo
5244 $ECHO "*** Warning: Trying to link with static lib archive $deplib." 6344 $ECHO "*** Warning: Trying to link with static lib archive $deplib."
5245 $ECHO "*** I have the capability to make that library automatically link in when" 6345 echo "*** I have the capability to make that library automatically link in when"
5246 $ECHO "*** you link to this library. But I can only do this if you have a" 6346 echo "*** you link to this library. But I can only do this if you have a"
5247 $ECHO "*** shared version of the library, which you do not appear to have" 6347 echo "*** shared version of the library, which you do not appear to have"
5248 $ECHO "*** because the file extensions .$libext of this argument makes me believe" 6348 echo "*** because the file extensions .$libext of this argument makes me believe"
5249 $ECHO "*** that it is just a static archive that I should not use here." 6349 echo "*** that it is just a static archive that I should not use here."
5250 else 6350 else
5251 $ECHO 6351 echo
5252 $ECHO "*** Warning: Linking the shared library $output against the" 6352 $ECHO "*** Warning: Linking the shared library $output against the"
5253 $ECHO "*** static library $deplib is not portable!" 6353 $ECHO "*** static library $deplib is not portable!"
5254 deplibs="$deplib $deplibs" 6354 deplibs="$deplib $deplibs"
@@ -5275,11 +6375,11 @@ func_mode_link ()
5275 if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then 6375 if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
5276 # If there is no dlopen support or we're linking statically, 6376 # If there is no dlopen support or we're linking statically,
5277 # we need to preload. 6377 # we need to preload.
5278 newdlprefiles="$newdlprefiles $deplib" 6378 func_append newdlprefiles " $deplib"
5279 compile_deplibs="$deplib $compile_deplibs" 6379 compile_deplibs="$deplib $compile_deplibs"
5280 finalize_deplibs="$deplib $finalize_deplibs" 6380 finalize_deplibs="$deplib $finalize_deplibs"
5281 else 6381 else
5282 newdlfiles="$newdlfiles $deplib" 6382 func_append newdlfiles " $deplib"
5283 fi 6383 fi
5284 fi 6384 fi
5285 continue 6385 continue
@@ -5321,20 +6421,20 @@ func_mode_link ()
5321 6421
5322 # Convert "-framework foo" to "foo.ltframework" 6422 # Convert "-framework foo" to "foo.ltframework"
5323 if test -n "$inherited_linker_flags"; then 6423 if test -n "$inherited_linker_flags"; then
5324 tmp_inherited_linker_flags=`$ECHO "X$inherited_linker_flags" | $Xsed -e 's/-framework \([^ $]*\)/\1.ltframework/g'` 6424 tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'`
5325 for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do 6425 for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do
5326 case " $new_inherited_linker_flags " in 6426 case " $new_inherited_linker_flags " in
5327 *" $tmp_inherited_linker_flag "*) ;; 6427 *" $tmp_inherited_linker_flag "*) ;;
5328 *) new_inherited_linker_flags="$new_inherited_linker_flags $tmp_inherited_linker_flag";; 6428 *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";;
5329 esac 6429 esac
5330 done 6430 done
5331 fi 6431 fi
5332 dependency_libs=`$ECHO "X $dependency_libs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` 6432 dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
5333 if test "$linkmode,$pass" = "lib,link" || 6433 if test "$linkmode,$pass" = "lib,link" ||
5334 test "$linkmode,$pass" = "prog,scan" || 6434 test "$linkmode,$pass" = "prog,scan" ||
5335 { test "$linkmode" != prog && test "$linkmode" != lib; }; then 6435 { test "$linkmode" != prog && test "$linkmode" != lib; }; then
5336 test -n "$dlopen" && dlfiles="$dlfiles $dlopen" 6436 test -n "$dlopen" && func_append dlfiles " $dlopen"
5337 test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen" 6437 test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen"
5338 fi 6438 fi
5339 6439
5340 if test "$pass" = conv; then 6440 if test "$pass" = conv; then
@@ -5345,17 +6445,17 @@ func_mode_link ()
5345 func_fatal_error "cannot find name of link library for \`$lib'" 6445 func_fatal_error "cannot find name of link library for \`$lib'"
5346 fi 6446 fi
5347 # It is a libtool convenience library, so add in its objects. 6447 # It is a libtool convenience library, so add in its objects.
5348 convenience="$convenience $ladir/$objdir/$old_library" 6448 func_append convenience " $ladir/$objdir/$old_library"
5349 old_convenience="$old_convenience $ladir/$objdir/$old_library" 6449 func_append old_convenience " $ladir/$objdir/$old_library"
5350 tmp_libs= 6450 tmp_libs=
5351 for deplib in $dependency_libs; do 6451 for deplib in $dependency_libs; do
5352 deplibs="$deplib $deplibs" 6452 deplibs="$deplib $deplibs"
5353 if $opt_duplicate_deps ; then 6453 if $opt_preserve_dup_deps ; then
5354 case "$tmp_libs " in 6454 case "$tmp_libs " in
5355 *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; 6455 *" $deplib "*) func_append specialdeplibs " $deplib" ;;
5356 esac 6456 esac
5357 fi 6457 fi
5358 tmp_libs="$tmp_libs $deplib" 6458 func_append tmp_libs " $deplib"
5359 done 6459 done
5360 elif test "$linkmode" != prog && test "$linkmode" != lib; then 6460 elif test "$linkmode" != prog && test "$linkmode" != lib; then
5361 func_fatal_error "\`$lib' is not a convenience library" 6461 func_fatal_error "\`$lib' is not a convenience library"
@@ -5366,9 +6466,15 @@ func_mode_link ()
5366 6466
5367 # Get the name of the library we link against. 6467 # Get the name of the library we link against.
5368 linklib= 6468 linklib=
5369 for l in $old_library $library_names; do 6469 if test -n "$old_library" &&
5370 linklib="$l" 6470 { test "$prefer_static_libs" = yes ||
5371 done 6471 test "$prefer_static_libs,$installed" = "built,no"; }; then
6472 linklib=$old_library
6473 else
6474 for l in $old_library $library_names; do
6475 linklib="$l"
6476 done
6477 fi
5372 if test -z "$linklib"; then 6478 if test -z "$linklib"; then
5373 func_fatal_error "cannot find name of link library for \`$lib'" 6479 func_fatal_error "cannot find name of link library for \`$lib'"
5374 fi 6480 fi
@@ -5385,9 +6491,9 @@ func_mode_link ()
5385 # statically, we need to preload. We also need to preload any 6491 # statically, we need to preload. We also need to preload any
5386 # dependent libraries so libltdl's deplib preloader doesn't 6492 # dependent libraries so libltdl's deplib preloader doesn't
5387 # bomb out in the load deplibs phase. 6493 # bomb out in the load deplibs phase.
5388 dlprefiles="$dlprefiles $lib $dependency_libs" 6494 func_append dlprefiles " $lib $dependency_libs"
5389 else 6495 else
5390 newdlfiles="$newdlfiles $lib" 6496 func_append newdlfiles " $lib"
5391 fi 6497 fi
5392 continue 6498 continue
5393 fi # $pass = dlopen 6499 fi # $pass = dlopen
@@ -5409,14 +6515,14 @@ func_mode_link ()
5409 6515
5410 # Find the relevant object directory and library name. 6516 # Find the relevant object directory and library name.
5411 if test "X$installed" = Xyes; then 6517 if test "X$installed" = Xyes; then
5412 if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then 6518 if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
5413 func_warning "library \`$lib' was moved." 6519 func_warning "library \`$lib' was moved."
5414 dir="$ladir" 6520 dir="$ladir"
5415 absdir="$abs_ladir" 6521 absdir="$abs_ladir"
5416 libdir="$abs_ladir" 6522 libdir="$abs_ladir"
5417 else 6523 else
5418 dir="$libdir" 6524 dir="$lt_sysroot$libdir"
5419 absdir="$libdir" 6525 absdir="$lt_sysroot$libdir"
5420 fi 6526 fi
5421 test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes 6527 test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
5422 else 6528 else
@@ -5424,12 +6530,12 @@ func_mode_link ()
5424 dir="$ladir" 6530 dir="$ladir"
5425 absdir="$abs_ladir" 6531 absdir="$abs_ladir"
5426 # Remove this search path later 6532 # Remove this search path later
5427 notinst_path="$notinst_path $abs_ladir" 6533 func_append notinst_path " $abs_ladir"
5428 else 6534 else
5429 dir="$ladir/$objdir" 6535 dir="$ladir/$objdir"
5430 absdir="$abs_ladir/$objdir" 6536 absdir="$abs_ladir/$objdir"
5431 # Remove this search path later 6537 # Remove this search path later
5432 notinst_path="$notinst_path $abs_ladir" 6538 func_append notinst_path " $abs_ladir"
5433 fi 6539 fi
5434 fi # $installed = yes 6540 fi # $installed = yes
5435 func_stripname 'lib' '.la' "$laname" 6541 func_stripname 'lib' '.la' "$laname"
@@ -5440,20 +6546,46 @@ func_mode_link ()
5440 if test -z "$libdir" && test "$linkmode" = prog; then 6546 if test -z "$libdir" && test "$linkmode" = prog; then
5441 func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'" 6547 func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'"
5442 fi 6548 fi
5443 # Prefer using a static library (so that no silly _DYNAMIC symbols 6549 case "$host" in
5444 # are required to link). 6550 # special handling for platforms with PE-DLLs.
5445 if test -n "$old_library"; then 6551 *cygwin* | *mingw* | *cegcc* )
5446 newdlprefiles="$newdlprefiles $dir/$old_library" 6552 # Linker will automatically link against shared library if both
5447 # Keep a list of preopened convenience libraries to check 6553 # static and shared are present. Therefore, ensure we extract
5448 # that they are being used correctly in the link pass. 6554 # symbols from the import library if a shared library is present
5449 test -z "$libdir" && \ 6555 # (otherwise, the dlopen module name will be incorrect). We do
5450 dlpreconveniencelibs="$dlpreconveniencelibs $dir/$old_library" 6556 # this by putting the import library name into $newdlprefiles.
5451 # Otherwise, use the dlname, so that lt_dlopen finds it. 6557 # We recover the dlopen module name by 'saving' the la file
5452 elif test -n "$dlname"; then 6558 # name in a special purpose variable, and (later) extracting the
5453 newdlprefiles="$newdlprefiles $dir/$dlname" 6559 # dlname from the la file.
5454 else 6560 if test -n "$dlname"; then
5455 newdlprefiles="$newdlprefiles $dir/$linklib" 6561 func_tr_sh "$dir/$linklib"
5456 fi 6562 eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname"
6563 func_append newdlprefiles " $dir/$linklib"
6564 else
6565 func_append newdlprefiles " $dir/$old_library"
6566 # Keep a list of preopened convenience libraries to check
6567 # that they are being used correctly in the link pass.
6568 test -z "$libdir" && \
6569 func_append dlpreconveniencelibs " $dir/$old_library"
6570 fi
6571 ;;
6572 * )
6573 # Prefer using a static library (so that no silly _DYNAMIC symbols
6574 # are required to link).
6575 if test -n "$old_library"; then
6576 func_append newdlprefiles " $dir/$old_library"
6577 # Keep a list of preopened convenience libraries to check
6578 # that they are being used correctly in the link pass.
6579 test -z "$libdir" && \
6580 func_append dlpreconveniencelibs " $dir/$old_library"
6581 # Otherwise, use the dlname, so that lt_dlopen finds it.
6582 elif test -n "$dlname"; then
6583 func_append newdlprefiles " $dir/$dlname"
6584 else
6585 func_append newdlprefiles " $dir/$linklib"
6586 fi
6587 ;;
6588 esac
5457 fi # $pass = dlpreopen 6589 fi # $pass = dlpreopen
5458 6590
5459 if test -z "$libdir"; then 6591 if test -z "$libdir"; then
@@ -5471,7 +6603,7 @@ func_mode_link ()
5471 6603
5472 6604
5473 if test "$linkmode" = prog && test "$pass" != link; then 6605 if test "$linkmode" = prog && test "$pass" != link; then
5474 newlib_search_path="$newlib_search_path $ladir" 6606 func_append newlib_search_path " $ladir"
5475 deplibs="$lib $deplibs" 6607 deplibs="$lib $deplibs"
5476 6608
5477 linkalldeplibs=no 6609 linkalldeplibs=no
@@ -5484,7 +6616,8 @@ func_mode_link ()
5484 for deplib in $dependency_libs; do 6616 for deplib in $dependency_libs; do
5485 case $deplib in 6617 case $deplib in
5486 -L*) func_stripname '-L' '' "$deplib" 6618 -L*) func_stripname '-L' '' "$deplib"
5487 newlib_search_path="$newlib_search_path $func_stripname_result" 6619 func_resolve_sysroot "$func_stripname_result"
6620 func_append newlib_search_path " $func_resolve_sysroot_result"
5488 ;; 6621 ;;
5489 esac 6622 esac
5490 # Need to link against all dependency_libs? 6623 # Need to link against all dependency_libs?
@@ -5495,12 +6628,12 @@ func_mode_link ()
5495 # or/and link against static libraries 6628 # or/and link against static libraries
5496 newdependency_libs="$deplib $newdependency_libs" 6629 newdependency_libs="$deplib $newdependency_libs"
5497 fi 6630 fi
5498 if $opt_duplicate_deps ; then 6631 if $opt_preserve_dup_deps ; then
5499 case "$tmp_libs " in 6632 case "$tmp_libs " in
5500 *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; 6633 *" $deplib "*) func_append specialdeplibs " $deplib" ;;
5501 esac 6634 esac
5502 fi 6635 fi
5503 tmp_libs="$tmp_libs $deplib" 6636 func_append tmp_libs " $deplib"
5504 done # for deplib 6637 done # for deplib
5505 continue 6638 continue
5506 fi # $linkmode = prog... 6639 fi # $linkmode = prog...
@@ -5515,7 +6648,7 @@ func_mode_link ()
5515 # Make sure the rpath contains only unique directories. 6648 # Make sure the rpath contains only unique directories.
5516 case "$temp_rpath:" in 6649 case "$temp_rpath:" in
5517 *"$absdir:"*) ;; 6650 *"$absdir:"*) ;;
5518 *) temp_rpath="$temp_rpath$absdir:" ;; 6651 *) func_append temp_rpath "$absdir:" ;;
5519 esac 6652 esac
5520 fi 6653 fi
5521 6654
@@ -5527,7 +6660,7 @@ func_mode_link ()
5527 *) 6660 *)
5528 case "$compile_rpath " in 6661 case "$compile_rpath " in
5529 *" $absdir "*) ;; 6662 *" $absdir "*) ;;
5530 *) compile_rpath="$compile_rpath $absdir" 6663 *) func_append compile_rpath " $absdir" ;;
5531 esac 6664 esac
5532 ;; 6665 ;;
5533 esac 6666 esac
@@ -5536,7 +6669,7 @@ func_mode_link ()
5536 *) 6669 *)
5537 case "$finalize_rpath " in 6670 case "$finalize_rpath " in
5538 *" $libdir "*) ;; 6671 *" $libdir "*) ;;
5539 *) finalize_rpath="$finalize_rpath $libdir" 6672 *) func_append finalize_rpath " $libdir" ;;
5540 esac 6673 esac
5541 ;; 6674 ;;
5542 esac 6675 esac
@@ -5561,12 +6694,12 @@ func_mode_link ()
5561 case $host in 6694 case $host in
5562 *cygwin* | *mingw* | *cegcc*) 6695 *cygwin* | *mingw* | *cegcc*)
5563 # No point in relinking DLLs because paths are not encoded 6696 # No point in relinking DLLs because paths are not encoded
5564 notinst_deplibs="$notinst_deplibs $lib" 6697 func_append notinst_deplibs " $lib"
5565 need_relink=no 6698 need_relink=no
5566 ;; 6699 ;;
5567 *) 6700 *)
5568 if test "$installed" = no; then 6701 if test "$installed" = no; then
5569 notinst_deplibs="$notinst_deplibs $lib" 6702 func_append notinst_deplibs " $lib"
5570 need_relink=yes 6703 need_relink=yes
5571 fi 6704 fi
5572 ;; 6705 ;;
@@ -5583,7 +6716,7 @@ func_mode_link ()
5583 fi 6716 fi
5584 done 6717 done
5585 if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then 6718 if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then
5586 $ECHO 6719 echo
5587 if test "$linkmode" = prog; then 6720 if test "$linkmode" = prog; then
5588 $ECHO "*** Warning: Linking the executable $output against the loadable module" 6721 $ECHO "*** Warning: Linking the executable $output against the loadable module"
5589 else 6722 else
@@ -5601,7 +6734,7 @@ func_mode_link ()
5601 *) 6734 *)
5602 case "$compile_rpath " in 6735 case "$compile_rpath " in
5603 *" $absdir "*) ;; 6736 *" $absdir "*) ;;
5604 *) compile_rpath="$compile_rpath $absdir" 6737 *) func_append compile_rpath " $absdir" ;;
5605 esac 6738 esac
5606 ;; 6739 ;;
5607 esac 6740 esac
@@ -5610,7 +6743,7 @@ func_mode_link ()
5610 *) 6743 *)
5611 case "$finalize_rpath " in 6744 case "$finalize_rpath " in
5612 *" $libdir "*) ;; 6745 *" $libdir "*) ;;
5613 *) finalize_rpath="$finalize_rpath $libdir" 6746 *) func_append finalize_rpath " $libdir" ;;
5614 esac 6747 esac
5615 ;; 6748 ;;
5616 esac 6749 esac
@@ -5664,7 +6797,7 @@ func_mode_link ()
5664 linklib=$newlib 6797 linklib=$newlib
5665 fi # test -n "$old_archive_from_expsyms_cmds" 6798 fi # test -n "$old_archive_from_expsyms_cmds"
5666 6799
5667 if test "$linkmode" = prog || test "$mode" != relink; then 6800 if test "$linkmode" = prog || test "$opt_mode" != relink; then
5668 add_shlibpath= 6801 add_shlibpath=
5669 add_dir= 6802 add_dir=
5670 add= 6803 add=
@@ -5686,9 +6819,9 @@ func_mode_link ()
5686 if test "X$dlopenmodule" != "X$lib"; then 6819 if test "X$dlopenmodule" != "X$lib"; then
5687 $ECHO "*** Warning: lib $linklib is a module, not a shared library" 6820 $ECHO "*** Warning: lib $linklib is a module, not a shared library"
5688 if test -z "$old_library" ; then 6821 if test -z "$old_library" ; then
5689 $ECHO 6822 echo
5690 $ECHO "*** And there doesn't seem to be a static archive available" 6823 echo "*** And there doesn't seem to be a static archive available"
5691 $ECHO "*** The link will probably fail, sorry" 6824 echo "*** The link will probably fail, sorry"
5692 else 6825 else
5693 add="$dir/$old_library" 6826 add="$dir/$old_library"
5694 fi 6827 fi
@@ -5715,12 +6848,12 @@ func_mode_link ()
5715 test "$hardcode_direct_absolute" = no; then 6848 test "$hardcode_direct_absolute" = no; then
5716 add="$dir/$linklib" 6849 add="$dir/$linklib"
5717 elif test "$hardcode_minus_L" = yes; then 6850 elif test "$hardcode_minus_L" = yes; then
5718 add_dir="-L$dir" 6851 add_dir="-L$absdir"
5719 # Try looking first in the location we're being installed to. 6852 # Try looking first in the location we're being installed to.
5720 if test -n "$inst_prefix_dir"; then 6853 if test -n "$inst_prefix_dir"; then
5721 case $libdir in 6854 case $libdir in
5722 [\\/]*) 6855 [\\/]*)
5723 add_dir="$add_dir -L$inst_prefix_dir$libdir" 6856 func_append add_dir " -L$inst_prefix_dir$libdir"
5724 ;; 6857 ;;
5725 esac 6858 esac
5726 fi 6859 fi
@@ -5742,7 +6875,7 @@ func_mode_link ()
5742 if test -n "$add_shlibpath"; then 6875 if test -n "$add_shlibpath"; then
5743 case :$compile_shlibpath: in 6876 case :$compile_shlibpath: in
5744 *":$add_shlibpath:"*) ;; 6877 *":$add_shlibpath:"*) ;;
5745 *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;; 6878 *) func_append compile_shlibpath "$add_shlibpath:" ;;
5746 esac 6879 esac
5747 fi 6880 fi
5748 if test "$linkmode" = prog; then 6881 if test "$linkmode" = prog; then
@@ -5756,13 +6889,13 @@ func_mode_link ()
5756 test "$hardcode_shlibpath_var" = yes; then 6889 test "$hardcode_shlibpath_var" = yes; then
5757 case :$finalize_shlibpath: in 6890 case :$finalize_shlibpath: in
5758 *":$libdir:"*) ;; 6891 *":$libdir:"*) ;;
5759 *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; 6892 *) func_append finalize_shlibpath "$libdir:" ;;
5760 esac 6893 esac
5761 fi 6894 fi
5762 fi 6895 fi
5763 fi 6896 fi
5764 6897
5765 if test "$linkmode" = prog || test "$mode" = relink; then 6898 if test "$linkmode" = prog || test "$opt_mode" = relink; then
5766 add_shlibpath= 6899 add_shlibpath=
5767 add_dir= 6900 add_dir=
5768 add= 6901 add=
@@ -5776,7 +6909,7 @@ func_mode_link ()
5776 elif test "$hardcode_shlibpath_var" = yes; then 6909 elif test "$hardcode_shlibpath_var" = yes; then
5777 case :$finalize_shlibpath: in 6910 case :$finalize_shlibpath: in
5778 *":$libdir:"*) ;; 6911 *":$libdir:"*) ;;
5779 *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; 6912 *) func_append finalize_shlibpath "$libdir:" ;;
5780 esac 6913 esac
5781 add="-l$name" 6914 add="-l$name"
5782 elif test "$hardcode_automatic" = yes; then 6915 elif test "$hardcode_automatic" = yes; then
@@ -5793,7 +6926,7 @@ func_mode_link ()
5793 if test -n "$inst_prefix_dir"; then 6926 if test -n "$inst_prefix_dir"; then
5794 case $libdir in 6927 case $libdir in
5795 [\\/]*) 6928 [\\/]*)
5796 add_dir="$add_dir -L$inst_prefix_dir$libdir" 6929 func_append add_dir " -L$inst_prefix_dir$libdir"
5797 ;; 6930 ;;
5798 esac 6931 esac
5799 fi 6932 fi
@@ -5828,21 +6961,21 @@ func_mode_link ()
5828 6961
5829 # Just print a warning and add the library to dependency_libs so 6962 # Just print a warning and add the library to dependency_libs so
5830 # that the program can be linked against the static library. 6963 # that the program can be linked against the static library.
5831 $ECHO 6964 echo
5832 $ECHO "*** Warning: This system can not link to static lib archive $lib." 6965 $ECHO "*** Warning: This system can not link to static lib archive $lib."
5833 $ECHO "*** I have the capability to make that library automatically link in when" 6966 echo "*** I have the capability to make that library automatically link in when"
5834 $ECHO "*** you link to this library. But I can only do this if you have a" 6967 echo "*** you link to this library. But I can only do this if you have a"
5835 $ECHO "*** shared version of the library, which you do not appear to have." 6968 echo "*** shared version of the library, which you do not appear to have."
5836 if test "$module" = yes; then 6969 if test "$module" = yes; then
5837 $ECHO "*** But as you try to build a module library, libtool will still create " 6970 echo "*** But as you try to build a module library, libtool will still create "
5838 $ECHO "*** a static module, that should work as long as the dlopening application" 6971 echo "*** a static module, that should work as long as the dlopening application"
5839 $ECHO "*** is linked with the -dlopen flag to resolve symbols at runtime." 6972 echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
5840 if test -z "$global_symbol_pipe"; then 6973 if test -z "$global_symbol_pipe"; then
5841 $ECHO 6974 echo
5842 $ECHO "*** However, this would only work if libtool was able to extract symbol" 6975 echo "*** However, this would only work if libtool was able to extract symbol"
5843 $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could" 6976 echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
5844 $ECHO "*** not find such a program. So, this module is probably useless." 6977 echo "*** not find such a program. So, this module is probably useless."
5845 $ECHO "*** \`nm' from GNU binutils and a full rebuild may help." 6978 echo "*** \`nm' from GNU binutils and a full rebuild may help."
5846 fi 6979 fi
5847 if test "$build_old_libs" = no; then 6980 if test "$build_old_libs" = no; then
5848 build_libtool_libs=module 6981 build_libtool_libs=module
@@ -5870,27 +7003,33 @@ func_mode_link ()
5870 temp_xrpath=$func_stripname_result 7003 temp_xrpath=$func_stripname_result
5871 case " $xrpath " in 7004 case " $xrpath " in
5872 *" $temp_xrpath "*) ;; 7005 *" $temp_xrpath "*) ;;
5873 *) xrpath="$xrpath $temp_xrpath";; 7006 *) func_append xrpath " $temp_xrpath";;
5874 esac;; 7007 esac;;
5875 *) temp_deplibs="$temp_deplibs $libdir";; 7008 *) func_append temp_deplibs " $libdir";;
5876 esac 7009 esac
5877 done 7010 done
5878 dependency_libs="$temp_deplibs" 7011 dependency_libs="$temp_deplibs"
5879 fi 7012 fi
5880 7013
5881 newlib_search_path="$newlib_search_path $absdir" 7014 func_append newlib_search_path " $absdir"
5882 # Link against this library 7015 # Link against this library
5883 test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" 7016 test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
5884 # ... and its dependency_libs 7017 # ... and its dependency_libs
5885 tmp_libs= 7018 tmp_libs=
5886 for deplib in $dependency_libs; do 7019 for deplib in $dependency_libs; do
5887 newdependency_libs="$deplib $newdependency_libs" 7020 newdependency_libs="$deplib $newdependency_libs"
5888 if $opt_duplicate_deps ; then 7021 case $deplib in
7022 -L*) func_stripname '-L' '' "$deplib"
7023 func_resolve_sysroot "$func_stripname_result";;
7024 *) func_resolve_sysroot "$deplib" ;;
7025 esac
7026 if $opt_preserve_dup_deps ; then
5889 case "$tmp_libs " in 7027 case "$tmp_libs " in
5890 *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; 7028 *" $func_resolve_sysroot_result "*)
7029 func_append specialdeplibs " $func_resolve_sysroot_result" ;;
5891 esac 7030 esac
5892 fi 7031 fi
5893 tmp_libs="$tmp_libs $deplib" 7032 func_append tmp_libs " $func_resolve_sysroot_result"
5894 done 7033 done
5895 7034
5896 if test "$link_all_deplibs" != no; then 7035 if test "$link_all_deplibs" != no; then
@@ -5900,8 +7039,10 @@ func_mode_link ()
5900 case $deplib in 7039 case $deplib in
5901 -L*) path="$deplib" ;; 7040 -L*) path="$deplib" ;;
5902 *.la) 7041 *.la)
7042 func_resolve_sysroot "$deplib"
7043 deplib=$func_resolve_sysroot_result
5903 func_dirname "$deplib" "" "." 7044 func_dirname "$deplib" "" "."
5904 dir="$func_dirname_result" 7045 dir=$func_dirname_result
5905 # We need an absolute path. 7046 # We need an absolute path.
5906 case $dir in 7047 case $dir in
5907 [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; 7048 [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
@@ -5928,8 +7069,8 @@ func_mode_link ()
5928 if test -z "$darwin_install_name"; then 7069 if test -z "$darwin_install_name"; then
5929 darwin_install_name=`${OTOOL64} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` 7070 darwin_install_name=`${OTOOL64} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'`
5930 fi 7071 fi
5931 compiler_flags="$compiler_flags ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}" 7072 func_append compiler_flags " ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}"
5932 linker_flags="$linker_flags -dylib_file ${darwin_install_name}:${depdepl}" 7073 func_append linker_flags " -dylib_file ${darwin_install_name}:${depdepl}"
5933 path= 7074 path=
5934 fi 7075 fi
5935 fi 7076 fi
@@ -5962,7 +7103,7 @@ func_mode_link ()
5962 compile_deplibs="$new_inherited_linker_flags $compile_deplibs" 7103 compile_deplibs="$new_inherited_linker_flags $compile_deplibs"
5963 finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" 7104 finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs"
5964 else 7105 else
5965 compiler_flags="$compiler_flags "`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` 7106 compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
5966 fi 7107 fi
5967 fi 7108 fi
5968 dependency_libs="$newdependency_libs" 7109 dependency_libs="$newdependency_libs"
@@ -5979,7 +7120,7 @@ func_mode_link ()
5979 for dir in $newlib_search_path; do 7120 for dir in $newlib_search_path; do
5980 case "$lib_search_path " in 7121 case "$lib_search_path " in
5981 *" $dir "*) ;; 7122 *" $dir "*) ;;
5982 *) lib_search_path="$lib_search_path $dir" ;; 7123 *) func_append lib_search_path " $dir" ;;
5983 esac 7124 esac
5984 done 7125 done
5985 newlib_search_path= 7126 newlib_search_path=
@@ -6037,10 +7178,10 @@ func_mode_link ()
6037 -L*) 7178 -L*)
6038 case " $tmp_libs " in 7179 case " $tmp_libs " in
6039 *" $deplib "*) ;; 7180 *" $deplib "*) ;;
6040 *) tmp_libs="$tmp_libs $deplib" ;; 7181 *) func_append tmp_libs " $deplib" ;;
6041 esac 7182 esac
6042 ;; 7183 ;;
6043 *) tmp_libs="$tmp_libs $deplib" ;; 7184 *) func_append tmp_libs " $deplib" ;;
6044 esac 7185 esac
6045 done 7186 done
6046 eval $var=\"$tmp_libs\" 7187 eval $var=\"$tmp_libs\"
@@ -6056,7 +7197,7 @@ func_mode_link ()
6056 ;; 7197 ;;
6057 esac 7198 esac
6058 if test -n "$i" ; then 7199 if test -n "$i" ; then
6059 tmp_libs="$tmp_libs $i" 7200 func_append tmp_libs " $i"
6060 fi 7201 fi
6061 done 7202 done
6062 dependency_libs=$tmp_libs 7203 dependency_libs=$tmp_libs
@@ -6097,7 +7238,7 @@ func_mode_link ()
6097 # Now set the variables for building old libraries. 7238 # Now set the variables for building old libraries.
6098 build_libtool_libs=no 7239 build_libtool_libs=no
6099 oldlibs="$output" 7240 oldlibs="$output"
6100 objs="$objs$old_deplibs" 7241 func_append objs "$old_deplibs"
6101 ;; 7242 ;;
6102 7243
6103 lib) 7244 lib)
@@ -6130,10 +7271,10 @@ func_mode_link ()
6130 if test "$deplibs_check_method" != pass_all; then 7271 if test "$deplibs_check_method" != pass_all; then
6131 func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 7272 func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs"
6132 else 7273 else
6133 $ECHO 7274 echo
6134 $ECHO "*** Warning: Linking the shared library $output against the non-libtool" 7275 $ECHO "*** Warning: Linking the shared library $output against the non-libtool"
6135 $ECHO "*** objects $objs is not portable!" 7276 $ECHO "*** objects $objs is not portable!"
6136 libobjs="$libobjs $objs" 7277 func_append libobjs " $objs"
6137 fi 7278 fi
6138 fi 7279 fi
6139 7280
@@ -6192,13 +7333,14 @@ func_mode_link ()
6192 # which has an extra 1 added just for fun 7333 # which has an extra 1 added just for fun
6193 # 7334 #
6194 case $version_type in 7335 case $version_type in
7336 # correct linux to gnu/linux during the next big refactor
6195 darwin|linux|osf|windows|none) 7337 darwin|linux|osf|windows|none)
6196 func_arith $number_major + $number_minor 7338 func_arith $number_major + $number_minor
6197 current=$func_arith_result 7339 current=$func_arith_result
6198 age="$number_minor" 7340 age="$number_minor"
6199 revision="$number_revision" 7341 revision="$number_revision"
6200 ;; 7342 ;;
6201 freebsd-aout|freebsd-elf|sunos) 7343 freebsd-aout|freebsd-elf|qnx|sunos)
6202 current="$number_major" 7344 current="$number_major"
6203 revision="$number_minor" 7345 revision="$number_minor"
6204 age="0" 7346 age="0"
@@ -6311,7 +7453,7 @@ func_mode_link ()
6311 versuffix="$major.$revision" 7453 versuffix="$major.$revision"
6312 ;; 7454 ;;
6313 7455
6314 linux) 7456 linux) # correct to gnu/linux during the next big refactor
6315 func_arith $current - $age 7457 func_arith $current - $age
6316 major=.$func_arith_result 7458 major=.$func_arith_result
6317 versuffix="$major.$age.$revision" 7459 versuffix="$major.$age.$revision"
@@ -6334,7 +7476,7 @@ func_mode_link ()
6334 done 7476 done
6335 7477
6336 # Make executables depend on our current version. 7478 # Make executables depend on our current version.
6337 verstring="$verstring:${current}.0" 7479 func_append verstring ":${current}.0"
6338 ;; 7480 ;;
6339 7481
6340 qnx) 7482 qnx)
@@ -6402,10 +7544,10 @@ func_mode_link ()
6402 fi 7544 fi
6403 7545
6404 func_generate_dlsyms "$libname" "$libname" "yes" 7546 func_generate_dlsyms "$libname" "$libname" "yes"
6405 libobjs="$libobjs $symfileobj" 7547 func_append libobjs " $symfileobj"
6406 test "X$libobjs" = "X " && libobjs= 7548 test "X$libobjs" = "X " && libobjs=
6407 7549
6408 if test "$mode" != relink; then 7550 if test "$opt_mode" != relink; then
6409 # Remove our outputs, but don't remove object files since they 7551 # Remove our outputs, but don't remove object files since they
6410 # may have been created when compiling PIC objects. 7552 # may have been created when compiling PIC objects.
6411 removelist= 7553 removelist=
@@ -6421,7 +7563,7 @@ func_mode_link ()
6421 continue 7563 continue
6422 fi 7564 fi
6423 fi 7565 fi
6424 removelist="$removelist $p" 7566 func_append removelist " $p"
6425 ;; 7567 ;;
6426 *) ;; 7568 *) ;;
6427 esac 7569 esac
@@ -6432,27 +7574,28 @@ func_mode_link ()
6432 7574
6433 # Now set the variables for building old libraries. 7575 # Now set the variables for building old libraries.
6434 if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then 7576 if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
6435 oldlibs="$oldlibs $output_objdir/$libname.$libext" 7577 func_append oldlibs " $output_objdir/$libname.$libext"
6436 7578
6437 # Transform .lo files to .o files. 7579 # Transform .lo files to .o files.
6438 oldobjs="$objs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP` 7580 oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; $lo2o" | $NL2SP`
6439 fi 7581 fi
6440 7582
6441 # Eliminate all temporary directories. 7583 # Eliminate all temporary directories.
6442 #for path in $notinst_path; do 7584 #for path in $notinst_path; do
6443 # lib_search_path=`$ECHO "X$lib_search_path " | $Xsed -e "s% $path % %g"` 7585 # lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"`
6444 # deplibs=`$ECHO "X$deplibs " | $Xsed -e "s% -L$path % %g"` 7586 # deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"`
6445 # dependency_libs=`$ECHO "X$dependency_libs " | $Xsed -e "s% -L$path % %g"` 7587 # dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"`
6446 #done 7588 #done
6447 7589
6448 if test -n "$xrpath"; then 7590 if test -n "$xrpath"; then
6449 # If the user specified any rpath flags, then add them. 7591 # If the user specified any rpath flags, then add them.
6450 temp_xrpath= 7592 temp_xrpath=
6451 for libdir in $xrpath; do 7593 for libdir in $xrpath; do
6452 temp_xrpath="$temp_xrpath -R$libdir" 7594 func_replace_sysroot "$libdir"
7595 func_append temp_xrpath " -R$func_replace_sysroot_result"
6453 case "$finalize_rpath " in 7596 case "$finalize_rpath " in
6454 *" $libdir "*) ;; 7597 *" $libdir "*) ;;
6455 *) finalize_rpath="$finalize_rpath $libdir" ;; 7598 *) func_append finalize_rpath " $libdir" ;;
6456 esac 7599 esac
6457 done 7600 done
6458 if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then 7601 if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
@@ -6466,7 +7609,7 @@ func_mode_link ()
6466 for lib in $old_dlfiles; do 7609 for lib in $old_dlfiles; do
6467 case " $dlprefiles $dlfiles " in 7610 case " $dlprefiles $dlfiles " in
6468 *" $lib "*) ;; 7611 *" $lib "*) ;;
6469 *) dlfiles="$dlfiles $lib" ;; 7612 *) func_append dlfiles " $lib" ;;
6470 esac 7613 esac
6471 done 7614 done
6472 7615
@@ -6476,19 +7619,19 @@ func_mode_link ()
6476 for lib in $old_dlprefiles; do 7619 for lib in $old_dlprefiles; do
6477 case "$dlprefiles " in 7620 case "$dlprefiles " in
6478 *" $lib "*) ;; 7621 *" $lib "*) ;;
6479 *) dlprefiles="$dlprefiles $lib" ;; 7622 *) func_append dlprefiles " $lib" ;;
6480 esac 7623 esac
6481 done 7624 done
6482 7625
6483 if test "$build_libtool_libs" = yes; then 7626 if test "$build_libtool_libs" = yes; then
6484 if test -n "$rpath"; then 7627 if test -n "$rpath"; then
6485 case $host in 7628 case $host in
6486 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc*) 7629 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*)
6487 # these systems don't actually have a c library (as such)! 7630 # these systems don't actually have a c library (as such)!
6488 ;; 7631 ;;
6489 *-*-rhapsody* | *-*-darwin1.[012]) 7632 *-*-rhapsody* | *-*-darwin1.[012])
6490 # Rhapsody C library is in the System framework 7633 # Rhapsody C library is in the System framework
6491 deplibs="$deplibs System.ltframework" 7634 func_append deplibs " System.ltframework"
6492 ;; 7635 ;;
6493 *-*-netbsd*) 7636 *-*-netbsd*)
6494 # Don't link with libc until the a.out ld.so is fixed. 7637 # Don't link with libc until the a.out ld.so is fixed.
@@ -6505,7 +7648,7 @@ func_mode_link ()
6505 *) 7648 *)
6506 # Add libc to deplibs on all other systems if necessary. 7649 # Add libc to deplibs on all other systems if necessary.
6507 if test "$build_libtool_need_lc" = "yes"; then 7650 if test "$build_libtool_need_lc" = "yes"; then
6508 deplibs="$deplibs -lc" 7651 func_append deplibs " -lc"
6509 fi 7652 fi
6510 ;; 7653 ;;
6511 esac 7654 esac
@@ -6554,7 +7697,7 @@ EOF
6554 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then 7697 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
6555 case " $predeps $postdeps " in 7698 case " $predeps $postdeps " in
6556 *" $i "*) 7699 *" $i "*)
6557 newdeplibs="$newdeplibs $i" 7700 func_append newdeplibs " $i"
6558 i="" 7701 i=""
6559 ;; 7702 ;;
6560 esac 7703 esac
@@ -6565,21 +7708,21 @@ EOF
6565 set dummy $deplib_matches; shift 7708 set dummy $deplib_matches; shift
6566 deplib_match=$1 7709 deplib_match=$1
6567 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then 7710 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
6568 newdeplibs="$newdeplibs $i" 7711 func_append newdeplibs " $i"
6569 else 7712 else
6570 droppeddeps=yes 7713 droppeddeps=yes
6571 $ECHO 7714 echo
6572 $ECHO "*** Warning: dynamic linker does not accept needed library $i." 7715 $ECHO "*** Warning: dynamic linker does not accept needed library $i."
6573 $ECHO "*** I have the capability to make that library automatically link in when" 7716 echo "*** I have the capability to make that library automatically link in when"
6574 $ECHO "*** you link to this library. But I can only do this if you have a" 7717 echo "*** you link to this library. But I can only do this if you have a"
6575 $ECHO "*** shared version of the library, which I believe you do not have" 7718 echo "*** shared version of the library, which I believe you do not have"
6576 $ECHO "*** because a test_compile did reveal that the linker did not use it for" 7719 echo "*** because a test_compile did reveal that the linker did not use it for"
6577 $ECHO "*** its dynamic dependency list that programs get resolved with at runtime." 7720 echo "*** its dynamic dependency list that programs get resolved with at runtime."
6578 fi 7721 fi
6579 fi 7722 fi
6580 ;; 7723 ;;
6581 *) 7724 *)
6582 newdeplibs="$newdeplibs $i" 7725 func_append newdeplibs " $i"
6583 ;; 7726 ;;
6584 esac 7727 esac
6585 done 7728 done
@@ -6597,7 +7740,7 @@ EOF
6597 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then 7740 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
6598 case " $predeps $postdeps " in 7741 case " $predeps $postdeps " in
6599 *" $i "*) 7742 *" $i "*)
6600 newdeplibs="$newdeplibs $i" 7743 func_append newdeplibs " $i"
6601 i="" 7744 i=""
6602 ;; 7745 ;;
6603 esac 7746 esac
@@ -6608,29 +7751,29 @@ EOF
6608 set dummy $deplib_matches; shift 7751 set dummy $deplib_matches; shift
6609 deplib_match=$1 7752 deplib_match=$1
6610 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then 7753 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
6611 newdeplibs="$newdeplibs $i" 7754 func_append newdeplibs " $i"
6612 else 7755 else
6613 droppeddeps=yes 7756 droppeddeps=yes
6614 $ECHO 7757 echo
6615 $ECHO "*** Warning: dynamic linker does not accept needed library $i." 7758 $ECHO "*** Warning: dynamic linker does not accept needed library $i."
6616 $ECHO "*** I have the capability to make that library automatically link in when" 7759 echo "*** I have the capability to make that library automatically link in when"
6617 $ECHO "*** you link to this library. But I can only do this if you have a" 7760 echo "*** you link to this library. But I can only do this if you have a"
6618 $ECHO "*** shared version of the library, which you do not appear to have" 7761 echo "*** shared version of the library, which you do not appear to have"
6619 $ECHO "*** because a test_compile did reveal that the linker did not use this one" 7762 echo "*** because a test_compile did reveal that the linker did not use this one"
6620 $ECHO "*** as a dynamic dependency that programs can get resolved with at runtime." 7763 echo "*** as a dynamic dependency that programs can get resolved with at runtime."
6621 fi 7764 fi
6622 fi 7765 fi
6623 else 7766 else
6624 droppeddeps=yes 7767 droppeddeps=yes
6625 $ECHO 7768 echo
6626 $ECHO "*** Warning! Library $i is needed by this library but I was not able to" 7769 $ECHO "*** Warning! Library $i is needed by this library but I was not able to"
6627 $ECHO "*** make it link in! You will probably need to install it or some" 7770 echo "*** make it link in! You will probably need to install it or some"
6628 $ECHO "*** library that it depends on before this library will be fully" 7771 echo "*** library that it depends on before this library will be fully"
6629 $ECHO "*** functional. Installing it before continuing would be even better." 7772 echo "*** functional. Installing it before continuing would be even better."
6630 fi 7773 fi
6631 ;; 7774 ;;
6632 *) 7775 *)
6633 newdeplibs="$newdeplibs $i" 7776 func_append newdeplibs " $i"
6634 ;; 7777 ;;
6635 esac 7778 esac
6636 done 7779 done
@@ -6647,15 +7790,27 @@ EOF
6647 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then 7790 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
6648 case " $predeps $postdeps " in 7791 case " $predeps $postdeps " in
6649 *" $a_deplib "*) 7792 *" $a_deplib "*)
6650 newdeplibs="$newdeplibs $a_deplib" 7793 func_append newdeplibs " $a_deplib"
6651 a_deplib="" 7794 a_deplib=""
6652 ;; 7795 ;;
6653 esac 7796 esac
6654 fi 7797 fi
6655 if test -n "$a_deplib" ; then 7798 if test -n "$a_deplib" ; then
6656 libname=`eval "\\$ECHO \"$libname_spec\""` 7799 libname=`eval "\\$ECHO \"$libname_spec\""`
7800 if test -n "$file_magic_glob"; then
7801 libnameglob=`func_echo_all "$libname" | $SED -e $file_magic_glob`
7802 else
7803 libnameglob=$libname
7804 fi
7805 test "$want_nocaseglob" = yes && nocaseglob=`shopt -p nocaseglob`
6657 for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do 7806 for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
6658 potential_libs=`ls $i/$libname[.-]* 2>/dev/null` 7807 if test "$want_nocaseglob" = yes; then
7808 shopt -s nocaseglob
7809 potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null`
7810 $nocaseglob
7811 else
7812 potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null`
7813 fi
6659 for potent_lib in $potential_libs; do 7814 for potent_lib in $potential_libs; do
6660 # Follow soft links. 7815 # Follow soft links.
6661 if ls -lLd "$potent_lib" 2>/dev/null | 7816 if ls -lLd "$potent_lib" 2>/dev/null |
@@ -6672,13 +7827,13 @@ EOF
6672 potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` 7827 potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
6673 case $potliblink in 7828 case $potliblink in
6674 [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; 7829 [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
6675 *) potlib=`$ECHO "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";; 7830 *) potlib=`$ECHO "$potlib" | $SED 's,[^/]*$,,'`"$potliblink";;
6676 esac 7831 esac
6677 done 7832 done
6678 if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | 7833 if eval $file_magic_cmd \"\$potlib\" 2>/dev/null |
6679 $SED -e 10q | 7834 $SED -e 10q |
6680 $EGREP "$file_magic_regex" > /dev/null; then 7835 $EGREP "$file_magic_regex" > /dev/null; then
6681 newdeplibs="$newdeplibs $a_deplib" 7836 func_append newdeplibs " $a_deplib"
6682 a_deplib="" 7837 a_deplib=""
6683 break 2 7838 break 2
6684 fi 7839 fi
@@ -6687,12 +7842,12 @@ EOF
6687 fi 7842 fi
6688 if test -n "$a_deplib" ; then 7843 if test -n "$a_deplib" ; then
6689 droppeddeps=yes 7844 droppeddeps=yes
6690 $ECHO 7845 echo
6691 $ECHO "*** Warning: linker path does not have real file for library $a_deplib." 7846 $ECHO "*** Warning: linker path does not have real file for library $a_deplib."
6692 $ECHO "*** I have the capability to make that library automatically link in when" 7847 echo "*** I have the capability to make that library automatically link in when"
6693 $ECHO "*** you link to this library. But I can only do this if you have a" 7848 echo "*** you link to this library. But I can only do this if you have a"
6694 $ECHO "*** shared version of the library, which you do not appear to have" 7849 echo "*** shared version of the library, which you do not appear to have"
6695 $ECHO "*** because I did check the linker path looking for a file starting" 7850 echo "*** because I did check the linker path looking for a file starting"
6696 if test -z "$potlib" ; then 7851 if test -z "$potlib" ; then
6697 $ECHO "*** with $libname but no candidates were found. (...for file magic test)" 7852 $ECHO "*** with $libname but no candidates were found. (...for file magic test)"
6698 else 7853 else
@@ -6703,7 +7858,7 @@ EOF
6703 ;; 7858 ;;
6704 *) 7859 *)
6705 # Add a -L argument. 7860 # Add a -L argument.
6706 newdeplibs="$newdeplibs $a_deplib" 7861 func_append newdeplibs " $a_deplib"
6707 ;; 7862 ;;
6708 esac 7863 esac
6709 done # Gone through all deplibs. 7864 done # Gone through all deplibs.
@@ -6719,7 +7874,7 @@ EOF
6719 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then 7874 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
6720 case " $predeps $postdeps " in 7875 case " $predeps $postdeps " in
6721 *" $a_deplib "*) 7876 *" $a_deplib "*)
6722 newdeplibs="$newdeplibs $a_deplib" 7877 func_append newdeplibs " $a_deplib"
6723 a_deplib="" 7878 a_deplib=""
6724 ;; 7879 ;;
6725 esac 7880 esac
@@ -6730,9 +7885,9 @@ EOF
6730 potential_libs=`ls $i/$libname[.-]* 2>/dev/null` 7885 potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
6731 for potent_lib in $potential_libs; do 7886 for potent_lib in $potential_libs; do
6732 potlib="$potent_lib" # see symlink-check above in file_magic test 7887 potlib="$potent_lib" # see symlink-check above in file_magic test
6733 if eval "\$ECHO \"X$potent_lib\"" 2>/dev/null | $Xsed -e 10q | \ 7888 if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \
6734 $EGREP "$match_pattern_regex" > /dev/null; then 7889 $EGREP "$match_pattern_regex" > /dev/null; then
6735 newdeplibs="$newdeplibs $a_deplib" 7890 func_append newdeplibs " $a_deplib"
6736 a_deplib="" 7891 a_deplib=""
6737 break 2 7892 break 2
6738 fi 7893 fi
@@ -6741,12 +7896,12 @@ EOF
6741 fi 7896 fi
6742 if test -n "$a_deplib" ; then 7897 if test -n "$a_deplib" ; then
6743 droppeddeps=yes 7898 droppeddeps=yes
6744 $ECHO 7899 echo
6745 $ECHO "*** Warning: linker path does not have real file for library $a_deplib." 7900 $ECHO "*** Warning: linker path does not have real file for library $a_deplib."
6746 $ECHO "*** I have the capability to make that library automatically link in when" 7901 echo "*** I have the capability to make that library automatically link in when"
6747 $ECHO "*** you link to this library. But I can only do this if you have a" 7902 echo "*** you link to this library. But I can only do this if you have a"
6748 $ECHO "*** shared version of the library, which you do not appear to have" 7903 echo "*** shared version of the library, which you do not appear to have"
6749 $ECHO "*** because I did check the linker path looking for a file starting" 7904 echo "*** because I did check the linker path looking for a file starting"
6750 if test -z "$potlib" ; then 7905 if test -z "$potlib" ; then
6751 $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)" 7906 $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)"
6752 else 7907 else
@@ -6757,32 +7912,32 @@ EOF
6757 ;; 7912 ;;
6758 *) 7913 *)
6759 # Add a -L argument. 7914 # Add a -L argument.
6760 newdeplibs="$newdeplibs $a_deplib" 7915 func_append newdeplibs " $a_deplib"
6761 ;; 7916 ;;
6762 esac 7917 esac
6763 done # Gone through all deplibs. 7918 done # Gone through all deplibs.
6764 ;; 7919 ;;
6765 none | unknown | *) 7920 none | unknown | *)
6766 newdeplibs="" 7921 newdeplibs=""
6767 tmp_deplibs=`$ECHO "X $deplibs" | $Xsed \ 7922 tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'`
6768 -e 's/ -lc$//' -e 's/ -[LR][^ ]*//g'`
6769 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then 7923 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
6770 for i in $predeps $postdeps ; do 7924 for i in $predeps $postdeps ; do
6771 # can't use Xsed below, because $i might contain '/' 7925 # can't use Xsed below, because $i might contain '/'
6772 tmp_deplibs=`$ECHO "X $tmp_deplibs" | $Xsed -e "s,$i,,"` 7926 tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s,$i,,"`
6773 done 7927 done
6774 fi 7928 fi
6775 if $ECHO "X $tmp_deplibs" | $Xsed -e 's/[ ]//g' | 7929 case $tmp_deplibs in
6776 $GREP . >/dev/null; then 7930 *[!\ \ ]*)
6777 $ECHO 7931 echo
6778 if test "X$deplibs_check_method" = "Xnone"; then 7932 if test "X$deplibs_check_method" = "Xnone"; then
6779 $ECHO "*** Warning: inter-library dependencies are not supported in this platform." 7933 echo "*** Warning: inter-library dependencies are not supported in this platform."
6780 else 7934 else
6781 $ECHO "*** Warning: inter-library dependencies are not known to be supported." 7935 echo "*** Warning: inter-library dependencies are not known to be supported."
6782 fi 7936 fi
6783 $ECHO "*** All declared inter-library dependencies are being dropped." 7937 echo "*** All declared inter-library dependencies are being dropped."
6784 droppeddeps=yes 7938 droppeddeps=yes
6785 fi 7939 ;;
7940 esac
6786 ;; 7941 ;;
6787 esac 7942 esac
6788 versuffix=$versuffix_save 7943 versuffix=$versuffix_save
@@ -6794,23 +7949,23 @@ EOF
6794 case $host in 7949 case $host in
6795 *-*-rhapsody* | *-*-darwin1.[012]) 7950 *-*-rhapsody* | *-*-darwin1.[012])
6796 # On Rhapsody replace the C library with the System framework 7951 # On Rhapsody replace the C library with the System framework
6797 newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's/ -lc / System.ltframework /'` 7952 newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'`
6798 ;; 7953 ;;
6799 esac 7954 esac
6800 7955
6801 if test "$droppeddeps" = yes; then 7956 if test "$droppeddeps" = yes; then
6802 if test "$module" = yes; then 7957 if test "$module" = yes; then
6803 $ECHO 7958 echo
6804 $ECHO "*** Warning: libtool could not satisfy all declared inter-library" 7959 echo "*** Warning: libtool could not satisfy all declared inter-library"
6805 $ECHO "*** dependencies of module $libname. Therefore, libtool will create" 7960 $ECHO "*** dependencies of module $libname. Therefore, libtool will create"
6806 $ECHO "*** a static module, that should work as long as the dlopening" 7961 echo "*** a static module, that should work as long as the dlopening"
6807 $ECHO "*** application is linked with the -dlopen flag." 7962 echo "*** application is linked with the -dlopen flag."
6808 if test -z "$global_symbol_pipe"; then 7963 if test -z "$global_symbol_pipe"; then
6809 $ECHO 7964 echo
6810 $ECHO "*** However, this would only work if libtool was able to extract symbol" 7965 echo "*** However, this would only work if libtool was able to extract symbol"
6811 $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could" 7966 echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
6812 $ECHO "*** not find such a program. So, this module is probably useless." 7967 echo "*** not find such a program. So, this module is probably useless."
6813 $ECHO "*** \`nm' from GNU binutils and a full rebuild may help." 7968 echo "*** \`nm' from GNU binutils and a full rebuild may help."
6814 fi 7969 fi
6815 if test "$build_old_libs" = no; then 7970 if test "$build_old_libs" = no; then
6816 oldlibs="$output_objdir/$libname.$libext" 7971 oldlibs="$output_objdir/$libname.$libext"
@@ -6820,16 +7975,16 @@ EOF
6820 build_libtool_libs=no 7975 build_libtool_libs=no
6821 fi 7976 fi
6822 else 7977 else
6823 $ECHO "*** The inter-library dependencies that have been dropped here will be" 7978 echo "*** The inter-library dependencies that have been dropped here will be"
6824 $ECHO "*** automatically added whenever a program is linked with this library" 7979 echo "*** automatically added whenever a program is linked with this library"
6825 $ECHO "*** or is declared to -dlopen it." 7980 echo "*** or is declared to -dlopen it."
6826 7981
6827 if test "$allow_undefined" = no; then 7982 if test "$allow_undefined" = no; then
6828 $ECHO 7983 echo
6829 $ECHO "*** Since this library must not contain undefined symbols," 7984 echo "*** Since this library must not contain undefined symbols,"
6830 $ECHO "*** because either the platform does not support them or" 7985 echo "*** because either the platform does not support them or"
6831 $ECHO "*** it was explicitly requested with -no-undefined," 7986 echo "*** it was explicitly requested with -no-undefined,"
6832 $ECHO "*** libtool will only create a static version of it." 7987 echo "*** libtool will only create a static version of it."
6833 if test "$build_old_libs" = no; then 7988 if test "$build_old_libs" = no; then
6834 oldlibs="$output_objdir/$libname.$libext" 7989 oldlibs="$output_objdir/$libname.$libext"
6835 build_libtool_libs=module 7990 build_libtool_libs=module
@@ -6846,9 +8001,9 @@ EOF
6846 # Time to change all our "foo.ltframework" stuff back to "-framework foo" 8001 # Time to change all our "foo.ltframework" stuff back to "-framework foo"
6847 case $host in 8002 case $host in
6848 *-*-darwin*) 8003 *-*-darwin*)
6849 newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` 8004 newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
6850 new_inherited_linker_flags=`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` 8005 new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
6851 deplibs=`$ECHO "X $deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` 8006 deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
6852 ;; 8007 ;;
6853 esac 8008 esac
6854 8009
@@ -6861,7 +8016,7 @@ EOF
6861 *) 8016 *)
6862 case " $deplibs " in 8017 case " $deplibs " in
6863 *" -L$path/$objdir "*) 8018 *" -L$path/$objdir "*)
6864 new_libs="$new_libs -L$path/$objdir" ;; 8019 func_append new_libs " -L$path/$objdir" ;;
6865 esac 8020 esac
6866 ;; 8021 ;;
6867 esac 8022 esac
@@ -6871,10 +8026,10 @@ EOF
6871 -L*) 8026 -L*)
6872 case " $new_libs " in 8027 case " $new_libs " in
6873 *" $deplib "*) ;; 8028 *" $deplib "*) ;;
6874 *) new_libs="$new_libs $deplib" ;; 8029 *) func_append new_libs " $deplib" ;;
6875 esac 8030 esac
6876 ;; 8031 ;;
6877 *) new_libs="$new_libs $deplib" ;; 8032 *) func_append new_libs " $deplib" ;;
6878 esac 8033 esac
6879 done 8034 done
6880 deplibs="$new_libs" 8035 deplibs="$new_libs"
@@ -6886,15 +8041,22 @@ EOF
6886 8041
6887 # Test again, we may have decided not to build it any more 8042 # Test again, we may have decided not to build it any more
6888 if test "$build_libtool_libs" = yes; then 8043 if test "$build_libtool_libs" = yes; then
8044 # Remove ${wl} instances when linking with ld.
8045 # FIXME: should test the right _cmds variable.
8046 case $archive_cmds in
8047 *\$LD\ *) wl= ;;
8048 esac
6889 if test "$hardcode_into_libs" = yes; then 8049 if test "$hardcode_into_libs" = yes; then
6890 # Hardcode the library paths 8050 # Hardcode the library paths
6891 hardcode_libdirs= 8051 hardcode_libdirs=
6892 dep_rpath= 8052 dep_rpath=
6893 rpath="$finalize_rpath" 8053 rpath="$finalize_rpath"
6894 test "$mode" != relink && rpath="$compile_rpath$rpath" 8054 test "$opt_mode" != relink && rpath="$compile_rpath$rpath"
6895 for libdir in $rpath; do 8055 for libdir in $rpath; do
6896 if test -n "$hardcode_libdir_flag_spec"; then 8056 if test -n "$hardcode_libdir_flag_spec"; then
6897 if test -n "$hardcode_libdir_separator"; then 8057 if test -n "$hardcode_libdir_separator"; then
8058 func_replace_sysroot "$libdir"
8059 libdir=$func_replace_sysroot_result
6898 if test -z "$hardcode_libdirs"; then 8060 if test -z "$hardcode_libdirs"; then
6899 hardcode_libdirs="$libdir" 8061 hardcode_libdirs="$libdir"
6900 else 8062 else
@@ -6903,18 +8065,18 @@ EOF
6903 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) 8065 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
6904 ;; 8066 ;;
6905 *) 8067 *)
6906 hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" 8068 func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
6907 ;; 8069 ;;
6908 esac 8070 esac
6909 fi 8071 fi
6910 else 8072 else
6911 eval flag=\"$hardcode_libdir_flag_spec\" 8073 eval flag=\"$hardcode_libdir_flag_spec\"
6912 dep_rpath="$dep_rpath $flag" 8074 func_append dep_rpath " $flag"
6913 fi 8075 fi
6914 elif test -n "$runpath_var"; then 8076 elif test -n "$runpath_var"; then
6915 case "$perm_rpath " in 8077 case "$perm_rpath " in
6916 *" $libdir "*) ;; 8078 *" $libdir "*) ;;
6917 *) perm_rpath="$perm_rpath $libdir" ;; 8079 *) func_append perm_rpath " $libdir" ;;
6918 esac 8080 esac
6919 fi 8081 fi
6920 done 8082 done
@@ -6922,17 +8084,13 @@ EOF
6922 if test -n "$hardcode_libdir_separator" && 8084 if test -n "$hardcode_libdir_separator" &&
6923 test -n "$hardcode_libdirs"; then 8085 test -n "$hardcode_libdirs"; then
6924 libdir="$hardcode_libdirs" 8086 libdir="$hardcode_libdirs"
6925 if test -n "$hardcode_libdir_flag_spec_ld"; then 8087 eval "dep_rpath=\"$hardcode_libdir_flag_spec\""
6926 eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\"
6927 else
6928 eval dep_rpath=\"$hardcode_libdir_flag_spec\"
6929 fi
6930 fi 8088 fi
6931 if test -n "$runpath_var" && test -n "$perm_rpath"; then 8089 if test -n "$runpath_var" && test -n "$perm_rpath"; then
6932 # We should set the runpath_var. 8090 # We should set the runpath_var.
6933 rpath= 8091 rpath=
6934 for dir in $perm_rpath; do 8092 for dir in $perm_rpath; do
6935 rpath="$rpath$dir:" 8093 func_append rpath "$dir:"
6936 done 8094 done
6937 eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" 8095 eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
6938 fi 8096 fi
@@ -6940,7 +8098,7 @@ EOF
6940 fi 8098 fi
6941 8099
6942 shlibpath="$finalize_shlibpath" 8100 shlibpath="$finalize_shlibpath"
6943 test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath" 8101 test "$opt_mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
6944 if test -n "$shlibpath"; then 8102 if test -n "$shlibpath"; then
6945 eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" 8103 eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
6946 fi 8104 fi
@@ -6966,18 +8124,18 @@ EOF
6966 linknames= 8124 linknames=
6967 for link 8125 for link
6968 do 8126 do
6969 linknames="$linknames $link" 8127 func_append linknames " $link"
6970 done 8128 done
6971 8129
6972 # Use standard objects if they are pic 8130 # Use standard objects if they are pic
6973 test -z "$pic_flag" && libobjs=`$ECHO "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` 8131 test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP`
6974 test "X$libobjs" = "X " && libobjs= 8132 test "X$libobjs" = "X " && libobjs=
6975 8133
6976 delfiles= 8134 delfiles=
6977 if test -n "$export_symbols" && test -n "$include_expsyms"; then 8135 if test -n "$export_symbols" && test -n "$include_expsyms"; then
6978 $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" 8136 $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp"
6979 export_symbols="$output_objdir/$libname.uexp" 8137 export_symbols="$output_objdir/$libname.uexp"
6980 delfiles="$delfiles $export_symbols" 8138 func_append delfiles " $export_symbols"
6981 fi 8139 fi
6982 8140
6983 orig_export_symbols= 8141 orig_export_symbols=
@@ -7008,13 +8166,45 @@ EOF
7008 $opt_dry_run || $RM $export_symbols 8166 $opt_dry_run || $RM $export_symbols
7009 cmds=$export_symbols_cmds 8167 cmds=$export_symbols_cmds
7010 save_ifs="$IFS"; IFS='~' 8168 save_ifs="$IFS"; IFS='~'
7011 for cmd in $cmds; do 8169 for cmd1 in $cmds; do
7012 IFS="$save_ifs" 8170 IFS="$save_ifs"
7013 eval cmd=\"$cmd\" 8171 # Take the normal branch if the nm_file_list_spec branch
7014 func_len " $cmd" 8172 # doesn't work or if tool conversion is not needed.
7015 len=$func_len_result 8173 case $nm_file_list_spec~$to_tool_file_cmd in
7016 if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then 8174 *~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*)
8175 try_normal_branch=yes
8176 eval cmd=\"$cmd1\"
8177 func_len " $cmd"
8178 len=$func_len_result
8179 ;;
8180 *)
8181 try_normal_branch=no
8182 ;;
8183 esac
8184 if test "$try_normal_branch" = yes \
8185 && { test "$len" -lt "$max_cmd_len" \
8186 || test "$max_cmd_len" -le -1; }
8187 then
8188 func_show_eval "$cmd" 'exit $?'
8189 skipped_export=false
8190 elif test -n "$nm_file_list_spec"; then
8191 func_basename "$output"
8192 output_la=$func_basename_result
8193 save_libobjs=$libobjs
8194 save_output=$output
8195 output=${output_objdir}/${output_la}.nm
8196 func_to_tool_file "$output"
8197 libobjs=$nm_file_list_spec$func_to_tool_file_result
8198 func_append delfiles " $output"
8199 func_verbose "creating $NM input file list: $output"
8200 for obj in $save_libobjs; do
8201 func_to_tool_file "$obj"
8202 $ECHO "$func_to_tool_file_result"
8203 done > "$output"
8204 eval cmd=\"$cmd1\"
7017 func_show_eval "$cmd" 'exit $?' 8205 func_show_eval "$cmd" 'exit $?'
8206 output=$save_output
8207 libobjs=$save_libobjs
7018 skipped_export=false 8208 skipped_export=false
7019 else 8209 else
7020 # The command line is too long to execute in one step. 8210 # The command line is too long to execute in one step.
@@ -7036,7 +8226,7 @@ EOF
7036 if test -n "$export_symbols" && test -n "$include_expsyms"; then 8226 if test -n "$export_symbols" && test -n "$include_expsyms"; then
7037 tmp_export_symbols="$export_symbols" 8227 tmp_export_symbols="$export_symbols"
7038 test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" 8228 test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
7039 $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"' 8229 $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"'
7040 fi 8230 fi
7041 8231
7042 if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then 8232 if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then
@@ -7048,7 +8238,7 @@ EOF
7048 # global variables. join(1) would be nice here, but unfortunately 8238 # global variables. join(1) would be nice here, but unfortunately
7049 # isn't a blessed tool. 8239 # isn't a blessed tool.
7050 $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter 8240 $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
7051 delfiles="$delfiles $export_symbols $output_objdir/$libname.filter" 8241 func_append delfiles " $export_symbols $output_objdir/$libname.filter"
7052 export_symbols=$output_objdir/$libname.def 8242 export_symbols=$output_objdir/$libname.def
7053 $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols 8243 $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
7054 fi 8244 fi
@@ -7058,7 +8248,7 @@ EOF
7058 case " $convenience " in 8248 case " $convenience " in
7059 *" $test_deplib "*) ;; 8249 *" $test_deplib "*) ;;
7060 *) 8250 *)
7061 tmp_deplibs="$tmp_deplibs $test_deplib" 8251 func_append tmp_deplibs " $test_deplib"
7062 ;; 8252 ;;
7063 esac 8253 esac
7064 done 8254 done
@@ -7078,21 +8268,21 @@ EOF
7078 test "X$libobjs" = "X " && libobjs= 8268 test "X$libobjs" = "X " && libobjs=
7079 else 8269 else
7080 gentop="$output_objdir/${outputname}x" 8270 gentop="$output_objdir/${outputname}x"
7081 generated="$generated $gentop" 8271 func_append generated " $gentop"
7082 8272
7083 func_extract_archives $gentop $convenience 8273 func_extract_archives $gentop $convenience
7084 libobjs="$libobjs $func_extract_archives_result" 8274 func_append libobjs " $func_extract_archives_result"
7085 test "X$libobjs" = "X " && libobjs= 8275 test "X$libobjs" = "X " && libobjs=
7086 fi 8276 fi
7087 fi 8277 fi
7088 8278
7089 if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then 8279 if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
7090 eval flag=\"$thread_safe_flag_spec\" 8280 eval flag=\"$thread_safe_flag_spec\"
7091 linker_flags="$linker_flags $flag" 8281 func_append linker_flags " $flag"
7092 fi 8282 fi
7093 8283
7094 # Make a backup of the uninstalled library when relinking 8284 # Make a backup of the uninstalled library when relinking
7095 if test "$mode" = relink; then 8285 if test "$opt_mode" = relink; then
7096 $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? 8286 $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $?
7097 fi 8287 fi
7098 8288
@@ -7137,7 +8327,8 @@ EOF
7137 save_libobjs=$libobjs 8327 save_libobjs=$libobjs
7138 fi 8328 fi
7139 save_output=$output 8329 save_output=$output
7140 output_la=`$ECHO "X$output" | $Xsed -e "$basename"` 8330 func_basename "$output"
8331 output_la=$func_basename_result
7141 8332
7142 # Clear the reloadable object creation command queue and 8333 # Clear the reloadable object creation command queue and
7143 # initialize k to one. 8334 # initialize k to one.
@@ -7150,13 +8341,16 @@ EOF
7150 if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then 8341 if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then
7151 output=${output_objdir}/${output_la}.lnkscript 8342 output=${output_objdir}/${output_la}.lnkscript
7152 func_verbose "creating GNU ld script: $output" 8343 func_verbose "creating GNU ld script: $output"
7153 $ECHO 'INPUT (' > $output 8344 echo 'INPUT (' > $output
7154 for obj in $save_libobjs 8345 for obj in $save_libobjs
7155 do 8346 do
7156 $ECHO "$obj" >> $output 8347 func_to_tool_file "$obj"
8348 $ECHO "$func_to_tool_file_result" >> $output
7157 done 8349 done
7158 $ECHO ')' >> $output 8350 echo ')' >> $output
7159 delfiles="$delfiles $output" 8351 func_append delfiles " $output"
8352 func_to_tool_file "$output"
8353 output=$func_to_tool_file_result
7160 elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then 8354 elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then
7161 output=${output_objdir}/${output_la}.lnk 8355 output=${output_objdir}/${output_la}.lnk
7162 func_verbose "creating linker input file list: $output" 8356 func_verbose "creating linker input file list: $output"
@@ -7170,10 +8364,12 @@ EOF
7170 fi 8364 fi
7171 for obj 8365 for obj
7172 do 8366 do
7173 $ECHO "$obj" >> $output 8367 func_to_tool_file "$obj"
8368 $ECHO "$func_to_tool_file_result" >> $output
7174 done 8369 done
7175 delfiles="$delfiles $output" 8370 func_append delfiles " $output"
7176 output=$firstobj\"$file_list_spec$output\" 8371 func_to_tool_file "$output"
8372 output=$firstobj\"$file_list_spec$func_to_tool_file_result\"
7177 else 8373 else
7178 if test -n "$save_libobjs"; then 8374 if test -n "$save_libobjs"; then
7179 func_verbose "creating reloadable object files..." 8375 func_verbose "creating reloadable object files..."
@@ -7197,17 +8393,19 @@ EOF
7197 # command to the queue. 8393 # command to the queue.
7198 if test "$k" -eq 1 ; then 8394 if test "$k" -eq 1 ; then
7199 # The first file doesn't have a previous command to add. 8395 # The first file doesn't have a previous command to add.
7200 eval concat_cmds=\"$reload_cmds $objlist $last_robj\" 8396 reload_objs=$objlist
8397 eval concat_cmds=\"$reload_cmds\"
7201 else 8398 else
7202 # All subsequent reloadable object files will link in 8399 # All subsequent reloadable object files will link in
7203 # the last one created. 8400 # the last one created.
7204 eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj~\$RM $last_robj\" 8401 reload_objs="$objlist $last_robj"
8402 eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\"
7205 fi 8403 fi
7206 last_robj=$output_objdir/$output_la-${k}.$objext 8404 last_robj=$output_objdir/$output_la-${k}.$objext
7207 func_arith $k + 1 8405 func_arith $k + 1
7208 k=$func_arith_result 8406 k=$func_arith_result
7209 output=$output_objdir/$output_la-${k}.$objext 8407 output=$output_objdir/$output_la-${k}.$objext
7210 objlist=$obj 8408 objlist=" $obj"
7211 func_len " $last_robj" 8409 func_len " $last_robj"
7212 func_arith $len0 + $func_len_result 8410 func_arith $len0 + $func_len_result
7213 len=$func_arith_result 8411 len=$func_arith_result
@@ -7217,11 +8415,12 @@ EOF
7217 # reloadable object file. All subsequent reloadable object 8415 # reloadable object file. All subsequent reloadable object
7218 # files will link in the last one created. 8416 # files will link in the last one created.
7219 test -z "$concat_cmds" || concat_cmds=$concat_cmds~ 8417 test -z "$concat_cmds" || concat_cmds=$concat_cmds~
7220 eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\" 8418 reload_objs="$objlist $last_robj"
8419 eval concat_cmds=\"\${concat_cmds}$reload_cmds\"
7221 if test -n "$last_robj"; then 8420 if test -n "$last_robj"; then
7222 eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\" 8421 eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\"
7223 fi 8422 fi
7224 delfiles="$delfiles $output" 8423 func_append delfiles " $output"
7225 8424
7226 else 8425 else
7227 output= 8426 output=
@@ -7255,7 +8454,7 @@ EOF
7255 lt_exit=$? 8454 lt_exit=$?
7256 8455
7257 # Restore the uninstalled library and exit 8456 # Restore the uninstalled library and exit
7258 if test "$mode" = relink; then 8457 if test "$opt_mode" = relink; then
7259 ( cd "$output_objdir" && \ 8458 ( cd "$output_objdir" && \
7260 $RM "${realname}T" && \ 8459 $RM "${realname}T" && \
7261 $MV "${realname}U" "$realname" ) 8460 $MV "${realname}U" "$realname" )
@@ -7276,7 +8475,7 @@ EOF
7276 if test -n "$export_symbols" && test -n "$include_expsyms"; then 8475 if test -n "$export_symbols" && test -n "$include_expsyms"; then
7277 tmp_export_symbols="$export_symbols" 8476 tmp_export_symbols="$export_symbols"
7278 test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" 8477 test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
7279 $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"' 8478 $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"'
7280 fi 8479 fi
7281 8480
7282 if test -n "$orig_export_symbols"; then 8481 if test -n "$orig_export_symbols"; then
@@ -7288,7 +8487,7 @@ EOF
7288 # global variables. join(1) would be nice here, but unfortunately 8487 # global variables. join(1) would be nice here, but unfortunately
7289 # isn't a blessed tool. 8488 # isn't a blessed tool.
7290 $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter 8489 $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
7291 delfiles="$delfiles $export_symbols $output_objdir/$libname.filter" 8490 func_append delfiles " $export_symbols $output_objdir/$libname.filter"
7292 export_symbols=$output_objdir/$libname.def 8491 export_symbols=$output_objdir/$libname.def
7293 $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols 8492 $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
7294 fi 8493 fi
@@ -7329,10 +8528,10 @@ EOF
7329 # Add any objects from preloaded convenience libraries 8528 # Add any objects from preloaded convenience libraries
7330 if test -n "$dlprefiles"; then 8529 if test -n "$dlprefiles"; then
7331 gentop="$output_objdir/${outputname}x" 8530 gentop="$output_objdir/${outputname}x"
7332 generated="$generated $gentop" 8531 func_append generated " $gentop"
7333 8532
7334 func_extract_archives $gentop $dlprefiles 8533 func_extract_archives $gentop $dlprefiles
7335 libobjs="$libobjs $func_extract_archives_result" 8534 func_append libobjs " $func_extract_archives_result"
7336 test "X$libobjs" = "X " && libobjs= 8535 test "X$libobjs" = "X " && libobjs=
7337 fi 8536 fi
7338 8537
@@ -7348,7 +8547,7 @@ EOF
7348 lt_exit=$? 8547 lt_exit=$?
7349 8548
7350 # Restore the uninstalled library and exit 8549 # Restore the uninstalled library and exit
7351 if test "$mode" = relink; then 8550 if test "$opt_mode" = relink; then
7352 ( cd "$output_objdir" && \ 8551 ( cd "$output_objdir" && \
7353 $RM "${realname}T" && \ 8552 $RM "${realname}T" && \
7354 $MV "${realname}U" "$realname" ) 8553 $MV "${realname}U" "$realname" )
@@ -7360,7 +8559,7 @@ EOF
7360 IFS="$save_ifs" 8559 IFS="$save_ifs"
7361 8560
7362 # Restore the uninstalled library and exit 8561 # Restore the uninstalled library and exit
7363 if test "$mode" = relink; then 8562 if test "$opt_mode" = relink; then
7364 $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? 8563 $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $?
7365 8564
7366 if test -n "$convenience"; then 8565 if test -n "$convenience"; then
@@ -7441,18 +8640,21 @@ EOF
7441 if test -n "$convenience"; then 8640 if test -n "$convenience"; then
7442 if test -n "$whole_archive_flag_spec"; then 8641 if test -n "$whole_archive_flag_spec"; then
7443 eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" 8642 eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\"
7444 reload_conv_objs=$reload_objs\ `$ECHO "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'` 8643 reload_conv_objs=$reload_objs\ `$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'`
7445 else 8644 else
7446 gentop="$output_objdir/${obj}x" 8645 gentop="$output_objdir/${obj}x"
7447 generated="$generated $gentop" 8646 func_append generated " $gentop"
7448 8647
7449 func_extract_archives $gentop $convenience 8648 func_extract_archives $gentop $convenience
7450 reload_conv_objs="$reload_objs $func_extract_archives_result" 8649 reload_conv_objs="$reload_objs $func_extract_archives_result"
7451 fi 8650 fi
7452 fi 8651 fi
7453 8652
8653 # If we're not building shared, we need to use non_pic_objs
8654 test "$build_libtool_libs" != yes && libobjs="$non_pic_objects"
8655
7454 # Create the old-style object. 8656 # Create the old-style object.
7455 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 8657 reload_objs="$objs$old_deplibs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; /\.lib$/d; $lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test
7456 8658
7457 output="$obj" 8659 output="$obj"
7458 func_execute_cmds "$reload_cmds" 'exit $?' 8660 func_execute_cmds "$reload_cmds" 'exit $?'
@@ -7512,8 +8714,8 @@ EOF
7512 case $host in 8714 case $host in
7513 *-*-rhapsody* | *-*-darwin1.[012]) 8715 *-*-rhapsody* | *-*-darwin1.[012])
7514 # On Rhapsody replace the C library is the System framework 8716 # On Rhapsody replace the C library is the System framework
7515 compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'` 8717 compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'`
7516 finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'` 8718 finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'`
7517 ;; 8719 ;;
7518 esac 8720 esac
7519 8721
@@ -7524,14 +8726,14 @@ EOF
7524 if test "$tagname" = CXX ; then 8726 if test "$tagname" = CXX ; then
7525 case ${MACOSX_DEPLOYMENT_TARGET-10.0} in 8727 case ${MACOSX_DEPLOYMENT_TARGET-10.0} in
7526 10.[0123]) 8728 10.[0123])
7527 compile_command="$compile_command ${wl}-bind_at_load" 8729 func_append compile_command " ${wl}-bind_at_load"
7528 finalize_command="$finalize_command ${wl}-bind_at_load" 8730 func_append finalize_command " ${wl}-bind_at_load"
7529 ;; 8731 ;;
7530 esac 8732 esac
7531 fi 8733 fi
7532 # Time to change all our "foo.ltframework" stuff back to "-framework foo" 8734 # Time to change all our "foo.ltframework" stuff back to "-framework foo"
7533 compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` 8735 compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
7534 finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` 8736 finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
7535 ;; 8737 ;;
7536 esac 8738 esac
7537 8739
@@ -7545,7 +8747,7 @@ EOF
7545 *) 8747 *)
7546 case " $compile_deplibs " in 8748 case " $compile_deplibs " in
7547 *" -L$path/$objdir "*) 8749 *" -L$path/$objdir "*)
7548 new_libs="$new_libs -L$path/$objdir" ;; 8750 func_append new_libs " -L$path/$objdir" ;;
7549 esac 8751 esac
7550 ;; 8752 ;;
7551 esac 8753 esac
@@ -7555,17 +8757,17 @@ EOF
7555 -L*) 8757 -L*)
7556 case " $new_libs " in 8758 case " $new_libs " in
7557 *" $deplib "*) ;; 8759 *" $deplib "*) ;;
7558 *) new_libs="$new_libs $deplib" ;; 8760 *) func_append new_libs " $deplib" ;;
7559 esac 8761 esac
7560 ;; 8762 ;;
7561 *) new_libs="$new_libs $deplib" ;; 8763 *) func_append new_libs " $deplib" ;;
7562 esac 8764 esac
7563 done 8765 done
7564 compile_deplibs="$new_libs" 8766 compile_deplibs="$new_libs"
7565 8767
7566 8768
7567 compile_command="$compile_command $compile_deplibs" 8769 func_append compile_command " $compile_deplibs"
7568 finalize_command="$finalize_command $finalize_deplibs" 8770 func_append finalize_command " $finalize_deplibs"
7569 8771
7570 if test -n "$rpath$xrpath"; then 8772 if test -n "$rpath$xrpath"; then
7571 # If the user specified any rpath flags, then add them. 8773 # If the user specified any rpath flags, then add them.
@@ -7573,7 +8775,7 @@ EOF
7573 # This is the magic to use -rpath. 8775 # This is the magic to use -rpath.
7574 case "$finalize_rpath " in 8776 case "$finalize_rpath " in
7575 *" $libdir "*) ;; 8777 *" $libdir "*) ;;
7576 *) finalize_rpath="$finalize_rpath $libdir" ;; 8778 *) func_append finalize_rpath " $libdir" ;;
7577 esac 8779 esac
7578 done 8780 done
7579 fi 8781 fi
@@ -7592,18 +8794,18 @@ EOF
7592 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) 8794 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
7593 ;; 8795 ;;
7594 *) 8796 *)
7595 hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" 8797 func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
7596 ;; 8798 ;;
7597 esac 8799 esac
7598 fi 8800 fi
7599 else 8801 else
7600 eval flag=\"$hardcode_libdir_flag_spec\" 8802 eval flag=\"$hardcode_libdir_flag_spec\"
7601 rpath="$rpath $flag" 8803 func_append rpath " $flag"
7602 fi 8804 fi
7603 elif test -n "$runpath_var"; then 8805 elif test -n "$runpath_var"; then
7604 case "$perm_rpath " in 8806 case "$perm_rpath " in
7605 *" $libdir "*) ;; 8807 *" $libdir "*) ;;
7606 *) perm_rpath="$perm_rpath $libdir" ;; 8808 *) func_append perm_rpath " $libdir" ;;
7607 esac 8809 esac
7608 fi 8810 fi
7609 case $host in 8811 case $host in
@@ -7612,12 +8814,12 @@ EOF
7612 case :$dllsearchpath: in 8814 case :$dllsearchpath: in
7613 *":$libdir:"*) ;; 8815 *":$libdir:"*) ;;
7614 ::) dllsearchpath=$libdir;; 8816 ::) dllsearchpath=$libdir;;
7615 *) dllsearchpath="$dllsearchpath:$libdir";; 8817 *) func_append dllsearchpath ":$libdir";;
7616 esac 8818 esac
7617 case :$dllsearchpath: in 8819 case :$dllsearchpath: in
7618 *":$testbindir:"*) ;; 8820 *":$testbindir:"*) ;;
7619 ::) dllsearchpath=$testbindir;; 8821 ::) dllsearchpath=$testbindir;;
7620 *) dllsearchpath="$dllsearchpath:$testbindir";; 8822 *) func_append dllsearchpath ":$testbindir";;
7621 esac 8823 esac
7622 ;; 8824 ;;
7623 esac 8825 esac
@@ -7643,18 +8845,18 @@ EOF
7643 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) 8845 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
7644 ;; 8846 ;;
7645 *) 8847 *)
7646 hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" 8848 func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
7647 ;; 8849 ;;
7648 esac 8850 esac
7649 fi 8851 fi
7650 else 8852 else
7651 eval flag=\"$hardcode_libdir_flag_spec\" 8853 eval flag=\"$hardcode_libdir_flag_spec\"
7652 rpath="$rpath $flag" 8854 func_append rpath " $flag"
7653 fi 8855 fi
7654 elif test -n "$runpath_var"; then 8856 elif test -n "$runpath_var"; then
7655 case "$finalize_perm_rpath " in 8857 case "$finalize_perm_rpath " in
7656 *" $libdir "*) ;; 8858 *" $libdir "*) ;;
7657 *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;; 8859 *) func_append finalize_perm_rpath " $libdir" ;;
7658 esac 8860 esac
7659 fi 8861 fi
7660 done 8862 done
@@ -7668,8 +8870,8 @@ EOF
7668 8870
7669 if test -n "$libobjs" && test "$build_old_libs" = yes; then 8871 if test -n "$libobjs" && test "$build_old_libs" = yes; then
7670 # Transform all the library objects into standard objects. 8872 # Transform all the library objects into standard objects.
7671 compile_command=`$ECHO "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` 8873 compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP`
7672 finalize_command=`$ECHO "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` 8874 finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP`
7673 fi 8875 fi
7674 8876
7675 func_generate_dlsyms "$outputname" "@PROGRAM@" "no" 8877 func_generate_dlsyms "$outputname" "@PROGRAM@" "no"
@@ -7681,15 +8883,15 @@ EOF
7681 8883
7682 wrappers_required=yes 8884 wrappers_required=yes
7683 case $host in 8885 case $host in
8886 *cegcc* | *mingw32ce*)
8887 # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway.
8888 wrappers_required=no
8889 ;;
7684 *cygwin* | *mingw* ) 8890 *cygwin* | *mingw* )
7685 if test "$build_libtool_libs" != yes; then 8891 if test "$build_libtool_libs" != yes; then
7686 wrappers_required=no 8892 wrappers_required=no
7687 fi 8893 fi
7688 ;; 8894 ;;
7689 *cegcc)
7690 # Disable wrappers for cegcc, we are cross compiling anyway.
7691 wrappers_required=no
7692 ;;
7693 *) 8895 *)
7694 if test "$need_relink" = no || test "$build_libtool_libs" != yes; then 8896 if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
7695 wrappers_required=no 8897 wrappers_required=no
@@ -7698,13 +8900,19 @@ EOF
7698 esac 8900 esac
7699 if test "$wrappers_required" = no; then 8901 if test "$wrappers_required" = no; then
7700 # Replace the output file specification. 8902 # Replace the output file specification.
7701 compile_command=`$ECHO "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` 8903 compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'`
7702 link_command="$compile_command$compile_rpath" 8904 link_command="$compile_command$compile_rpath"
7703 8905
7704 # We have no uninstalled library dependencies, so finalize right now. 8906 # We have no uninstalled library dependencies, so finalize right now.
7705 exit_status=0 8907 exit_status=0
7706 func_show_eval "$link_command" 'exit_status=$?' 8908 func_show_eval "$link_command" 'exit_status=$?'
7707 8909
8910 if test -n "$postlink_cmds"; then
8911 func_to_tool_file "$output"
8912 postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
8913 func_execute_cmds "$postlink_cmds" 'exit $?'
8914 fi
8915
7708 # Delete the generated files. 8916 # Delete the generated files.
7709 if test -f "$output_objdir/${outputname}S.${objext}"; then 8917 if test -f "$output_objdir/${outputname}S.${objext}"; then
7710 func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"' 8918 func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"'
@@ -7727,7 +8935,7 @@ EOF
7727 # We should set the runpath_var. 8935 # We should set the runpath_var.
7728 rpath= 8936 rpath=
7729 for dir in $perm_rpath; do 8937 for dir in $perm_rpath; do
7730 rpath="$rpath$dir:" 8938 func_append rpath "$dir:"
7731 done 8939 done
7732 compile_var="$runpath_var=\"$rpath\$$runpath_var\" " 8940 compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
7733 fi 8941 fi
@@ -7735,7 +8943,7 @@ EOF
7735 # We should set the runpath_var. 8943 # We should set the runpath_var.
7736 rpath= 8944 rpath=
7737 for dir in $finalize_perm_rpath; do 8945 for dir in $finalize_perm_rpath; do
7738 rpath="$rpath$dir:" 8946 func_append rpath "$dir:"
7739 done 8947 done
7740 finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " 8948 finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
7741 fi 8949 fi
@@ -7745,11 +8953,18 @@ EOF
7745 # We don't need to create a wrapper script. 8953 # We don't need to create a wrapper script.
7746 link_command="$compile_var$compile_command$compile_rpath" 8954 link_command="$compile_var$compile_command$compile_rpath"
7747 # Replace the output file specification. 8955 # Replace the output file specification.
7748 link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` 8956 link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'`
7749 # Delete the old output file. 8957 # Delete the old output file.
7750 $opt_dry_run || $RM $output 8958 $opt_dry_run || $RM $output
7751 # Link the executable and exit 8959 # Link the executable and exit
7752 func_show_eval "$link_command" 'exit $?' 8960 func_show_eval "$link_command" 'exit $?'
8961
8962 if test -n "$postlink_cmds"; then
8963 func_to_tool_file "$output"
8964 postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
8965 func_execute_cmds "$postlink_cmds" 'exit $?'
8966 fi
8967
7753 exit $EXIT_SUCCESS 8968 exit $EXIT_SUCCESS
7754 fi 8969 fi
7755 8970
@@ -7764,7 +8979,7 @@ EOF
7764 if test "$fast_install" != no; then 8979 if test "$fast_install" != no; then
7765 link_command="$finalize_var$compile_command$finalize_rpath" 8980 link_command="$finalize_var$compile_command$finalize_rpath"
7766 if test "$fast_install" = yes; then 8981 if test "$fast_install" = yes; then
7767 relink_command=`$ECHO "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'` 8982 relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'`
7768 else 8983 else
7769 # fast_install is set to needless 8984 # fast_install is set to needless
7770 relink_command= 8985 relink_command=
@@ -7776,13 +8991,19 @@ EOF
7776 fi 8991 fi
7777 8992
7778 # Replace the output file specification. 8993 # Replace the output file specification.
7779 link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` 8994 link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
7780 8995
7781 # Delete the old output files. 8996 # Delete the old output files.
7782 $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname 8997 $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname
7783 8998
7784 func_show_eval "$link_command" 'exit $?' 8999 func_show_eval "$link_command" 'exit $?'
7785 9000
9001 if test -n "$postlink_cmds"; then
9002 func_to_tool_file "$output_objdir/$outputname"
9003 postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
9004 func_execute_cmds "$postlink_cmds" 'exit $?'
9005 fi
9006
7786 # Now create the wrapper script. 9007 # Now create the wrapper script.
7787 func_verbose "creating $output" 9008 func_verbose "creating $output"
7788 9009
@@ -7800,18 +9021,7 @@ EOF
7800 fi 9021 fi
7801 done 9022 done
7802 relink_command="(cd `pwd`; $relink_command)" 9023 relink_command="(cd `pwd`; $relink_command)"
7803 relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"` 9024 relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"`
7804 fi
7805
7806 # Quote $ECHO for shipping.
7807 if test "X$ECHO" = "X$SHELL $progpath --fallback-echo"; then
7808 case $progpath in
7809 [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";;
7810 *) qecho="$SHELL `pwd`/$progpath --fallback-echo";;
7811 esac
7812 qecho=`$ECHO "X$qecho" | $Xsed -e "$sed_quote_subst"`
7813 else
7814 qecho=`$ECHO "X$ECHO" | $Xsed -e "$sed_quote_subst"`
7815 fi 9025 fi
7816 9026
7817 # Only actually do things if not in dry run mode. 9027 # Only actually do things if not in dry run mode.
@@ -7891,7 +9101,7 @@ EOF
7891 else 9101 else
7892 oldobjs="$old_deplibs $non_pic_objects" 9102 oldobjs="$old_deplibs $non_pic_objects"
7893 if test "$preload" = yes && test -f "$symfileobj"; then 9103 if test "$preload" = yes && test -f "$symfileobj"; then
7894 oldobjs="$oldobjs $symfileobj" 9104 func_append oldobjs " $symfileobj"
7895 fi 9105 fi
7896 fi 9106 fi
7897 addlibs="$old_convenience" 9107 addlibs="$old_convenience"
@@ -7899,10 +9109,10 @@ EOF
7899 9109
7900 if test -n "$addlibs"; then 9110 if test -n "$addlibs"; then
7901 gentop="$output_objdir/${outputname}x" 9111 gentop="$output_objdir/${outputname}x"
7902 generated="$generated $gentop" 9112 func_append generated " $gentop"
7903 9113
7904 func_extract_archives $gentop $addlibs 9114 func_extract_archives $gentop $addlibs
7905 oldobjs="$oldobjs $func_extract_archives_result" 9115 func_append oldobjs " $func_extract_archives_result"
7906 fi 9116 fi
7907 9117
7908 # Do each command in the archive commands. 9118 # Do each command in the archive commands.
@@ -7913,10 +9123,10 @@ EOF
7913 # Add any objects from preloaded convenience libraries 9123 # Add any objects from preloaded convenience libraries
7914 if test -n "$dlprefiles"; then 9124 if test -n "$dlprefiles"; then
7915 gentop="$output_objdir/${outputname}x" 9125 gentop="$output_objdir/${outputname}x"
7916 generated="$generated $gentop" 9126 func_append generated " $gentop"
7917 9127
7918 func_extract_archives $gentop $dlprefiles 9128 func_extract_archives $gentop $dlprefiles
7919 oldobjs="$oldobjs $func_extract_archives_result" 9129 func_append oldobjs " $func_extract_archives_result"
7920 fi 9130 fi
7921 9131
7922 # POSIX demands no paths to be encoded in archives. We have 9132 # POSIX demands no paths to be encoded in archives. We have
@@ -7932,9 +9142,9 @@ EOF
7932 done | sort | sort -uc >/dev/null 2>&1); then 9142 done | sort | sort -uc >/dev/null 2>&1); then
7933 : 9143 :
7934 else 9144 else
7935 $ECHO "copying selected object files to avoid basename conflicts..." 9145 echo "copying selected object files to avoid basename conflicts..."
7936 gentop="$output_objdir/${outputname}x" 9146 gentop="$output_objdir/${outputname}x"
7937 generated="$generated $gentop" 9147 func_append generated " $gentop"
7938 func_mkdir_p "$gentop" 9148 func_mkdir_p "$gentop"
7939 save_oldobjs=$oldobjs 9149 save_oldobjs=$oldobjs
7940 oldobjs= 9150 oldobjs=
@@ -7958,18 +9168,30 @@ EOF
7958 esac 9168 esac
7959 done 9169 done
7960 func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" 9170 func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj"
7961 oldobjs="$oldobjs $gentop/$newobj" 9171 func_append oldobjs " $gentop/$newobj"
7962 ;; 9172 ;;
7963 *) oldobjs="$oldobjs $obj" ;; 9173 *) func_append oldobjs " $obj" ;;
7964 esac 9174 esac
7965 done 9175 done
7966 fi 9176 fi
9177 func_to_tool_file "$oldlib" func_convert_file_msys_to_w32
9178 tool_oldlib=$func_to_tool_file_result
7967 eval cmds=\"$old_archive_cmds\" 9179 eval cmds=\"$old_archive_cmds\"
7968 9180
7969 func_len " $cmds" 9181 func_len " $cmds"
7970 len=$func_len_result 9182 len=$func_len_result
7971 if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then 9183 if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
7972 cmds=$old_archive_cmds 9184 cmds=$old_archive_cmds
9185 elif test -n "$archiver_list_spec"; then
9186 func_verbose "using command file archive linking..."
9187 for obj in $oldobjs
9188 do
9189 func_to_tool_file "$obj"
9190 $ECHO "$func_to_tool_file_result"
9191 done > $output_objdir/$libname.libcmd
9192 func_to_tool_file "$output_objdir/$libname.libcmd"
9193 oldobjs=" $archiver_list_spec$func_to_tool_file_result"
9194 cmds=$old_archive_cmds
7973 else 9195 else
7974 # the command line is too long to link in one step, link in parts 9196 # the command line is too long to link in one step, link in parts
7975 func_verbose "using piecewise archive linking..." 9197 func_verbose "using piecewise archive linking..."
@@ -8043,7 +9265,7 @@ EOF
8043 done 9265 done
8044 # Quote the link command for shipping. 9266 # Quote the link command for shipping.
8045 relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" 9267 relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
8046 relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"` 9268 relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"`
8047 if test "$hardcode_automatic" = yes ; then 9269 if test "$hardcode_automatic" = yes ; then
8048 relink_command= 9270 relink_command=
8049 fi 9271 fi
@@ -8063,12 +9285,23 @@ EOF
8063 *.la) 9285 *.la)
8064 func_basename "$deplib" 9286 func_basename "$deplib"
8065 name="$func_basename_result" 9287 name="$func_basename_result"
8066 eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` 9288 func_resolve_sysroot "$deplib"
9289 eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result`
8067 test -z "$libdir" && \ 9290 test -z "$libdir" && \
8068 func_fatal_error "\`$deplib' is not a valid libtool archive" 9291 func_fatal_error "\`$deplib' is not a valid libtool archive"
8069 newdependency_libs="$newdependency_libs $libdir/$name" 9292 func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name"
9293 ;;
9294 -L*)
9295 func_stripname -L '' "$deplib"
9296 func_replace_sysroot "$func_stripname_result"
9297 func_append newdependency_libs " -L$func_replace_sysroot_result"
9298 ;;
9299 -R*)
9300 func_stripname -R '' "$deplib"
9301 func_replace_sysroot "$func_stripname_result"
9302 func_append newdependency_libs " -R$func_replace_sysroot_result"
8070 ;; 9303 ;;
8071 *) newdependency_libs="$newdependency_libs $deplib" ;; 9304 *) func_append newdependency_libs " $deplib" ;;
8072 esac 9305 esac
8073 done 9306 done
8074 dependency_libs="$newdependency_libs" 9307 dependency_libs="$newdependency_libs"
@@ -8082,9 +9315,9 @@ EOF
8082 eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` 9315 eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
8083 test -z "$libdir" && \ 9316 test -z "$libdir" && \
8084 func_fatal_error "\`$lib' is not a valid libtool archive" 9317 func_fatal_error "\`$lib' is not a valid libtool archive"
8085 newdlfiles="$newdlfiles $libdir/$name" 9318 func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name"
8086 ;; 9319 ;;
8087 *) newdlfiles="$newdlfiles $lib" ;; 9320 *) func_append newdlfiles " $lib" ;;
8088 esac 9321 esac
8089 done 9322 done
8090 dlfiles="$newdlfiles" 9323 dlfiles="$newdlfiles"
@@ -8101,7 +9334,7 @@ EOF
8101 eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` 9334 eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
8102 test -z "$libdir" && \ 9335 test -z "$libdir" && \
8103 func_fatal_error "\`$lib' is not a valid libtool archive" 9336 func_fatal_error "\`$lib' is not a valid libtool archive"
8104 newdlprefiles="$newdlprefiles $libdir/$name" 9337 func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name"
8105 ;; 9338 ;;
8106 esac 9339 esac
8107 done 9340 done
@@ -8113,7 +9346,7 @@ EOF
8113 [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; 9346 [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
8114 *) abs=`pwd`"/$lib" ;; 9347 *) abs=`pwd`"/$lib" ;;
8115 esac 9348 esac
8116 newdlfiles="$newdlfiles $abs" 9349 func_append newdlfiles " $abs"
8117 done 9350 done
8118 dlfiles="$newdlfiles" 9351 dlfiles="$newdlfiles"
8119 newdlprefiles= 9352 newdlprefiles=
@@ -8122,15 +9355,33 @@ EOF
8122 [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; 9355 [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
8123 *) abs=`pwd`"/$lib" ;; 9356 *) abs=`pwd`"/$lib" ;;
8124 esac 9357 esac
8125 newdlprefiles="$newdlprefiles $abs" 9358 func_append newdlprefiles " $abs"
8126 done 9359 done
8127 dlprefiles="$newdlprefiles" 9360 dlprefiles="$newdlprefiles"
8128 fi 9361 fi
8129 $RM $output 9362 $RM $output
8130 # place dlname in correct position for cygwin 9363 # place dlname in correct position for cygwin
9364 # In fact, it would be nice if we could use this code for all target
9365 # systems that can't hard-code library paths into their executables
9366 # and that have no shared library path variable independent of PATH,
9367 # but it turns out we can't easily determine that from inspecting
9368 # libtool variables, so we have to hard-code the OSs to which it
9369 # applies here; at the moment, that means platforms that use the PE
9370 # object format with DLL files. See the long comment at the top of
9371 # tests/bindir.at for full details.
8131 tdlname=$dlname 9372 tdlname=$dlname
8132 case $host,$output,$installed,$module,$dlname in 9373 case $host,$output,$installed,$module,$dlname in
8133 *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;; 9374 *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll)
9375 # If a -bindir argument was supplied, place the dll there.
9376 if test "x$bindir" != x ;
9377 then
9378 func_relative_path "$install_libdir" "$bindir"
9379 tdlname=$func_relative_path_result$dlname
9380 else
9381 # Otherwise fall back on heuristic.
9382 tdlname=../bin/$dlname
9383 fi
9384 ;;
8134 esac 9385 esac
8135 $ECHO > $output "\ 9386 $ECHO > $output "\
8136# $outputname - a libtool library file 9387# $outputname - a libtool library file
@@ -8189,7 +9440,7 @@ relink_command=\"$relink_command\""
8189 exit $EXIT_SUCCESS 9440 exit $EXIT_SUCCESS
8190} 9441}
8191 9442
8192{ test "$mode" = link || test "$mode" = relink; } && 9443{ test "$opt_mode" = link || test "$opt_mode" = relink; } &&
8193 func_mode_link ${1+"$@"} 9444 func_mode_link ${1+"$@"}
8194 9445
8195 9446
@@ -8209,9 +9460,9 @@ func_mode_uninstall ()
8209 for arg 9460 for arg
8210 do 9461 do
8211 case $arg in 9462 case $arg in
8212 -f) RM="$RM $arg"; rmforce=yes ;; 9463 -f) func_append RM " $arg"; rmforce=yes ;;
8213 -*) RM="$RM $arg" ;; 9464 -*) func_append RM " $arg" ;;
8214 *) files="$files $arg" ;; 9465 *) func_append files " $arg" ;;
8215 esac 9466 esac
8216 done 9467 done
8217 9468
@@ -8220,24 +9471,23 @@ func_mode_uninstall ()
8220 9471
8221 rmdirs= 9472 rmdirs=
8222 9473
8223 origobjdir="$objdir"
8224 for file in $files; do 9474 for file in $files; do
8225 func_dirname "$file" "" "." 9475 func_dirname "$file" "" "."
8226 dir="$func_dirname_result" 9476 dir="$func_dirname_result"
8227 if test "X$dir" = X.; then 9477 if test "X$dir" = X.; then
8228 objdir="$origobjdir" 9478 odir="$objdir"
8229 else 9479 else
8230 objdir="$dir/$origobjdir" 9480 odir="$dir/$objdir"
8231 fi 9481 fi
8232 func_basename "$file" 9482 func_basename "$file"
8233 name="$func_basename_result" 9483 name="$func_basename_result"
8234 test "$mode" = uninstall && objdir="$dir" 9484 test "$opt_mode" = uninstall && odir="$dir"
8235 9485
8236 # Remember objdir for removal later, being careful to avoid duplicates 9486 # Remember odir for removal later, being careful to avoid duplicates
8237 if test "$mode" = clean; then 9487 if test "$opt_mode" = clean; then
8238 case " $rmdirs " in 9488 case " $rmdirs " in
8239 *" $objdir "*) ;; 9489 *" $odir "*) ;;
8240 *) rmdirs="$rmdirs $objdir" ;; 9490 *) func_append rmdirs " $odir" ;;
8241 esac 9491 esac
8242 fi 9492 fi
8243 9493
@@ -8263,18 +9513,17 @@ func_mode_uninstall ()
8263 9513
8264 # Delete the libtool libraries and symlinks. 9514 # Delete the libtool libraries and symlinks.
8265 for n in $library_names; do 9515 for n in $library_names; do
8266 rmfiles="$rmfiles $objdir/$n" 9516 func_append rmfiles " $odir/$n"
8267 done 9517 done
8268 test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library" 9518 test -n "$old_library" && func_append rmfiles " $odir/$old_library"
8269 9519
8270 case "$mode" in 9520 case "$opt_mode" in
8271 clean) 9521 clean)
8272 case " $library_names " in 9522 case " $library_names " in
8273 # " " in the beginning catches empty $dlname
8274 *" $dlname "*) ;; 9523 *" $dlname "*) ;;
8275 *) rmfiles="$rmfiles $objdir/$dlname" ;; 9524 *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;;
8276 esac 9525 esac
8277 test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" 9526 test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i"
8278 ;; 9527 ;;
8279 uninstall) 9528 uninstall)
8280 if test -n "$library_names"; then 9529 if test -n "$library_names"; then
@@ -8302,19 +9551,19 @@ func_mode_uninstall ()
8302 # Add PIC object to the list of files to remove. 9551 # Add PIC object to the list of files to remove.
8303 if test -n "$pic_object" && 9552 if test -n "$pic_object" &&
8304 test "$pic_object" != none; then 9553 test "$pic_object" != none; then
8305 rmfiles="$rmfiles $dir/$pic_object" 9554 func_append rmfiles " $dir/$pic_object"
8306 fi 9555 fi
8307 9556
8308 # Add non-PIC object to the list of files to remove. 9557 # Add non-PIC object to the list of files to remove.
8309 if test -n "$non_pic_object" && 9558 if test -n "$non_pic_object" &&
8310 test "$non_pic_object" != none; then 9559 test "$non_pic_object" != none; then
8311 rmfiles="$rmfiles $dir/$non_pic_object" 9560 func_append rmfiles " $dir/$non_pic_object"
8312 fi 9561 fi
8313 fi 9562 fi
8314 ;; 9563 ;;
8315 9564
8316 *) 9565 *)
8317 if test "$mode" = clean ; then 9566 if test "$opt_mode" = clean ; then
8318 noexename=$name 9567 noexename=$name
8319 case $file in 9568 case $file in
8320 *.exe) 9569 *.exe)
@@ -8324,7 +9573,7 @@ func_mode_uninstall ()
8324 noexename=$func_stripname_result 9573 noexename=$func_stripname_result
8325 # $file with .exe has already been added to rmfiles, 9574 # $file with .exe has already been added to rmfiles,
8326 # add $file without .exe 9575 # add $file without .exe
8327 rmfiles="$rmfiles $file" 9576 func_append rmfiles " $file"
8328 ;; 9577 ;;
8329 esac 9578 esac
8330 # Do a test to see if this is a libtool program. 9579 # Do a test to see if this is a libtool program.
@@ -8333,7 +9582,7 @@ func_mode_uninstall ()
8333 func_ltwrapper_scriptname "$file" 9582 func_ltwrapper_scriptname "$file"
8334 relink_command= 9583 relink_command=
8335 func_source $func_ltwrapper_scriptname_result 9584 func_source $func_ltwrapper_scriptname_result
8336 rmfiles="$rmfiles $func_ltwrapper_scriptname_result" 9585 func_append rmfiles " $func_ltwrapper_scriptname_result"
8337 else 9586 else
8338 relink_command= 9587 relink_command=
8339 func_source $dir/$noexename 9588 func_source $dir/$noexename
@@ -8341,12 +9590,12 @@ func_mode_uninstall ()
8341 9590
8342 # note $name still contains .exe if it was in $file originally 9591 # note $name still contains .exe if it was in $file originally
8343 # as does the version of $file that was added into $rmfiles 9592 # as does the version of $file that was added into $rmfiles
8344 rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}" 9593 func_append rmfiles " $odir/$name $odir/${name}S.${objext}"
8345 if test "$fast_install" = yes && test -n "$relink_command"; then 9594 if test "$fast_install" = yes && test -n "$relink_command"; then
8346 rmfiles="$rmfiles $objdir/lt-$name" 9595 func_append rmfiles " $odir/lt-$name"
8347 fi 9596 fi
8348 if test "X$noexename" != "X$name" ; then 9597 if test "X$noexename" != "X$name" ; then
8349 rmfiles="$rmfiles $objdir/lt-${noexename}.c" 9598 func_append rmfiles " $odir/lt-${noexename}.c"
8350 fi 9599 fi
8351 fi 9600 fi
8352 fi 9601 fi
@@ -8354,7 +9603,6 @@ func_mode_uninstall ()
8354 esac 9603 esac
8355 func_show_eval "$RM $rmfiles" 'exit_status=1' 9604 func_show_eval "$RM $rmfiles" 'exit_status=1'
8356 done 9605 done
8357 objdir="$origobjdir"
8358 9606
8359 # Try to remove the ${objdir}s in the directories where we deleted files 9607 # Try to remove the ${objdir}s in the directories where we deleted files
8360 for dir in $rmdirs; do 9608 for dir in $rmdirs; do
@@ -8366,16 +9614,16 @@ func_mode_uninstall ()
8366 exit $exit_status 9614 exit $exit_status
8367} 9615}
8368 9616
8369{ test "$mode" = uninstall || test "$mode" = clean; } && 9617{ test "$opt_mode" = uninstall || test "$opt_mode" = clean; } &&
8370 func_mode_uninstall ${1+"$@"} 9618 func_mode_uninstall ${1+"$@"}
8371 9619
8372test -z "$mode" && { 9620test -z "$opt_mode" && {
8373 help="$generic_help" 9621 help="$generic_help"
8374 func_fatal_help "you must specify a MODE" 9622 func_fatal_help "you must specify a MODE"
8375} 9623}
8376 9624
8377test -z "$exec_cmd" && \ 9625test -z "$exec_cmd" && \
8378 func_fatal_help "invalid operation mode \`$mode'" 9626 func_fatal_help "invalid operation mode \`$opt_mode'"
8379 9627
8380if test -n "$exec_cmd"; then 9628if test -n "$exec_cmd"; then
8381 eval exec "$exec_cmd" 9629 eval exec "$exec_cmd"