comparison ltmain.sh @ 1826:6a621a625b04

New release
author Adam Chlipala <adam@chlipala.net>
date Tue, 25 Sep 2012 08:16:58 -0400
parents 40557fb08e98
children
comparison
equal deleted inserted replaced
1825:52c291b05738 1826:6a621a625b04
1 1 # Generated from ltmain.m4sh.
2 # libtool (GNU libtool) 2.4.2 2
3 # ltmain.sh (GNU libtool) 2.2.6b
3 # Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996 4 # Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
4 5
5 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, 6 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, 2007 2008 Free Software Foundation, Inc.
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
10 # GNU Libtool is free software; you can redistribute it and/or modify 10 # GNU Libtool is free software; you can redistribute it and/or modify
11 # it under the terms of the GNU General Public License as published by 11 # it under the terms of the GNU General Public License as published by
30 30
31 # Usage: $progname [OPTION]... [MODE-ARG]... 31 # Usage: $progname [OPTION]... [MODE-ARG]...
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 # --no-quiet, --no-silent 42 # --tag=TAG use configuration variables from tag TAG
43 # print informational messages (default) 43 # -v, --verbose print informational messages (default)
44 # --no-warn don't display warning messages 44 # --version print version information
45 # --tag=TAG use configuration variables from tag TAG 45 # -h, --help print short or long help message
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
50 # 46 #
51 # MODE must be one of the following: 47 # MODE must be one of the following:
52 # 48 #
53 # clean remove files from the build directory 49 # clean remove files from the build directory
54 # compile compile a source file into a libtool object 50 # compile compile a source file into a libtool object
55 # execute automatically set library path, then run a program 51 # execute automatically set library path, then run a program
56 # finish complete the installation of libtool libraries 52 # finish complete the installation of libtool libraries
57 # install install libraries or executables 53 # install install libraries or executables
58 # link create a library or an executable 54 # link create a library or an executable
59 # uninstall remove libraries from an installed directory 55 # uninstall remove libraries from an installed directory
60 # 56 #
61 # MODE-ARGS vary depending on the MODE. When passed as first option, 57 # MODE-ARGS vary depending on the MODE.
62 # `--mode=MODE' may be abbreviated as `MODE' or a unique abbreviation of that.
63 # Try `$progname --help --mode=MODE' for a more detailed description of MODE. 58 # Try `$progname --help --mode=MODE' for a more detailed description of MODE.
64 # 59 #
65 # When reporting a bug, please describe a test case to reproduce it and 60 # When reporting a bug, please describe a test case to reproduce it and
66 # include the following information: 61 # include the following information:
67 # 62 #
68 # host-triplet: $host 63 # host-triplet: $host
69 # shell: $SHELL 64 # shell: $SHELL
70 # compiler: $LTCC 65 # compiler: $LTCC
71 # compiler flags: $LTCFLAGS 66 # compiler flags: $LTCFLAGS
72 # linker: $LD (gnu? $with_gnu_ld) 67 # linker: $LD (gnu? $with_gnu_ld)
73 # $progname: (GNU libtool) 2.4.2 Debian-2.4.2-1.1 68 # $progname: (GNU libtool) 2.2.6b Debian-2.2.6b-2
74 # automake: $automake_version 69 # automake: $automake_version
75 # autoconf: $autoconf_version 70 # autoconf: $autoconf_version
76 # 71 #
77 # Report bugs to <bug-libtool@gnu.org>. 72 # Report bugs to <bug-libtool@gnu.org>.
78 # GNU libtool home page: <http://www.gnu.org/software/libtool/>. 73
79 # General help using GNU software: <http://www.gnu.org/gethelp/>. 74 PROGRAM=ltmain.sh
80
81 PROGRAM=libtool
82 PACKAGE=libtool 75 PACKAGE=libtool
83 VERSION="2.4.2 Debian-2.4.2-1.1" 76 VERSION="2.2.6b Debian-2.2.6b-2"
84 TIMESTAMP="" 77 TIMESTAMP=""
85 package_revision=1.3337 78 package_revision=1.3017
86 79
87 # Be Bourne compatible 80 # Be Bourne compatible
88 if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then 81 if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
89 emulate sh 82 emulate sh
90 NULLCMD=: 83 NULLCMD=:
96 case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac 89 case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
97 fi 90 fi
98 BIN_SH=xpg4; export BIN_SH # for Tru64 91 BIN_SH=xpg4; export BIN_SH # for Tru64
99 DUALCASE=1; export DUALCASE # for MKS sh 92 DUALCASE=1; export DUALCASE # for MKS sh
100 93
101 # A function that is used when there is no print builtin or printf.
102 func_fallback_echo ()
103 {
104 eval 'cat <<_LTECHO_EOF
105 $1
106 _LTECHO_EOF'
107 }
108
109 # NLS nuisances: We save the old values to restore during execute mode. 94 # 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).
110 lt_user_locale= 98 lt_user_locale=
111 lt_safe_locale= 99 lt_safe_locale=
112 for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES 100 for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
113 do 101 do
114 eval "if test \"\${$lt_var+set}\" = set; then 102 eval "if test \"\${$lt_var+set}\" = set; then
117 export $lt_var 105 export $lt_var
118 lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\" 106 lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\"
119 lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\" 107 lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\"
120 fi" 108 fi"
121 done 109 done
122 LC_ALL=C
123 LANGUAGE=C
124 export LANGUAGE LC_ALL
125 110
126 $lt_unset CDPATH 111 $lt_unset CDPATH
127 112
128 113
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.
134 progpath="$0"
135 114
136 115
137 116
138 : ${CP="cp -f"} 117 : ${CP="cp -f"}
139 test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'} 118 : ${ECHO="echo"}
119 : ${EGREP="/bin/grep -E"}
120 : ${FGREP="/bin/grep -F"}
121 : ${GREP="/bin/grep"}
122 : ${LN_S="ln -s"}
140 : ${MAKE="make"} 123 : ${MAKE="make"}
141 : ${MKDIR="mkdir"} 124 : ${MKDIR="mkdir"}
142 : ${MV="mv -f"} 125 : ${MV="mv -f"}
143 : ${RM="rm -f"} 126 : ${RM="rm -f"}
127 : ${SED="/bin/sed"}
144 : ${SHELL="${CONFIG_SHELL-/bin/sh}"} 128 : ${SHELL="${CONFIG_SHELL-/bin/sh}"}
145 : ${Xsed="$SED -e 1s/^X//"} 129 : ${Xsed="$SED -e 1s/^X//"}
146 130
147 # Global variables: 131 # Global variables:
148 EXIT_SUCCESS=0 132 EXIT_SUCCESS=0
157 ' 141 '
158 IFS=" $lt_nl" 142 IFS=" $lt_nl"
159 143
160 dirname="s,/[^/]*$,," 144 dirname="s,/[^/]*$,,"
161 basename="s,^.*/,," 145 basename="s,^.*/,,"
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.
166 func_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
178 func_basename ()
179 {
180 func_basename_result=`$ECHO "${1}" | $SED "$basename"`
181 } # func_basename may be replaced by extended shell implementation
182
183 146
184 # func_dirname_and_basename file append nondir_replacement 147 # func_dirname_and_basename file append nondir_replacement
185 # perform func_basename and func_dirname in a single function 148 # perform func_basename and func_dirname in a single function
186 # call: 149 # call:
187 # dirname: Compute the dirname of FILE. If nonempty, 150 # dirname: Compute the dirname of FILE. If nonempty,
193 # Implementation must be kept synchronized with func_dirname 156 # Implementation must be kept synchronized with func_dirname
194 # and func_basename. For efficiency, we do not delegate to 157 # and func_basename. For efficiency, we do not delegate to
195 # those functions but instead duplicate the functionality here. 158 # those functions but instead duplicate the functionality here.
196 func_dirname_and_basename () 159 func_dirname_and_basename ()
197 { 160 {
198 # Extract subdirectory from the argument. 161 # Extract subdirectory from the argument.
199 func_dirname_result=`$ECHO "${1}" | $SED -e "$dirname"` 162 func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"`
200 if test "X$func_dirname_result" = "X${1}"; then 163 if test "X$func_dirname_result" = "X${1}"; then
201 func_dirname_result="${3}" 164 func_dirname_result="${3}"
202 else 165 else
203 func_dirname_result="$func_dirname_result${2}" 166 func_dirname_result="$func_dirname_result${2}"
204 fi 167 fi
205 func_basename_result=`$ECHO "${1}" | $SED -e "$basename"` 168 func_basename_result=`$ECHO "X${1}" | $Xsed -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
215 func_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.
225 pathcar='s,^/\([^/]*\).*$,\1,'
226 pathcdr='s,^/[^/]*,,'
227 removedotparts=':dotsl
228 s@/\./@/@g
229 t dotsl
230 s,/\.$,/,'
231 collapseslashes='s@/\{1,\}@/@g'
232 finalslash='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"
239 func_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
308 } 169 }
309 170
310 # func_relative_path SRCDIR DSTDIR 171 # Generated shell functions inserted here.
311 # generates a relative path from SRCDIR to DSTDIR, with a trailing 172
312 # slash if non-empty, suitable for immediately appending a filename 173 # Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
313 # without needing to append a separator. 174 # is ksh but when the shell is invoked as "sh" and the current value of
314 # value returned in "$func_relative_path_result" 175 # the _XPG environment variable is not equal to 1 (one), the special
315 func_relative_path () 176 # positional parameter $0, within a function call, is the name of the
316 { 177 # function.
317 func_relative_path_result= 178 progpath="$0"
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
354
355 # Now calculate path; take care to avoid doubling-up slashes.
356 func_stripname '' '/' "$func_relative_path_result"
357 func_relative_path_result=$func_stripname_result
358 func_stripname '/' '/' "$func_relative_path_tcancelled"
359 if test "x$func_stripname_result" != x ; then
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 }
371 179
372 # The name of this program: 180 # 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:
373 func_dirname_and_basename "$progpath" 183 func_dirname_and_basename "$progpath"
374 progname=$func_basename_result 184 progname=$func_basename_result
185 case $progname in
186 -*) progname=./$progname ;;
187 esac
375 188
376 # Make sure we have an absolute path for reexecution: 189 # Make sure we have an absolute path for reexecution:
377 case $progpath in 190 case $progpath in
378 [\\/]*|[A-Za-z]:\\*) ;; 191 [\\/]*|[A-Za-z]:\\*) ;;
379 *[\\/]*) 192 *[\\/]*)
381 progdir=`cd "$progdir" && pwd` 194 progdir=`cd "$progdir" && pwd`
382 progpath="$progdir/$progname" 195 progpath="$progdir/$progname"
383 ;; 196 ;;
384 *) 197 *)
385 save_IFS="$IFS" 198 save_IFS="$IFS"
386 IFS=${PATH_SEPARATOR-:} 199 IFS=:
387 for progdir in $PATH; do 200 for progdir in $PATH; do
388 IFS="$save_IFS" 201 IFS="$save_IFS"
389 test -x "$progdir/$progname" && break 202 test -x "$progdir/$progname" && break
390 done 203 done
391 IFS="$save_IFS" 204 IFS="$save_IFS"
399 Xsed="${SED}"' -e 1s/^X//' 212 Xsed="${SED}"' -e 1s/^X//'
400 sed_quote_subst='s/\([`"$\\]\)/\\\1/g' 213 sed_quote_subst='s/\([`"$\\]\)/\\\1/g'
401 214
402 # Same as above, but do not quote variable references. 215 # Same as above, but do not quote variable references.
403 double_quote_subst='s/\(["`\\]\)/\\\1/g' 216 double_quote_subst='s/\(["`\\]\)/\\\1/g'
404
405 # Sed substitution that turns a string into a regex matching for the
406 # string literally.
407 sed_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.
412 lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
413 217
414 # Re-`\' parameter expansions in output of double_quote_subst that were 218 # Re-`\' parameter expansions in output of double_quote_subst that were
415 # `\'-ed in input to the same. If an odd number of `\' preceded a '$' 219 # `\'-ed in input to the same. If an odd number of `\' preceded a '$'
416 # in input to double_quote_subst, that '$' was protected from expansion. 220 # in input to double_quote_subst, that '$' was protected from expansion.
417 # Since each input `\' is now two `\'s, look for any number of runs of 221 # Since each input `\' is now two `\'s, look for any number of runs of
437 # func_echo arg... 241 # func_echo arg...
438 # Echo program name prefixed message, along with the current mode 242 # Echo program name prefixed message, along with the current mode
439 # name if it has been set yet. 243 # name if it has been set yet.
440 func_echo () 244 func_echo ()
441 { 245 {
442 $ECHO "$progname: ${opt_mode+$opt_mode: }$*" 246 $ECHO "$progname${mode+: }$mode: $*"
443 } 247 }
444 248
445 # func_verbose arg... 249 # func_verbose arg...
446 # Echo program name prefixed message in verbose mode only. 250 # Echo program name prefixed message in verbose mode only.
447 func_verbose () 251 func_verbose ()
452 # fails when set -e is in force, so we need another command to 256 # fails when set -e is in force, so we need another command to
453 # work around that: 257 # work around that:
454 : 258 :
455 } 259 }
456 260
457 # func_echo_all arg...
458 # Invoke $ECHO with all args, space-separated.
459 func_echo_all ()
460 {
461 $ECHO "$*"
462 }
463
464 # func_error arg... 261 # func_error arg...
465 # Echo program name prefixed message to standard error. 262 # Echo program name prefixed message to standard error.
466 func_error () 263 func_error ()
467 { 264 {
468 $ECHO "$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2 265 $ECHO "$progname${mode+: }$mode: "${1+"$@"} 1>&2
469 } 266 }
470 267
471 # func_warning arg... 268 # func_warning arg...
472 # Echo program name prefixed warning message to standard error. 269 # Echo program name prefixed warning message to standard error.
473 func_warning () 270 func_warning ()
474 { 271 {
475 $opt_warning && $ECHO "$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2 272 $opt_warning && $ECHO "$progname${mode+: }$mode: warning: "${1+"$@"} 1>&2
476 273
477 # bash bug again: 274 # bash bug again:
478 : 275 :
479 } 276 }
480 277
527 324
528 # If the last portion added has no slash in it, the list is done 325 # If the last portion added has no slash in it, the list is done
529 case $my_directory_path in */*) ;; *) break ;; esac 326 case $my_directory_path in */*) ;; *) break ;; esac
530 327
531 # ...otherwise throw away the child directory and loop 328 # ...otherwise throw away the child directory and loop
532 my_directory_path=`$ECHO "$my_directory_path" | $SED -e "$dirname"` 329 my_directory_path=`$ECHO "X$my_directory_path" | $Xsed -e "$dirname"`
533 done 330 done
534 my_dir_list=`$ECHO "$my_dir_list" | $SED 's,:*$,,'` 331 my_dir_list=`$ECHO "X$my_dir_list" | $Xsed -e 's,:*$,,'`
535 332
536 save_mkdir_p_IFS="$IFS"; IFS=':' 333 save_mkdir_p_IFS="$IFS"; IFS=':'
537 for my_dir in $my_dir_list; do 334 for my_dir in $my_dir_list; do
538 IFS="$save_mkdir_p_IFS" 335 IFS="$save_mkdir_p_IFS"
539 # mkdir can fail with a `File exist' error if two processes 336 # mkdir can fail with a `File exist' error if two processes
579 # If we're not in dry-run mode, bomb out on failure 376 # If we're not in dry-run mode, bomb out on failure
580 test -d "$my_tmpdir" || \ 377 test -d "$my_tmpdir" || \
581 func_fatal_error "cannot create temporary directory \`$my_tmpdir'" 378 func_fatal_error "cannot create temporary directory \`$my_tmpdir'"
582 fi 379 fi
583 380
584 $ECHO "$my_tmpdir" 381 $ECHO "X$my_tmpdir" | $Xsed
585 } 382 }
586 383
587 384
588 # func_quote_for_eval arg 385 # func_quote_for_eval arg
589 # Aesthetically quote ARG to be evaled later. 386 # Aesthetically quote ARG to be evaled later.
593 # which are still active within double quotes backslashified. 390 # which are still active within double quotes backslashified.
594 func_quote_for_eval () 391 func_quote_for_eval ()
595 { 392 {
596 case $1 in 393 case $1 in
597 *[\\\`\"\$]*) 394 *[\\\`\"\$]*)
598 func_quote_for_eval_unquoted_result=`$ECHO "$1" | $SED "$sed_quote_subst"` ;; 395 func_quote_for_eval_unquoted_result=`$ECHO "X$1" | $Xsed -e "$sed_quote_subst"` ;;
599 *) 396 *)
600 func_quote_for_eval_unquoted_result="$1" ;; 397 func_quote_for_eval_unquoted_result="$1" ;;
601 esac 398 esac
602 399
603 case $func_quote_for_eval_unquoted_result in 400 case $func_quote_for_eval_unquoted_result in
620 # but do not quote variable references. 417 # but do not quote variable references.
621 func_quote_for_expand () 418 func_quote_for_expand ()
622 { 419 {
623 case $1 in 420 case $1 in
624 *[\\\`\"]*) 421 *[\\\`\"]*)
625 my_arg=`$ECHO "$1" | $SED \ 422 my_arg=`$ECHO "X$1" | $Xsed \
626 -e "$double_quote_subst" -e "$sed_double_backslash"` ;; 423 -e "$double_quote_subst" -e "$sed_double_backslash"` ;;
627 *) 424 *)
628 my_arg="$1" ;; 425 my_arg="$1" ;;
629 esac 426 esac
630 427
689 eval "(exit $my_status); $my_fail_exp" 486 eval "(exit $my_status); $my_fail_exp"
690 fi 487 fi
691 fi 488 fi
692 } 489 }
693 490
694 # func_tr_sh 491
695 # Turn $1 into a string suitable for a shell variable name. 492
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.
699 func_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 }
710 493
711 494
712 # func_version 495 # func_version
713 # Echo version message to standard output and exit. 496 # Echo version message to standard output and exit.
714 func_version () 497 func_version ()
715 { 498 {
716 $opt_debug 499 $SED -n '/^# '$PROGRAM' (GNU /,/# warranty; / {
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; / {
727 s/^# // 500 s/^# //
728 s/^# *$// 501 s/^# *$//
729 s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/ 502 s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/
730 p 503 p
731 }' < "$progpath" 504 }' < "$progpath"
734 507
735 # func_usage 508 # func_usage
736 # Echo short help message to standard output and exit. 509 # Echo short help message to standard output and exit.
737 func_usage () 510 func_usage ()
738 { 511 {
739 $opt_debug 512 $SED -n '/^# Usage:/,/# -h/ {
740
741 $SED -n '/^# Usage:/,/^# *.*--help/ {
742 s/^# // 513 s/^# //
743 s/^# *$// 514 s/^# *$//
744 s/\$progname/'$progname'/ 515 s/\$progname/'$progname'/
745 p 516 p
746 }' < "$progpath" 517 }' < "$progpath"
747 echo 518 $ECHO
748 $ECHO "run \`$progname --help | more' for full usage" 519 $ECHO "run \`$progname --help | more' for full usage"
749 exit $? 520 exit $?
750 } 521 }
751 522
752 # func_help [NOEXIT] 523 # func_help
753 # Echo long help message to standard output and exit, 524 # Echo long help message to standard output and exit.
754 # unless 'noexit' is passed as argument.
755 func_help () 525 func_help ()
756 { 526 {
757 $opt_debug
758
759 $SED -n '/^# Usage:/,/# Report bugs to/ { 527 $SED -n '/^# Usage:/,/# Report bugs to/ {
760 :print
761 s/^# // 528 s/^# //
762 s/^# *$// 529 s/^# *$//
763 s*\$progname*'$progname'* 530 s*\$progname*'$progname'*
764 s*\$host*'"$host"'* 531 s*\$host*'"$host"'*
765 s*\$SHELL*'"$SHELL"'* 532 s*\$SHELL*'"$SHELL"'*
766 s*\$LTCC*'"$LTCC"'* 533 s*\$LTCC*'"$LTCC"'*
767 s*\$LTCFLAGS*'"$LTCFLAGS"'* 534 s*\$LTCFLAGS*'"$LTCFLAGS"'*
768 s*\$LD*'"$LD"'* 535 s*\$LD*'"$LD"'*
769 s/\$with_gnu_ld/'"$with_gnu_ld"'/ 536 s/\$with_gnu_ld/'"$with_gnu_ld"'/
770 s/\$automake_version/'"`(${AUTOMAKE-automake} --version) 2>/dev/null |$SED 1q`"'/ 537 s/\$automake_version/'"`(automake --version) 2>/dev/null |$SED 1q`"'/
771 s/\$autoconf_version/'"`(${AUTOCONF-autoconf} --version) 2>/dev/null |$SED 1q`"'/ 538 s/\$autoconf_version/'"`(autoconf --version) 2>/dev/null |$SED 1q`"'/
772 p 539 p
773 d 540 }' < "$progpath"
774 } 541 exit $?
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
782 } 542 }
783 543
784 # func_missing_arg argname 544 # func_missing_arg argname
785 # Echo program name prefixed message to standard error and set global 545 # Echo program name prefixed message to standard error and set global
786 # exit_cmd. 546 # exit_cmd.
787 func_missing_arg () 547 func_missing_arg ()
788 { 548 {
789 $opt_debug 549 func_error "missing argument for $1"
790
791 func_error "missing argument for $1."
792 exit_cmd=exit 550 exit_cmd=exit
793 } 551 }
794 552
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.
799 func_split_short_opt ()
800 {
801 my_sed_short_opt='1s/^\(..\).*$/\1/;q'
802 my_sed_short_rest='1s/^..\(.*\)$/\1/;q'
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.
812 func_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
821 exit_cmd=: 553 exit_cmd=:
822 554
823 555
824 556
825 557
558
559 # Check that we have a working $ECHO.
560 if test "X$1" = X--no-reexec; then
561 # Discard the --no-reexec flag, and continue.
562 shift
563 elif test "X$1" = X--fallback-echo; then
564 # Avoid inline document here, it may be left over
565 :
566 elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t'; then
567 # Yippee, $ECHO works!
568 :
569 else
570 # Restart under the correct shell, and then maybe $ECHO will work.
571 exec $SHELL "$progpath" --no-reexec ${1+"$@"}
572 fi
573
574 if test "X$1" = X--fallback-echo; then
575 # used as fallback echo
576 shift
577 cat <<EOF
578 $*
579 EOF
580 exit $EXIT_SUCCESS
581 fi
826 582
827 magic="%%%MAGIC variable%%%" 583 magic="%%%MAGIC variable%%%"
828 magic_exe="%%%MAGIC EXE variable%%%" 584 magic_exe="%%%MAGIC EXE variable%%%"
829 585
830 # Global variables. 586 # Global variables.
587 # $mode is unset
831 nonopt= 588 nonopt=
589 execute_dlfiles=
832 preserve_args= 590 preserve_args=
833 lo2o="s/\\.lo\$/.${objext}/" 591 lo2o="s/\\.lo\$/.${objext}/"
834 o2lo="s/\\.${objext}\$/.lo/" 592 o2lo="s/\\.${objext}\$/.lo/"
835 extracted_archives= 593 extracted_archives=
836 extracted_serial=0 594 extracted_serial=0
837 595
596 opt_dry_run=false
597 opt_duplicate_deps=false
598 opt_silent=false
599 opt_debug=:
600
838 # If this variable is set in any of the actions, the command in it 601 # If this variable is set in any of the actions, the command in it
839 # will be execed at the end. This prevents here-documents from being 602 # will be execed at the end. This prevents here-documents from being
840 # left over by shells. 603 # left over by shells.
841 exec_cmd= 604 exec_cmd=
842
843 # func_append var value
844 # Append VALUE to the end of shell variable VAR.
845 func_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.
853 func_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...
861 func_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.
869 func_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
876 func_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
883 func_xform ()
884 {
885 func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'`
886 } # func_xform may be replaced by extended shell implementation
887
888 605
889 # func_fatal_configuration arg... 606 # func_fatal_configuration arg...
890 # Echo program name prefixed message to standard error, followed by 607 # Echo program name prefixed message to standard error, followed by
891 # a configuration failure hint, and exit. 608 # a configuration failure hint, and exit.
892 func_fatal_configuration () 609 func_fatal_configuration ()
917 634
918 # func_features 635 # func_features
919 # Display the features supported by this script. 636 # Display the features supported by this script.
920 func_features () 637 func_features ()
921 { 638 {
922 echo "host: $host" 639 $ECHO "host: $host"
923 if test "$build_libtool_libs" = yes; then 640 if test "$build_libtool_libs" = yes; then
924 echo "enable shared libraries" 641 $ECHO "enable shared libraries"
925 else 642 else
926 echo "disable shared libraries" 643 $ECHO "disable shared libraries"
927 fi 644 fi
928 if test "$build_old_libs" = yes; then 645 if test "$build_old_libs" = yes; then
929 echo "enable static libraries" 646 $ECHO "enable static libraries"
930 else 647 else
931 echo "disable static libraries" 648 $ECHO "disable static libraries"
932 fi 649 fi
933 650
934 exit $? 651 exit $?
935 } 652 }
936 653
971 else 688 else
972 func_error "ignoring unknown tag $tagname" 689 func_error "ignoring unknown tag $tagname"
973 fi 690 fi
974 ;; 691 ;;
975 esac 692 esac
693 }
694
695 # Parse options once, thoroughly. This comes as soon as possible in
696 # the script to make things like `libtool --version' happen quickly.
697 {
698
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
724 # Parse non-mode specific arguments:
725 while test "$#" -gt 0; do
726 opt="$1"
727 shift
728
729 case $opt in
730 --config) func_config ;;
731
732 --debug) preserve_args="$preserve_args $opt"
733 func_echo "enabling shell trace mode"
734 opt_debug='set -x'
735 $opt_debug
736 ;;
737
738 -dlopen) test "$#" -eq 0 && func_missing_arg "$opt" && break
739 execute_dlfiles="$execute_dlfiles $1"
740 shift
741 ;;
742
743 --dry-run | -n) opt_dry_run=: ;;
744 --features) func_features ;;
745 --finish) mode="finish" ;;
746
747 --mode) test "$#" -eq 0 && func_missing_arg "$opt" && break
748 case $1 in
749 # Valid mode arguments:
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
768 ;;
769
770 --preserve-dup-deps)
771 opt_duplicate_deps=: ;;
772
773 --quiet|--silent) preserve_args="$preserve_args $opt"
774 opt_silent=:
775 ;;
776
777 --verbose| -v) preserve_args="$preserve_args $opt"
778 opt_silent=false
779 ;;
780
781 --tag) test "$#" -eq 0 && func_missing_arg "$opt" && break
782 preserve_args="$preserve_args $opt $1"
783 func_enable_tag "$1" # tagname is set here
784 shift
785 ;;
786
787 # Separate optargs to long options:
788 -dlopen=*|--mode=*|--tag=*)
789 func_opt_split "$opt"
790 set dummy "$func_opt_split_opt" "$func_opt_split_arg" ${1+"$@"}
791 shift
792 ;;
793
794 -\?|-h) func_usage ;;
795 --help) opt_help=: ;;
796 --version) func_version ;;
797
798 -*) func_fatal_help "unrecognized option \`$opt'" ;;
799
800 *) nonopt="$opt"
801 break
802 ;;
803 esac
804 done
805
806
807 case $host in
808 *cygwin* | *mingw* | *pw32* | *cegcc*)
809 # don't eliminate duplications in $postdeps and $predeps
810 opt_duplicate_compiler_generated_deps=:
811 ;;
812 *)
813 opt_duplicate_compiler_generated_deps=$opt_duplicate_deps
814 ;;
815 esac
816
817 # Having warned about all mis-specified options, bail out if
818 # anything was wrong.
819 $exit_cmd $EXIT_FAILURE
976 } 820 }
977 821
978 # func_check_version_match 822 # func_check_version_match
979 # Ensure that we are using m4 macros, and libtool script from the same 823 # Ensure that we are using m4 macros, and libtool script from the same
980 # release of libtool. 824 # release of libtool.
1009 exit $EXIT_MISMATCH 853 exit $EXIT_MISMATCH
1010 fi 854 fi
1011 } 855 }
1012 856
1013 857
1014 # Shorthand for --mode=foo, only valid as the first argument
1015 case $1 in
1016 clean|clea|cle|cl)
1017 shift; set dummy --mode clean ${1+"$@"}; shift
1018 ;;
1019 compile|compil|compi|comp|com|co|c)
1020 shift; set dummy --mode compile ${1+"$@"}; shift
1021 ;;
1022 execute|execut|execu|exec|exe|ex|e)
1023 shift; set dummy --mode execute ${1+"$@"}; shift
1024 ;;
1025 finish|finis|fini|fin|fi|f)
1026 shift; set dummy --mode finish ${1+"$@"}; shift
1027 ;;
1028 install|instal|insta|inst|ins|in|i)
1029 shift; set dummy --mode install ${1+"$@"}; shift
1030 ;;
1031 link|lin|li|l)
1032 shift; set dummy --mode link ${1+"$@"}; shift
1033 ;;
1034 uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u)
1035 shift; set dummy --mode uninstall ${1+"$@"}; shift
1036 ;;
1037 esac
1038
1039
1040
1041 # Option defaults:
1042 opt_debug=:
1043 opt_dry_run=false
1044 opt_config=false
1045 opt_preserve_dup_deps=false
1046 opt_features=false
1047 opt_finish=false
1048 opt_help=false
1049 opt_help_all=false
1050 opt_silent=:
1051 opt_warning=:
1052 opt_verbose=:
1053 opt_silent=false
1054 opt_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
1062 opt="$1"
1063 shift
1064 case $opt in
1065 --debug|-x) opt_debug='set -x'
1066 func_echo "enabling shell trace mode"
1067 $opt_debug
1068 ;;
1069 --dry-run|--dryrun|-n)
1070 opt_dry_run=:
1071 ;;
1072 --config)
1073 opt_config=:
1074 func_config
1075 ;;
1076 --dlopen|-dlopen)
1077 optarg="$1"
1078 opt_dlopen="${opt_dlopen+$opt_dlopen
1079 }$optarg"
1080 shift
1081 ;;
1082 --preserve-dup-deps)
1083 opt_preserve_dup_deps=:
1084 ;;
1085 --features)
1086 opt_features=:
1087 func_features
1088 ;;
1089 --finish)
1090 opt_finish=:
1091 set dummy --mode finish ${1+"$@"}; shift
1092 ;;
1093 --help)
1094 opt_help=:
1095 ;;
1096 --help-all)
1097 opt_help_all=:
1098 opt_help=': help-all'
1099 ;;
1100 --mode)
1101 test $# = 0 && func_missing_arg $opt && break
1102 optarg="$1"
1103 opt_mode="$optarg"
1104 case $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 ;;
1113 esac
1114 shift
1115 ;;
1116 --no-silent|--no-quiet)
1117 opt_silent=false
1118 func_append preserve_args " $opt"
1119 ;;
1120 --no-warning|--no-warn)
1121 opt_warning=false
1122 func_append preserve_args " $opt"
1123 ;;
1124 --no-verbose)
1125 opt_verbose=false
1126 func_append preserve_args " $opt"
1127 ;;
1128 --silent|--quiet)
1129 opt_silent=:
1130 func_append preserve_args " $opt"
1131 opt_verbose=false
1132 ;;
1133 --verbose|-v)
1134 opt_verbose=:
1135 func_append preserve_args " $opt"
1136 opt_silent=false
1137 ;;
1138 --tag)
1139 test $# = 0 && func_missing_arg $opt && break
1140 optarg="$1"
1141 opt_tag="$optarg"
1142 func_append preserve_args " $opt $optarg"
1143 func_enable_tag "$optarg"
1144 shift
1145 ;;
1146
1147 -\?|-h) func_usage ;;
1148 --help) func_help ;;
1149 --version) func_version ;;
1150
1151 # Separate optargs to long options:
1152 --*=*)
1153 func_split_long_opt "$opt"
1154 set dummy "$func_split_long_opt_name" "$func_split_long_opt_arg" ${1+"$@"}
1155 shift
1156 ;;
1157
1158 # Separate non-argument short options:
1159 -\?*|-h*|-n*|-v*)
1160 func_split_short_opt "$opt"
1161 set dummy "$func_split_short_opt_name" "-$func_split_short_opt_arg" ${1+"$@"}
1162 shift
1163 ;;
1164
1165 --) break ;;
1166 -*) func_fatal_help "unrecognized option \`$opt'" ;;
1167 *) set dummy "$opt" ${1+"$@"}; shift; break ;;
1168 esac
1169 done
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"
1181
1182 case $host in
1183 *cygwin* | *mingw* | *pw32* | *cegcc*)
1184 # don't eliminate duplications in $postdeps and $predeps
1185 opt_duplicate_compiler_generated_deps=:
1186 ;;
1187 *)
1188 opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps
1189 ;;
1190 esac
1191
1192 $opt_help || {
1193 # Sanity checks first:
1194 func_check_version_match
1195
1196 if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
1197 func_fatal_configuration "not configured to build any kind of library"
1198 fi
1199
1200 # Darwin sucks
1201 eval std_shrext=\"$shrext_cmds\"
1202
1203 # Only execute mode is allowed to have -dlopen flags.
1204 if test -n "$opt_dlopen" && test "$opt_mode" != execute; then
1205 func_error "unrecognized option \`-dlopen'"
1206 $ECHO "$help" 1>&2
1207 exit $EXIT_FAILURE
1208 fi
1209
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 }
1214
1215
1216 # Bail if the options were screwed
1217 $exit_cmd $EXIT_FAILURE
1218 }
1219
1220
1221
1222
1223 ## ----------- ## 858 ## ----------- ##
1224 ## Main. ## 859 ## Main. ##
1225 ## ----------- ## 860 ## ----------- ##
861
862 $opt_help || {
863 # Sanity checks first:
864 func_check_version_match
865
866 if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
867 func_fatal_configuration "not configured to build any kind of library"
868 fi
869
870 test -z "$mode" && func_fatal_error "error: you must specify a MODE."
871
872
873 # Darwin sucks
874 eval std_shrext=\"$shrext_cmds\"
875
876
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
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
1226 889
1227 # func_lalib_p file 890 # func_lalib_p file
1228 # True iff FILE is a libtool `.la' library or `.lo' object file. 891 # True iff FILE is a libtool `.la' library or `.lo' object file.
1229 # This function is only a basic sanity check; it will hardly flush out 892 # This function is only a basic sanity check; it will hardly flush out
1230 # determined imposters. 893 # determined imposters.
1285 # Assumes file is an ltwrapper_executable 948 # Assumes file is an ltwrapper_executable
1286 # uses $file to determine the appropriate filename for a 949 # uses $file to determine the appropriate filename for a
1287 # temporary ltwrapper_script. 950 # temporary ltwrapper_script.
1288 func_ltwrapper_scriptname () 951 func_ltwrapper_scriptname ()
1289 { 952 {
1290 func_dirname_and_basename "$1" "" "." 953 func_ltwrapper_scriptname_result=""
1291 func_stripname '' '.exe' "$func_basename_result" 954 if func_ltwrapper_executable_p "$1"; then
1292 func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper" 955 func_dirname_and_basename "$1" "" "."
956 func_stripname '' '.exe' "$func_basename_result"
957 func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper"
958 fi
1293 } 959 }
1294 960
1295 # func_ltwrapper_p file 961 # func_ltwrapper_p file
1296 # True iff FILE is a libtool wrapper script or wrapper executable 962 # True iff FILE is a libtool wrapper script or wrapper executable
1297 # This function is only a basic sanity check; it will hardly flush out 963 # This function is only a basic sanity check; it will hardly flush out
1333 *) . "./$1" ;; 999 *) . "./$1" ;;
1334 esac 1000 esac
1335 } 1001 }
1336 1002
1337 1003
1338 # func_resolve_sysroot PATH
1339 # Replace a leading = in PATH with a sysroot. Store the result into
1340 # func_resolve_sysroot_result
1341 func_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.
1355 func_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
1369 # func_infer_tag arg 1004 # func_infer_tag arg
1370 # Infer tagged configuration to use if any are available and 1005 # Infer tagged configuration to use if any are available and
1371 # if one wasn't chosen via the "--tag" command line option. 1006 # if one wasn't chosen via the "--tag" command line option.
1372 # Only attempt this if the compiler in the base compile 1007 # Only attempt this if the compiler in the base compile
1373 # command doesn't match the default compiler. 1008 # command doesn't match the default compiler.
1376 { 1011 {
1377 $opt_debug 1012 $opt_debug
1378 if test -n "$available_tags" && test -z "$tagname"; then 1013 if test -n "$available_tags" && test -z "$tagname"; then
1379 CC_quoted= 1014 CC_quoted=
1380 for arg in $CC; do 1015 for arg in $CC; do
1381 func_append_quoted CC_quoted "$arg" 1016 func_quote_for_eval "$arg"
1017 CC_quoted="$CC_quoted $func_quote_for_eval_result"
1382 done 1018 done
1383 CC_expanded=`func_echo_all $CC`
1384 CC_quoted_expanded=`func_echo_all $CC_quoted`
1385 case $@ in 1019 case $@ in
1386 # Blanks in the command may have been stripped by the calling shell, 1020 # Blanks in the command may have been stripped by the calling shell,
1387 # but not from the CC environment variable when configure was run. 1021 # but not from the CC environment variable when configure was run.
1388 " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ 1022 " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) ;;
1389 " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;;
1390 # Blanks at the start of $base_compile will cause this to fail 1023 # Blanks at the start of $base_compile will cause this to fail
1391 # if we don't check for them as well. 1024 # if we don't check for them as well.
1392 *) 1025 *)
1393 for z in $available_tags; do 1026 for z in $available_tags; do
1394 if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then 1027 if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then
1395 # Evaluate the configuration. 1028 # Evaluate the configuration.
1396 eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" 1029 eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"
1397 CC_quoted= 1030 CC_quoted=
1398 for arg in $CC; do 1031 for arg in $CC; do
1399 # Double-quote args containing other shell metacharacters. 1032 # Double-quote args containing other shell metacharacters.
1400 func_append_quoted CC_quoted "$arg" 1033 func_quote_for_eval "$arg"
1034 CC_quoted="$CC_quoted $func_quote_for_eval_result"
1401 done 1035 done
1402 CC_expanded=`func_echo_all $CC`
1403 CC_quoted_expanded=`func_echo_all $CC_quoted`
1404 case "$@ " in 1036 case "$@ " in
1405 " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ 1037 " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*)
1406 " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*)
1407 # The compiler in the base compile command matches 1038 # The compiler in the base compile command matches
1408 # the one in the tagged configuration. 1039 # the one in the tagged configuration.
1409 # Assume this is the tagged configuration we want. 1040 # Assume this is the tagged configuration we want.
1410 tagname=$z 1041 tagname=$z
1411 break 1042 break
1464 EOF 1095 EOF
1465 $MV "${write_libobj}T" "${write_libobj}" 1096 $MV "${write_libobj}T" "${write_libobj}"
1466 } 1097 }
1467 } 1098 }
1468 1099
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)
1483 func_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.
1515 func_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.
1555 func_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.
1575 func_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).
1589 func_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).
1607 func_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.
1631 func_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.
1658 func_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.
1670 func_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.
1688 func_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.
1699 func_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.
1715 func_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.
1732 func_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.
1748 func_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.
1766 func_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.
1805 to_host_path_cmd=
1806 func_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.
1819 func_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.
1830 func_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.
1841 func_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.
1864 func_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.
1884 func_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.
1905 func_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.
1928 func_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
1949 # func_mode_compile arg... 1100 # func_mode_compile arg...
1950 func_mode_compile () 1101 func_mode_compile ()
1951 { 1102 {
1952 $opt_debug 1103 $opt_debug
1953 # Get the compilation command and the source file. 1104 # Get the compilation command and the source file.
1984 arg_mode=target 1135 arg_mode=target
1985 continue 1136 continue
1986 ;; 1137 ;;
1987 1138
1988 -pie | -fpie | -fPIE) 1139 -pie | -fpie | -fPIE)
1989 func_append pie_flag " $arg" 1140 pie_flag="$pie_flag $arg"
1990 continue 1141 continue
1991 ;; 1142 ;;
1992 1143
1993 -shared | -static | -prefer-pic | -prefer-non-pic) 1144 -shared | -static | -prefer-pic | -prefer-non-pic)
1994 func_append later " $arg" 1145 later="$later $arg"
1995 continue 1146 continue
1996 ;; 1147 ;;
1997 1148
1998 -no-suppress) 1149 -no-suppress)
1999 suppress_opt=no 1150 suppress_opt=no
2010 args=$func_stripname_result 1161 args=$func_stripname_result
2011 lastarg= 1162 lastarg=
2012 save_ifs="$IFS"; IFS=',' 1163 save_ifs="$IFS"; IFS=','
2013 for arg in $args; do 1164 for arg in $args; do
2014 IFS="$save_ifs" 1165 IFS="$save_ifs"
2015 func_append_quoted lastarg "$arg" 1166 func_quote_for_eval "$arg"
1167 lastarg="$lastarg $func_quote_for_eval_result"
2016 done 1168 done
2017 IFS="$save_ifs" 1169 IFS="$save_ifs"
2018 func_stripname ' ' '' "$lastarg" 1170 func_stripname ' ' '' "$lastarg"
2019 lastarg=$func_stripname_result 1171 lastarg=$func_stripname_result
2020 1172
2021 # Add the arguments to base_compile. 1173 # Add the arguments to base_compile.
2022 func_append base_compile " $lastarg" 1174 base_compile="$base_compile $lastarg"
2023 continue 1175 continue
2024 ;; 1176 ;;
2025 1177
2026 *) 1178 *)
2027 # Accept the current argument as the source file. 1179 # Accept the current argument as the source file.
2033 esac # case $arg 1185 esac # case $arg
2034 ;; 1186 ;;
2035 esac # case $arg_mode 1187 esac # case $arg_mode
2036 1188
2037 # Aesthetically quote the previous argument. 1189 # Aesthetically quote the previous argument.
2038 func_append_quoted base_compile "$lastarg" 1190 func_quote_for_eval "$lastarg"
1191 base_compile="$base_compile $func_quote_for_eval_result"
2039 done # for arg 1192 done # for arg
2040 1193
2041 case $arg_mode in 1194 case $arg_mode in
2042 arg) 1195 arg)
2043 func_fatal_error "you must specify an argument for -Xcompile" 1196 func_fatal_error "you must specify an argument for -Xcompile"
2058 # If the user specifies -o file.o, it is replaced with file.lo 1211 # If the user specifies -o file.o, it is replaced with file.lo
2059 case $libobj in 1212 case $libobj in
2060 *.[cCFSifmso] | \ 1213 *.[cCFSifmso] | \
2061 *.ada | *.adb | *.ads | *.asm | \ 1214 *.ada | *.adb | *.ads | *.asm | \
2062 *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \ 1215 *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \
2063 *.[fF][09]? | *.for | *.java | *.go | *.obj | *.sx | *.cu | *.cup) 1216 *.[fF][09]? | *.for | *.java | *.obj | *.sx)
2064 func_xform "$libobj" 1217 func_xform "$libobj"
2065 libobj=$func_xform_result 1218 libobj=$func_xform_result
2066 ;; 1219 ;;
2067 esac 1220 esac
2068 1221
2133 fi 1286 fi
2134 1287
2135 # Calculate the filename of the output object if compiler does 1288 # Calculate the filename of the output object if compiler does
2136 # not support -o with -c 1289 # not support -o with -c
2137 if test "$compiler_c_o" = no; then 1290 if test "$compiler_c_o" = no; then
2138 output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.${objext} 1291 output_obj=`$ECHO "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext}
2139 lockfile="$output_obj.lock" 1292 lockfile="$output_obj.lock"
2140 else 1293 else
2141 output_obj= 1294 output_obj=
2142 need_locks=no 1295 need_locks=no
2143 lockfile= 1296 lockfile=
2164 compiler." 1317 compiler."
2165 1318
2166 $opt_dry_run || $RM $removelist 1319 $opt_dry_run || $RM $removelist
2167 exit $EXIT_FAILURE 1320 exit $EXIT_FAILURE
2168 fi 1321 fi
2169 func_append removelist " $output_obj" 1322 removelist="$removelist $output_obj"
2170 $ECHO "$srcfile" > "$lockfile" 1323 $ECHO "$srcfile" > "$lockfile"
2171 fi 1324 fi
2172 1325
2173 $opt_dry_run || $RM $removelist 1326 $opt_dry_run || $RM $removelist
2174 func_append removelist " $lockfile" 1327 removelist="$removelist $lockfile"
2175 trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 1328 trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15
2176 1329
2177 func_to_tool_file "$srcfile" func_convert_file_msys_to_w32 1330 if test -n "$fix_srcfile_path"; then
2178 srcfile=$func_to_tool_file_result 1331 eval srcfile=\"$fix_srcfile_path\"
1332 fi
2179 func_quote_for_eval "$srcfile" 1333 func_quote_for_eval "$srcfile"
2180 qsrcfile=$func_quote_for_eval_result 1334 qsrcfile=$func_quote_for_eval_result
2181 1335
2182 # Only build a PIC object if we are building libtool libraries. 1336 # Only build a PIC object if we are building libtool libraries.
2183 if test "$build_libtool_libs" = yes; then 1337 if test "$build_libtool_libs" = yes; then
2193 1347
2194 func_mkdir_p "$xdir$objdir" 1348 func_mkdir_p "$xdir$objdir"
2195 1349
2196 if test -z "$output_obj"; then 1350 if test -z "$output_obj"; then
2197 # Place PIC objects in $objdir 1351 # Place PIC objects in $objdir
2198 func_append command " -o $lobj" 1352 command="$command -o $lobj"
2199 fi 1353 fi
2200 1354
2201 func_show_eval_locale "$command" \ 1355 func_show_eval_locale "$command" \
2202 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE' 1356 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE'
2203 1357
2240 command="$base_compile $qsrcfile$pie_flag" 1394 command="$base_compile $qsrcfile$pie_flag"
2241 else 1395 else
2242 command="$base_compile $qsrcfile $pic_flag" 1396 command="$base_compile $qsrcfile $pic_flag"
2243 fi 1397 fi
2244 if test "$compiler_c_o" = yes; then 1398 if test "$compiler_c_o" = yes; then
2245 func_append command " -o $obj" 1399 command="$command -o $obj"
2246 fi 1400 fi
2247 1401
2248 # Suppress compiler output if we already did a PIC compilation. 1402 # Suppress compiler output if we already did a PIC compilation.
2249 func_append command "$suppress_output" 1403 command="$command$suppress_output"
2250 func_show_eval_locale "$command" \ 1404 func_show_eval_locale "$command" \
2251 '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1405 '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE'
2252 1406
2253 if test "$need_locks" = warn && 1407 if test "$need_locks" = warn &&
2254 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then 1408 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
2289 1443
2290 exit $EXIT_SUCCESS 1444 exit $EXIT_SUCCESS
2291 } 1445 }
2292 1446
2293 $opt_help || { 1447 $opt_help || {
2294 test "$opt_mode" = compile && func_mode_compile ${1+"$@"} 1448 test "$mode" = compile && func_mode_compile ${1+"$@"}
2295 } 1449 }
2296 1450
2297 func_mode_help () 1451 func_mode_help ()
2298 { 1452 {
2299 # We need to display help for each of the modes. 1453 # We need to display help for each of the modes.
2300 case $opt_mode in 1454 case $mode in
2301 "") 1455 "")
2302 # Generic help is extracted from the usage comments 1456 # Generic help is extracted from the usage comments
2303 # at the start of this file. 1457 # at the start of this file.
2304 func_help 1458 func_help
2305 ;; 1459 ;;
2326 1480
2327 This mode accepts the following additional options: 1481 This mode accepts the following additional options:
2328 1482
2329 -o OUTPUT-FILE set the output file name to OUTPUT-FILE 1483 -o OUTPUT-FILE set the output file name to OUTPUT-FILE
2330 -no-suppress do not suppress compiler output for multiple passes 1484 -no-suppress do not suppress compiler output for multiple passes
2331 -prefer-pic try to build PIC objects only 1485 -prefer-pic try to building PIC objects only
2332 -prefer-non-pic try to build non-PIC objects only 1486 -prefer-non-pic try to building non-PIC objects only
2333 -shared do not build a \`.o' file suitable for static linking 1487 -shared do not build a \`.o' file suitable for static linking
2334 -static only build a \`.o' file suitable for static linking 1488 -static only build a \`.o' file suitable for static linking
2335 -Wc,FLAG pass FLAG directly to the compiler
2336 1489
2337 COMPILE-COMMAND is a command to be used in creating a \`standard' object file 1490 COMPILE-COMMAND is a command to be used in creating a \`standard' object file
2338 from the given SOURCEFILE. 1491 from the given SOURCEFILE.
2339 1492
2340 The output file name is determined by removing the directory component from 1493 The output file name is determined by removing the directory component from
2383 INSTALL-COMMAND is the installation command. The first component should be 1536 INSTALL-COMMAND is the installation command. The first component should be
2384 either the \`install' or \`cp' program. 1537 either the \`install' or \`cp' program.
2385 1538
2386 The following components of INSTALL-COMMAND are treated specially: 1539 The following components of INSTALL-COMMAND are treated specially:
2387 1540
2388 -inst-prefix-dir PREFIX-DIR Use PREFIX-DIR as a staging area for installation 1541 -inst-prefix PREFIX-DIR Use PREFIX-DIR as a staging area for installation
2389 1542
2390 The rest of the components are interpreted as arguments to that command (only 1543 The rest of the components are interpreted as arguments to that command (only
2391 BSD-compatible install options are recognized)." 1544 BSD-compatible install options are recognized)."
2392 ;; 1545 ;;
2393 1546
2403 1556
2404 The following components of LINK-COMMAND are treated specially: 1557 The following components of LINK-COMMAND are treated specially:
2405 1558
2406 -all-static do not do any dynamic linking at all 1559 -all-static do not do any dynamic linking at all
2407 -avoid-version do not add a version suffix if possible 1560 -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)
2410 -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime 1561 -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime
2411 -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols 1562 -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols
2412 -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) 1563 -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
2413 -export-symbols SYMFILE 1564 -export-symbols SYMFILE
2414 try to export only the symbols listed in SYMFILE 1565 try to export only the symbols listed in SYMFILE
2433 -static-libtool-libs 1584 -static-libtool-libs
2434 do not do any dynamic linking of libtool libraries 1585 do not do any dynamic linking of libtool libraries
2435 -version-info CURRENT[:REVISION[:AGE]] 1586 -version-info CURRENT[:REVISION[:AGE]]
2436 specify library version info [each variable defaults to 0] 1587 specify library version info [each variable defaults to 0]
2437 -weak LIBNAME declare that the target provides the LIBNAME interface 1588 -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)
2443 1589
2444 All other options (arguments beginning with \`-') are ignored. 1590 All other options (arguments beginning with \`-') are ignored.
2445 1591
2446 Every other argument is treated as a filename. Files ending in \`.la' are 1592 Every other argument is treated as a filename. Files ending in \`.la' are
2447 treated as uninstalled libtool libraries, other files are standard or library 1593 treated as uninstalled libtool libraries, other files are standard or library
2471 If FILE is a libtool library, all the files associated with it are deleted. 1617 If FILE is a libtool library, all the files associated with it are deleted.
2472 Otherwise, only FILE itself is deleted using RM." 1618 Otherwise, only FILE itself is deleted using RM."
2473 ;; 1619 ;;
2474 1620
2475 *) 1621 *)
2476 func_fatal_help "invalid operation mode \`$opt_mode'" 1622 func_fatal_help "invalid operation mode \`$mode'"
2477 ;; 1623 ;;
2478 esac 1624 esac
2479 1625
2480 echo 1626 $ECHO
2481 $ECHO "Try \`$progname --help' for more information about other modes." 1627 $ECHO "Try \`$progname --help' for more information about other modes."
1628
1629 exit $?
2482 } 1630 }
2483 1631
2484 # Now that we've collected a possible --mode arg, show help if necessary 1632 # Now that we've collected a possible --mode arg, show help if necessary
2485 if $opt_help; then 1633 $opt_help && func_mode_help
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 $?
2513 fi
2514 1634
2515 1635
2516 # func_mode_execute arg... 1636 # func_mode_execute arg...
2517 func_mode_execute () 1637 func_mode_execute ()
2518 { 1638 {
2521 cmd="$nonopt" 1641 cmd="$nonopt"
2522 test -z "$cmd" && \ 1642 test -z "$cmd" && \
2523 func_fatal_help "you must specify a COMMAND" 1643 func_fatal_help "you must specify a COMMAND"
2524 1644
2525 # Handle -dlopen flags immediately. 1645 # Handle -dlopen flags immediately.
2526 for file in $opt_dlopen; do 1646 for file in $execute_dlfiles; do
2527 test -f "$file" \ 1647 test -f "$file" \
2528 || func_fatal_help "\`$file' is not a file" 1648 || func_fatal_help "\`$file' is not a file"
2529 1649
2530 dir= 1650 dir=
2531 case $file in 1651 case $file in
2532 *.la) 1652 *.la)
2533 func_resolve_sysroot "$file"
2534 file=$func_resolve_sysroot_result
2535
2536 # Check to see that this really is a libtool archive. 1653 # Check to see that this really is a libtool archive.
2537 func_lalib_unsafe_p "$file" \ 1654 func_lalib_unsafe_p "$file" \
2538 || func_fatal_help "\`$lib' is not a valid libtool archive" 1655 || func_fatal_help "\`$lib' is not a valid libtool archive"
2539 1656
2540 # Read the libtool library. 1657 # Read the libtool library.
2552 1669
2553 func_dirname "$file" "" "." 1670 func_dirname "$file" "" "."
2554 dir="$func_dirname_result" 1671 dir="$func_dirname_result"
2555 1672
2556 if test -f "$dir/$objdir/$dlname"; then 1673 if test -f "$dir/$objdir/$dlname"; then
2557 func_append dir "/$objdir" 1674 dir="$dir/$objdir"
2558 else 1675 else
2559 if test ! -f "$dir/$dlname"; then 1676 if test ! -f "$dir/$dlname"; then
2560 func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1677 func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'"
2561 fi 1678 fi
2562 fi 1679 fi
2593 # Check if any of the arguments is a wrapper script. 1710 # Check if any of the arguments is a wrapper script.
2594 args= 1711 args=
2595 for file 1712 for file
2596 do 1713 do
2597 case $file in 1714 case $file in
2598 -* | *.la | *.lo ) ;; 1715 -*) ;;
2599 *) 1716 *)
2600 # Do a test to see if this is really a libtool program. 1717 # Do a test to see if this is really a libtool program.
2601 if func_ltwrapper_script_p "$file"; then 1718 if func_ltwrapper_script_p "$file"; then
2602 func_source "$file" 1719 func_source "$file"
2603 # Transform arg to wrapped name. 1720 # Transform arg to wrapped name.
2609 file="$progdir/$program" 1726 file="$progdir/$program"
2610 fi 1727 fi
2611 ;; 1728 ;;
2612 esac 1729 esac
2613 # Quote arguments (to preserve shell metacharacters). 1730 # Quote arguments (to preserve shell metacharacters).
2614 func_append_quoted args "$file" 1731 func_quote_for_eval "$file"
1732 args="$args $func_quote_for_eval_result"
2615 done 1733 done
2616 1734
2617 if test "X$opt_dry_run" = Xfalse; then 1735 if test "X$opt_dry_run" = Xfalse; then
2618 if test -n "$shlibpath_var"; then 1736 if test -n "$shlibpath_var"; then
2619 # Export the shlibpath_var. 1737 # Export the shlibpath_var.
2634 exec_cmd="\$cmd$args" 1752 exec_cmd="\$cmd$args"
2635 else 1753 else
2636 # Display what would be done. 1754 # Display what would be done.
2637 if test -n "$shlibpath_var"; then 1755 if test -n "$shlibpath_var"; then
2638 eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\"" 1756 eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\""
2639 echo "export $shlibpath_var" 1757 $ECHO "export $shlibpath_var"
2640 fi 1758 fi
2641 $ECHO "$cmd$args" 1759 $ECHO "$cmd$args"
2642 exit $EXIT_SUCCESS 1760 exit $EXIT_SUCCESS
2643 fi 1761 fi
2644 } 1762 }
2645 1763
2646 test "$opt_mode" = execute && func_mode_execute ${1+"$@"} 1764 test "$mode" = execute && func_mode_execute ${1+"$@"}
2647 1765
2648 1766
2649 # func_mode_finish arg... 1767 # func_mode_finish arg...
2650 func_mode_finish () 1768 func_mode_finish ()
2651 { 1769 {
2652 $opt_debug 1770 $opt_debug
2653 libs= 1771 libdirs="$nonopt"
2654 libdirs=
2655 admincmds= 1772 admincmds=
2656 1773
2657 for opt in "$nonopt" ${1+"$@"}
2658 do
2659 if test -d "$opt"; then
2660 func_append libdirs " $opt"
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 1774 if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
1775 for dir
1776 do
1777 libdirs="$libdirs $dir"
1778 done
1779
2699 for libdir in $libdirs; do 1780 for libdir in $libdirs; do
2700 if test -n "$finish_cmds"; then 1781 if test -n "$finish_cmds"; then
2701 # Do each command in the finish commands. 1782 # Do each command in the finish commands.
2702 func_execute_cmds "$finish_cmds" 'admincmds="$admincmds 1783 func_execute_cmds "$finish_cmds" 'admincmds="$admincmds
2703 '"$cmd"'"' 1784 '"$cmd"'"'
2704 fi 1785 fi
2705 if test -n "$finish_eval"; then 1786 if test -n "$finish_eval"; then
2706 # Do the single finish_eval. 1787 # Do the single finish_eval.
2707 eval cmds=\"$finish_eval\" 1788 eval cmds=\"$finish_eval\"
2708 $opt_dry_run || eval "$cmds" || func_append admincmds " 1789 $opt_dry_run || eval "$cmds" || admincmds="$admincmds
2709 $cmds" 1790 $cmds"
2710 fi 1791 fi
2711 done 1792 done
2712 fi 1793 fi
2713 1794
2714 # Exit here if they wanted silent mode. 1795 # Exit here if they wanted silent mode.
2715 $opt_silent && exit $EXIT_SUCCESS 1796 $opt_silent && exit $EXIT_SUCCESS
2716 1797
2717 if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then 1798 $ECHO "X----------------------------------------------------------------------" | $Xsed
2718 echo "----------------------------------------------------------------------" 1799 $ECHO "Libraries have been installed in:"
2719 echo "Libraries have been installed in:" 1800 for libdir in $libdirs; do
2720 for libdir in $libdirs; do 1801 $ECHO " $libdir"
2721 $ECHO " $libdir" 1802 done
2722 done 1803 $ECHO
2723 echo 1804 $ECHO "If you ever happen to want to link against installed libraries"
2724 echo "If you ever happen to want to link against installed libraries" 1805 $ECHO "in a given directory, LIBDIR, you must either use libtool, and"
2725 echo "in a given directory, LIBDIR, you must either use libtool, and" 1806 $ECHO "specify the full pathname of the library, or use the \`-LLIBDIR'"
2726 echo "specify the full pathname of the library, or use the \`-LLIBDIR'" 1807 $ECHO "flag during linking and do at least one of the following:"
2727 echo "flag during linking and do at least one of the following:" 1808 if test -n "$shlibpath_var"; then
2728 if test -n "$shlibpath_var"; then 1809 $ECHO " - add LIBDIR to the \`$shlibpath_var' environment variable"
2729 echo " - add LIBDIR to the \`$shlibpath_var' environment variable" 1810 $ECHO " during execution"
2730 echo " during execution"
2731 fi
2732 if test -n "$runpath_var"; then
2733 echo " - add LIBDIR to the \`$runpath_var' environment variable"
2734 echo " during linking"
2735 fi
2736 if test -n "$hardcode_libdir_flag_spec"; then
2737 libdir=LIBDIR
2738 eval flag=\"$hardcode_libdir_flag_spec\"
2739
2740 $ECHO " - use the \`$flag' linker flag"
2741 fi
2742 if test -n "$admincmds"; then
2743 $ECHO " - have your system administrator run these commands:$admincmds"
2744 fi
2745 if test -f /etc/ld.so.conf; then
2746 echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
2747 fi
2748 echo
2749
2750 echo "See any operating system documentation about shared libraries for"
2751 case $host in
2752 solaris2.[6789]|solaris2.1[0-9])
2753 echo "more information, such as the ld(1), crle(1) and ld.so(8) manual"
2754 echo "pages."
2755 ;;
2756 *)
2757 echo "more information, such as the ld(1) and ld.so(8) manual pages."
2758 ;;
2759 esac
2760 echo "----------------------------------------------------------------------"
2761 fi 1811 fi
1812 if test -n "$runpath_var"; then
1813 $ECHO " - add LIBDIR to the \`$runpath_var' environment variable"
1814 $ECHO " during linking"
1815 fi
1816 if test -n "$hardcode_libdir_flag_spec"; then
1817 libdir=LIBDIR
1818 eval flag=\"$hardcode_libdir_flag_spec\"
1819
1820 $ECHO " - use the \`$flag' linker flag"
1821 fi
1822 if test -n "$admincmds"; then
1823 $ECHO " - have your system administrator run these commands:$admincmds"
1824 fi
1825 if test -f /etc/ld.so.conf; then
1826 $ECHO " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
1827 fi
1828 $ECHO
1829
1830 $ECHO "See any operating system documentation about shared libraries for"
1831 case $host in
1832 solaris2.[6789]|solaris2.1[0-9])
1833 $ECHO "more information, such as the ld(1), crle(1) and ld.so(8) manual"
1834 $ECHO "pages."
1835 ;;
1836 *)
1837 $ECHO "more information, such as the ld(1) and ld.so(8) manual pages."
1838 ;;
1839 esac
1840 $ECHO "X----------------------------------------------------------------------" | $Xsed
2762 exit $EXIT_SUCCESS 1841 exit $EXIT_SUCCESS
2763 } 1842 }
2764 1843
2765 test "$opt_mode" = finish && func_mode_finish ${1+"$@"} 1844 test "$mode" = finish && func_mode_finish ${1+"$@"}
2766 1845
2767 1846
2768 # func_mode_install arg... 1847 # func_mode_install arg...
2769 func_mode_install () 1848 func_mode_install ()
2770 { 1849 {
2771 $opt_debug 1850 $opt_debug
2772 # There may be an optional sh(1) argument at the beginning of 1851 # There may be an optional sh(1) argument at the beginning of
2773 # install_prog (especially on Windows NT). 1852 # install_prog (especially on Windows NT).
2774 if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || 1853 if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
2775 # Allow the use of GNU shtool's install command. 1854 # Allow the use of GNU shtool's install command.
2776 case $nonopt in *shtool*) :;; *) false;; esac; then 1855 $ECHO "X$nonopt" | $GREP shtool >/dev/null; then
2777 # Aesthetically quote it. 1856 # Aesthetically quote it.
2778 func_quote_for_eval "$nonopt" 1857 func_quote_for_eval "$nonopt"
2779 install_prog="$func_quote_for_eval_result " 1858 install_prog="$func_quote_for_eval_result "
2780 arg=$1 1859 arg=$1
2781 shift 1860 shift
2785 fi 1864 fi
2786 1865
2787 # The real first argument should be the name of the installation program. 1866 # The real first argument should be the name of the installation program.
2788 # Aesthetically quote it. 1867 # Aesthetically quote it.
2789 func_quote_for_eval "$arg" 1868 func_quote_for_eval "$arg"
2790 func_append install_prog "$func_quote_for_eval_result" 1869 install_prog="$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
2796 1870
2797 # We need to accept at least all the BSD install flags. 1871 # We need to accept at least all the BSD install flags.
2798 dest= 1872 dest=
2799 files= 1873 files=
2800 opts= 1874 opts=
2801 prev= 1875 prev=
2802 install_type= 1876 install_type=
2803 isdir=no 1877 isdir=no
2804 stripme= 1878 stripme=
2805 no_mode=:
2806 for arg 1879 for arg
2807 do 1880 do
2808 arg2=
2809 if test -n "$dest"; then 1881 if test -n "$dest"; then
2810 func_append files " $dest" 1882 files="$files $dest"
2811 dest=$arg 1883 dest=$arg
2812 continue 1884 continue
2813 fi 1885 fi
2814 1886
2815 case $arg in 1887 case $arg in
2816 -d) isdir=yes ;; 1888 -d) isdir=yes ;;
2817 -f) 1889 -f)
2818 if $install_cp; then :; else 1890 case " $install_prog " in
2819 prev=$arg 1891 *[\\\ /]cp\ *) ;;
2820 fi 1892 *) prev=$arg ;;
1893 esac
2821 ;; 1894 ;;
2822 -g | -m | -o) 1895 -g | -m | -o)
2823 prev=$arg 1896 prev=$arg
2824 ;; 1897 ;;
2825 -s) 1898 -s)
2829 -*) 1902 -*)
2830 ;; 1903 ;;
2831 *) 1904 *)
2832 # If the previous option needed an argument, then skip it. 1905 # If the previous option needed an argument, then skip it.
2833 if test -n "$prev"; then 1906 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
2838 prev= 1907 prev=
2839 else 1908 else
2840 dest=$arg 1909 dest=$arg
2841 continue 1910 continue
2842 fi 1911 fi
2843 ;; 1912 ;;
2844 esac 1913 esac
2845 1914
2846 # Aesthetically quote the argument. 1915 # Aesthetically quote the argument.
2847 func_quote_for_eval "$arg" 1916 func_quote_for_eval "$arg"
2848 func_append install_prog " $func_quote_for_eval_result" 1917 install_prog="$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"
2853 done 1918 done
2854 1919
2855 test -z "$install_prog" && \ 1920 test -z "$install_prog" && \
2856 func_fatal_help "you must specify an install program" 1921 func_fatal_help "you must specify an install program"
2857 1922
2858 test -n "$prev" && \ 1923 test -n "$prev" && \
2859 func_fatal_help "the \`$prev' option requires an argument" 1924 func_fatal_help "the \`$prev' option requires an argument"
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 1925
2868 if test -z "$files"; then 1926 if test -z "$files"; then
2869 if test -z "$dest"; then 1927 if test -z "$dest"; then
2870 func_fatal_help "no file or destination specified" 1928 func_fatal_help "no file or destination specified"
2871 else 1929 else
2917 1975
2918 # Do each installation. 1976 # Do each installation.
2919 case $file in 1977 case $file in
2920 *.$libext) 1978 *.$libext)
2921 # Do the static libraries later. 1979 # Do the static libraries later.
2922 func_append staticlibs " $file" 1980 staticlibs="$staticlibs $file"
2923 ;; 1981 ;;
2924 1982
2925 *.la) 1983 *.la)
2926 func_resolve_sysroot "$file"
2927 file=$func_resolve_sysroot_result
2928
2929 # Check to see that this really is a libtool archive. 1984 # Check to see that this really is a libtool archive.
2930 func_lalib_unsafe_p "$file" \ 1985 func_lalib_unsafe_p "$file" \
2931 || func_fatal_help "\`$file' is not a valid libtool archive" 1986 || func_fatal_help "\`$file' is not a valid libtool archive"
2932 1987
2933 library_names= 1988 library_names=
2937 1992
2938 # Add the libdir to current_libdirs if it is the destination. 1993 # Add the libdir to current_libdirs if it is the destination.
2939 if test "X$destdir" = "X$libdir"; then 1994 if test "X$destdir" = "X$libdir"; then
2940 case "$current_libdirs " in 1995 case "$current_libdirs " in
2941 *" $libdir "*) ;; 1996 *" $libdir "*) ;;
2942 *) func_append current_libdirs " $libdir" ;; 1997 *) current_libdirs="$current_libdirs $libdir" ;;
2943 esac 1998 esac
2944 else 1999 else
2945 # Note the libdir as a future libdir. 2000 # Note the libdir as a future libdir.
2946 case "$future_libdirs " in 2001 case "$future_libdirs " in
2947 *" $libdir "*) ;; 2002 *" $libdir "*) ;;
2948 *) func_append future_libdirs " $libdir" ;; 2003 *) future_libdirs="$future_libdirs $libdir" ;;
2949 esac 2004 esac
2950 fi 2005 fi
2951 2006
2952 func_dirname "$file" "/" "" 2007 func_dirname "$file" "/" ""
2953 dir="$func_dirname_result" 2008 dir="$func_dirname_result"
2954 func_append dir "$objdir" 2009 dir="$dir$objdir"
2955 2010
2956 if test -n "$relink_command"; then 2011 if test -n "$relink_command"; then
2957 # Determine the prefix the user has applied to our future dir. 2012 # Determine the prefix the user has applied to our future dir.
2958 inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"` 2013 inst_prefix_dir=`$ECHO "X$destdir" | $Xsed -e "s%$libdir\$%%"`
2959 2014
2960 # Don't allow the user to place us outside of our expected 2015 # Don't allow the user to place us outside of our expected
2961 # location b/c this prevents finding dependent libraries that 2016 # location b/c this prevents finding dependent libraries that
2962 # are installed to the same prefix. 2017 # are installed to the same prefix.
2963 # At present, this check doesn't affect windows .dll's that 2018 # At present, this check doesn't affect windows .dll's that
2966 test "$inst_prefix_dir" = "$destdir" && \ 2021 test "$inst_prefix_dir" = "$destdir" && \
2967 func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir" 2022 func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir"
2968 2023
2969 if test -n "$inst_prefix_dir"; then 2024 if test -n "$inst_prefix_dir"; then
2970 # Stick the inst_prefix_dir data into the link command. 2025 # Stick the inst_prefix_dir data into the link command.
2971 relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` 2026 relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
2972 else 2027 else
2973 relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"` 2028 relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%%"`
2974 fi 2029 fi
2975 2030
2976 func_warning "relinking \`$file'" 2031 func_warning "relinking \`$file'"
2977 func_show_eval "$relink_command" \ 2032 func_show_eval "$relink_command" \
2978 'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"' 2033 'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"'
2986 2041
2987 srcname="$realname" 2042 srcname="$realname"
2988 test -n "$relink_command" && srcname="$realname"T 2043 test -n "$relink_command" && srcname="$realname"T
2989 2044
2990 # Install the shared library and build the symlinks. 2045 # Install the shared library and build the symlinks.
2991 func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \ 2046 func_show_eval "$install_prog $dir/$srcname $destdir/$realname" \
2992 'exit $?' 2047 'exit $?'
2993 tstripme="$stripme" 2048 tstripme="$stripme"
2994 case $host_os in 2049 case $host_os in
2995 cygwin* | mingw* | pw32* | cegcc*) 2050 cygwin* | mingw* | pw32* | cegcc*)
2996 case $realname in 2051 case $realname in
3026 name="$func_basename_result" 2081 name="$func_basename_result"
3027 instname="$dir/$name"i 2082 instname="$dir/$name"i
3028 func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' 2083 func_show_eval "$install_prog $instname $destdir/$name" 'exit $?'
3029 2084
3030 # Maybe install the static library, too. 2085 # Maybe install the static library, too.
3031 test -n "$old_library" && func_append staticlibs " $dir/$old_library" 2086 test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
3032 ;; 2087 ;;
3033 2088
3034 *.lo) 2089 *.lo)
3035 # Install (i.e. copy) a libtool object. 2090 # Install (i.e. copy) a libtool object.
3036 2091
3126 # Check to see that each library is installed. 2181 # Check to see that each library is installed.
3127 libdir= 2182 libdir=
3128 if test -f "$lib"; then 2183 if test -f "$lib"; then
3129 func_source "$lib" 2184 func_source "$lib"
3130 fi 2185 fi
3131 libfile="$libdir/"`$ECHO "$lib" | $SED 's%^.*/%%g'` ### testsuite: skip nested quoting test 2186 libfile="$libdir/"`$ECHO "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test
3132 if test -n "$libdir" && test ! -f "$libfile"; then 2187 if test -n "$libdir" && test ! -f "$libfile"; then
3133 func_warning "\`$lib' has not been installed in \`$libdir'" 2188 func_warning "\`$lib' has not been installed in \`$libdir'"
3134 finalize=no 2189 finalize=no
3135 fi 2190 fi
3136 done 2191 done
3145 tmpdir=`func_mktempdir` 2200 tmpdir=`func_mktempdir`
3146 func_basename "$file$stripped_ext" 2201 func_basename "$file$stripped_ext"
3147 file="$func_basename_result" 2202 file="$func_basename_result"
3148 outputname="$tmpdir/$file" 2203 outputname="$tmpdir/$file"
3149 # Replace the output file specification. 2204 # Replace the output file specification.
3150 relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'` 2205 relink_command=`$ECHO "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`
3151 2206
3152 $opt_silent || { 2207 $opt_silent || {
3153 func_quote_for_expand "$relink_command" 2208 func_quote_for_expand "$relink_command"
3154 eval "func_echo $func_quote_for_expand_result" 2209 eval "func_echo $func_quote_for_expand_result"
3155 } 2210 }
3164 func_warning "cannot relink \`$file'" 2219 func_warning "cannot relink \`$file'"
3165 fi 2220 fi
3166 } 2221 }
3167 else 2222 else
3168 # Install the binary that we compiled earlier. 2223 # Install the binary that we compiled earlier.
3169 file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"` 2224 file=`$ECHO "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
3170 fi 2225 fi
3171 fi 2226 fi
3172 2227
3173 # remove .exe since cygwin /usr/bin/install will append another 2228 # remove .exe since cygwin /usr/bin/install will append another
3174 # one anyway 2229 # one anyway
3200 func_basename "$file" 2255 func_basename "$file"
3201 name="$func_basename_result" 2256 name="$func_basename_result"
3202 2257
3203 # Set up the ranlib parameters. 2258 # Set up the ranlib parameters.
3204 oldlib="$destdir/$name" 2259 oldlib="$destdir/$name"
3205 func_to_tool_file "$oldlib" func_convert_file_msys_to_w32
3206 tool_oldlib=$func_to_tool_file_result
3207 2260
3208 func_show_eval "$install_prog \$file \$oldlib" 'exit $?' 2261 func_show_eval "$install_prog \$file \$oldlib" 'exit $?'
3209 2262
3210 if test -n "$stripme" && test -n "$old_striplib"; then 2263 if test -n "$stripme" && test -n "$old_striplib"; then
3211 func_show_eval "$old_striplib $tool_oldlib" 'exit $?' 2264 func_show_eval "$old_striplib $oldlib" 'exit $?'
3212 fi 2265 fi
3213 2266
3214 # Do each command in the postinstall commands. 2267 # Do each command in the postinstall commands.
3215 func_execute_cmds "$old_postinstall_cmds" 'exit $?' 2268 func_execute_cmds "$old_postinstall_cmds" 'exit $?'
3216 done 2269 done
3225 else 2278 else
3226 exit $EXIT_SUCCESS 2279 exit $EXIT_SUCCESS
3227 fi 2280 fi
3228 } 2281 }
3229 2282
3230 test "$opt_mode" = install && func_mode_install ${1+"$@"} 2283 test "$mode" = install && func_mode_install ${1+"$@"}
3231 2284
3232 2285
3233 # func_generate_dlsyms outputname originator pic_p 2286 # func_generate_dlsyms outputname originator pic_p
3234 # Extract symbols from dlprefiles and create ${outputname}S.o with 2287 # Extract symbols from dlprefiles and create ${outputname}S.o with
3235 # a dlpreopen symbol table. 2288 # a dlpreopen symbol table.
3268 2321
3269 #ifdef __cplusplus 2322 #ifdef __cplusplus
3270 extern \"C\" { 2323 extern \"C\" {
3271 #endif 2324 #endif
3272 2325
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
3289 /* External symbol declarations for the compiler. */\ 2326 /* External symbol declarations for the compiler. */\
3290 " 2327 "
3291 2328
3292 if test "$dlself" = yes; then 2329 if test "$dlself" = yes; then
3293 func_verbose "generating symbol list for \`$output'" 2330 func_verbose "generating symbol list for \`$output'"
3294 2331
3295 $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist" 2332 $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist"
3296 2333
3297 # Add our own program objects to the symbol list. 2334 # Add our own program objects to the symbol list.
3298 progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP` 2335 progfiles=`$ECHO "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
3299 for progfile in $progfiles; do 2336 for progfile in $progfiles; do
3300 func_to_tool_file "$progfile" func_convert_file_msys_to_w32 2337 func_verbose "extracting global C symbols from \`$progfile'"
3301 func_verbose "extracting global C symbols from \`$func_to_tool_file_result'" 2338 $opt_dry_run || eval "$NM $progfile | $global_symbol_pipe >> '$nlist'"
3302 $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'"
3303 done 2339 done
3304 2340
3305 if test -n "$exclude_expsyms"; then 2341 if test -n "$exclude_expsyms"; then
3306 $opt_dry_run || { 2342 $opt_dry_run || {
3307 eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' 2343 eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
3333 $opt_dry_run || { 2369 $opt_dry_run || {
3334 eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' 2370 eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"'
3335 eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' 2371 eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
3336 eval '$MV "$nlist"T "$nlist"' 2372 eval '$MV "$nlist"T "$nlist"'
3337 case $host in 2373 case $host in
3338 *cygwin* | *mingw* | *cegcc* ) 2374 *cygwin | *mingw* | *cegcc* )
3339 eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' 2375 eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
3340 eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' 2376 eval 'cat "$nlist" >> "$output_objdir/$outputname.def"'
3341 ;; 2377 ;;
3342 esac 2378 esac
3343 } 2379 }
3346 2382
3347 for dlprefile in $dlprefiles; do 2383 for dlprefile in $dlprefiles; do
3348 func_verbose "extracting global C symbols from \`$dlprefile'" 2384 func_verbose "extracting global C symbols from \`$dlprefile'"
3349 func_basename "$dlprefile" 2385 func_basename "$dlprefile"
3350 name="$func_basename_result" 2386 name="$func_basename_result"
3351 case $host in 2387 $opt_dry_run || {
3352 *cygwin* | *mingw* | *cegcc* ) 2388 eval '$ECHO ": $name " >> "$nlist"'
3353 # if an import library, we need to obtain dlname 2389 eval "$NM $dlprefile 2>/dev/null | $global_symbol_pipe >> '$nlist'"
3354 if func_win32_import_lib_p "$dlprefile"; then 2390 }
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
3397 done 2391 done
3398 2392
3399 $opt_dry_run || { 2393 $opt_dry_run || {
3400 # Make sure we have at least an empty file. 2394 # Make sure we have at least an empty file.
3401 test -f "$nlist" || : > "$nlist" 2395 test -f "$nlist" || : > "$nlist"
3419 fi 2413 fi
3420 2414
3421 if test -f "$nlist"S; then 2415 if test -f "$nlist"S; then
3422 eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"' 2416 eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"'
3423 else 2417 else
3424 echo '/* NONE */' >> "$output_objdir/$my_dlsyms" 2418 $ECHO '/* NONE */' >> "$output_objdir/$my_dlsyms"
3425 fi 2419 fi
3426 2420
3427 echo >> "$output_objdir/$my_dlsyms" "\ 2421 $ECHO >> "$output_objdir/$my_dlsyms" "\
3428 2422
3429 /* The mapping between symbol names and symbols. */ 2423 /* The mapping between symbol names and symbols. */
3430 typedef struct { 2424 typedef struct {
3431 const char *name; 2425 const char *name;
3432 void *address; 2426 void *address;
3433 } lt_dlsymlist; 2427 } lt_dlsymlist;
3434 extern LT_DLSYM_CONST lt_dlsymlist 2428 "
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" "\
2445 extern $lt_dlsym_const lt_dlsymlist
3435 lt_${my_prefix}_LTX_preloaded_symbols[]; 2446 lt_${my_prefix}_LTX_preloaded_symbols[];
3436 LT_DLSYM_CONST lt_dlsymlist 2447 $lt_dlsym_const lt_dlsymlist
3437 lt_${my_prefix}_LTX_preloaded_symbols[] = 2448 lt_${my_prefix}_LTX_preloaded_symbols[] =
3438 {\ 2449 {\
3439 { \"$my_originator\", (void *) 0 }," 2450 { \"$my_originator\", (void *) 0 },"
3440 2451
3441 case $need_lib_prefix in 2452 case $need_lib_prefix in
3444 ;; 2455 ;;
3445 *) 2456 *)
3446 eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms" 2457 eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms"
3447 ;; 2458 ;;
3448 esac 2459 esac
3449 echo >> "$output_objdir/$my_dlsyms" "\ 2460 $ECHO >> "$output_objdir/$my_dlsyms" "\
3450 {0, (void *) 0} 2461 {0, (void *) 0}
3451 }; 2462 };
3452 2463
3453 /* This works around a problem in FreeBSD linker */ 2464 /* This works around a problem in FreeBSD linker */
3454 #ifdef FREEBSD_WORKAROUND 2465 #ifdef FREEBSD_WORKAROUND
3471 # compiling the symbol table file with pic_flag works around 2482 # compiling the symbol table file with pic_flag works around
3472 # a FreeBSD bug that causes programs to crash when -lm is 2483 # a FreeBSD bug that causes programs to crash when -lm is
3473 # linked before any other PIC object. But we must not use 2484 # linked before any other PIC object. But we must not use
3474 # pic_flag when linking with -static. The problem exists in 2485 # pic_flag when linking with -static. The problem exists in
3475 # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. 2486 # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
3476 *-*-freebsd2.*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) 2487 *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
3477 pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;; 2488 pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;;
3478 *-*-hpux*) 2489 *-*-hpux*)
3479 pic_flag_for_symtable=" $pic_flag" ;; 2490 pic_flag_for_symtable=" $pic_flag" ;;
3480 *) 2491 *)
3481 if test "X$my_pic_p" != Xno; then 2492 if test "X$my_pic_p" != Xno; then
3487 esac 2498 esac
3488 symtab_cflags= 2499 symtab_cflags=
3489 for arg in $LTCFLAGS; do 2500 for arg in $LTCFLAGS; do
3490 case $arg in 2501 case $arg in
3491 -pie | -fpie | -fPIE) ;; 2502 -pie | -fpie | -fPIE) ;;
3492 *) func_append symtab_cflags " $arg" ;; 2503 *) symtab_cflags="$symtab_cflags $arg" ;;
3493 esac 2504 esac
3494 done 2505 done
3495 2506
3496 # Now compile the dynamic symbol file. 2507 # Now compile the dynamic symbol file.
3497 func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?' 2508 func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?'
3502 # Transform the symbol file into the correct name. 2513 # Transform the symbol file into the correct name.
3503 symfileobj="$output_objdir/${my_outputname}S.$objext" 2514 symfileobj="$output_objdir/${my_outputname}S.$objext"
3504 case $host in 2515 case $host in
3505 *cygwin* | *mingw* | *cegcc* ) 2516 *cygwin* | *mingw* | *cegcc* )
3506 if test -f "$output_objdir/$my_outputname.def"; then 2517 if test -f "$output_objdir/$my_outputname.def"; then
3507 compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` 2518 compile_command=`$ECHO "X$compile_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%"` 2519 finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
3509 else 2520 else
3510 compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` 2521 compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
3511 finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` 2522 finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
3512 fi 2523 fi
3513 ;; 2524 ;;
3514 *) 2525 *)
3515 compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` 2526 compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
3516 finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` 2527 finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
3517 ;; 2528 ;;
3518 esac 2529 esac
3519 ;; 2530 ;;
3520 *) 2531 *)
3521 func_fatal_error "unknown suffix for \`$my_dlsyms'" 2532 func_fatal_error "unknown suffix for \`$my_dlsyms'"
3525 # We keep going just in case the user didn't refer to 2536 # We keep going just in case the user didn't refer to
3526 # lt_preloaded_symbols. The linker will fail if global_symbol_pipe 2537 # lt_preloaded_symbols. The linker will fail if global_symbol_pipe
3527 # really was required. 2538 # really was required.
3528 2539
3529 # Nullify the symbol file. 2540 # Nullify the symbol file.
3530 compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"` 2541 compile_command=`$ECHO "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
3531 finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"` 2542 finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
3532 fi 2543 fi
3533 } 2544 }
3534 2545
3535 # func_win32_libid arg 2546 # func_win32_libid arg
3536 # return the library type of file 'arg' 2547 # return the library type of file 'arg'
3537 # 2548 #
3538 # Need a lot of goo to handle *both* DLLs and import libs 2549 # Need a lot of goo to handle *both* DLLs and import libs
3539 # Has to be a shell function in order to 'eat' the argument 2550 # Has to be a shell function in order to 'eat' the argument
3540 # that is supplied when $file_magic_command is called. 2551 # that is supplied when $file_magic_command is called.
3541 # Despite the name, also deal with 64 bit binaries.
3542 func_win32_libid () 2552 func_win32_libid ()
3543 { 2553 {
3544 $opt_debug 2554 $opt_debug
3545 win32_libid_type="unknown" 2555 win32_libid_type="unknown"
3546 win32_fileres=`file -L $1 2>/dev/null` 2556 win32_fileres=`file -L $1 2>/dev/null`
3547 case $win32_fileres in 2557 case $win32_fileres in
3548 *ar\ archive\ import\ library*) # definitely import 2558 *ar\ archive\ import\ library*) # definitely import
3549 win32_libid_type="x86 archive import" 2559 win32_libid_type="x86 archive import"
3550 ;; 2560 ;;
3551 *ar\ archive*) # could be an import, or static 2561 *ar\ archive*) # could be an import, or static
3552 # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD.
3553 if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | 2562 if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null |
3554 $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then 2563 $EGREP 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then
3555 func_to_tool_file "$1" func_convert_file_msys_to_w32 2564 win32_nmres=`eval $NM -f posix -A $1 |
3556 win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" |
3557 $SED -n -e ' 2565 $SED -n -e '
3558 1,100{ 2566 1,100{
3559 / I /{ 2567 / I /{
3560 s,.*,import, 2568 s,.*,import,
3561 p 2569 p
3580 ;; 2588 ;;
3581 esac 2589 esac
3582 $ECHO "$win32_libid_type" 2590 $ECHO "$win32_libid_type"
3583 } 2591 }
3584 2592
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
3594 func_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.
3611 func_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.
3665 func_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.
3677 func_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
3696 func_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 }
3710 2593
3711 2594
3712 # func_extract_an_archive dir oldlib 2595 # func_extract_an_archive dir oldlib
3713 func_extract_an_archive () 2596 func_extract_an_archive ()
3714 { 2597 {
3715 $opt_debug 2598 $opt_debug
3716 f_ex_an_ar_dir="$1"; shift 2599 f_ex_an_ar_dir="$1"; shift
3717 f_ex_an_ar_oldlib="$1" 2600 f_ex_an_ar_oldlib="$1"
3718 if test "$lock_old_archive_extraction" = yes; then 2601 func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" 'exit $?'
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
3730 if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then 2602 if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
3731 : 2603 :
3732 else 2604 else
3733 func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" 2605 func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib"
3734 fi 2606 fi
3795 ## Okay now we've a bunch of thin objects, gotta fatten them up :) 2667 ## Okay now we've a bunch of thin objects, gotta fatten them up :)
3796 darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u` 2668 darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u`
3797 darwin_file= 2669 darwin_file=
3798 darwin_files= 2670 darwin_files=
3799 for darwin_file in $darwin_filelist; do 2671 for darwin_file in $darwin_filelist; do
3800 darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP` 2672 darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP`
3801 $LIPO -create -output "$darwin_file" $darwin_files 2673 $LIPO -create -output "$darwin_file" $darwin_files
3802 done # $darwin_filelist 2674 done # $darwin_filelist
3803 $RM -rf unfat-$$ 2675 $RM -rf unfat-$$
3804 cd "$darwin_orig_dir" 2676 cd "$darwin_orig_dir"
3805 else 2677 else
3810 ;; 2682 ;;
3811 *) 2683 *)
3812 func_extract_an_archive "$my_xdir" "$my_xabs" 2684 func_extract_an_archive "$my_xdir" "$my_xabs"
3813 ;; 2685 ;;
3814 esac 2686 esac
3815 my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP` 2687 my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
3816 done 2688 done
3817 2689
3818 func_extract_archives_result="$my_oldobjs" 2690 func_extract_archives_result="$my_oldobjs"
3819 } 2691 }
2692
2693
2694
2695 # func_emit_wrapper_part1 [arg=no]
2696 #
2697 # Emit the first part of a libtool wrapper script on stdout.
2698 # For more information, see the description associated with
2699 # func_emit_wrapper(), below.
2700 func_emit_wrapper_part1 ()
2701 {
2702 func_emit_wrapper_part1_arg1=no
2703 if test -n "$1" ; then
2704 func_emit_wrapper_part1_arg1=$1
2705 fi
2706
2707 $ECHO "\
2708 #! $SHELL
2709
2710 # $output - temporary wrapper script for $objdir/$outputname
2711 # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
2712 #
2713 # The $output program cannot be directly executed until all the libtool
2714 # libraries that it depends on are installed.
2715 #
2716 # This wrapper script should never be moved out of the build directory.
2717 # If it is, it will not operate correctly.
2718
2719 # Sed substitution that helps us do robust quoting. It backslashifies
2720 # metacharacters that are still active within double-quoted strings.
2721 Xsed='${SED} -e 1s/^X//'
2722 sed_quote_subst='$sed_quote_subst'
2723
2724 # Be Bourne compatible
2725 if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then
2726 emulate sh
2727 NULLCMD=:
2728 # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which
2729 # is contrary to our usage. Disable this feature.
2730 alias -g '\${1+\"\$@\"}'='\"\$@\"'
2731 setopt NO_GLOB_SUBST
2732 else
2733 case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac
2734 fi
2735 BIN_SH=xpg4; export BIN_SH # for Tru64
2736 DUALCASE=1; export DUALCASE # for MKS sh
2737
2738 # The HP-UX ksh and POSIX shell print the target directory to stdout
2739 # if CDPATH is set.
2740 (unset CDPATH) >/dev/null 2>&1 && unset CDPATH
2741
2742 relink_command=\"$relink_command\"
2743
2744 # This environment variable determines our operation mode.
2745 if test \"\$libtool_install_magic\" = \"$magic\"; then
2746 # install mode needs the following variables:
2747 generated_by_libtool_version='$macro_version'
2748 notinst_deplibs='$notinst_deplibs'
2749 else
2750 # When we are sourced in execute mode, \$file and \$ECHO are already set.
2751 if test \"\$libtool_execute_magic\" != \"$magic\"; then
2752 ECHO=\"$qecho\"
2753 file=\"\$0\"
2754 # Make sure echo works.
2755 if test \"X\$1\" = X--no-reexec; then
2756 # Discard the --no-reexec flag, and continue.
2757 shift
2758 elif test \"X\`{ \$ECHO '\t'; } 2>/dev/null\`\" = 'X\t'; then
2759 # Yippee, \$ECHO works!
2760 :
2761 else
2762 # Restart under the correct shell, and then maybe \$ECHO will work.
2763 exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
2764 fi
2765 fi\
2766 "
2767 $ECHO "\
2768
2769 # Find the directory that this script lives in.
2770 thisdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
2771 test \"x\$thisdir\" = \"x\$file\" && thisdir=.
2772
2773 # Follow symbolic links until we get to the real thisdir.
2774 file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\`
2775 while test -n \"\$file\"; do
2776 destdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
2777
2778 # If there was a directory component, then change thisdir.
2779 if test \"x\$destdir\" != \"x\$file\"; then
2780 case \"\$destdir\" in
2781 [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
2782 *) thisdir=\"\$thisdir/\$destdir\" ;;
2783 esac
2784 fi
2785
2786 file=\`\$ECHO \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
2787 file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\`
2788 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.
2798 func_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
2807 # Usually 'no', except on cygwin/mingw when embedded into
2808 # the cwrapper.
2809 WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_part2_arg1
2810 if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then
2811 # special case for '.'
2812 if test \"\$thisdir\" = \".\"; then
2813 thisdir=\`pwd\`
2814 fi
2815 # remove .libs from thisdir
2816 case \"\$thisdir\" in
2817 *[\\\\/]$objdir ) thisdir=\`\$ECHO \"X\$thisdir\" | \$Xsed -e 's%[\\\\/][^\\\\/]*$%%'\` ;;
2818 $objdir ) thisdir=. ;;
2819 esac
2820 fi
2821
2822 # Try to get the absolute directory name.
2823 absdir=\`cd \"\$thisdir\" && pwd\`
2824 test -n \"\$absdir\" && thisdir=\"\$absdir\"
2825 "
2826
2827 if test "$fast_install" = yes; then
2828 $ECHO "\
2829 program=lt-'$outputname'$exeext
2830 progdir=\"\$thisdir/$objdir\"
2831
2832 if test ! -f \"\$progdir/\$program\" ||
2833 { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\
2834 test \"X\$file\" != \"X\$progdir/\$program\"; }; then
2835
2836 file=\"\$\$-\$program\"
2837
2838 if test ! -d \"\$progdir\"; then
2839 $MKDIR \"\$progdir\"
2840 else
2841 $RM \"\$progdir/\$file\"
2842 fi"
2843
2844 $ECHO "\
2845
2846 # relink executable if necessary
2847 if test -n \"\$relink_command\"; then
2848 if relink_command_output=\`eval \$relink_command 2>&1\`; then :
2849 else
2850 $ECHO \"\$relink_command_output\" >&2
2851 $RM \"\$progdir/\$file\"
2852 exit 1
2853 fi
2854 fi
2855
2856 $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
2857 { $RM \"\$progdir/\$program\";
2858 $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; }
2859 $RM \"\$progdir/\$file\"
2860 fi"
2861 else
2862 $ECHO "\
2863 program='$outputname'
2864 progdir=\"\$thisdir/$objdir\"
2865 "
2866 fi
2867
2868 $ECHO "\
2869
2870 if test -f \"\$progdir/\$program\"; then"
2871
2872 # Export our shlibpath_var if we have one.
2873 if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
2874 $ECHO "\
2875 # Add our own library path to $shlibpath_var
2876 $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
2877
2878 # Some systems cannot cope with colon-terminated $shlibpath_var
2879 # The second colon is a workaround for a bug in BeOS R4 sed
2880 $shlibpath_var=\`\$ECHO \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
2881
2882 export $shlibpath_var
2883 "
2884 fi
2885
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 "\
2895 if test \"\$libtool_execute_magic\" != \"$magic\"; then
2896 # Run the actual program with our arguments.
2897 "
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
2916 else
2917 # The program doesn't exist.
2918 \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2
2919 \$ECHO \"This script is just a wrapper for \$program.\" 1>&2
2920 $ECHO \"See the $PACKAGE documentation for more information.\" 1>&2
2921 exit 1
2922 fi
2923 fi\
2924 "
2925 }
2926 # end: func_emit_wrapper_part2
3820 2927
3821 2928
3822 # func_emit_wrapper [arg=no] 2929 # func_emit_wrapper [arg=no]
3823 # 2930 #
3824 # Emit a libtool wrapper script on stdout. 2931 # Emit a libtool wrapper script on stdout.
3833 # will assume that the directory in which it is stored is 2940 # will assume that the directory in which it is stored is
3834 # the $objdir directory. This is a cygwin/mingw-specific 2941 # the $objdir directory. This is a cygwin/mingw-specific
3835 # behavior. 2942 # behavior.
3836 func_emit_wrapper () 2943 func_emit_wrapper ()
3837 { 2944 {
3838 func_emit_wrapper_arg1=${1-no} 2945 func_emit_wrapper_arg1=no
3839 2946 if test -n "$1" ; then
3840 $ECHO "\ 2947 func_emit_wrapper_arg1=$1
3841 #! $SHELL 2948 fi
3842 2949
3843 # $output - temporary wrapper script for $objdir/$outputname 2950 # split this up so that func_emit_cwrapperexe_src
3844 # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION 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
2956
2957 # func_to_host_path arg
3845 # 2958 #
3846 # The $output program cannot be directly executed until all the libtool 2959 # Convert paths to host format when used with build tools.
3847 # libraries that it depends on are installed. 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.
3848 # 2974 #
3849 # This wrapper script should never be moved out of the build directory. 2975 # ARG is the path (on $build) that should be converted to
3850 # If it is, it will not operate correctly. 2976 # the proper representation for $host. The result is stored
3851 2977 # in $func_to_host_path_result.
3852 # Sed substitution that helps us do robust quoting. It backslashifies 2978 func_to_host_path ()
3853 # metacharacters that are still active within double-quoted strings.
3854 sed_quote_subst='$sed_quote_subst'
3855
3856 # Be Bourne compatible
3857 if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then
3858 emulate sh
3859 NULLCMD=:
3860 # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which
3861 # is contrary to our usage. Disable this feature.
3862 alias -g '\${1+\"\$@\"}'='\"\$@\"'
3863 setopt NO_GLOB_SUBST
3864 else
3865 case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac
3866 fi
3867 BIN_SH=xpg4; export BIN_SH # for Tru64
3868 DUALCASE=1; export DUALCASE # for MKS sh
3869
3870 # The HP-UX ksh and POSIX shell print the target directory to stdout
3871 # if CDPATH is set.
3872 (unset CDPATH) >/dev/null 2>&1 && unset CDPATH
3873
3874 relink_command=\"$relink_command\"
3875
3876 # This environment variable determines our operation mode.
3877 if test \"\$libtool_install_magic\" = \"$magic\"; then
3878 # install mode needs the following variables:
3879 generated_by_libtool_version='$macro_version'
3880 notinst_deplibs='$notinst_deplibs'
3881 else
3882 # When we are sourced in execute mode, \$file and \$ECHO are already set.
3883 if test \"\$libtool_execute_magic\" != \"$magic\"; then
3884 file=\"\$0\""
3885
3886 qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"`
3887 $ECHO "\
3888
3889 # A function that is used when there is no print builtin or printf.
3890 func_fallback_echo ()
3891 { 2979 {
3892 eval 'cat <<_LTECHO_EOF 2980 func_to_host_path_result="$1"
3893 \$1 2981 if test -n "$1" ; then
3894 _LTECHO_EOF' 2982 case $host in
3895 } 2983 *mingw* )
3896 ECHO=\"$qECHO\" 2984 lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
3897 fi 2985 case $build in
3898 2986 *mingw* ) # actually, msys
3899 # Very basic option parsing. These options are (a) specific to 2987 # awkward: cmd appends spaces to result
3900 # the libtool wrapper, (b) are identical between the wrapper 2988 lt_sed_strip_trailing_spaces="s/[ ]*\$//"
3901 # /script/ and the wrapper /executable/ which is used only on 2989 func_to_host_path_tmp1=`( cmd //c echo "$1" |\
3902 # windows platforms, and (c) all begin with the string "--lt-" 2990 $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""`
3903 # (application programs are unlikely to have options which match 2991 func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\
3904 # this pattern). 2992 $SED -e "$lt_sed_naive_backslashify"`
3905 # 2993 ;;
3906 # There are only two supported options: --lt-debug and 2994 *cygwin* )
3907 # --lt-dump-script. There is, deliberately, no --lt-help. 2995 func_to_host_path_tmp1=`cygpath -w "$1"`
3908 # 2996 func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\
3909 # The first argument to this parsing function should be the 2997 $SED -e "$lt_sed_naive_backslashify"`
3910 # script's $0 value, followed by "$@". 2998 ;;
3911 lt_option_debug= 2999 * )
3912 func_parse_lt_options () 3000 # Unfortunately, winepath does not exit with a non-zero
3913 { 3001 # error code, so we are forced to check the contents of
3914 lt_script_arg0=\$0 3002 # stdout. On the other hand, if the command is not
3915 shift 3003 # found, the shell will set an exit code of 127 and print
3916 for lt_opt 3004 # *an error message* to stdout. So we must check for both
3917 do 3005 # error code of zero AND non-empty stdout, which explains
3918 case \"\$lt_opt\" in 3006 # the odd construction:
3919 --lt-debug) lt_option_debug=1 ;; 3007 func_to_host_path_tmp1=`winepath -w "$1" 2>/dev/null`
3920 --lt-dump-script) 3008 if test "$?" -eq 0 && test -n "${func_to_host_path_tmp1}"; then
3921 lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\` 3009 func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\
3922 test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=. 3010 $SED -e "$lt_sed_naive_backslashify"`
3923 lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\` 3011 else
3924 cat \"\$lt_dump_D/\$lt_dump_F\" 3012 # Allow warning below.
3925 exit 0 3013 func_to_host_path_result=""
3926 ;; 3014 fi
3927 --lt-*) 3015 ;;
3928 \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2 3016 esac
3929 exit 1 3017 if test -z "$func_to_host_path_result" ; then
3930 ;; 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 ;;
3931 esac 3025 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 3026 fi
3938 } 3027 }
3939 3028 # end: func_to_host_path
3940 # Used when --lt-debug. Prints its arguments to stdout 3029
3941 # (redirection is the responsibility of the caller) 3030 # func_to_host_pathlist arg
3942 func_lt_dump_args () 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.
3049 func_to_host_pathlist ()
3943 { 3050 {
3944 lt_dump_args_N=1; 3051 func_to_host_pathlist_result="$1"
3945 for lt_arg 3052 if test -n "$1" ; then
3946 do 3053 case $host in
3947 \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[\$lt_dump_args_N]: \$lt_arg\" 3054 *mingw* )
3948 lt_dump_args_N=\`expr \$lt_dump_args_N + 1\` 3055 lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
3949 done 3056 # Remove leading and trailing path separator characters from
3950 } 3057 # ARG. msys behavior is inconsistent here, cygpath turns them
3951 3058 # into '.;' and ';.', and winepath ignores them completely.
3952 # Core function for launching the target application 3059 func_to_host_pathlist_tmp2="$1"
3953 func_exec_program_core () 3060 # Once set for this call, this variable should not be
3954 { 3061 # reassigned. It is used in tha fallback case.
3955 " 3062 func_to_host_pathlist_tmp1=`echo "$func_to_host_pathlist_tmp2" |\
3956 case $host in 3063 $SED -e 's|^:*||' -e 's|:*$||'`
3957 # Backslashes separate directories on plain windows 3064 case $build in
3958 *-*-mingw | *-*-os2* | *-cegcc*) 3065 *mingw* ) # Actually, msys.
3959 $ECHO "\ 3066 # Awkward: cmd appends spaces to result.
3960 if test -n \"\$lt_option_debug\"; then 3067 lt_sed_strip_trailing_spaces="s/[ ]*\$//"
3961 \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir\\\\\$program\" 1>&2 3068 func_to_host_pathlist_tmp2=`( cmd //c echo "$func_to_host_pathlist_tmp1" |\
3962 func_lt_dump_args \${1+\"\$@\"} 1>&2 3069 $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""`
3963 fi 3070 func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\
3964 exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} 3071 $SED -e "$lt_sed_naive_backslashify"`
3965 " 3072 ;;
3966 ;; 3073 *cygwin* )
3967 3074 func_to_host_pathlist_tmp2=`cygpath -w -p "$func_to_host_pathlist_tmp1"`
3968 *) 3075 func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\
3969 $ECHO "\ 3076 $SED -e "$lt_sed_naive_backslashify"`
3970 if test -n \"\$lt_option_debug\"; then 3077 ;;
3971 \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir/\$program\" 1>&2 3078 * )
3972 func_lt_dump_args \${1+\"\$@\"} 1>&2 3079 # unfortunately, winepath doesn't convert pathlists
3973 fi 3080 func_to_host_pathlist_result=""
3974 exec \"\$progdir/\$program\" \${1+\"\$@\"} 3081 func_to_host_pathlist_oldIFS=$IFS
3975 " 3082 IFS=:
3976 ;; 3083 for func_to_host_pathlist_f in $func_to_host_pathlist_tmp1 ; do
3977 esac 3084 IFS=$func_to_host_pathlist_oldIFS
3978 $ECHO "\ 3085 if test -n "$func_to_host_pathlist_f" ; then
3979 \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 3086 func_to_host_path "$func_to_host_pathlist_f"
3980 exit 1 3087 if test -n "$func_to_host_path_result" ; then
3981 } 3088 if test -z "$func_to_host_pathlist_result" ; then
3982 3089 func_to_host_pathlist_result="$func_to_host_path_result"
3983 # A function to encapsulate launching the target application 3090 else
3984 # Strips options in the --lt-* namespace from \$@ and 3091 func_to_host_pathlist_result="$func_to_host_pathlist_result;$func_to_host_path_result"
3985 # launches target application with the remaining arguments. 3092 fi
3986 func_exec_program () 3093 fi
3987 { 3094 fi
3988 case \" \$* \" in 3095 IFS=:
3989 *\\ --lt-*) 3096 done
3990 for lt_wr_arg 3097 IFS=$func_to_host_pathlist_oldIFS
3991 do 3098 ;;
3992 case \$lt_wr_arg in 3099 esac
3993 --lt-*) ;; 3100 if test -z "$func_to_host_pathlist_result" ; then
3994 *) set x \"\$@\" \"\$lt_wr_arg\"; shift;; 3101 func_error "Could not determine the host path(s) corresponding to"
3995 esac 3102 func_error " '$1'"
3996 shift 3103 func_error "Continuing, but uninstalled executables may not work."
3997 done ;; 3104 # Fallback. This may break if $1 contains DOS-style drive
3998 esac 3105 # specifications. The fix is not to complicate the expression
3999 func_exec_program_core \${1+\"\$@\"} 3106 # below, but for the user to provide a working wine installation
4000 } 3107 # with winepath so that path translation in the cross-to-mingw
4001 3108 # case works properly.
4002 # Parse options 3109 lt_replace_pathsep_nix_to_dos="s|:|;|g"
4003 func_parse_lt_options \"\$0\" \${1+\"\$@\"} 3110 func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp1" |\
4004 3111 $SED -e "$lt_replace_pathsep_nix_to_dos"`
4005 # Find the directory that this script lives in. 3112 fi
4006 thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\` 3113 # Now, add the leading and trailing path separators back
4007 test \"x\$thisdir\" = \"x\$file\" && thisdir=. 3114 case "$1" in
4008 3115 :* ) func_to_host_pathlist_result=";$func_to_host_pathlist_result"
4009 # Follow symbolic links until we get to the real thisdir. 3116 ;;
4010 file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\` 3117 esac
4011 while test -n \"\$file\"; do 3118 case "$1" in
4012 destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\` 3119 *: ) func_to_host_pathlist_result="$func_to_host_pathlist_result;"
4013 3120 ;;
4014 # If there was a directory component, then change thisdir. 3121 esac
4015 if test \"x\$destdir\" != \"x\$file\"; then 3122 ;;
4016 case \"\$destdir\" in
4017 [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
4018 *) thisdir=\"\$thisdir/\$destdir\" ;;
4019 esac
4020 fi
4021
4022 file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\`
4023 file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\`
4024 done
4025
4026 # Usually 'no', except on cygwin/mingw when embedded into
4027 # the cwrapper.
4028 WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1
4029 if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then
4030 # special case for '.'
4031 if test \"\$thisdir\" = \".\"; then
4032 thisdir=\`pwd\`
4033 fi
4034 # remove .libs from thisdir
4035 case \"\$thisdir\" in
4036 *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;;
4037 $objdir ) thisdir=. ;;
4038 esac 3123 esac
4039 fi 3124 fi
4040
4041 # Try to get the absolute directory name.
4042 absdir=\`cd \"\$thisdir\" && pwd\`
4043 test -n \"\$absdir\" && thisdir=\"\$absdir\"
4044 "
4045
4046 if test "$fast_install" = yes; then
4047 $ECHO "\
4048 program=lt-'$outputname'$exeext
4049 progdir=\"\$thisdir/$objdir\"
4050
4051 if test ! -f \"\$progdir/\$program\" ||
4052 { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\
4053 test \"X\$file\" != \"X\$progdir/\$program\"; }; then
4054
4055 file=\"\$\$-\$program\"
4056
4057 if test ! -d \"\$progdir\"; then
4058 $MKDIR \"\$progdir\"
4059 else
4060 $RM \"\$progdir/\$file\"
4061 fi"
4062
4063 $ECHO "\
4064
4065 # relink executable if necessary
4066 if test -n \"\$relink_command\"; then
4067 if relink_command_output=\`eval \$relink_command 2>&1\`; then :
4068 else
4069 $ECHO \"\$relink_command_output\" >&2
4070 $RM \"\$progdir/\$file\"
4071 exit 1
4072 fi
4073 fi
4074
4075 $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
4076 { $RM \"\$progdir/\$program\";
4077 $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; }
4078 $RM \"\$progdir/\$file\"
4079 fi"
4080 else
4081 $ECHO "\
4082 program='$outputname'
4083 progdir=\"\$thisdir/$objdir\"
4084 "
4085 fi
4086
4087 $ECHO "\
4088
4089 if test -f \"\$progdir/\$program\"; then"
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
4103 # Export our shlibpath_var if we have one.
4104 if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
4105 $ECHO "\
4106 # Add our own library path to $shlibpath_var
4107 $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
4108
4109 # Some systems cannot cope with colon-terminated $shlibpath_var
4110 # The second colon is a workaround for a bug in BeOS R4 sed
4111 $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\`
4112
4113 export $shlibpath_var
4114 "
4115 fi
4116
4117 $ECHO "\
4118 if test \"\$libtool_execute_magic\" != \"$magic\"; then
4119 # Run the actual program with our arguments.
4120 func_exec_program \${1+\"\$@\"}
4121 fi
4122 else
4123 # The program doesn't exist.
4124 \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2
4125 \$ECHO \"This script is just a wrapper for \$program.\" 1>&2
4126 \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2
4127 exit 1
4128 fi
4129 fi\
4130 "
4131 } 3125 }
4132 3126 # end: func_to_host_pathlist
4133 3127
4134 # func_emit_cwrapperexe_src 3128 # func_emit_cwrapperexe_src
4135 # emit the source code for a wrapper executable on stdout 3129 # emit the source code for a wrapper executable on stdout
4136 # Must ONLY be called from within func_mode_link because 3130 # Must ONLY be called from within func_mode_link because
4137 # it depends on a number of variable set therein. 3131 # it depends on a number of variable set therein.
4145 The $output program cannot be directly executed until all the libtool 3139 The $output program cannot be directly executed until all the libtool
4146 libraries that it depends on are installed. 3140 libraries that it depends on are installed.
4147 3141
4148 This wrapper executable should never be moved out of the build directory. 3142 This wrapper executable should never be moved out of the build directory.
4149 If it is, it will not operate correctly. 3143 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.
4150 */ 3148 */
4151 EOF 3149 EOF
4152 cat <<"EOF" 3150 cat <<"EOF"
4153 #ifdef _MSC_VER
4154 # define _CRT_SECURE_NO_DEPRECATE 1
4155 #endif
4156 #include <stdio.h> 3151 #include <stdio.h>
4157 #include <stdlib.h> 3152 #include <stdlib.h>
4158 #ifdef _MSC_VER 3153 #ifdef _MSC_VER
4159 # include <direct.h> 3154 # include <direct.h>
4160 # include <process.h> 3155 # include <process.h>
4161 # include <io.h> 3156 # include <io.h>
3157 # define setmode _setmode
4162 #else 3158 #else
4163 # include <unistd.h> 3159 # include <unistd.h>
4164 # include <stdint.h> 3160 # include <stdint.h>
4165 # ifdef __CYGWIN__ 3161 # ifdef __CYGWIN__
4166 # include <io.h> 3162 # include <io.h>
3163 # define HAVE_SETENV
3164 # ifdef __STRICT_ANSI__
3165 char *realpath (const char *, char *);
3166 int putenv (char *);
3167 int setenv (const char *, const char *, int);
3168 # endif
4167 # endif 3169 # endif
4168 #endif 3170 #endif
4169 #include <malloc.h> 3171 #include <malloc.h>
4170 #include <stdarg.h> 3172 #include <stdarg.h>
4171 #include <assert.h> 3173 #include <assert.h>
4173 #include <ctype.h> 3175 #include <ctype.h>
4174 #include <errno.h> 3176 #include <errno.h>
4175 #include <fcntl.h> 3177 #include <fcntl.h>
4176 #include <sys/stat.h> 3178 #include <sys/stat.h>
4177 3179
4178 /* declarations of non-ANSI functions */
4179 #if defined(__MINGW32__)
4180 # ifdef __STRICT_ANSI__
4181 int _putenv (const char *);
4182 # endif
4183 #elif defined(__CYGWIN__)
4184 # ifdef __STRICT_ANSI__
4185 char *realpath (const char *, char *);
4186 int putenv (char *);
4187 int 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
4216 #if defined(PATH_MAX) 3180 #if defined(PATH_MAX)
4217 # define LT_PATHMAX PATH_MAX 3181 # define LT_PATHMAX PATH_MAX
4218 #elif defined(MAXPATHLEN) 3182 #elif defined(MAXPATHLEN)
4219 # define LT_PATHMAX MAXPATHLEN 3183 # define LT_PATHMAX MAXPATHLEN
4220 #else 3184 #else
4226 #endif 3190 #endif
4227 #ifndef S_IXGRP 3191 #ifndef S_IXGRP
4228 # define S_IXGRP 0 3192 # define S_IXGRP 0
4229 #endif 3193 #endif
4230 3194
4231 /* path handling portability macros */ 3195 #ifdef _MSC_VER
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
4232 #ifndef DIR_SEPARATOR 3203 #ifndef DIR_SEPARATOR
4233 # define DIR_SEPARATOR '/' 3204 # define DIR_SEPARATOR '/'
4234 # define PATH_SEPARATOR ':' 3205 # define PATH_SEPARATOR ':'
4235 #endif 3206 #endif
4236 3207
4257 # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) 3228 # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR)
4258 #else /* PATH_SEPARATOR_2 */ 3229 #else /* PATH_SEPARATOR_2 */
4259 # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) 3230 # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2)
4260 #endif /* PATH_SEPARATOR_2 */ 3231 #endif /* PATH_SEPARATOR_2 */
4261 3232
3233 #ifdef __CYGWIN__
3234 # define FOPEN_WB "wb"
3235 #endif
3236
4262 #ifndef FOPEN_WB 3237 #ifndef FOPEN_WB
4263 # define FOPEN_WB "w" 3238 # define FOPEN_WB "w"
4264 #endif 3239 #endif
4265 #ifndef _O_BINARY 3240 #ifndef _O_BINARY
4266 # define _O_BINARY 0 3241 # define _O_BINARY 0
4269 #define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) 3244 #define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type)))
4270 #define XFREE(stale) do { \ 3245 #define XFREE(stale) do { \
4271 if (stale) { free ((void *) stale); stale = 0; } \ 3246 if (stale) { free ((void *) stale); stale = 0; } \
4272 } while (0) 3247 } while (0)
4273 3248
4274 #if defined(LT_DEBUGWRAPPER) 3249 #undef LTWRAPPER_DEBUGPRINTF
4275 static int lt_debug = 1; 3250 #if defined DEBUGWRAPPER
3251 # define LTWRAPPER_DEBUGPRINTF(args) ltwrapper_debugprintf args
3252 static void
3253 ltwrapper_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 }
4276 #else 3260 #else
4277 static int lt_debug = 0; 3261 # define LTWRAPPER_DEBUGPRINTF(args)
4278 #endif 3262 #endif
4279 3263
4280 const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */ 3264 const char *program_name = NULL;
4281 3265
4282 void *xmalloc (size_t num); 3266 void *xmalloc (size_t num);
4283 char *xstrdup (const char *string); 3267 char *xstrdup (const char *string);
4284 const char *base_name (const char *name); 3268 const char *base_name (const char *name);
4285 char *find_executable (const char *wrapper); 3269 char *find_executable (const char *wrapper);
4286 char *chase_symlinks (const char *pathspec); 3270 char *chase_symlinks (const char *pathspec);
4287 int make_executable (const char *path); 3271 int make_executable (const char *path);
4288 int check_executable (const char *path); 3272 int check_executable (const char *path);
4289 char *strendzap (char *str, const char *pat); 3273 char *strendzap (char *str, const char *pat);
4290 void lt_debugprintf (const char *file, int line, const char *fmt, ...); 3274 void lt_fatal (const char *message, ...);
4291 void lt_fatal (const char *file, int line, const char *message, ...);
4292 static const char *nonnull (const char *s);
4293 static const char *nonempty (const char *s);
4294 void lt_setenv (const char *name, const char *value); 3275 void lt_setenv (const char *name, const char *value);
4295 char *lt_extend_str (const char *orig_value, const char *add, int to_end); 3276 char *lt_extend_str (const char *orig_value, const char *add, int to_end);
3277 void lt_opt_process_env_set (const char *arg);
3278 void lt_opt_process_env_prepend (const char *arg);
3279 void lt_opt_process_env_append (const char *arg);
3280 int lt_split_name_value (const char *arg, char** name, char** value);
4296 void lt_update_exe_path (const char *name, const char *value); 3281 void lt_update_exe_path (const char *name, const char *value);
4297 void lt_update_lib_path (const char *name, const char *value); 3282 void lt_update_lib_path (const char *name, const char *value);
4298 char **prepare_spawn (char **argv); 3283
4299 void lt_dump_script (FILE *f); 3284 static const char *script_text_part1 =
4300 EOF 3285 EOF
4301 3286
3287 func_emit_wrapper_part1 yes |
3288 $SED -e 's/\([\\"]\)/\\\1/g' \
3289 -e 's/^/ "/' -e 's/$/\\n"/'
3290 echo ";"
4302 cat <<EOF 3291 cat <<EOF
4303 volatile const char * MAGIC_EXE = "$magic_exe"; 3292
3293 static const char *script_text_part2 =
3294 EOF
3295 func_emit_wrapper_part2 yes |
3296 $SED -e 's/\([\\"]\)/\\\1/g' \
3297 -e 's/^/ "/' -e 's/$/\\n"/'
3298 echo ";"
3299
3300 cat <<EOF
3301 const char * MAGIC_EXE = "$magic_exe";
4304 const char * LIB_PATH_VARNAME = "$shlibpath_var"; 3302 const char * LIB_PATH_VARNAME = "$shlibpath_var";
4305 EOF 3303 EOF
4306 3304
4307 if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then 3305 if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
4308 func_to_host_path "$temp_rpath" 3306 func_to_host_pathlist "$temp_rpath"
4309 cat <<EOF 3307 cat <<EOF
4310 const char * LIB_PATH_VALUE = "$func_to_host_path_result"; 3308 const char * LIB_PATH_VALUE = "$func_to_host_pathlist_result";
4311 EOF 3309 EOF
4312 else 3310 else
4313 cat <<"EOF" 3311 cat <<"EOF"
4314 const char * LIB_PATH_VALUE = ""; 3312 const char * LIB_PATH_VALUE = "";
4315 EOF 3313 EOF
4316 fi 3314 fi
4317 3315
4318 if test -n "$dllsearchpath"; then 3316 if test -n "$dllsearchpath"; then
4319 func_to_host_path "$dllsearchpath:" 3317 func_to_host_pathlist "$dllsearchpath:"
4320 cat <<EOF 3318 cat <<EOF
4321 const char * EXE_PATH_VARNAME = "PATH"; 3319 const char * EXE_PATH_VARNAME = "PATH";
4322 const char * EXE_PATH_VALUE = "$func_to_host_path_result"; 3320 const char * EXE_PATH_VALUE = "$func_to_host_pathlist_result";
4323 EOF 3321 EOF
4324 else 3322 else
4325 cat <<"EOF" 3323 cat <<"EOF"
4326 const char * EXE_PATH_VARNAME = ""; 3324 const char * EXE_PATH_VARNAME = "";
4327 const char * EXE_PATH_VALUE = ""; 3325 const char * EXE_PATH_VALUE = "";
4340 3338
4341 3339
4342 cat <<"EOF" 3340 cat <<"EOF"
4343 3341
4344 #define LTWRAPPER_OPTION_PREFIX "--lt-" 3342 #define LTWRAPPER_OPTION_PREFIX "--lt-"
4345 3343 #define LTWRAPPER_OPTION_PREFIX_LENGTH 5
3344
3345 static const size_t opt_prefix_len = LTWRAPPER_OPTION_PREFIX_LENGTH;
4346 static const char *ltwrapper_option_prefix = LTWRAPPER_OPTION_PREFIX; 3346 static const char *ltwrapper_option_prefix = LTWRAPPER_OPTION_PREFIX;
3347
4347 static const char *dumpscript_opt = LTWRAPPER_OPTION_PREFIX "dump-script"; 3348 static const char *dumpscript_opt = LTWRAPPER_OPTION_PREFIX "dump-script";
4348 static const char *debug_opt = LTWRAPPER_OPTION_PREFIX "debug"; 3349
3350 static const size_t env_set_opt_len = LTWRAPPER_OPTION_PREFIX_LENGTH + 7;
3351 static 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
3354 static const size_t env_prepend_opt_len = LTWRAPPER_OPTION_PREFIX_LENGTH + 11;
3355 static 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
3358 static const size_t env_append_opt_len = LTWRAPPER_OPTION_PREFIX_LENGTH + 10;
3359 static const char *env_append_opt = LTWRAPPER_OPTION_PREFIX "env-append";
3360 /* argument is putenv-style "foo=bar", new value of foo is ${foo}bar */
4349 3361
4350 int 3362 int
4351 main (int argc, char *argv[]) 3363 main (int argc, char *argv[])
4352 { 3364 {
4353 char **newargz; 3365 char **newargz;
4360 intptr_t rval = 127; 3372 intptr_t rval = 127;
4361 3373
4362 int i; 3374 int i;
4363 3375
4364 program_name = (char *) xstrdup (base_name (argv[0])); 3376 program_name = (char *) xstrdup (base_name (argv[0]));
4365 newargz = XMALLOC (char *, argc + 1); 3377 LTWRAPPER_DEBUGPRINTF (("(main) argv[0] : %s\n", argv[0]));
4366 3378 LTWRAPPER_DEBUGPRINTF (("(main) program_name : %s\n", program_name));
4367 /* very simple arg parsing; don't want to rely on getopt 3379
4368 * also, copy all non cwrapper options to newargz, except 3380 /* very simple arg parsing; don't want to rely on getopt */
4369 * argz[0], which is handled differently
4370 */
4371 newargc=0;
4372 for (i = 1; i < argc; i++) 3381 for (i = 1; i < argc; i++)
4373 { 3382 {
4374 if (strcmp (argv[i], dumpscript_opt) == 0) 3383 if (strcmp (argv[i], dumpscript_opt) == 0)
4375 { 3384 {
4376 EOF 3385 EOF
4380 echo " setmode(1,_O_BINARY);" 3389 echo " setmode(1,_O_BINARY);"
4381 ;; 3390 ;;
4382 esac 3391 esac
4383 3392
4384 cat <<"EOF" 3393 cat <<"EOF"
4385 lt_dump_script (stdout); 3394 printf ("%s", script_text_part1);
3395 printf ("%s", script_text_part2);
4386 return 0; 3396 return 0;
4387 } 3397 }
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]);
4410 } 3398 }
4411 newargz[++newargc] = NULL; 3399
4412 3400 newargz = XMALLOC (char *, argc + 1);
4413 EOF
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");
4417 EOF
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);
4421
4422 tmp_pathspec = find_executable (argv[0]); 3401 tmp_pathspec = find_executable (argv[0]);
4423 if (tmp_pathspec == NULL) 3402 if (tmp_pathspec == NULL)
4424 lt_fatal (__FILE__, __LINE__, "couldn't find %s", argv[0]); 3403 lt_fatal ("Couldn't find %s", argv[0]);
4425 lt_debugprintf (__FILE__, __LINE__, 3404 LTWRAPPER_DEBUGPRINTF (("(main) found exe (before symlink chase) at : %s\n",
4426 "(main) found exe (before symlink chase) at: %s\n", 3405 tmp_pathspec));
4427 tmp_pathspec);
4428 3406
4429 actual_cwrapper_path = chase_symlinks (tmp_pathspec); 3407 actual_cwrapper_path = chase_symlinks (tmp_pathspec);
4430 lt_debugprintf (__FILE__, __LINE__, 3408 LTWRAPPER_DEBUGPRINTF (("(main) found exe (after symlink chase) at : %s\n",
4431 "(main) found exe (after symlink chase) at: %s\n", 3409 actual_cwrapper_path));
4432 actual_cwrapper_path);
4433 XFREE (tmp_pathspec); 3410 XFREE (tmp_pathspec);
4434 3411
4435 actual_cwrapper_name = xstrdup (base_name (actual_cwrapper_path)); 3412 actual_cwrapper_name = xstrdup( base_name (actual_cwrapper_path));
4436 strendzap (actual_cwrapper_path, actual_cwrapper_name); 3413 strendzap (actual_cwrapper_path, actual_cwrapper_name);
4437 3414
4438 /* wrapper name transforms */ 3415 /* wrapper name transforms */
4439 strendzap (actual_cwrapper_name, ".exe"); 3416 strendzap (actual_cwrapper_name, ".exe");
4440 tmp_pathspec = lt_extend_str (actual_cwrapper_name, ".exe", 1); 3417 tmp_pathspec = lt_extend_str (actual_cwrapper_name, ".exe", 1);
4448 tmp_pathspec = lt_extend_str (target_name, ".exe", 1); 3425 tmp_pathspec = lt_extend_str (target_name, ".exe", 1);
4449 XFREE (target_name); 3426 XFREE (target_name);
4450 target_name = tmp_pathspec; 3427 target_name = tmp_pathspec;
4451 tmp_pathspec = 0; 3428 tmp_pathspec = 0;
4452 3429
4453 lt_debugprintf (__FILE__, __LINE__, 3430 LTWRAPPER_DEBUGPRINTF (("(main) libtool target name: %s\n",
4454 "(main) libtool target name: %s\n", 3431 target_name));
4455 target_name);
4456 EOF 3432 EOF
4457 3433
4458 cat <<EOF 3434 cat <<EOF
4459 newargz[0] = 3435 newargz[0] =
4460 XMALLOC (char, (strlen (actual_cwrapper_path) + 3436 XMALLOC (char, (strlen (actual_cwrapper_path) +
4500 XFREE (actual_cwrapper_path); 3476 XFREE (actual_cwrapper_path);
4501 XFREE (actual_cwrapper_name); 3477 XFREE (actual_cwrapper_name);
4502 3478
4503 lt_setenv ("BIN_SH", "xpg4"); /* for Tru64 */ 3479 lt_setenv ("BIN_SH", "xpg4"); /* for Tru64 */
4504 lt_setenv ("DUALCASE", "1"); /* for MSK sh */ 3480 lt_setenv ("DUALCASE", "1"); /* for MSK sh */
4505 /* Update the DLL searchpath. EXE_PATH_VALUE ($dllsearchpath) must 3481 lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE);
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. */
4509 lt_update_exe_path (EXE_PATH_VARNAME, EXE_PATH_VALUE); 3482 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>")));
4514 for (i = 0; i < newargc; i++) 3552 for (i = 0; i < newargc; i++)
4515 { 3553 {
4516 lt_debugprintf (__FILE__, __LINE__, "(main) newargz[%d]: %s\n", 3554 LTWRAPPER_DEBUGPRINTF (("(main) newargz[%d] : %s\n", i, (newargz[i] ? newargz[i] : "<NULL>")));
4517 i, nonnull (newargz[i]));
4518 } 3555 }
4519 3556
4520 EOF 3557 EOF
4521 3558
4522 case $host_os in 3559 case $host_os in
4523 mingw*) 3560 mingw*)
4524 cat <<"EOF" 3561 cat <<"EOF"
4525 /* execv doesn't actually work on mingw as expected on unix */ 3562 /* execv doesn't actually work on mingw as expected on unix */
4526 newargz = prepare_spawn (newargz);
4527 rval = _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz); 3563 rval = _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz);
4528 if (rval == -1) 3564 if (rval == -1)
4529 { 3565 {
4530 /* failed to start process */ 3566 /* failed to start process */
4531 lt_debugprintf (__FILE__, __LINE__, 3567 LTWRAPPER_DEBUGPRINTF (("(main) failed to launch target \"%s\": errno = %d\n", lt_argv_zero, errno));
4532 "(main) failed to launch target \"%s\": %s\n",
4533 lt_argv_zero, nonnull (strerror (errno)));
4534 return 127; 3568 return 127;
4535 } 3569 }
4536 return rval; 3570 return rval;
4537 EOF 3571 EOF
4538 ;; 3572 ;;
4550 void * 3584 void *
4551 xmalloc (size_t num) 3585 xmalloc (size_t num)
4552 { 3586 {
4553 void *p = (void *) malloc (num); 3587 void *p = (void *) malloc (num);
4554 if (!p) 3588 if (!p)
4555 lt_fatal (__FILE__, __LINE__, "memory exhausted"); 3589 lt_fatal ("Memory exhausted");
4556 3590
4557 return p; 3591 return p;
4558 } 3592 }
4559 3593
4560 char * 3594 char *
4584 int 3618 int
4585 check_executable (const char *path) 3619 check_executable (const char *path)
4586 { 3620 {
4587 struct stat st; 3621 struct stat st;
4588 3622
4589 lt_debugprintf (__FILE__, __LINE__, "(check_executable): %s\n", 3623 LTWRAPPER_DEBUGPRINTF (("(check_executable) : %s\n",
4590 nonempty (path)); 3624 path ? (*path ? path : "EMPTY!") : "NULL!"));
4591 if ((!path) || (!*path)) 3625 if ((!path) || (!*path))
4592 return 0; 3626 return 0;
4593 3627
4594 if ((stat (path, &st) >= 0) 3628 if ((stat (path, &st) >= 0)
4595 && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH))) 3629 && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH)))
4602 make_executable (const char *path) 3636 make_executable (const char *path)
4603 { 3637 {
4604 int rval = 0; 3638 int rval = 0;
4605 struct stat st; 3639 struct stat st;
4606 3640
4607 lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n", 3641 LTWRAPPER_DEBUGPRINTF (("(make_executable) : %s\n",
4608 nonempty (path)); 3642 path ? (*path ? path : "EMPTY!") : "NULL!"));
4609 if ((!path) || (!*path)) 3643 if ((!path) || (!*path))
4610 return 0; 3644 return 0;
4611 3645
4612 if (stat (path, &st) >= 0) 3646 if (stat (path, &st) >= 0)
4613 { 3647 {
4629 /* static buffer for getcwd */ 3663 /* static buffer for getcwd */
4630 char tmp[LT_PATHMAX + 1]; 3664 char tmp[LT_PATHMAX + 1];
4631 int tmp_len; 3665 int tmp_len;
4632 char *concat_name; 3666 char *concat_name;
4633 3667
4634 lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n", 3668 LTWRAPPER_DEBUGPRINTF (("(find_executable) : %s\n",
4635 nonempty (wrapper)); 3669 wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!"));
4636 3670
4637 if ((wrapper == NULL) || (*wrapper == '\0')) 3671 if ((wrapper == NULL) || (*wrapper == '\0'))
4638 return NULL; 3672 return NULL;
4639 3673
4640 /* Absolute path? */ 3674 /* Absolute path? */
4683 p_next = (*q == '\0' ? q : q + 1); 3717 p_next = (*q == '\0' ? q : q + 1);
4684 if (p_len == 0) 3718 if (p_len == 0)
4685 { 3719 {
4686 /* empty path: current directory */ 3720 /* empty path: current directory */
4687 if (getcwd (tmp, LT_PATHMAX) == NULL) 3721 if (getcwd (tmp, LT_PATHMAX) == NULL)
4688 lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", 3722 lt_fatal ("getcwd failed");
4689 nonnull (strerror (errno)));
4690 tmp_len = strlen (tmp); 3723 tmp_len = strlen (tmp);
4691 concat_name = 3724 concat_name =
4692 XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); 3725 XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
4693 memcpy (concat_name, tmp, tmp_len); 3726 memcpy (concat_name, tmp, tmp_len);
4694 concat_name[tmp_len] = '/'; 3727 concat_name[tmp_len] = '/';
4709 } 3742 }
4710 /* not found in PATH; assume curdir */ 3743 /* not found in PATH; assume curdir */
4711 } 3744 }
4712 /* Relative path | not found in path: prepend cwd */ 3745 /* Relative path | not found in path: prepend cwd */
4713 if (getcwd (tmp, LT_PATHMAX) == NULL) 3746 if (getcwd (tmp, LT_PATHMAX) == NULL)
4714 lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", 3747 lt_fatal ("getcwd failed");
4715 nonnull (strerror (errno)));
4716 tmp_len = strlen (tmp); 3748 tmp_len = strlen (tmp);
4717 concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); 3749 concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
4718 memcpy (concat_name, tmp, tmp_len); 3750 memcpy (concat_name, tmp, tmp_len);
4719 concat_name[tmp_len] = '/'; 3751 concat_name[tmp_len] = '/';
4720 strcpy (concat_name + tmp_len + 1, wrapper); 3752 strcpy (concat_name + tmp_len + 1, wrapper);
4736 char *tmp_pathspec = xstrdup (pathspec); 3768 char *tmp_pathspec = xstrdup (pathspec);
4737 char *p; 3769 char *p;
4738 int has_symlinks = 0; 3770 int has_symlinks = 0;
4739 while (strlen (tmp_pathspec) && !has_symlinks) 3771 while (strlen (tmp_pathspec) && !has_symlinks)
4740 { 3772 {
4741 lt_debugprintf (__FILE__, __LINE__, 3773 LTWRAPPER_DEBUGPRINTF (("checking path component for symlinks: %s\n",
4742 "checking path component for symlinks: %s\n", 3774 tmp_pathspec));
4743 tmp_pathspec);
4744 if (lstat (tmp_pathspec, &s) == 0) 3775 if (lstat (tmp_pathspec, &s) == 0)
4745 { 3776 {
4746 if (S_ISLNK (s.st_mode) != 0) 3777 if (S_ISLNK (s.st_mode) != 0)
4747 { 3778 {
4748 has_symlinks = 1; 3779 has_symlinks = 1;
4760 } 3791 }
4761 *p = '\0'; 3792 *p = '\0';
4762 } 3793 }
4763 else 3794 else
4764 { 3795 {
4765 lt_fatal (__FILE__, __LINE__, 3796 char *errstr = strerror (errno);
4766 "error accessing file \"%s\": %s", 3797 lt_fatal ("Error accessing file %s (%s)", tmp_pathspec, errstr);
4767 tmp_pathspec, nonnull (strerror (errno)));
4768 } 3798 }
4769 } 3799 }
4770 XFREE (tmp_pathspec); 3800 XFREE (tmp_pathspec);
4771 3801
4772 if (!has_symlinks) 3802 if (!has_symlinks)
4775 } 3805 }
4776 3806
4777 tmp_pathspec = realpath (pathspec, buf); 3807 tmp_pathspec = realpath (pathspec, buf);
4778 if (tmp_pathspec == 0) 3808 if (tmp_pathspec == 0)
4779 { 3809 {
4780 lt_fatal (__FILE__, __LINE__, 3810 lt_fatal ("Could not follow symlinks for %s", pathspec);
4781 "could not follow symlinks for %s", pathspec);
4782 } 3811 }
4783 return xstrdup (tmp_pathspec); 3812 return xstrdup (tmp_pathspec);
4784 #endif 3813 #endif
4785 } 3814 }
4786 3815
4802 *str = '\0'; 3831 *str = '\0';
4803 } 3832 }
4804 return str; 3833 return str;
4805 } 3834 }
4806 3835
4807 void
4808 lt_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
4820 static void 3836 static void
4821 lt_error_core (int exit_status, const char *file, 3837 lt_error_core (int exit_status, const char *mode,
4822 int line, const char *mode,
4823 const char *message, va_list ap) 3838 const char *message, va_list ap)
4824 { 3839 {
4825 fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode); 3840 fprintf (stderr, "%s: %s: ", program_name, mode);
4826 vfprintf (stderr, message, ap); 3841 vfprintf (stderr, message, ap);
4827 fprintf (stderr, ".\n"); 3842 fprintf (stderr, ".\n");
4828 3843
4829 if (exit_status >= 0) 3844 if (exit_status >= 0)
4830 exit (exit_status); 3845 exit (exit_status);
4831 } 3846 }
4832 3847
4833 void 3848 void
4834 lt_fatal (const char *file, int line, const char *message, ...) 3849 lt_fatal (const char *message, ...)
4835 { 3850 {
4836 va_list ap; 3851 va_list ap;
4837 va_start (ap, message); 3852 va_start (ap, message);
4838 lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap); 3853 lt_error_core (EXIT_FAILURE, "FATAL", message, ap);
4839 va_end (ap); 3854 va_end (ap);
4840 }
4841
4842 static const char *
4843 nonnull (const char *s)
4844 {
4845 return s ? s : "(null)";
4846 }
4847
4848 static const char *
4849 nonempty (const char *s)
4850 {
4851 return (s && !*s) ? "(empty)" : nonnull (s);
4852 } 3855 }
4853 3856
4854 void 3857 void
4855 lt_setenv (const char *name, const char *value) 3858 lt_setenv (const char *name, const char *value)
4856 { 3859 {
4857 lt_debugprintf (__FILE__, __LINE__, 3860 LTWRAPPER_DEBUGPRINTF (("(lt_setenv) setting '%s' to '%s'\n",
4858 "(lt_setenv) setting '%s' to '%s'\n", 3861 (name ? name : "<NULL>"),
4859 nonnull (name), nonnull (value)); 3862 (value ? value : "<NULL>")));
4860 { 3863 {
4861 #ifdef HAVE_SETENV 3864 #ifdef HAVE_SETENV
4862 /* always make a copy, for consistency with !HAVE_SETENV */ 3865 /* always make a copy, for consistency with !HAVE_SETENV */
4863 char *str = xstrdup (value); 3866 char *str = xstrdup (value);
4864 setenv (name, str, 1); 3867 setenv (name, str, 1);
4899 new_value = xstrdup (add); 3902 new_value = xstrdup (add);
4900 } 3903 }
4901 return new_value; 3904 return new_value;
4902 } 3905 }
4903 3906
3907 int
3908 lt_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
3930 void
3931 lt_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
3948 void
3949 lt_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
3969 void
3970 lt_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
4904 void 3990 void
4905 lt_update_exe_path (const char *name, const char *value) 3991 lt_update_exe_path (const char *name, const char *value)
4906 { 3992 {
4907 lt_debugprintf (__FILE__, __LINE__, 3993 LTWRAPPER_DEBUGPRINTF (("(lt_update_exe_path) modifying '%s' by prepending '%s'\n",
4908 "(lt_update_exe_path) modifying '%s' by prepending '%s'\n", 3994 (name ? name : "<NULL>"),
4909 nonnull (name), nonnull (value)); 3995 (value ? value : "<NULL>")));
4910 3996
4911 if (name && *name && value && *value) 3997 if (name && *name && value && *value)
4912 { 3998 {
4913 char *new_value = lt_extend_str (getenv (name), value, 0); 3999 char *new_value = lt_extend_str (getenv (name), value, 0);
4914 /* some systems can't cope with a ':'-terminated path #' */ 4000 /* some systems can't cope with a ':'-terminated path #' */
4923 } 4009 }
4924 4010
4925 void 4011 void
4926 lt_update_lib_path (const char *name, const char *value) 4012 lt_update_lib_path (const char *name, const char *value)
4927 { 4013 {
4928 lt_debugprintf (__FILE__, __LINE__, 4014 LTWRAPPER_DEBUGPRINTF (("(lt_update_lib_path) modifying '%s' by prepending '%s'\n",
4929 "(lt_update_lib_path) modifying '%s' by prepending '%s'\n", 4015 (name ? name : "<NULL>"),
4930 nonnull (name), nonnull (value)); 4016 (value ? value : "<NULL>")));
4931 4017
4932 if (name && *name && value && *value) 4018 if (name && *name && value && *value)
4933 { 4019 {
4934 char *new_value = lt_extend_str (getenv (name), value, 0); 4020 char *new_value = lt_extend_str (getenv (name), value, 0);
4935 lt_setenv (name, new_value); 4021 lt_setenv (name, new_value);
4936 XFREE (new_value); 4022 XFREE (new_value);
4937 } 4023 }
4938 } 4024 }
4939 4025
4940 EOF 4026
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"
4970 char **
4971 prepare_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];
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 }
5057 EOF
5058 ;;
5059 esac
5060
5061 cat <<"EOF"
5062 void lt_dump_script (FILE* f)
5063 {
5064 EOF
5065 func_emit_wrapper yes |
5066 $SED -n -e '
5067 s/^\(.\{79\}\)\(..*\)/\1\
5068 \2/
5069 h
5070 s/\([\\"]\)/\\\1/g
5071 s/$/\\n/
5072 s/\([^\n]*\).*/ fputs ("\1", f);/p
5073 g
5074 D'
5075 cat <<"EOF"
5076 }
5077 EOF 4027 EOF
5078 } 4028 }
5079 # end: func_emit_cwrapperexe_src 4029 # end: func_emit_cwrapperexe_src
5080
5081 # func_win32_import_lib_p ARG
5082 # True if ARG is an import lib, as indicated by $file_magic_cmd
5083 func_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 4030
5092 # func_mode_link arg... 4031 # func_mode_link arg...
5093 func_mode_link () 4032 func_mode_link ()
5094 { 4033 {
5095 $opt_debug 4034 $opt_debug
5131 lib_search_path=`pwd` 4070 lib_search_path=`pwd`
5132 inst_prefix_dir= 4071 inst_prefix_dir=
5133 new_inherited_linker_flags= 4072 new_inherited_linker_flags=
5134 4073
5135 avoid_version=no 4074 avoid_version=no
5136 bindir=
5137 dlfiles= 4075 dlfiles=
5138 dlprefiles= 4076 dlprefiles=
5139 dlself=no 4077 dlself=no
5140 export_dynamic=no 4078 export_dynamic=no
5141 export_symbols= 4079 export_symbols=
5224 func_append finalize_command " @OUTPUT@" 4162 func_append finalize_command " @OUTPUT@"
5225 ;; 4163 ;;
5226 esac 4164 esac
5227 4165
5228 case $prev in 4166 case $prev in
5229 bindir)
5230 bindir="$arg"
5231 prev=
5232 continue
5233 ;;
5234 dlfiles|dlprefiles) 4167 dlfiles|dlprefiles)
5235 if test "$preload" = no; then 4168 if test "$preload" = no; then
5236 # Add the symbol object into the linking commands. 4169 # Add the symbol object into the linking commands.
5237 func_append compile_command " @SYMFILE@" 4170 func_append compile_command " @SYMFILE@"
5238 func_append finalize_command " @SYMFILE@" 4171 func_append finalize_command " @SYMFILE@"
5260 prev= 4193 prev=
5261 continue 4194 continue
5262 ;; 4195 ;;
5263 *) 4196 *)
5264 if test "$prev" = dlfiles; then 4197 if test "$prev" = dlfiles; then
5265 func_append dlfiles " $arg" 4198 dlfiles="$dlfiles $arg"
5266 else 4199 else
5267 func_append dlprefiles " $arg" 4200 dlprefiles="$dlprefiles $arg"
5268 fi 4201 fi
5269 prev= 4202 prev=
5270 continue 4203 continue
5271 ;; 4204 ;;
5272 esac 4205 esac
5286 framework) 4219 framework)
5287 case $host in 4220 case $host in
5288 *-*-darwin*) 4221 *-*-darwin*)
5289 case "$deplibs " in 4222 case "$deplibs " in
5290 *" $qarg.ltframework "*) ;; 4223 *" $qarg.ltframework "*) ;;
5291 *) func_append deplibs " $qarg.ltframework" # this is fixed later 4224 *) deplibs="$deplibs $qarg.ltframework" # this is fixed later
5292 ;; 4225 ;;
5293 esac 4226 esac
5294 ;; 4227 ;;
5295 esac 4228 esac
5296 prev= 4229 prev=
5305 if test -f "$arg"; then 4238 if test -f "$arg"; then
5306 save_arg=$arg 4239 save_arg=$arg
5307 moreargs= 4240 moreargs=
5308 for fil in `cat "$save_arg"` 4241 for fil in `cat "$save_arg"`
5309 do 4242 do
5310 # func_append moreargs " $fil" 4243 # moreargs="$moreargs $fil"
5311 arg=$fil 4244 arg=$fil
5312 # A libtool-controlled object. 4245 # A libtool-controlled object.
5313 4246
5314 # Check to see that this really is a libtool object. 4247 # Check to see that this really is a libtool object.
5315 if func_lalib_unsafe_p "$arg"; then 4248 if func_lalib_unsafe_p "$arg"; then
5334 # Prepend the subdirectory the object is found in. 4267 # Prepend the subdirectory the object is found in.
5335 pic_object="$xdir$pic_object" 4268 pic_object="$xdir$pic_object"
5336 4269
5337 if test "$prev" = dlfiles; then 4270 if test "$prev" = dlfiles; then
5338 if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then 4271 if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
5339 func_append dlfiles " $pic_object" 4272 dlfiles="$dlfiles $pic_object"
5340 prev= 4273 prev=
5341 continue 4274 continue
5342 else 4275 else
5343 # If libtool objects are unsupported, then we need to preload. 4276 # If libtool objects are unsupported, then we need to preload.
5344 prev=dlprefiles 4277 prev=dlprefiles
5346 fi 4279 fi
5347 4280
5348 # CHECK ME: I think I busted this. -Ossama 4281 # CHECK ME: I think I busted this. -Ossama
5349 if test "$prev" = dlprefiles; then 4282 if test "$prev" = dlprefiles; then
5350 # Preload the old-style object. 4283 # Preload the old-style object.
5351 func_append dlprefiles " $pic_object" 4284 dlprefiles="$dlprefiles $pic_object"
5352 prev= 4285 prev=
5353 fi 4286 fi
5354 4287
5355 # A PIC object. 4288 # A PIC object.
5356 func_append libobjs " $pic_object" 4289 func_append libobjs " $pic_object"
5416 ;; 4349 ;;
5417 esac 4350 esac
5418 if test "$prev" = rpath; then 4351 if test "$prev" = rpath; then
5419 case "$rpath " in 4352 case "$rpath " in
5420 *" $arg "*) ;; 4353 *" $arg "*) ;;
5421 *) func_append rpath " $arg" ;; 4354 *) rpath="$rpath $arg" ;;
5422 esac 4355 esac
5423 else 4356 else
5424 case "$xrpath " in 4357 case "$xrpath " in
5425 *" $arg "*) ;; 4358 *" $arg "*) ;;
5426 *) func_append xrpath " $arg" ;; 4359 *) xrpath="$xrpath $arg" ;;
5427 esac 4360 esac
5428 fi 4361 fi
5429 prev= 4362 prev=
5430 continue 4363 continue
5431 ;; 4364 ;;
5433 shrext_cmds="$arg" 4366 shrext_cmds="$arg"
5434 prev= 4367 prev=
5435 continue 4368 continue
5436 ;; 4369 ;;
5437 weak) 4370 weak)
5438 func_append weak_libs " $arg" 4371 weak_libs="$weak_libs $arg"
5439 prev= 4372 prev=
5440 continue 4373 continue
5441 ;; 4374 ;;
5442 xcclinker) 4375 xcclinker)
5443 func_append linker_flags " $qarg" 4376 linker_flags="$linker_flags $qarg"
5444 func_append compiler_flags " $qarg" 4377 compiler_flags="$compiler_flags $qarg"
5445 prev= 4378 prev=
5446 func_append compile_command " $qarg" 4379 func_append compile_command " $qarg"
5447 func_append finalize_command " $qarg" 4380 func_append finalize_command " $qarg"
5448 continue 4381 continue
5449 ;; 4382 ;;
5450 xcompiler) 4383 xcompiler)
5451 func_append compiler_flags " $qarg" 4384 compiler_flags="$compiler_flags $qarg"
5452 prev= 4385 prev=
5453 func_append compile_command " $qarg" 4386 func_append compile_command " $qarg"
5454 func_append finalize_command " $qarg" 4387 func_append finalize_command " $qarg"
5455 continue 4388 continue
5456 ;; 4389 ;;
5457 xlinker) 4390 xlinker)
5458 func_append linker_flags " $qarg" 4391 linker_flags="$linker_flags $qarg"
5459 func_append compiler_flags " $wl$qarg" 4392 compiler_flags="$compiler_flags $wl$qarg"
5460 prev= 4393 prev=
5461 func_append compile_command " $wl$qarg" 4394 func_append compile_command " $wl$qarg"
5462 func_append finalize_command " $wl$qarg" 4395 func_append finalize_command " $wl$qarg"
5463 continue 4396 continue
5464 ;; 4397 ;;
5490 -avoid-version) 4423 -avoid-version)
5491 avoid_version=yes 4424 avoid_version=yes
5492 continue 4425 continue
5493 ;; 4426 ;;
5494 4427
5495 -bindir)
5496 prev=bindir
5497 continue
5498 ;;
5499
5500 -dlopen) 4428 -dlopen)
5501 prev=dlfiles 4429 prev=dlfiles
5502 continue 4430 continue
5503 ;; 4431 ;;
5504 4432
5545 esac 4473 esac
5546 continue 4474 continue
5547 ;; 4475 ;;
5548 4476
5549 -L*) 4477 -L*)
5550 func_stripname "-L" '' "$arg" 4478 func_stripname '-L' '' "$arg"
5551 if test -z "$func_stripname_result"; then 4479 dir=$func_stripname_result
4480 if test -z "$dir"; then
5552 if test "$#" -gt 0; then 4481 if test "$#" -gt 0; then
5553 func_fatal_error "require no space between \`-L' and \`$1'" 4482 func_fatal_error "require no space between \`-L' and \`$1'"
5554 else 4483 else
5555 func_fatal_error "need path for \`-L' option" 4484 func_fatal_error "need path for \`-L' option"
5556 fi 4485 fi
5557 fi 4486 fi
5558 func_resolve_sysroot "$func_stripname_result"
5559 dir=$func_resolve_sysroot_result
5560 # We need an absolute path. 4487 # We need an absolute path.
5561 case $dir in 4488 case $dir in
5562 [\\/]* | [A-Za-z]:[\\/]*) ;; 4489 [\\/]* | [A-Za-z]:[\\/]*) ;;
5563 *) 4490 *)
5564 absdir=`cd "$dir" && pwd` 4491 absdir=`cd "$dir" && pwd`
5566 func_fatal_error "cannot determine absolute directory name of \`$dir'" 4493 func_fatal_error "cannot determine absolute directory name of \`$dir'"
5567 dir="$absdir" 4494 dir="$absdir"
5568 ;; 4495 ;;
5569 esac 4496 esac
5570 case "$deplibs " in 4497 case "$deplibs " in
5571 *" -L$dir "* | *" $arg "*) 4498 *" -L$dir "*) ;;
5572 # Will only happen for absolute or sysroot arguments
5573 ;;
5574 *) 4499 *)
5575 # Preserve sysroot, but never include relative directories 4500 deplibs="$deplibs -L$dir"
5576 case $dir in 4501 lib_search_path="$lib_search_path $dir"
5577 [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;;
5578 *) func_append deplibs " -L$dir" ;;
5579 esac
5580 func_append lib_search_path " $dir"
5581 ;; 4502 ;;
5582 esac 4503 esac
5583 case $host in 4504 case $host in
5584 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) 4505 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
5585 testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'` 4506 testbindir=`$ECHO "X$dir" | $Xsed -e 's*/lib$*/bin*'`
5586 case :$dllsearchpath: in 4507 case :$dllsearchpath: in
5587 *":$dir:"*) ;; 4508 *":$dir:"*) ;;
5588 ::) dllsearchpath=$dir;; 4509 ::) dllsearchpath=$dir;;
5589 *) func_append dllsearchpath ":$dir";; 4510 *) dllsearchpath="$dllsearchpath:$dir";;
5590 esac 4511 esac
5591 case :$dllsearchpath: in 4512 case :$dllsearchpath: in
5592 *":$testbindir:"*) ;; 4513 *":$testbindir:"*) ;;
5593 ::) dllsearchpath=$testbindir;; 4514 ::) dllsearchpath=$testbindir;;
5594 *) func_append dllsearchpath ":$testbindir";; 4515 *) dllsearchpath="$dllsearchpath:$testbindir";;
5595 esac 4516 esac
5596 ;; 4517 ;;
5597 esac 4518 esac
5598 continue 4519 continue
5599 ;; 4520 ;;
5600 4521
5601 -l*) 4522 -l*)
5602 if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then 4523 if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
5603 case $host in 4524 case $host in
5604 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*) 4525 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc*)
5605 # These systems don't actually have a C or math library (as such) 4526 # These systems don't actually have a C or math library (as such)
5606 continue 4527 continue
5607 ;; 4528 ;;
5608 *-*-os2*) 4529 *-*-os2*)
5609 # These systems don't actually have a C library (as such) 4530 # These systems don't actually have a C library (as such)
5613 # Do not include libc due to us having libc/libc_r. 4534 # Do not include libc due to us having libc/libc_r.
5614 test "X$arg" = "X-lc" && continue 4535 test "X$arg" = "X-lc" && continue
5615 ;; 4536 ;;
5616 *-*-rhapsody* | *-*-darwin1.[012]) 4537 *-*-rhapsody* | *-*-darwin1.[012])
5617 # Rhapsody C and math libraries are in the System framework 4538 # Rhapsody C and math libraries are in the System framework
5618 func_append deplibs " System.ltframework" 4539 deplibs="$deplibs System.ltframework"
5619 continue 4540 continue
5620 ;; 4541 ;;
5621 *-*-sco3.2v5* | *-*-sco5v6*) 4542 *-*-sco3.2v5* | *-*-sco5v6*)
5622 # Causes problems with __ctype 4543 # Causes problems with __ctype
5623 test "X$arg" = "X-lc" && continue 4544 test "X$arg" = "X-lc" && continue
5633 # Do not include libc_r directly, use -pthread flag. 4554 # Do not include libc_r directly, use -pthread flag.
5634 continue 4555 continue
5635 ;; 4556 ;;
5636 esac 4557 esac
5637 fi 4558 fi
5638 func_append deplibs " $arg" 4559 deplibs="$deplibs $arg"
5639 continue 4560 continue
5640 ;; 4561 ;;
5641 4562
5642 -module) 4563 -module)
5643 module=yes 4564 module=yes
5645 ;; 4566 ;;
5646 4567
5647 # Tru64 UNIX uses -model [arg] to determine the layout of C++ 4568 # Tru64 UNIX uses -model [arg] to determine the layout of C++
5648 # classes, name mangling, and exception handling. 4569 # classes, name mangling, and exception handling.
5649 # Darwin uses the -arch flag to determine output architecture. 4570 # Darwin uses the -arch flag to determine output architecture.
5650 -model|-arch|-isysroot|--sysroot) 4571 -model|-arch|-isysroot)
5651 func_append compiler_flags " $arg" 4572 compiler_flags="$compiler_flags $arg"
5652 func_append compile_command " $arg" 4573 func_append compile_command " $arg"
5653 func_append finalize_command " $arg" 4574 func_append finalize_command " $arg"
5654 prev=xcompiler 4575 prev=xcompiler
5655 continue 4576 continue
5656 ;; 4577 ;;
5657 4578
5658 -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ 4579 -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads)
5659 |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) 4580 compiler_flags="$compiler_flags $arg"
5660 func_append compiler_flags " $arg"
5661 func_append compile_command " $arg" 4581 func_append compile_command " $arg"
5662 func_append finalize_command " $arg" 4582 func_append finalize_command " $arg"
5663 case "$new_inherited_linker_flags " in 4583 case "$new_inherited_linker_flags " in
5664 *" $arg "*) ;; 4584 *" $arg "*) ;;
5665 * ) func_append new_inherited_linker_flags " $arg" ;; 4585 * ) new_inherited_linker_flags="$new_inherited_linker_flags $arg" ;;
5666 esac 4586 esac
5667 continue 4587 continue
5668 ;; 4588 ;;
5669 4589
5670 -multi_module) 4590 -multi_module)
5727 func_stripname '-R' '' "$arg" 4647 func_stripname '-R' '' "$arg"
5728 dir=$func_stripname_result 4648 dir=$func_stripname_result
5729 # We need an absolute path. 4649 # We need an absolute path.
5730 case $dir in 4650 case $dir in
5731 [\\/]* | [A-Za-z]:[\\/]*) ;; 4651 [\\/]* | [A-Za-z]:[\\/]*) ;;
5732 =*)
5733 func_stripname '=' '' "$dir"
5734 dir=$lt_sysroot$func_stripname_result
5735 ;;
5736 *) 4652 *)
5737 func_fatal_error "only absolute run-paths are allowed" 4653 func_fatal_error "only absolute run-paths are allowed"
5738 ;; 4654 ;;
5739 esac 4655 esac
5740 case "$xrpath " in 4656 case "$xrpath " in
5741 *" $dir "*) ;; 4657 *" $dir "*) ;;
5742 *) func_append xrpath " $dir" ;; 4658 *) xrpath="$xrpath $dir" ;;
5743 esac 4659 esac
5744 continue 4660 continue
5745 ;; 4661 ;;
5746 4662
5747 -shared) 4663 -shared)
5790 arg= 4706 arg=
5791 save_ifs="$IFS"; IFS=',' 4707 save_ifs="$IFS"; IFS=','
5792 for flag in $args; do 4708 for flag in $args; do
5793 IFS="$save_ifs" 4709 IFS="$save_ifs"
5794 func_quote_for_eval "$flag" 4710 func_quote_for_eval "$flag"
5795 func_append arg " $func_quote_for_eval_result" 4711 arg="$arg $wl$func_quote_for_eval_result"
5796 func_append compiler_flags " $func_quote_for_eval_result" 4712 compiler_flags="$compiler_flags $func_quote_for_eval_result"
5797 done 4713 done
5798 IFS="$save_ifs" 4714 IFS="$save_ifs"
5799 func_stripname ' ' '' "$arg" 4715 func_stripname ' ' '' "$arg"
5800 arg=$func_stripname_result 4716 arg=$func_stripname_result
5801 ;; 4717 ;;
5806 arg= 4722 arg=
5807 save_ifs="$IFS"; IFS=',' 4723 save_ifs="$IFS"; IFS=','
5808 for flag in $args; do 4724 for flag in $args; do
5809 IFS="$save_ifs" 4725 IFS="$save_ifs"
5810 func_quote_for_eval "$flag" 4726 func_quote_for_eval "$flag"
5811 func_append arg " $wl$func_quote_for_eval_result" 4727 arg="$arg $wl$func_quote_for_eval_result"
5812 func_append compiler_flags " $wl$func_quote_for_eval_result" 4728 compiler_flags="$compiler_flags $wl$func_quote_for_eval_result"
5813 func_append linker_flags " $func_quote_for_eval_result" 4729 linker_flags="$linker_flags $func_quote_for_eval_result"
5814 done 4730 done
5815 IFS="$save_ifs" 4731 IFS="$save_ifs"
5816 func_stripname ' ' '' "$arg" 4732 func_stripname ' ' '' "$arg"
5817 arg=$func_stripname_result 4733 arg=$func_stripname_result
5818 ;; 4734 ;;
5836 -msg_*) 4752 -msg_*)
5837 func_quote_for_eval "$arg" 4753 func_quote_for_eval "$arg"
5838 arg="$func_quote_for_eval_result" 4754 arg="$func_quote_for_eval_result"
5839 ;; 4755 ;;
5840 4756
5841 # Flags to be passed through unchanged, with rationale: 4757 # -64, -mips[0-9] enable 64-bit mode on the SGI compiler
5842 # -64, -mips[0-9] enable 64-bit mode for the SGI compiler 4758 # -r[0-9][0-9]* specifies the processor on the SGI compiler
5843 # -r[0-9][0-9]* specify processor for the SGI compiler 4759 # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler
5844 # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler 4760 # +DA*, +DD* enable 64-bit mode on the HP compiler
5845 # +DA*, +DD* enable 64-bit mode for the HP compiler 4761 # -q* pass through compiler args for the IBM compiler
5846 # -q* compiler args for the IBM compiler 4762 # -m*, -t[45]*, -txscale* pass through architecture-specific
5847 # -m*, -t[45]*, -txscale* architecture-specific flags for GCC 4763 # compiler args for GCC
5848 # -F/path path to uninstalled frameworks, gcc on darwin 4764 # -F/path gives path to uninstalled frameworks, gcc on darwin
5849 # -p, -pg, --coverage, -fprofile-* profiling flags for GCC 4765 # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC
5850 # @file GCC response files 4766 # @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
5854 -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ 4767 -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
5855 -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \ 4768 -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*)
5856 -O*|-flto*|-fwhopr*|-fuse-linker-plugin)
5857 func_quote_for_eval "$arg" 4769 func_quote_for_eval "$arg"
5858 arg="$func_quote_for_eval_result" 4770 arg="$func_quote_for_eval_result"
5859 func_append compile_command " $arg" 4771 func_append compile_command " $arg"
5860 func_append finalize_command " $arg" 4772 func_append finalize_command " $arg"
5861 func_append compiler_flags " $arg" 4773 compiler_flags="$compiler_flags $arg"
5862 continue 4774 continue
5863 ;; 4775 ;;
5864 4776
5865 # Some other compiler flag. 4777 # Some other compiler flag.
5866 -* | +*) 4778 -* | +*)
5868 arg="$func_quote_for_eval_result" 4780 arg="$func_quote_for_eval_result"
5869 ;; 4781 ;;
5870 4782
5871 *.$objext) 4783 *.$objext)
5872 # A standard object. 4784 # A standard object.
5873 func_append objs " $arg" 4785 objs="$objs $arg"
5874 ;; 4786 ;;
5875 4787
5876 *.lo) 4788 *.lo)
5877 # A libtool-controlled object. 4789 # A libtool-controlled object.
5878 4790
5899 # Prepend the subdirectory the object is found in. 4811 # Prepend the subdirectory the object is found in.
5900 pic_object="$xdir$pic_object" 4812 pic_object="$xdir$pic_object"
5901 4813
5902 if test "$prev" = dlfiles; then 4814 if test "$prev" = dlfiles; then
5903 if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then 4815 if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
5904 func_append dlfiles " $pic_object" 4816 dlfiles="$dlfiles $pic_object"
5905 prev= 4817 prev=
5906 continue 4818 continue
5907 else 4819 else
5908 # If libtool objects are unsupported, then we need to preload. 4820 # If libtool objects are unsupported, then we need to preload.
5909 prev=dlprefiles 4821 prev=dlprefiles
5911 fi 4823 fi
5912 4824
5913 # CHECK ME: I think I busted this. -Ossama 4825 # CHECK ME: I think I busted this. -Ossama
5914 if test "$prev" = dlprefiles; then 4826 if test "$prev" = dlprefiles; then
5915 # Preload the old-style object. 4827 # Preload the old-style object.
5916 func_append dlprefiles " $pic_object" 4828 dlprefiles="$dlprefiles $pic_object"
5917 prev= 4829 prev=
5918 fi 4830 fi
5919 4831
5920 # A PIC object. 4832 # A PIC object.
5921 func_append libobjs " $pic_object" 4833 func_append libobjs " $pic_object"
5956 fi 4868 fi
5957 ;; 4869 ;;
5958 4870
5959 *.$libext) 4871 *.$libext)
5960 # An archive. 4872 # An archive.
5961 func_append deplibs " $arg" 4873 deplibs="$deplibs $arg"
5962 func_append old_deplibs " $arg" 4874 old_deplibs="$old_deplibs $arg"
5963 continue 4875 continue
5964 ;; 4876 ;;
5965 4877
5966 *.la) 4878 *.la)
5967 # A libtool-controlled library. 4879 # A libtool-controlled library.
5968 4880
5969 func_resolve_sysroot "$arg"
5970 if test "$prev" = dlfiles; then 4881 if test "$prev" = dlfiles; then
5971 # This library was specified with -dlopen. 4882 # This library was specified with -dlopen.
5972 func_append dlfiles " $func_resolve_sysroot_result" 4883 dlfiles="$dlfiles $arg"
5973 prev= 4884 prev=
5974 elif test "$prev" = dlprefiles; then 4885 elif test "$prev" = dlprefiles; then
5975 # The library was specified with -dlpreopen. 4886 # The library was specified with -dlpreopen.
5976 func_append dlprefiles " $func_resolve_sysroot_result" 4887 dlprefiles="$dlprefiles $arg"
5977 prev= 4888 prev=
5978 else 4889 else
5979 func_append deplibs " $func_resolve_sysroot_result" 4890 deplibs="$deplibs $arg"
5980 fi 4891 fi
5981 continue 4892 continue
5982 ;; 4893 ;;
5983 4894
5984 # Some other compiler argument. 4895 # Some other compiler argument.
6012 outputname="$func_basename_result" 4923 outputname="$func_basename_result"
6013 libobjs_save="$libobjs" 4924 libobjs_save="$libobjs"
6014 4925
6015 if test -n "$shlibpath_var"; then 4926 if test -n "$shlibpath_var"; then
6016 # get the directories listed in $shlibpath_var 4927 # get the directories listed in $shlibpath_var
6017 eval shlib_search_path=\`\$ECHO \"\${$shlibpath_var}\" \| \$SED \'s/:/ /g\'\` 4928 eval shlib_search_path=\`\$ECHO \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
6018 else 4929 else
6019 shlib_search_path= 4930 shlib_search_path=
6020 fi 4931 fi
6021 eval sys_lib_search_path=\"$sys_lib_search_path_spec\" 4932 eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
6022 eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" 4933 eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
6023 4934
6024 func_dirname "$output" "/" "" 4935 func_dirname "$output" "/" ""
6025 output_objdir="$func_dirname_result$objdir" 4936 output_objdir="$func_dirname_result$objdir"
6026 func_to_tool_file "$output_objdir/"
6027 tool_output_objdir=$func_to_tool_file_result
6028 # Create the object directory. 4937 # Create the object directory.
6029 func_mkdir_p "$output_objdir" 4938 func_mkdir_p "$output_objdir"
6030 4939
6031 # Determine the type of output 4940 # Determine the type of output
6032 case $output in 4941 case $output in
6043 4952
6044 libs= 4953 libs=
6045 # Find all interdependent deplibs by searching for libraries 4954 # Find all interdependent deplibs by searching for libraries
6046 # that are linked more than once (e.g. -la -lb -la) 4955 # that are linked more than once (e.g. -la -lb -la)
6047 for deplib in $deplibs; do 4956 for deplib in $deplibs; do
6048 if $opt_preserve_dup_deps ; then 4957 if $opt_duplicate_deps ; then
6049 case "$libs " in 4958 case "$libs " in
6050 *" $deplib "*) func_append specialdeplibs " $deplib" ;; 4959 *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
6051 esac 4960 esac
6052 fi 4961 fi
6053 func_append libs " $deplib" 4962 libs="$libs $deplib"
6054 done 4963 done
6055 4964
6056 if test "$linkmode" = lib; then 4965 if test "$linkmode" = lib; then
6057 libs="$predeps $libs $compiler_lib_search_path $postdeps" 4966 libs="$predeps $libs $compiler_lib_search_path $postdeps"
6058 4967
6061 # not to be eliminated). 4970 # not to be eliminated).
6062 pre_post_deps= 4971 pre_post_deps=
6063 if $opt_duplicate_compiler_generated_deps; then 4972 if $opt_duplicate_compiler_generated_deps; then
6064 for pre_post_dep in $predeps $postdeps; do 4973 for pre_post_dep in $predeps $postdeps; do
6065 case "$pre_post_deps " in 4974 case "$pre_post_deps " in
6066 *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;; 4975 *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;;
6067 esac 4976 esac
6068 func_append pre_post_deps " $pre_post_dep" 4977 pre_post_deps="$pre_post_deps $pre_post_dep"
6069 done 4978 done
6070 fi 4979 fi
6071 pre_post_deps= 4980 pre_post_deps=
6072 fi 4981 fi
6073 4982
6133 if test "$linkmode,$pass" = "lib,dlpreopen"; then 5042 if test "$linkmode,$pass" = "lib,dlpreopen"; then
6134 # Collect and forward deplibs of preopened libtool libs 5043 # Collect and forward deplibs of preopened libtool libs
6135 for lib in $dlprefiles; do 5044 for lib in $dlprefiles; do
6136 # Ignore non-libtool-libs 5045 # Ignore non-libtool-libs
6137 dependency_libs= 5046 dependency_libs=
6138 func_resolve_sysroot "$lib"
6139 case $lib in 5047 case $lib in
6140 *.la) func_source "$func_resolve_sysroot_result" ;; 5048 *.la) func_source "$lib" ;;
6141 esac 5049 esac
6142 5050
6143 # Collect preopened libtool deplibs, except any this library 5051 # Collect preopened libtool deplibs, except any this library
6144 # has declared as weak libs 5052 # has declared as weak libs
6145 for deplib in $dependency_libs; do 5053 for deplib in $dependency_libs; do
6146 func_basename "$deplib" 5054 deplib_base=`$ECHO "X$deplib" | $Xsed -e "$basename"`
6147 deplib_base=$func_basename_result
6148 case " $weak_libs " in 5055 case " $weak_libs " in
6149 *" $deplib_base "*) ;; 5056 *" $deplib_base "*) ;;
6150 *) func_append deplibs " $deplib" ;; 5057 *) deplibs="$deplibs $deplib" ;;
6151 esac 5058 esac
6152 done 5059 done
6153 done 5060 done
6154 libs="$dlprefiles" 5061 libs="$dlprefiles"
6155 fi 5062 fi
6161 5068
6162 for deplib in $libs; do 5069 for deplib in $libs; do
6163 lib= 5070 lib=
6164 found=no 5071 found=no
6165 case $deplib in 5072 case $deplib in
6166 -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ 5073 -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads)
6167 |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*)
6168 if test "$linkmode,$pass" = "prog,link"; then 5074 if test "$linkmode,$pass" = "prog,link"; then
6169 compile_deplibs="$deplib $compile_deplibs" 5075 compile_deplibs="$deplib $compile_deplibs"
6170 finalize_deplibs="$deplib $finalize_deplibs" 5076 finalize_deplibs="$deplib $finalize_deplibs"
6171 else 5077 else
6172 func_append compiler_flags " $deplib" 5078 compiler_flags="$compiler_flags $deplib"
6173 if test "$linkmode" = lib ; then 5079 if test "$linkmode" = lib ; then
6174 case "$new_inherited_linker_flags " in 5080 case "$new_inherited_linker_flags " in
6175 *" $deplib "*) ;; 5081 *" $deplib "*) ;;
6176 * ) func_append new_inherited_linker_flags " $deplib" ;; 5082 * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;;
6177 esac 5083 esac
6178 fi 5084 fi
6179 fi 5085 fi
6180 continue 5086 continue
6181 ;; 5087 ;;
6256 else 5162 else
6257 deplibs="$deplib $deplibs" 5163 deplibs="$deplib $deplibs"
6258 if test "$linkmode" = lib ; then 5164 if test "$linkmode" = lib ; then
6259 case "$new_inherited_linker_flags " in 5165 case "$new_inherited_linker_flags " in
6260 *" $deplib "*) ;; 5166 *" $deplib "*) ;;
6261 * ) func_append new_inherited_linker_flags " $deplib" ;; 5167 * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;;
6262 esac 5168 esac
6263 fi 5169 fi
6264 fi 5170 fi
6265 continue 5171 continue
6266 ;; 5172 ;;
6269 lib) 5175 lib)
6270 deplibs="$deplib $deplibs" 5176 deplibs="$deplib $deplibs"
6271 test "$pass" = conv && continue 5177 test "$pass" = conv && continue
6272 newdependency_libs="$deplib $newdependency_libs" 5178 newdependency_libs="$deplib $newdependency_libs"
6273 func_stripname '-L' '' "$deplib" 5179 func_stripname '-L' '' "$deplib"
6274 func_resolve_sysroot "$func_stripname_result" 5180 newlib_search_path="$newlib_search_path $func_stripname_result"
6275 func_append newlib_search_path " $func_resolve_sysroot_result"
6276 ;; 5181 ;;
6277 prog) 5182 prog)
6278 if test "$pass" = conv; then 5183 if test "$pass" = conv; then
6279 deplibs="$deplib $deplibs" 5184 deplibs="$deplib $deplibs"
6280 continue 5185 continue
6284 else 5189 else
6285 compile_deplibs="$deplib $compile_deplibs" 5190 compile_deplibs="$deplib $compile_deplibs"
6286 finalize_deplibs="$deplib $finalize_deplibs" 5191 finalize_deplibs="$deplib $finalize_deplibs"
6287 fi 5192 fi
6288 func_stripname '-L' '' "$deplib" 5193 func_stripname '-L' '' "$deplib"
6289 func_resolve_sysroot "$func_stripname_result" 5194 newlib_search_path="$newlib_search_path $func_stripname_result"
6290 func_append newlib_search_path " $func_resolve_sysroot_result"
6291 ;; 5195 ;;
6292 *) 5196 *)
6293 func_warning "\`-L' is ignored for archives/objects" 5197 func_warning "\`-L' is ignored for archives/objects"
6294 ;; 5198 ;;
6295 esac # linkmode 5199 esac # linkmode
6296 continue 5200 continue
6297 ;; # -L 5201 ;; # -L
6298 -R*) 5202 -R*)
6299 if test "$pass" = link; then 5203 if test "$pass" = link; then
6300 func_stripname '-R' '' "$deplib" 5204 func_stripname '-R' '' "$deplib"
6301 func_resolve_sysroot "$func_stripname_result" 5205 dir=$func_stripname_result
6302 dir=$func_resolve_sysroot_result
6303 # Make sure the xrpath contains only unique directories. 5206 # Make sure the xrpath contains only unique directories.
6304 case "$xrpath " in 5207 case "$xrpath " in
6305 *" $dir "*) ;; 5208 *" $dir "*) ;;
6306 *) func_append xrpath " $dir" ;; 5209 *) xrpath="$xrpath $dir" ;;
6307 esac 5210 esac
6308 fi 5211 fi
6309 deplibs="$deplib $deplibs" 5212 deplibs="$deplib $deplibs"
6310 continue 5213 continue
6311 ;; 5214 ;;
6312 *.la) 5215 *.la) lib="$deplib" ;;
6313 func_resolve_sysroot "$deplib"
6314 lib=$func_resolve_sysroot_result
6315 ;;
6316 *.$libext) 5216 *.$libext)
6317 if test "$pass" = conv; then 5217 if test "$pass" = conv; then
6318 deplibs="$deplib $deplibs" 5218 deplibs="$deplib $deplibs"
6319 continue 5219 continue
6320 fi 5220 fi
6328 valid_a_lib=no 5228 valid_a_lib=no
6329 case $deplibs_check_method in 5229 case $deplibs_check_method in
6330 match_pattern*) 5230 match_pattern*)
6331 set dummy $deplibs_check_method; shift 5231 set dummy $deplibs_check_method; shift
6332 match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` 5232 match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
6333 if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \ 5233 if eval "\$ECHO \"X$deplib\"" 2>/dev/null | $Xsed -e 10q \
6334 | $EGREP "$match_pattern_regex" > /dev/null; then 5234 | $EGREP "$match_pattern_regex" > /dev/null; then
6335 valid_a_lib=yes 5235 valid_a_lib=yes
6336 fi 5236 fi
6337 ;; 5237 ;;
6338 pass_all) 5238 pass_all)
6339 valid_a_lib=yes 5239 valid_a_lib=yes
6340 ;; 5240 ;;
6341 esac 5241 esac
6342 if test "$valid_a_lib" != yes; then 5242 if test "$valid_a_lib" != yes; then
6343 echo 5243 $ECHO
6344 $ECHO "*** Warning: Trying to link with static lib archive $deplib." 5244 $ECHO "*** Warning: Trying to link with static lib archive $deplib."
6345 echo "*** I have the capability to make that library automatically link in when" 5245 $ECHO "*** I have the capability to make that library automatically link in when"
6346 echo "*** you link to this library. But I can only do this if you have a" 5246 $ECHO "*** you link to this library. But I can only do this if you have a"
6347 echo "*** shared version of the library, which you do not appear to have" 5247 $ECHO "*** shared version of the library, which you do not appear to have"
6348 echo "*** because the file extensions .$libext of this argument makes me believe" 5248 $ECHO "*** because the file extensions .$libext of this argument makes me believe"
6349 echo "*** that it is just a static archive that I should not use here." 5249 $ECHO "*** that it is just a static archive that I should not use here."
6350 else 5250 else
6351 echo 5251 $ECHO
6352 $ECHO "*** Warning: Linking the shared library $output against the" 5252 $ECHO "*** Warning: Linking the shared library $output against the"
6353 $ECHO "*** static library $deplib is not portable!" 5253 $ECHO "*** static library $deplib is not portable!"
6354 deplibs="$deplib $deplibs" 5254 deplibs="$deplib $deplibs"
6355 fi 5255 fi
6356 ;; 5256 ;;
6373 deplibs="$deplib $deplibs" 5273 deplibs="$deplib $deplibs"
6374 elif test "$linkmode" = prog; then 5274 elif test "$linkmode" = prog; then
6375 if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then 5275 if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
6376 # If there is no dlopen support or we're linking statically, 5276 # If there is no dlopen support or we're linking statically,
6377 # we need to preload. 5277 # we need to preload.
6378 func_append newdlprefiles " $deplib" 5278 newdlprefiles="$newdlprefiles $deplib"
6379 compile_deplibs="$deplib $compile_deplibs" 5279 compile_deplibs="$deplib $compile_deplibs"
6380 finalize_deplibs="$deplib $finalize_deplibs" 5280 finalize_deplibs="$deplib $finalize_deplibs"
6381 else 5281 else
6382 func_append newdlfiles " $deplib" 5282 newdlfiles="$newdlfiles $deplib"
6383 fi 5283 fi
6384 fi 5284 fi
6385 continue 5285 continue
6386 ;; 5286 ;;
6387 %DEPLIBS%) 5287 %DEPLIBS%)
6419 # Read the .la file 5319 # Read the .la file
6420 func_source "$lib" 5320 func_source "$lib"
6421 5321
6422 # Convert "-framework foo" to "foo.ltframework" 5322 # Convert "-framework foo" to "foo.ltframework"
6423 if test -n "$inherited_linker_flags"; then 5323 if test -n "$inherited_linker_flags"; then
6424 tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'` 5324 tmp_inherited_linker_flags=`$ECHO "X$inherited_linker_flags" | $Xsed -e 's/-framework \([^ $]*\)/\1.ltframework/g'`
6425 for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do 5325 for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do
6426 case " $new_inherited_linker_flags " in 5326 case " $new_inherited_linker_flags " in
6427 *" $tmp_inherited_linker_flag "*) ;; 5327 *" $tmp_inherited_linker_flag "*) ;;
6428 *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";; 5328 *) new_inherited_linker_flags="$new_inherited_linker_flags $tmp_inherited_linker_flag";;
6429 esac 5329 esac
6430 done 5330 done
6431 fi 5331 fi
6432 dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` 5332 dependency_libs=`$ECHO "X $dependency_libs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
6433 if test "$linkmode,$pass" = "lib,link" || 5333 if test "$linkmode,$pass" = "lib,link" ||
6434 test "$linkmode,$pass" = "prog,scan" || 5334 test "$linkmode,$pass" = "prog,scan" ||
6435 { test "$linkmode" != prog && test "$linkmode" != lib; }; then 5335 { test "$linkmode" != prog && test "$linkmode" != lib; }; then
6436 test -n "$dlopen" && func_append dlfiles " $dlopen" 5336 test -n "$dlopen" && dlfiles="$dlfiles $dlopen"
6437 test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen" 5337 test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen"
6438 fi 5338 fi
6439 5339
6440 if test "$pass" = conv; then 5340 if test "$pass" = conv; then
6441 # Only check for convenience libraries 5341 # Only check for convenience libraries
6442 deplibs="$lib $deplibs" 5342 deplibs="$lib $deplibs"
6443 if test -z "$libdir"; then 5343 if test -z "$libdir"; then
6444 if test -z "$old_library"; then 5344 if test -z "$old_library"; then
6445 func_fatal_error "cannot find name of link library for \`$lib'" 5345 func_fatal_error "cannot find name of link library for \`$lib'"
6446 fi 5346 fi
6447 # It is a libtool convenience library, so add in its objects. 5347 # It is a libtool convenience library, so add in its objects.
6448 func_append convenience " $ladir/$objdir/$old_library" 5348 convenience="$convenience $ladir/$objdir/$old_library"
6449 func_append old_convenience " $ladir/$objdir/$old_library" 5349 old_convenience="$old_convenience $ladir/$objdir/$old_library"
6450 tmp_libs= 5350 tmp_libs=
6451 for deplib in $dependency_libs; do 5351 for deplib in $dependency_libs; do
6452 deplibs="$deplib $deplibs" 5352 deplibs="$deplib $deplibs"
6453 if $opt_preserve_dup_deps ; then 5353 if $opt_duplicate_deps ; then
6454 case "$tmp_libs " in 5354 case "$tmp_libs " in
6455 *" $deplib "*) func_append specialdeplibs " $deplib" ;; 5355 *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
6456 esac 5356 esac
6457 fi 5357 fi
6458 func_append tmp_libs " $deplib" 5358 tmp_libs="$tmp_libs $deplib"
6459 done 5359 done
6460 elif test "$linkmode" != prog && test "$linkmode" != lib; then 5360 elif test "$linkmode" != prog && test "$linkmode" != lib; then
6461 func_fatal_error "\`$lib' is not a convenience library" 5361 func_fatal_error "\`$lib' is not a convenience library"
6462 fi 5362 fi
6463 continue 5363 continue
6464 fi # $pass = conv 5364 fi # $pass = conv
6465 5365
6466 5366
6467 # Get the name of the library we link against. 5367 # Get the name of the library we link against.
6468 linklib= 5368 linklib=
6469 if test -n "$old_library" && 5369 for l in $old_library $library_names; do
6470 { test "$prefer_static_libs" = yes || 5370 linklib="$l"
6471 test "$prefer_static_libs,$installed" = "built,no"; }; then 5371 done
6472 linklib=$old_library
6473 else
6474 for l in $old_library $library_names; do
6475 linklib="$l"
6476 done
6477 fi
6478 if test -z "$linklib"; then 5372 if test -z "$linklib"; then
6479 func_fatal_error "cannot find name of link library for \`$lib'" 5373 func_fatal_error "cannot find name of link library for \`$lib'"
6480 fi 5374 fi
6481 5375
6482 # This library was specified with -dlopen. 5376 # This library was specified with -dlopen.
6489 test "$build_libtool_libs" = no; then 5383 test "$build_libtool_libs" = no; then
6490 # If there is no dlname, no dlopen support or we're linking 5384 # If there is no dlname, no dlopen support or we're linking
6491 # statically, we need to preload. We also need to preload any 5385 # statically, we need to preload. We also need to preload any
6492 # dependent libraries so libltdl's deplib preloader doesn't 5386 # dependent libraries so libltdl's deplib preloader doesn't
6493 # bomb out in the load deplibs phase. 5387 # bomb out in the load deplibs phase.
6494 func_append dlprefiles " $lib $dependency_libs" 5388 dlprefiles="$dlprefiles $lib $dependency_libs"
6495 else 5389 else
6496 func_append newdlfiles " $lib" 5390 newdlfiles="$newdlfiles $lib"
6497 fi 5391 fi
6498 continue 5392 continue
6499 fi # $pass = dlopen 5393 fi # $pass = dlopen
6500 5394
6501 # We need an absolute path. 5395 # We need an absolute path.
6513 func_basename "$lib" 5407 func_basename "$lib"
6514 laname="$func_basename_result" 5408 laname="$func_basename_result"
6515 5409
6516 # Find the relevant object directory and library name. 5410 # Find the relevant object directory and library name.
6517 if test "X$installed" = Xyes; then 5411 if test "X$installed" = Xyes; then
6518 if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then 5412 if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
6519 func_warning "library \`$lib' was moved." 5413 func_warning "library \`$lib' was moved."
6520 dir="$ladir" 5414 dir="$ladir"
6521 absdir="$abs_ladir" 5415 absdir="$abs_ladir"
6522 libdir="$abs_ladir" 5416 libdir="$abs_ladir"
6523 else 5417 else
6524 dir="$lt_sysroot$libdir" 5418 dir="$libdir"
6525 absdir="$lt_sysroot$libdir" 5419 absdir="$libdir"
6526 fi 5420 fi
6527 test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes 5421 test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
6528 else 5422 else
6529 if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then 5423 if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then
6530 dir="$ladir" 5424 dir="$ladir"
6531 absdir="$abs_ladir" 5425 absdir="$abs_ladir"
6532 # Remove this search path later 5426 # Remove this search path later
6533 func_append notinst_path " $abs_ladir" 5427 notinst_path="$notinst_path $abs_ladir"
6534 else 5428 else
6535 dir="$ladir/$objdir" 5429 dir="$ladir/$objdir"
6536 absdir="$abs_ladir/$objdir" 5430 absdir="$abs_ladir/$objdir"
6537 # Remove this search path later 5431 # Remove this search path later
6538 func_append notinst_path " $abs_ladir" 5432 notinst_path="$notinst_path $abs_ladir"
6539 fi 5433 fi
6540 fi # $installed = yes 5434 fi # $installed = yes
6541 func_stripname 'lib' '.la' "$laname" 5435 func_stripname 'lib' '.la' "$laname"
6542 name=$func_stripname_result 5436 name=$func_stripname_result
6543 5437
6544 # This library was specified with -dlpreopen. 5438 # This library was specified with -dlpreopen.
6545 if test "$pass" = dlpreopen; then 5439 if test "$pass" = dlpreopen; then
6546 if test -z "$libdir" && test "$linkmode" = prog; then 5440 if test -z "$libdir" && test "$linkmode" = prog; then
6547 func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'" 5441 func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'"
6548 fi 5442 fi
6549 case "$host" in 5443 # Prefer using a static library (so that no silly _DYNAMIC symbols
6550 # special handling for platforms with PE-DLLs. 5444 # are required to link).
6551 *cygwin* | *mingw* | *cegcc* ) 5445 if test -n "$old_library"; then
6552 # Linker will automatically link against shared library if both 5446 newdlprefiles="$newdlprefiles $dir/$old_library"
6553 # static and shared are present. Therefore, ensure we extract 5447 # Keep a list of preopened convenience libraries to check
6554 # symbols from the import library if a shared library is present 5448 # that they are being used correctly in the link pass.
6555 # (otherwise, the dlopen module name will be incorrect). We do 5449 test -z "$libdir" && \
6556 # this by putting the import library name into $newdlprefiles. 5450 dlpreconveniencelibs="$dlpreconveniencelibs $dir/$old_library"
6557 # We recover the dlopen module name by 'saving' the la file 5451 # Otherwise, use the dlname, so that lt_dlopen finds it.
6558 # name in a special purpose variable, and (later) extracting the 5452 elif test -n "$dlname"; then
6559 # dlname from the la file. 5453 newdlprefiles="$newdlprefiles $dir/$dlname"
6560 if test -n "$dlname"; then 5454 else
6561 func_tr_sh "$dir/$linklib" 5455 newdlprefiles="$newdlprefiles $dir/$linklib"
6562 eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname" 5456 fi
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
6589 fi # $pass = dlpreopen 5457 fi # $pass = dlpreopen
6590 5458
6591 if test -z "$libdir"; then 5459 if test -z "$libdir"; then
6592 # Link the convenience library 5460 # Link the convenience library
6593 if test "$linkmode" = lib; then 5461 if test "$linkmode" = lib; then
6601 continue 5469 continue
6602 fi 5470 fi
6603 5471
6604 5472
6605 if test "$linkmode" = prog && test "$pass" != link; then 5473 if test "$linkmode" = prog && test "$pass" != link; then
6606 func_append newlib_search_path " $ladir" 5474 newlib_search_path="$newlib_search_path $ladir"
6607 deplibs="$lib $deplibs" 5475 deplibs="$lib $deplibs"
6608 5476
6609 linkalldeplibs=no 5477 linkalldeplibs=no
6610 if test "$link_all_deplibs" != no || test -z "$library_names" || 5478 if test "$link_all_deplibs" != no || test -z "$library_names" ||
6611 test "$build_libtool_libs" = no; then 5479 test "$build_libtool_libs" = no; then
6614 5482
6615 tmp_libs= 5483 tmp_libs=
6616 for deplib in $dependency_libs; do 5484 for deplib in $dependency_libs; do
6617 case $deplib in 5485 case $deplib in
6618 -L*) func_stripname '-L' '' "$deplib" 5486 -L*) func_stripname '-L' '' "$deplib"
6619 func_resolve_sysroot "$func_stripname_result" 5487 newlib_search_path="$newlib_search_path $func_stripname_result"
6620 func_append newlib_search_path " $func_resolve_sysroot_result"
6621 ;; 5488 ;;
6622 esac 5489 esac
6623 # Need to link against all dependency_libs? 5490 # Need to link against all dependency_libs?
6624 if test "$linkalldeplibs" = yes; then 5491 if test "$linkalldeplibs" = yes; then
6625 deplibs="$deplib $deplibs" 5492 deplibs="$deplib $deplibs"
6626 else 5493 else
6627 # Need to hardcode shared library paths 5494 # Need to hardcode shared library paths
6628 # or/and link against static libraries 5495 # or/and link against static libraries
6629 newdependency_libs="$deplib $newdependency_libs" 5496 newdependency_libs="$deplib $newdependency_libs"
6630 fi 5497 fi
6631 if $opt_preserve_dup_deps ; then 5498 if $opt_duplicate_deps ; then
6632 case "$tmp_libs " in 5499 case "$tmp_libs " in
6633 *" $deplib "*) func_append specialdeplibs " $deplib" ;; 5500 *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
6634 esac 5501 esac
6635 fi 5502 fi
6636 func_append tmp_libs " $deplib" 5503 tmp_libs="$tmp_libs $deplib"
6637 done # for deplib 5504 done # for deplib
6638 continue 5505 continue
6639 fi # $linkmode = prog... 5506 fi # $linkmode = prog...
6640 5507
6641 if test "$linkmode,$pass" = "prog,link"; then 5508 if test "$linkmode,$pass" = "prog,link"; then
6646 # We need to hardcode the library path 5513 # We need to hardcode the library path
6647 if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then 5514 if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then
6648 # Make sure the rpath contains only unique directories. 5515 # Make sure the rpath contains only unique directories.
6649 case "$temp_rpath:" in 5516 case "$temp_rpath:" in
6650 *"$absdir:"*) ;; 5517 *"$absdir:"*) ;;
6651 *) func_append temp_rpath "$absdir:" ;; 5518 *) temp_rpath="$temp_rpath$absdir:" ;;
6652 esac 5519 esac
6653 fi 5520 fi
6654 5521
6655 # Hardcode the library path. 5522 # Hardcode the library path.
6656 # Skip directories that are in the system default run-time 5523 # Skip directories that are in the system default run-time
6658 case " $sys_lib_dlsearch_path " in 5525 case " $sys_lib_dlsearch_path " in
6659 *" $absdir "*) ;; 5526 *" $absdir "*) ;;
6660 *) 5527 *)
6661 case "$compile_rpath " in 5528 case "$compile_rpath " in
6662 *" $absdir "*) ;; 5529 *" $absdir "*) ;;
6663 *) func_append compile_rpath " $absdir" ;; 5530 *) compile_rpath="$compile_rpath $absdir"
6664 esac 5531 esac
6665 ;; 5532 ;;
6666 esac 5533 esac
6667 case " $sys_lib_dlsearch_path " in 5534 case " $sys_lib_dlsearch_path " in
6668 *" $libdir "*) ;; 5535 *" $libdir "*) ;;
6669 *) 5536 *)
6670 case "$finalize_rpath " in 5537 case "$finalize_rpath " in
6671 *" $libdir "*) ;; 5538 *" $libdir "*) ;;
6672 *) func_append finalize_rpath " $libdir" ;; 5539 *) finalize_rpath="$finalize_rpath $libdir"
6673 esac 5540 esac
6674 ;; 5541 ;;
6675 esac 5542 esac
6676 fi # $linkmode,$pass = prog,link... 5543 fi # $linkmode,$pass = prog,link...
6677 5544
6692 if test -n "$library_names" && 5559 if test -n "$library_names" &&
6693 { test "$use_static_libs" = no || test -z "$old_library"; }; then 5560 { test "$use_static_libs" = no || test -z "$old_library"; }; then
6694 case $host in 5561 case $host in
6695 *cygwin* | *mingw* | *cegcc*) 5562 *cygwin* | *mingw* | *cegcc*)
6696 # No point in relinking DLLs because paths are not encoded 5563 # No point in relinking DLLs because paths are not encoded
6697 func_append notinst_deplibs " $lib" 5564 notinst_deplibs="$notinst_deplibs $lib"
6698 need_relink=no 5565 need_relink=no
6699 ;; 5566 ;;
6700 *) 5567 *)
6701 if test "$installed" = no; then 5568 if test "$installed" = no; then
6702 func_append notinst_deplibs " $lib" 5569 notinst_deplibs="$notinst_deplibs $lib"
6703 need_relink=yes 5570 need_relink=yes
6704 fi 5571 fi
6705 ;; 5572 ;;
6706 esac 5573 esac
6707 # This is a shared library 5574 # This is a shared library
6714 dlopenmodule="$dlpremoduletest" 5581 dlopenmodule="$dlpremoduletest"
6715 break 5582 break
6716 fi 5583 fi
6717 done 5584 done
6718 if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then 5585 if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then
6719 echo 5586 $ECHO
6720 if test "$linkmode" = prog; then 5587 if test "$linkmode" = prog; then
6721 $ECHO "*** Warning: Linking the executable $output against the loadable module" 5588 $ECHO "*** Warning: Linking the executable $output against the loadable module"
6722 else 5589 else
6723 $ECHO "*** Warning: Linking the shared library $output against the loadable module" 5590 $ECHO "*** Warning: Linking the shared library $output against the loadable module"
6724 fi 5591 fi
6732 case " $sys_lib_dlsearch_path " in 5599 case " $sys_lib_dlsearch_path " in
6733 *" $absdir "*) ;; 5600 *" $absdir "*) ;;
6734 *) 5601 *)
6735 case "$compile_rpath " in 5602 case "$compile_rpath " in
6736 *" $absdir "*) ;; 5603 *" $absdir "*) ;;
6737 *) func_append compile_rpath " $absdir" ;; 5604 *) compile_rpath="$compile_rpath $absdir"
6738 esac 5605 esac
6739 ;; 5606 ;;
6740 esac 5607 esac
6741 case " $sys_lib_dlsearch_path " in 5608 case " $sys_lib_dlsearch_path " in
6742 *" $libdir "*) ;; 5609 *" $libdir "*) ;;
6743 *) 5610 *)
6744 case "$finalize_rpath " in 5611 case "$finalize_rpath " in
6745 *" $libdir "*) ;; 5612 *" $libdir "*) ;;
6746 *) func_append finalize_rpath " $libdir" ;; 5613 *) finalize_rpath="$finalize_rpath $libdir"
6747 esac 5614 esac
6748 ;; 5615 ;;
6749 esac 5616 esac
6750 fi 5617 fi
6751 5618
6795 # make sure the library variables are pointing to the new library 5662 # make sure the library variables are pointing to the new library
6796 dir=$output_objdir 5663 dir=$output_objdir
6797 linklib=$newlib 5664 linklib=$newlib
6798 fi # test -n "$old_archive_from_expsyms_cmds" 5665 fi # test -n "$old_archive_from_expsyms_cmds"
6799 5666
6800 if test "$linkmode" = prog || test "$opt_mode" != relink; then 5667 if test "$linkmode" = prog || test "$mode" != relink; then
6801 add_shlibpath= 5668 add_shlibpath=
6802 add_dir= 5669 add_dir=
6803 add= 5670 add=
6804 lib_linked=yes 5671 lib_linked=yes
6805 case $hardcode_action in 5672 case $hardcode_action in
6817 if /usr/bin/file -L $add 2> /dev/null | 5684 if /usr/bin/file -L $add 2> /dev/null |
6818 $GREP ": [^:]* bundle" >/dev/null ; then 5685 $GREP ": [^:]* bundle" >/dev/null ; then
6819 if test "X$dlopenmodule" != "X$lib"; then 5686 if test "X$dlopenmodule" != "X$lib"; then
6820 $ECHO "*** Warning: lib $linklib is a module, not a shared library" 5687 $ECHO "*** Warning: lib $linklib is a module, not a shared library"
6821 if test -z "$old_library" ; then 5688 if test -z "$old_library" ; then
6822 echo 5689 $ECHO
6823 echo "*** And there doesn't seem to be a static archive available" 5690 $ECHO "*** And there doesn't seem to be a static archive available"
6824 echo "*** The link will probably fail, sorry" 5691 $ECHO "*** The link will probably fail, sorry"
6825 else 5692 else
6826 add="$dir/$old_library" 5693 add="$dir/$old_library"
6827 fi 5694 fi
6828 elif test -n "$old_library"; then 5695 elif test -n "$old_library"; then
6829 add="$dir/$old_library" 5696 add="$dir/$old_library"
6846 relink) 5713 relink)
6847 if test "$hardcode_direct" = yes && 5714 if test "$hardcode_direct" = yes &&
6848 test "$hardcode_direct_absolute" = no; then 5715 test "$hardcode_direct_absolute" = no; then
6849 add="$dir/$linklib" 5716 add="$dir/$linklib"
6850 elif test "$hardcode_minus_L" = yes; then 5717 elif test "$hardcode_minus_L" = yes; then
6851 add_dir="-L$absdir" 5718 add_dir="-L$dir"
6852 # Try looking first in the location we're being installed to. 5719 # Try looking first in the location we're being installed to.
6853 if test -n "$inst_prefix_dir"; then 5720 if test -n "$inst_prefix_dir"; then
6854 case $libdir in 5721 case $libdir in
6855 [\\/]*) 5722 [\\/]*)
6856 func_append add_dir " -L$inst_prefix_dir$libdir" 5723 add_dir="$add_dir -L$inst_prefix_dir$libdir"
6857 ;; 5724 ;;
6858 esac 5725 esac
6859 fi 5726 fi
6860 add="-l$name" 5727 add="-l$name"
6861 elif test "$hardcode_shlibpath_var" = yes; then 5728 elif test "$hardcode_shlibpath_var" = yes; then
6873 fi 5740 fi
6874 5741
6875 if test -n "$add_shlibpath"; then 5742 if test -n "$add_shlibpath"; then
6876 case :$compile_shlibpath: in 5743 case :$compile_shlibpath: in
6877 *":$add_shlibpath:"*) ;; 5744 *":$add_shlibpath:"*) ;;
6878 *) func_append compile_shlibpath "$add_shlibpath:" ;; 5745 *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;;
6879 esac 5746 esac
6880 fi 5747 fi
6881 if test "$linkmode" = prog; then 5748 if test "$linkmode" = prog; then
6882 test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" 5749 test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
6883 test -n "$add" && compile_deplibs="$add $compile_deplibs" 5750 test -n "$add" && compile_deplibs="$add $compile_deplibs"
6887 if test "$hardcode_direct" != yes && 5754 if test "$hardcode_direct" != yes &&
6888 test "$hardcode_minus_L" != yes && 5755 test "$hardcode_minus_L" != yes &&
6889 test "$hardcode_shlibpath_var" = yes; then 5756 test "$hardcode_shlibpath_var" = yes; then
6890 case :$finalize_shlibpath: in 5757 case :$finalize_shlibpath: in
6891 *":$libdir:"*) ;; 5758 *":$libdir:"*) ;;
6892 *) func_append finalize_shlibpath "$libdir:" ;; 5759 *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
6893 esac 5760 esac
6894 fi 5761 fi
6895 fi 5762 fi
6896 fi 5763 fi
6897 5764
6898 if test "$linkmode" = prog || test "$opt_mode" = relink; then 5765 if test "$linkmode" = prog || test "$mode" = relink; then
6899 add_shlibpath= 5766 add_shlibpath=
6900 add_dir= 5767 add_dir=
6901 add= 5768 add=
6902 # Finalize command for both is simple: just hardcode it. 5769 # Finalize command for both is simple: just hardcode it.
6903 if test "$hardcode_direct" = yes && 5770 if test "$hardcode_direct" = yes &&
6907 add_dir="-L$libdir" 5774 add_dir="-L$libdir"
6908 add="-l$name" 5775 add="-l$name"
6909 elif test "$hardcode_shlibpath_var" = yes; then 5776 elif test "$hardcode_shlibpath_var" = yes; then
6910 case :$finalize_shlibpath: in 5777 case :$finalize_shlibpath: in
6911 *":$libdir:"*) ;; 5778 *":$libdir:"*) ;;
6912 *) func_append finalize_shlibpath "$libdir:" ;; 5779 *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
6913 esac 5780 esac
6914 add="-l$name" 5781 add="-l$name"
6915 elif test "$hardcode_automatic" = yes; then 5782 elif test "$hardcode_automatic" = yes; then
6916 if test -n "$inst_prefix_dir" && 5783 if test -n "$inst_prefix_dir" &&
6917 test -f "$inst_prefix_dir$libdir/$linklib" ; then 5784 test -f "$inst_prefix_dir$libdir/$linklib" ; then
6924 add_dir="-L$libdir" 5791 add_dir="-L$libdir"
6925 # Try looking first in the location we're being installed to. 5792 # Try looking first in the location we're being installed to.
6926 if test -n "$inst_prefix_dir"; then 5793 if test -n "$inst_prefix_dir"; then
6927 case $libdir in 5794 case $libdir in
6928 [\\/]*) 5795 [\\/]*)
6929 func_append add_dir " -L$inst_prefix_dir$libdir" 5796 add_dir="$add_dir -L$inst_prefix_dir$libdir"
6930 ;; 5797 ;;
6931 esac 5798 esac
6932 fi 5799 fi
6933 add="-l$name" 5800 add="-l$name"
6934 fi 5801 fi
6959 # We're trying link a shared library against a static one 5826 # We're trying link a shared library against a static one
6960 # but the system doesn't support it. 5827 # but the system doesn't support it.
6961 5828
6962 # Just print a warning and add the library to dependency_libs so 5829 # Just print a warning and add the library to dependency_libs so
6963 # that the program can be linked against the static library. 5830 # that the program can be linked against the static library.
6964 echo 5831 $ECHO
6965 $ECHO "*** Warning: This system can not link to static lib archive $lib." 5832 $ECHO "*** Warning: This system can not link to static lib archive $lib."
6966 echo "*** I have the capability to make that library automatically link in when" 5833 $ECHO "*** I have the capability to make that library automatically link in when"
6967 echo "*** you link to this library. But I can only do this if you have a" 5834 $ECHO "*** you link to this library. But I can only do this if you have a"
6968 echo "*** shared version of the library, which you do not appear to have." 5835 $ECHO "*** shared version of the library, which you do not appear to have."
6969 if test "$module" = yes; then 5836 if test "$module" = yes; then
6970 echo "*** But as you try to build a module library, libtool will still create " 5837 $ECHO "*** But as you try to build a module library, libtool will still create "
6971 echo "*** a static module, that should work as long as the dlopening application" 5838 $ECHO "*** a static module, that should work as long as the dlopening application"
6972 echo "*** is linked with the -dlopen flag to resolve symbols at runtime." 5839 $ECHO "*** is linked with the -dlopen flag to resolve symbols at runtime."
6973 if test -z "$global_symbol_pipe"; then 5840 if test -z "$global_symbol_pipe"; then
6974 echo 5841 $ECHO
6975 echo "*** However, this would only work if libtool was able to extract symbol" 5842 $ECHO "*** However, this would only work if libtool was able to extract symbol"
6976 echo "*** lists from a program, using \`nm' or equivalent, but libtool could" 5843 $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could"
6977 echo "*** not find such a program. So, this module is probably useless." 5844 $ECHO "*** not find such a program. So, this module is probably useless."
6978 echo "*** \`nm' from GNU binutils and a full rebuild may help." 5845 $ECHO "*** \`nm' from GNU binutils and a full rebuild may help."
6979 fi 5846 fi
6980 if test "$build_old_libs" = no; then 5847 if test "$build_old_libs" = no; then
6981 build_libtool_libs=module 5848 build_libtool_libs=module
6982 build_old_libs=yes 5849 build_old_libs=yes
6983 else 5850 else
7001 case $libdir in 5868 case $libdir in
7002 -R*) func_stripname '-R' '' "$libdir" 5869 -R*) func_stripname '-R' '' "$libdir"
7003 temp_xrpath=$func_stripname_result 5870 temp_xrpath=$func_stripname_result
7004 case " $xrpath " in 5871 case " $xrpath " in
7005 *" $temp_xrpath "*) ;; 5872 *" $temp_xrpath "*) ;;
7006 *) func_append xrpath " $temp_xrpath";; 5873 *) xrpath="$xrpath $temp_xrpath";;
7007 esac;; 5874 esac;;
7008 *) func_append temp_deplibs " $libdir";; 5875 *) temp_deplibs="$temp_deplibs $libdir";;
7009 esac 5876 esac
7010 done 5877 done
7011 dependency_libs="$temp_deplibs" 5878 dependency_libs="$temp_deplibs"
7012 fi 5879 fi
7013 5880
7014 func_append newlib_search_path " $absdir" 5881 newlib_search_path="$newlib_search_path $absdir"
7015 # Link against this library 5882 # Link against this library
7016 test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" 5883 test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
7017 # ... and its dependency_libs 5884 # ... and its dependency_libs
7018 tmp_libs= 5885 tmp_libs=
7019 for deplib in $dependency_libs; do 5886 for deplib in $dependency_libs; do
7020 newdependency_libs="$deplib $newdependency_libs" 5887 newdependency_libs="$deplib $newdependency_libs"
7021 case $deplib in 5888 if $opt_duplicate_deps ; then
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
7027 case "$tmp_libs " in 5889 case "$tmp_libs " in
7028 *" $func_resolve_sysroot_result "*) 5890 *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
7029 func_append specialdeplibs " $func_resolve_sysroot_result" ;;
7030 esac 5891 esac
7031 fi 5892 fi
7032 func_append tmp_libs " $func_resolve_sysroot_result" 5893 tmp_libs="$tmp_libs $deplib"
7033 done 5894 done
7034 5895
7035 if test "$link_all_deplibs" != no; then 5896 if test "$link_all_deplibs" != no; then
7036 # Add the search paths of all dependency libraries 5897 # Add the search paths of all dependency libraries
7037 for deplib in $dependency_libs; do 5898 for deplib in $dependency_libs; do
7038 path= 5899 path=
7039 case $deplib in 5900 case $deplib in
7040 -L*) path="$deplib" ;; 5901 -L*) path="$deplib" ;;
7041 *.la) 5902 *.la)
7042 func_resolve_sysroot "$deplib"
7043 deplib=$func_resolve_sysroot_result
7044 func_dirname "$deplib" "" "." 5903 func_dirname "$deplib" "" "."
7045 dir=$func_dirname_result 5904 dir="$func_dirname_result"
7046 # We need an absolute path. 5905 # We need an absolute path.
7047 case $dir in 5906 case $dir in
7048 [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; 5907 [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
7049 *) 5908 *)
7050 absdir=`cd "$dir" && pwd` 5909 absdir=`cd "$dir" && pwd`
7067 depdepl="$absdir/$objdir/$depdepl" 5926 depdepl="$absdir/$objdir/$depdepl"
7068 darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` 5927 darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'`
7069 if test -z "$darwin_install_name"; then 5928 if test -z "$darwin_install_name"; then
7070 darwin_install_name=`${OTOOL64} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` 5929 darwin_install_name=`${OTOOL64} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'`
7071 fi 5930 fi
7072 func_append compiler_flags " ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}" 5931 compiler_flags="$compiler_flags ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}"
7073 func_append linker_flags " -dylib_file ${darwin_install_name}:${depdepl}" 5932 linker_flags="$linker_flags -dylib_file ${darwin_install_name}:${depdepl}"
7074 path= 5933 path=
7075 fi 5934 fi
7076 fi 5935 fi
7077 ;; 5936 ;;
7078 *) 5937 *)
7101 if test "$pass" = link; then 5960 if test "$pass" = link; then
7102 if test "$linkmode" = "prog"; then 5961 if test "$linkmode" = "prog"; then
7103 compile_deplibs="$new_inherited_linker_flags $compile_deplibs" 5962 compile_deplibs="$new_inherited_linker_flags $compile_deplibs"
7104 finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" 5963 finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs"
7105 else 5964 else
7106 compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` 5965 compiler_flags="$compiler_flags "`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
7107 fi 5966 fi
7108 fi 5967 fi
7109 dependency_libs="$newdependency_libs" 5968 dependency_libs="$newdependency_libs"
7110 if test "$pass" = dlpreopen; then 5969 if test "$pass" = dlpreopen; then
7111 # Link the dlpreopened libraries before other libraries 5970 # Link the dlpreopened libraries before other libraries
7118 # Make sure lib_search_path contains only unique directories. 5977 # Make sure lib_search_path contains only unique directories.
7119 lib_search_path= 5978 lib_search_path=
7120 for dir in $newlib_search_path; do 5979 for dir in $newlib_search_path; do
7121 case "$lib_search_path " in 5980 case "$lib_search_path " in
7122 *" $dir "*) ;; 5981 *" $dir "*) ;;
7123 *) func_append lib_search_path " $dir" ;; 5982 *) lib_search_path="$lib_search_path $dir" ;;
7124 esac 5983 esac
7125 done 5984 done
7126 newlib_search_path= 5985 newlib_search_path=
7127 fi 5986 fi
7128 5987
7176 for deplib in $new_libs; do 6035 for deplib in $new_libs; do
7177 case $deplib in 6036 case $deplib in
7178 -L*) 6037 -L*)
7179 case " $tmp_libs " in 6038 case " $tmp_libs " in
7180 *" $deplib "*) ;; 6039 *" $deplib "*) ;;
7181 *) func_append tmp_libs " $deplib" ;; 6040 *) tmp_libs="$tmp_libs $deplib" ;;
7182 esac 6041 esac
7183 ;; 6042 ;;
7184 *) func_append tmp_libs " $deplib" ;; 6043 *) tmp_libs="$tmp_libs $deplib" ;;
7185 esac 6044 esac
7186 done 6045 done
7187 eval $var=\"$tmp_libs\" 6046 eval $var=\"$tmp_libs\"
7188 done # for var 6047 done # for var
7189 fi 6048 fi
7195 *" $i "*) 6054 *" $i "*)
7196 i="" 6055 i=""
7197 ;; 6056 ;;
7198 esac 6057 esac
7199 if test -n "$i" ; then 6058 if test -n "$i" ; then
7200 func_append tmp_libs " $i" 6059 tmp_libs="$tmp_libs $i"
7201 fi 6060 fi
7202 done 6061 done
7203 dependency_libs=$tmp_libs 6062 dependency_libs=$tmp_libs
7204 done # for pass 6063 done # for pass
7205 if test "$linkmode" = prog; then 6064 if test "$linkmode" = prog; then
7236 func_warning "\`-export-symbols' is ignored for archives" 6095 func_warning "\`-export-symbols' is ignored for archives"
7237 6096
7238 # Now set the variables for building old libraries. 6097 # Now set the variables for building old libraries.
7239 build_libtool_libs=no 6098 build_libtool_libs=no
7240 oldlibs="$output" 6099 oldlibs="$output"
7241 func_append objs "$old_deplibs" 6100 objs="$objs$old_deplibs"
7242 ;; 6101 ;;
7243 6102
7244 lib) 6103 lib)
7245 # Make sure we only generate libraries of the form `libNAME.la'. 6104 # Make sure we only generate libraries of the form `libNAME.la'.
7246 case $outputname in 6105 case $outputname in
7269 6128
7270 if test -n "$objs"; then 6129 if test -n "$objs"; then
7271 if test "$deplibs_check_method" != pass_all; then 6130 if test "$deplibs_check_method" != pass_all; then
7272 func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 6131 func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs"
7273 else 6132 else
7274 echo 6133 $ECHO
7275 $ECHO "*** Warning: Linking the shared library $output against the non-libtool" 6134 $ECHO "*** Warning: Linking the shared library $output against the non-libtool"
7276 $ECHO "*** objects $objs is not portable!" 6135 $ECHO "*** objects $objs is not portable!"
7277 func_append libobjs " $objs" 6136 libobjs="$libobjs $objs"
7278 fi 6137 fi
7279 fi 6138 fi
7280 6139
7281 test "$dlself" != no && \ 6140 test "$dlself" != no && \
7282 func_warning "\`-dlopen self' is ignored for libtool libraries" 6141 func_warning "\`-dlopen self' is ignored for libtool libraries"
7331 # and those that subtract age and use age as 6190 # and those that subtract age and use age as
7332 # a minor version. But, then there is irix 6191 # a minor version. But, then there is irix
7333 # which has an extra 1 added just for fun 6192 # which has an extra 1 added just for fun
7334 # 6193 #
7335 case $version_type in 6194 case $version_type in
7336 # correct linux to gnu/linux during the next big refactor
7337 darwin|linux|osf|windows|none) 6195 darwin|linux|osf|windows|none)
7338 func_arith $number_major + $number_minor 6196 func_arith $number_major + $number_minor
7339 current=$func_arith_result 6197 current=$func_arith_result
7340 age="$number_minor" 6198 age="$number_minor"
7341 revision="$number_revision" 6199 revision="$number_revision"
7342 ;; 6200 ;;
7343 freebsd-aout|freebsd-elf|qnx|sunos) 6201 freebsd-aout|freebsd-elf|sunos)
7344 current="$number_major" 6202 current="$number_major"
7345 revision="$number_minor" 6203 revision="$number_minor"
7346 age="0" 6204 age="0"
7347 ;; 6205 ;;
7348 irix|nonstopux) 6206 irix|nonstopux)
7451 # Before this point, $major must not contain `.'. 6309 # Before this point, $major must not contain `.'.
7452 major=.$major 6310 major=.$major
7453 versuffix="$major.$revision" 6311 versuffix="$major.$revision"
7454 ;; 6312 ;;
7455 6313
7456 linux) # correct to gnu/linux during the next big refactor 6314 linux)
7457 func_arith $current - $age 6315 func_arith $current - $age
7458 major=.$func_arith_result 6316 major=.$func_arith_result
7459 versuffix="$major.$age.$revision" 6317 versuffix="$major.$age.$revision"
7460 ;; 6318 ;;
7461 6319
7474 loop=$func_arith_result 6332 loop=$func_arith_result
7475 verstring="$verstring:${iface}.0" 6333 verstring="$verstring:${iface}.0"
7476 done 6334 done
7477 6335
7478 # Make executables depend on our current version. 6336 # Make executables depend on our current version.
7479 func_append verstring ":${current}.0" 6337 verstring="$verstring:${current}.0"
7480 ;; 6338 ;;
7481 6339
7482 qnx) 6340 qnx)
7483 major=".$current" 6341 major=".$current"
7484 versuffix=".$current" 6342 versuffix=".$current"
7542 fi 6400 fi
7543 6401
7544 fi 6402 fi
7545 6403
7546 func_generate_dlsyms "$libname" "$libname" "yes" 6404 func_generate_dlsyms "$libname" "$libname" "yes"
7547 func_append libobjs " $symfileobj" 6405 libobjs="$libobjs $symfileobj"
7548 test "X$libobjs" = "X " && libobjs= 6406 test "X$libobjs" = "X " && libobjs=
7549 6407
7550 if test "$opt_mode" != relink; then 6408 if test "$mode" != relink; then
7551 # Remove our outputs, but don't remove object files since they 6409 # Remove our outputs, but don't remove object files since they
7552 # may have been created when compiling PIC objects. 6410 # may have been created when compiling PIC objects.
7553 removelist= 6411 removelist=
7554 tempremovelist=`$ECHO "$output_objdir/*"` 6412 tempremovelist=`$ECHO "$output_objdir/*"`
7555 for p in $tempremovelist; do 6413 for p in $tempremovelist; do
7561 if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 6419 if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1
7562 then 6420 then
7563 continue 6421 continue
7564 fi 6422 fi
7565 fi 6423 fi
7566 func_append removelist " $p" 6424 removelist="$removelist $p"
7567 ;; 6425 ;;
7568 *) ;; 6426 *) ;;
7569 esac 6427 esac
7570 done 6428 done
7571 test -n "$removelist" && \ 6429 test -n "$removelist" && \
7572 func_show_eval "${RM}r \$removelist" 6430 func_show_eval "${RM}r \$removelist"
7573 fi 6431 fi
7574 6432
7575 # Now set the variables for building old libraries. 6433 # Now set the variables for building old libraries.
7576 if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then 6434 if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
7577 func_append oldlibs " $output_objdir/$libname.$libext" 6435 oldlibs="$oldlibs $output_objdir/$libname.$libext"
7578 6436
7579 # Transform .lo files to .o files. 6437 # Transform .lo files to .o files.
7580 oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; $lo2o" | $NL2SP` 6438 oldobjs="$objs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
7581 fi 6439 fi
7582 6440
7583 # Eliminate all temporary directories. 6441 # Eliminate all temporary directories.
7584 #for path in $notinst_path; do 6442 #for path in $notinst_path; do
7585 # lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"` 6443 # lib_search_path=`$ECHO "X$lib_search_path " | $Xsed -e "s% $path % %g"`
7586 # deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"` 6444 # deplibs=`$ECHO "X$deplibs " | $Xsed -e "s% -L$path % %g"`
7587 # dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"` 6445 # dependency_libs=`$ECHO "X$dependency_libs " | $Xsed -e "s% -L$path % %g"`
7588 #done 6446 #done
7589 6447
7590 if test -n "$xrpath"; then 6448 if test -n "$xrpath"; then
7591 # If the user specified any rpath flags, then add them. 6449 # If the user specified any rpath flags, then add them.
7592 temp_xrpath= 6450 temp_xrpath=
7593 for libdir in $xrpath; do 6451 for libdir in $xrpath; do
7594 func_replace_sysroot "$libdir" 6452 temp_xrpath="$temp_xrpath -R$libdir"
7595 func_append temp_xrpath " -R$func_replace_sysroot_result"
7596 case "$finalize_rpath " in 6453 case "$finalize_rpath " in
7597 *" $libdir "*) ;; 6454 *" $libdir "*) ;;
7598 *) func_append finalize_rpath " $libdir" ;; 6455 *) finalize_rpath="$finalize_rpath $libdir" ;;
7599 esac 6456 esac
7600 done 6457 done
7601 if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then 6458 if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
7602 dependency_libs="$temp_xrpath $dependency_libs" 6459 dependency_libs="$temp_xrpath $dependency_libs"
7603 fi 6460 fi
7607 old_dlfiles="$dlfiles" 6464 old_dlfiles="$dlfiles"
7608 dlfiles= 6465 dlfiles=
7609 for lib in $old_dlfiles; do 6466 for lib in $old_dlfiles; do
7610 case " $dlprefiles $dlfiles " in 6467 case " $dlprefiles $dlfiles " in
7611 *" $lib "*) ;; 6468 *" $lib "*) ;;
7612 *) func_append dlfiles " $lib" ;; 6469 *) dlfiles="$dlfiles $lib" ;;
7613 esac 6470 esac
7614 done 6471 done
7615 6472
7616 # Make sure dlprefiles contains only unique files 6473 # Make sure dlprefiles contains only unique files
7617 old_dlprefiles="$dlprefiles" 6474 old_dlprefiles="$dlprefiles"
7618 dlprefiles= 6475 dlprefiles=
7619 for lib in $old_dlprefiles; do 6476 for lib in $old_dlprefiles; do
7620 case "$dlprefiles " in 6477 case "$dlprefiles " in
7621 *" $lib "*) ;; 6478 *" $lib "*) ;;
7622 *) func_append dlprefiles " $lib" ;; 6479 *) dlprefiles="$dlprefiles $lib" ;;
7623 esac 6480 esac
7624 done 6481 done
7625 6482
7626 if test "$build_libtool_libs" = yes; then 6483 if test "$build_libtool_libs" = yes; then
7627 if test -n "$rpath"; then 6484 if test -n "$rpath"; then
7628 case $host in 6485 case $host in
7629 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*) 6486 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc*)
7630 # these systems don't actually have a c library (as such)! 6487 # these systems don't actually have a c library (as such)!
7631 ;; 6488 ;;
7632 *-*-rhapsody* | *-*-darwin1.[012]) 6489 *-*-rhapsody* | *-*-darwin1.[012])
7633 # Rhapsody C library is in the System framework 6490 # Rhapsody C library is in the System framework
7634 func_append deplibs " System.ltframework" 6491 deplibs="$deplibs System.ltframework"
7635 ;; 6492 ;;
7636 *-*-netbsd*) 6493 *-*-netbsd*)
7637 # Don't link with libc until the a.out ld.so is fixed. 6494 # Don't link with libc until the a.out ld.so is fixed.
7638 ;; 6495 ;;
7639 *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) 6496 *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
7646 # Compiler inserts libc in the correct place for threads to work 6503 # Compiler inserts libc in the correct place for threads to work
7647 ;; 6504 ;;
7648 *) 6505 *)
7649 # Add libc to deplibs on all other systems if necessary. 6506 # Add libc to deplibs on all other systems if necessary.
7650 if test "$build_libtool_need_lc" = "yes"; then 6507 if test "$build_libtool_need_lc" = "yes"; then
7651 func_append deplibs " -lc" 6508 deplibs="$deplibs -lc"
7652 fi 6509 fi
7653 ;; 6510 ;;
7654 esac 6511 esac
7655 fi 6512 fi
7656 6513
7695 func_stripname -l '' "$i" 6552 func_stripname -l '' "$i"
7696 name=$func_stripname_result 6553 name=$func_stripname_result
7697 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then 6554 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
7698 case " $predeps $postdeps " in 6555 case " $predeps $postdeps " in
7699 *" $i "*) 6556 *" $i "*)
7700 func_append newdeplibs " $i" 6557 newdeplibs="$newdeplibs $i"
7701 i="" 6558 i=""
7702 ;; 6559 ;;
7703 esac 6560 esac
7704 fi 6561 fi
7705 if test -n "$i" ; then 6562 if test -n "$i" ; then
7706 libname=`eval "\\$ECHO \"$libname_spec\""` 6563 libname=`eval "\\$ECHO \"$libname_spec\""`
7707 deplib_matches=`eval "\\$ECHO \"$library_names_spec\""` 6564 deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
7708 set dummy $deplib_matches; shift 6565 set dummy $deplib_matches; shift
7709 deplib_match=$1 6566 deplib_match=$1
7710 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then 6567 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
7711 func_append newdeplibs " $i" 6568 newdeplibs="$newdeplibs $i"
7712 else 6569 else
7713 droppeddeps=yes 6570 droppeddeps=yes
7714 echo 6571 $ECHO
7715 $ECHO "*** Warning: dynamic linker does not accept needed library $i." 6572 $ECHO "*** Warning: dynamic linker does not accept needed library $i."
7716 echo "*** I have the capability to make that library automatically link in when" 6573 $ECHO "*** I have the capability to make that library automatically link in when"
7717 echo "*** you link to this library. But I can only do this if you have a" 6574 $ECHO "*** you link to this library. But I can only do this if you have a"
7718 echo "*** shared version of the library, which I believe you do not have" 6575 $ECHO "*** shared version of the library, which I believe you do not have"
7719 echo "*** because a test_compile did reveal that the linker did not use it for" 6576 $ECHO "*** because a test_compile did reveal that the linker did not use it for"
7720 echo "*** its dynamic dependency list that programs get resolved with at runtime." 6577 $ECHO "*** its dynamic dependency list that programs get resolved with at runtime."
7721 fi 6578 fi
7722 fi 6579 fi
7723 ;; 6580 ;;
7724 *) 6581 *)
7725 func_append newdeplibs " $i" 6582 newdeplibs="$newdeplibs $i"
7726 ;; 6583 ;;
7727 esac 6584 esac
7728 done 6585 done
7729 else 6586 else
7730 # Error occurred in the first compile. Let's try to salvage 6587 # Error occurred in the first compile. Let's try to salvage
7738 if $LTCC $LTCFLAGS -o conftest conftest.c $i; then 6595 if $LTCC $LTCFLAGS -o conftest conftest.c $i; then
7739 ldd_output=`ldd conftest` 6596 ldd_output=`ldd conftest`
7740 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then 6597 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
7741 case " $predeps $postdeps " in 6598 case " $predeps $postdeps " in
7742 *" $i "*) 6599 *" $i "*)
7743 func_append newdeplibs " $i" 6600 newdeplibs="$newdeplibs $i"
7744 i="" 6601 i=""
7745 ;; 6602 ;;
7746 esac 6603 esac
7747 fi 6604 fi
7748 if test -n "$i" ; then 6605 if test -n "$i" ; then
7749 libname=`eval "\\$ECHO \"$libname_spec\""` 6606 libname=`eval "\\$ECHO \"$libname_spec\""`
7750 deplib_matches=`eval "\\$ECHO \"$library_names_spec\""` 6607 deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
7751 set dummy $deplib_matches; shift 6608 set dummy $deplib_matches; shift
7752 deplib_match=$1 6609 deplib_match=$1
7753 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then 6610 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
7754 func_append newdeplibs " $i" 6611 newdeplibs="$newdeplibs $i"
7755 else 6612 else
7756 droppeddeps=yes 6613 droppeddeps=yes
7757 echo 6614 $ECHO
7758 $ECHO "*** Warning: dynamic linker does not accept needed library $i." 6615 $ECHO "*** Warning: dynamic linker does not accept needed library $i."
7759 echo "*** I have the capability to make that library automatically link in when" 6616 $ECHO "*** I have the capability to make that library automatically link in when"
7760 echo "*** you link to this library. But I can only do this if you have a" 6617 $ECHO "*** you link to this library. But I can only do this if you have a"
7761 echo "*** shared version of the library, which you do not appear to have" 6618 $ECHO "*** shared version of the library, which you do not appear to have"
7762 echo "*** because a test_compile did reveal that the linker did not use this one" 6619 $ECHO "*** because a test_compile did reveal that the linker did not use this one"
7763 echo "*** as a dynamic dependency that programs can get resolved with at runtime." 6620 $ECHO "*** as a dynamic dependency that programs can get resolved with at runtime."
7764 fi 6621 fi
7765 fi 6622 fi
7766 else 6623 else
7767 droppeddeps=yes 6624 droppeddeps=yes
7768 echo 6625 $ECHO
7769 $ECHO "*** Warning! Library $i is needed by this library but I was not able to" 6626 $ECHO "*** Warning! Library $i is needed by this library but I was not able to"
7770 echo "*** make it link in! You will probably need to install it or some" 6627 $ECHO "*** make it link in! You will probably need to install it or some"
7771 echo "*** library that it depends on before this library will be fully" 6628 $ECHO "*** library that it depends on before this library will be fully"
7772 echo "*** functional. Installing it before continuing would be even better." 6629 $ECHO "*** functional. Installing it before continuing would be even better."
7773 fi 6630 fi
7774 ;; 6631 ;;
7775 *) 6632 *)
7776 func_append newdeplibs " $i" 6633 newdeplibs="$newdeplibs $i"
7777 ;; 6634 ;;
7778 esac 6635 esac
7779 done 6636 done
7780 fi 6637 fi
7781 ;; 6638 ;;
7788 func_stripname -l '' "$a_deplib" 6645 func_stripname -l '' "$a_deplib"
7789 name=$func_stripname_result 6646 name=$func_stripname_result
7790 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then 6647 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
7791 case " $predeps $postdeps " in 6648 case " $predeps $postdeps " in
7792 *" $a_deplib "*) 6649 *" $a_deplib "*)
7793 func_append newdeplibs " $a_deplib" 6650 newdeplibs="$newdeplibs $a_deplib"
7794 a_deplib="" 6651 a_deplib=""
7795 ;; 6652 ;;
7796 esac 6653 esac
7797 fi 6654 fi
7798 if test -n "$a_deplib" ; then 6655 if test -n "$a_deplib" ; then
7799 libname=`eval "\\$ECHO \"$libname_spec\""` 6656 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`
7806 for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do 6657 for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
7807 if test "$want_nocaseglob" = yes; then 6658 potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
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
7814 for potent_lib in $potential_libs; do 6659 for potent_lib in $potential_libs; do
7815 # Follow soft links. 6660 # Follow soft links.
7816 if ls -lLd "$potent_lib" 2>/dev/null | 6661 if ls -lLd "$potent_lib" 2>/dev/null |
7817 $GREP " -> " >/dev/null; then 6662 $GREP " -> " >/dev/null; then
7818 continue 6663 continue
7825 potlib="$potent_lib" 6670 potlib="$potent_lib"
7826 while test -h "$potlib" 2>/dev/null; do 6671 while test -h "$potlib" 2>/dev/null; do
7827 potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` 6672 potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
7828 case $potliblink in 6673 case $potliblink in
7829 [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; 6674 [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
7830 *) potlib=`$ECHO "$potlib" | $SED 's,[^/]*$,,'`"$potliblink";; 6675 *) potlib=`$ECHO "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
7831 esac 6676 esac
7832 done 6677 done
7833 if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | 6678 if eval $file_magic_cmd \"\$potlib\" 2>/dev/null |
7834 $SED -e 10q | 6679 $SED -e 10q |
7835 $EGREP "$file_magic_regex" > /dev/null; then 6680 $EGREP "$file_magic_regex" > /dev/null; then
7836 func_append newdeplibs " $a_deplib" 6681 newdeplibs="$newdeplibs $a_deplib"
7837 a_deplib="" 6682 a_deplib=""
7838 break 2 6683 break 2
7839 fi 6684 fi
7840 done 6685 done
7841 done 6686 done
7842 fi 6687 fi
7843 if test -n "$a_deplib" ; then 6688 if test -n "$a_deplib" ; then
7844 droppeddeps=yes 6689 droppeddeps=yes
7845 echo 6690 $ECHO
7846 $ECHO "*** Warning: linker path does not have real file for library $a_deplib." 6691 $ECHO "*** Warning: linker path does not have real file for library $a_deplib."
7847 echo "*** I have the capability to make that library automatically link in when" 6692 $ECHO "*** I have the capability to make that library automatically link in when"
7848 echo "*** you link to this library. But I can only do this if you have a" 6693 $ECHO "*** you link to this library. But I can only do this if you have a"
7849 echo "*** shared version of the library, which you do not appear to have" 6694 $ECHO "*** shared version of the library, which you do not appear to have"
7850 echo "*** because I did check the linker path looking for a file starting" 6695 $ECHO "*** because I did check the linker path looking for a file starting"
7851 if test -z "$potlib" ; then 6696 if test -z "$potlib" ; then
7852 $ECHO "*** with $libname but no candidates were found. (...for file magic test)" 6697 $ECHO "*** with $libname but no candidates were found. (...for file magic test)"
7853 else 6698 else
7854 $ECHO "*** with $libname and none of the candidates passed a file format test" 6699 $ECHO "*** with $libname and none of the candidates passed a file format test"
7855 $ECHO "*** using a file magic. Last file checked: $potlib" 6700 $ECHO "*** using a file magic. Last file checked: $potlib"
7856 fi 6701 fi
7857 fi 6702 fi
7858 ;; 6703 ;;
7859 *) 6704 *)
7860 # Add a -L argument. 6705 # Add a -L argument.
7861 func_append newdeplibs " $a_deplib" 6706 newdeplibs="$newdeplibs $a_deplib"
7862 ;; 6707 ;;
7863 esac 6708 esac
7864 done # Gone through all deplibs. 6709 done # Gone through all deplibs.
7865 ;; 6710 ;;
7866 match_pattern*) 6711 match_pattern*)
7872 func_stripname -l '' "$a_deplib" 6717 func_stripname -l '' "$a_deplib"
7873 name=$func_stripname_result 6718 name=$func_stripname_result
7874 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then 6719 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
7875 case " $predeps $postdeps " in 6720 case " $predeps $postdeps " in
7876 *" $a_deplib "*) 6721 *" $a_deplib "*)
7877 func_append newdeplibs " $a_deplib" 6722 newdeplibs="$newdeplibs $a_deplib"
7878 a_deplib="" 6723 a_deplib=""
7879 ;; 6724 ;;
7880 esac 6725 esac
7881 fi 6726 fi
7882 if test -n "$a_deplib" ; then 6727 if test -n "$a_deplib" ; then
7883 libname=`eval "\\$ECHO \"$libname_spec\""` 6728 libname=`eval "\\$ECHO \"$libname_spec\""`
7884 for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do 6729 for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
7885 potential_libs=`ls $i/$libname[.-]* 2>/dev/null` 6730 potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
7886 for potent_lib in $potential_libs; do 6731 for potent_lib in $potential_libs; do
7887 potlib="$potent_lib" # see symlink-check above in file_magic test 6732 potlib="$potent_lib" # see symlink-check above in file_magic test
7888 if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \ 6733 if eval "\$ECHO \"X$potent_lib\"" 2>/dev/null | $Xsed -e 10q | \
7889 $EGREP "$match_pattern_regex" > /dev/null; then 6734 $EGREP "$match_pattern_regex" > /dev/null; then
7890 func_append newdeplibs " $a_deplib" 6735 newdeplibs="$newdeplibs $a_deplib"
7891 a_deplib="" 6736 a_deplib=""
7892 break 2 6737 break 2
7893 fi 6738 fi
7894 done 6739 done
7895 done 6740 done
7896 fi 6741 fi
7897 if test -n "$a_deplib" ; then 6742 if test -n "$a_deplib" ; then
7898 droppeddeps=yes 6743 droppeddeps=yes
7899 echo 6744 $ECHO
7900 $ECHO "*** Warning: linker path does not have real file for library $a_deplib." 6745 $ECHO "*** Warning: linker path does not have real file for library $a_deplib."
7901 echo "*** I have the capability to make that library automatically link in when" 6746 $ECHO "*** I have the capability to make that library automatically link in when"
7902 echo "*** you link to this library. But I can only do this if you have a" 6747 $ECHO "*** you link to this library. But I can only do this if you have a"
7903 echo "*** shared version of the library, which you do not appear to have" 6748 $ECHO "*** shared version of the library, which you do not appear to have"
7904 echo "*** because I did check the linker path looking for a file starting" 6749 $ECHO "*** because I did check the linker path looking for a file starting"
7905 if test -z "$potlib" ; then 6750 if test -z "$potlib" ; then
7906 $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)" 6751 $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)"
7907 else 6752 else
7908 $ECHO "*** with $libname and none of the candidates passed a file format test" 6753 $ECHO "*** with $libname and none of the candidates passed a file format test"
7909 $ECHO "*** using a regex pattern. Last file checked: $potlib" 6754 $ECHO "*** using a regex pattern. Last file checked: $potlib"
7910 fi 6755 fi
7911 fi 6756 fi
7912 ;; 6757 ;;
7913 *) 6758 *)
7914 # Add a -L argument. 6759 # Add a -L argument.
7915 func_append newdeplibs " $a_deplib" 6760 newdeplibs="$newdeplibs $a_deplib"
7916 ;; 6761 ;;
7917 esac 6762 esac
7918 done # Gone through all deplibs. 6763 done # Gone through all deplibs.
7919 ;; 6764 ;;
7920 none | unknown | *) 6765 none | unknown | *)
7921 newdeplibs="" 6766 newdeplibs=""
7922 tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'` 6767 tmp_deplibs=`$ECHO "X $deplibs" | $Xsed \
6768 -e 's/ -lc$//' -e 's/ -[LR][^ ]*//g'`
7923 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then 6769 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
7924 for i in $predeps $postdeps ; do 6770 for i in $predeps $postdeps ; do
7925 # can't use Xsed below, because $i might contain '/' 6771 # can't use Xsed below, because $i might contain '/'
7926 tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s,$i,,"` 6772 tmp_deplibs=`$ECHO "X $tmp_deplibs" | $Xsed -e "s,$i,,"`
7927 done 6773 done
7928 fi 6774 fi
7929 case $tmp_deplibs in 6775 if $ECHO "X $tmp_deplibs" | $Xsed -e 's/[ ]//g' |
7930 *[!\ \ ]*) 6776 $GREP . >/dev/null; then
7931 echo 6777 $ECHO
7932 if test "X$deplibs_check_method" = "Xnone"; then 6778 if test "X$deplibs_check_method" = "Xnone"; then
7933 echo "*** Warning: inter-library dependencies are not supported in this platform." 6779 $ECHO "*** Warning: inter-library dependencies are not supported in this platform."
7934 else 6780 else
7935 echo "*** Warning: inter-library dependencies are not known to be supported." 6781 $ECHO "*** Warning: inter-library dependencies are not known to be supported."
7936 fi 6782 fi
7937 echo "*** All declared inter-library dependencies are being dropped." 6783 $ECHO "*** All declared inter-library dependencies are being dropped."
7938 droppeddeps=yes 6784 droppeddeps=yes
7939 ;; 6785 fi
7940 esac
7941 ;; 6786 ;;
7942 esac 6787 esac
7943 versuffix=$versuffix_save 6788 versuffix=$versuffix_save
7944 major=$major_save 6789 major=$major_save
7945 release=$release_save 6790 release=$release_save
7947 name=$name_save 6792 name=$name_save
7948 6793
7949 case $host in 6794 case $host in
7950 *-*-rhapsody* | *-*-darwin1.[012]) 6795 *-*-rhapsody* | *-*-darwin1.[012])
7951 # On Rhapsody replace the C library with the System framework 6796 # On Rhapsody replace the C library with the System framework
7952 newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'` 6797 newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's/ -lc / System.ltframework /'`
7953 ;; 6798 ;;
7954 esac 6799 esac
7955 6800
7956 if test "$droppeddeps" = yes; then 6801 if test "$droppeddeps" = yes; then
7957 if test "$module" = yes; then 6802 if test "$module" = yes; then
7958 echo 6803 $ECHO
7959 echo "*** Warning: libtool could not satisfy all declared inter-library" 6804 $ECHO "*** Warning: libtool could not satisfy all declared inter-library"
7960 $ECHO "*** dependencies of module $libname. Therefore, libtool will create" 6805 $ECHO "*** dependencies of module $libname. Therefore, libtool will create"
7961 echo "*** a static module, that should work as long as the dlopening" 6806 $ECHO "*** a static module, that should work as long as the dlopening"
7962 echo "*** application is linked with the -dlopen flag." 6807 $ECHO "*** application is linked with the -dlopen flag."
7963 if test -z "$global_symbol_pipe"; then 6808 if test -z "$global_symbol_pipe"; then
7964 echo 6809 $ECHO
7965 echo "*** However, this would only work if libtool was able to extract symbol" 6810 $ECHO "*** However, this would only work if libtool was able to extract symbol"
7966 echo "*** lists from a program, using \`nm' or equivalent, but libtool could" 6811 $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could"
7967 echo "*** not find such a program. So, this module is probably useless." 6812 $ECHO "*** not find such a program. So, this module is probably useless."
7968 echo "*** \`nm' from GNU binutils and a full rebuild may help." 6813 $ECHO "*** \`nm' from GNU binutils and a full rebuild may help."
7969 fi 6814 fi
7970 if test "$build_old_libs" = no; then 6815 if test "$build_old_libs" = no; then
7971 oldlibs="$output_objdir/$libname.$libext" 6816 oldlibs="$output_objdir/$libname.$libext"
7972 build_libtool_libs=module 6817 build_libtool_libs=module
7973 build_old_libs=yes 6818 build_old_libs=yes
7974 else 6819 else
7975 build_libtool_libs=no 6820 build_libtool_libs=no
7976 fi 6821 fi
7977 else 6822 else
7978 echo "*** The inter-library dependencies that have been dropped here will be" 6823 $ECHO "*** The inter-library dependencies that have been dropped here will be"
7979 echo "*** automatically added whenever a program is linked with this library" 6824 $ECHO "*** automatically added whenever a program is linked with this library"
7980 echo "*** or is declared to -dlopen it." 6825 $ECHO "*** or is declared to -dlopen it."
7981 6826
7982 if test "$allow_undefined" = no; then 6827 if test "$allow_undefined" = no; then
7983 echo 6828 $ECHO
7984 echo "*** Since this library must not contain undefined symbols," 6829 $ECHO "*** Since this library must not contain undefined symbols,"
7985 echo "*** because either the platform does not support them or" 6830 $ECHO "*** because either the platform does not support them or"
7986 echo "*** it was explicitly requested with -no-undefined," 6831 $ECHO "*** it was explicitly requested with -no-undefined,"
7987 echo "*** libtool will only create a static version of it." 6832 $ECHO "*** libtool will only create a static version of it."
7988 if test "$build_old_libs" = no; then 6833 if test "$build_old_libs" = no; then
7989 oldlibs="$output_objdir/$libname.$libext" 6834 oldlibs="$output_objdir/$libname.$libext"
7990 build_libtool_libs=module 6835 build_libtool_libs=module
7991 build_old_libs=yes 6836 build_old_libs=yes
7992 else 6837 else
7999 deplibs=$newdeplibs 6844 deplibs=$newdeplibs
8000 fi 6845 fi
8001 # Time to change all our "foo.ltframework" stuff back to "-framework foo" 6846 # Time to change all our "foo.ltframework" stuff back to "-framework foo"
8002 case $host in 6847 case $host in
8003 *-*-darwin*) 6848 *-*-darwin*)
8004 newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` 6849 newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
8005 new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` 6850 new_inherited_linker_flags=`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
8006 deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` 6851 deplibs=`$ECHO "X $deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
8007 ;; 6852 ;;
8008 esac 6853 esac
8009 6854
8010 # move library search paths that coincide with paths to not yet 6855 # move library search paths that coincide with paths to not yet
8011 # installed libraries to the beginning of the library search list 6856 # installed libraries to the beginning of the library search list
8014 case " $new_libs " in 6859 case " $new_libs " in
8015 *" -L$path/$objdir "*) ;; 6860 *" -L$path/$objdir "*) ;;
8016 *) 6861 *)
8017 case " $deplibs " in 6862 case " $deplibs " in
8018 *" -L$path/$objdir "*) 6863 *" -L$path/$objdir "*)
8019 func_append new_libs " -L$path/$objdir" ;; 6864 new_libs="$new_libs -L$path/$objdir" ;;
8020 esac 6865 esac
8021 ;; 6866 ;;
8022 esac 6867 esac
8023 done 6868 done
8024 for deplib in $deplibs; do 6869 for deplib in $deplibs; do
8025 case $deplib in 6870 case $deplib in
8026 -L*) 6871 -L*)
8027 case " $new_libs " in 6872 case " $new_libs " in
8028 *" $deplib "*) ;; 6873 *" $deplib "*) ;;
8029 *) func_append new_libs " $deplib" ;; 6874 *) new_libs="$new_libs $deplib" ;;
8030 esac 6875 esac
8031 ;; 6876 ;;
8032 *) func_append new_libs " $deplib" ;; 6877 *) new_libs="$new_libs $deplib" ;;
8033 esac 6878 esac
8034 done 6879 done
8035 deplibs="$new_libs" 6880 deplibs="$new_libs"
8036 6881
8037 # All the library-specific variables (install_libdir is set above). 6882 # All the library-specific variables (install_libdir is set above).
8039 old_library= 6884 old_library=
8040 dlname= 6885 dlname=
8041 6886
8042 # Test again, we may have decided not to build it any more 6887 # Test again, we may have decided not to build it any more
8043 if test "$build_libtool_libs" = yes; then 6888 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
8049 if test "$hardcode_into_libs" = yes; then 6889 if test "$hardcode_into_libs" = yes; then
8050 # Hardcode the library paths 6890 # Hardcode the library paths
8051 hardcode_libdirs= 6891 hardcode_libdirs=
8052 dep_rpath= 6892 dep_rpath=
8053 rpath="$finalize_rpath" 6893 rpath="$finalize_rpath"
8054 test "$opt_mode" != relink && rpath="$compile_rpath$rpath" 6894 test "$mode" != relink && rpath="$compile_rpath$rpath"
8055 for libdir in $rpath; do 6895 for libdir in $rpath; do
8056 if test -n "$hardcode_libdir_flag_spec"; then 6896 if test -n "$hardcode_libdir_flag_spec"; then
8057 if test -n "$hardcode_libdir_separator"; then 6897 if test -n "$hardcode_libdir_separator"; then
8058 func_replace_sysroot "$libdir"
8059 libdir=$func_replace_sysroot_result
8060 if test -z "$hardcode_libdirs"; then 6898 if test -z "$hardcode_libdirs"; then
8061 hardcode_libdirs="$libdir" 6899 hardcode_libdirs="$libdir"
8062 else 6900 else
8063 # Just accumulate the unique libdirs. 6901 # Just accumulate the unique libdirs.
8064 case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in 6902 case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
8065 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) 6903 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
8066 ;; 6904 ;;
8067 *) 6905 *)
8068 func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" 6906 hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
8069 ;; 6907 ;;
8070 esac 6908 esac
8071 fi 6909 fi
8072 else 6910 else
8073 eval flag=\"$hardcode_libdir_flag_spec\" 6911 eval flag=\"$hardcode_libdir_flag_spec\"
8074 func_append dep_rpath " $flag" 6912 dep_rpath="$dep_rpath $flag"
8075 fi 6913 fi
8076 elif test -n "$runpath_var"; then 6914 elif test -n "$runpath_var"; then
8077 case "$perm_rpath " in 6915 case "$perm_rpath " in
8078 *" $libdir "*) ;; 6916 *" $libdir "*) ;;
8079 *) func_append perm_rpath " $libdir" ;; 6917 *) perm_rpath="$perm_rpath $libdir" ;;
8080 esac 6918 esac
8081 fi 6919 fi
8082 done 6920 done
8083 # Substitute the hardcoded libdirs into the rpath. 6921 # Substitute the hardcoded libdirs into the rpath.
8084 if test -n "$hardcode_libdir_separator" && 6922 if test -n "$hardcode_libdir_separator" &&
8085 test -n "$hardcode_libdirs"; then 6923 test -n "$hardcode_libdirs"; then
8086 libdir="$hardcode_libdirs" 6924 libdir="$hardcode_libdirs"
8087 eval "dep_rpath=\"$hardcode_libdir_flag_spec\"" 6925 if test -n "$hardcode_libdir_flag_spec_ld"; then
6926 eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\"
6927 else
6928 eval dep_rpath=\"$hardcode_libdir_flag_spec\"
6929 fi
8088 fi 6930 fi
8089 if test -n "$runpath_var" && test -n "$perm_rpath"; then 6931 if test -n "$runpath_var" && test -n "$perm_rpath"; then
8090 # We should set the runpath_var. 6932 # We should set the runpath_var.
8091 rpath= 6933 rpath=
8092 for dir in $perm_rpath; do 6934 for dir in $perm_rpath; do
8093 func_append rpath "$dir:" 6935 rpath="$rpath$dir:"
8094 done 6936 done
8095 eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" 6937 eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
8096 fi 6938 fi
8097 test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" 6939 test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
8098 fi 6940 fi
8099 6941
8100 shlibpath="$finalize_shlibpath" 6942 shlibpath="$finalize_shlibpath"
8101 test "$opt_mode" != relink && shlibpath="$compile_shlibpath$shlibpath" 6943 test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
8102 if test -n "$shlibpath"; then 6944 if test -n "$shlibpath"; then
8103 eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" 6945 eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
8104 fi 6946 fi
8105 6947
8106 # Get the real and link names of the library. 6948 # Get the real and link names of the library.
8122 6964
8123 lib="$output_objdir/$realname" 6965 lib="$output_objdir/$realname"
8124 linknames= 6966 linknames=
8125 for link 6967 for link
8126 do 6968 do
8127 func_append linknames " $link" 6969 linknames="$linknames $link"
8128 done 6970 done
8129 6971
8130 # Use standard objects if they are pic 6972 # Use standard objects if they are pic
8131 test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP` 6973 test -z "$pic_flag" && libobjs=`$ECHO "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
8132 test "X$libobjs" = "X " && libobjs= 6974 test "X$libobjs" = "X " && libobjs=
8133 6975
8134 delfiles= 6976 delfiles=
8135 if test -n "$export_symbols" && test -n "$include_expsyms"; then 6977 if test -n "$export_symbols" && test -n "$include_expsyms"; then
8136 $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" 6978 $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp"
8137 export_symbols="$output_objdir/$libname.uexp" 6979 export_symbols="$output_objdir/$libname.uexp"
8138 func_append delfiles " $export_symbols" 6980 delfiles="$delfiles $export_symbols"
8139 fi 6981 fi
8140 6982
8141 orig_export_symbols= 6983 orig_export_symbols=
8142 case $host_os in 6984 case $host_os in
8143 cygwin* | mingw* | cegcc*) 6985 cygwin* | mingw* | cegcc*)
8164 func_verbose "generating symbol list for \`$libname.la'" 7006 func_verbose "generating symbol list for \`$libname.la'"
8165 export_symbols="$output_objdir/$libname.exp" 7007 export_symbols="$output_objdir/$libname.exp"
8166 $opt_dry_run || $RM $export_symbols 7008 $opt_dry_run || $RM $export_symbols
8167 cmds=$export_symbols_cmds 7009 cmds=$export_symbols_cmds
8168 save_ifs="$IFS"; IFS='~' 7010 save_ifs="$IFS"; IFS='~'
8169 for cmd1 in $cmds; do 7011 for cmd in $cmds; do
8170 IFS="$save_ifs" 7012 IFS="$save_ifs"
8171 # Take the normal branch if the nm_file_list_spec branch 7013 eval cmd=\"$cmd\"
8172 # doesn't work or if tool conversion is not needed. 7014 func_len " $cmd"
8173 case $nm_file_list_spec~$to_tool_file_cmd in 7015 len=$func_len_result
8174 *~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*) 7016 if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
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 $?' 7017 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\"
8205 func_show_eval "$cmd" 'exit $?'
8206 output=$save_output
8207 libobjs=$save_libobjs
8208 skipped_export=false 7018 skipped_export=false
8209 else 7019 else
8210 # The command line is too long to execute in one step. 7020 # The command line is too long to execute in one step.
8211 func_verbose "using reloadable object file for export list..." 7021 func_verbose "using reloadable object file for export list..."
8212 skipped_export=: 7022 skipped_export=:
8224 fi 7034 fi
8225 7035
8226 if test -n "$export_symbols" && test -n "$include_expsyms"; then 7036 if test -n "$export_symbols" && test -n "$include_expsyms"; then
8227 tmp_export_symbols="$export_symbols" 7037 tmp_export_symbols="$export_symbols"
8228 test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" 7038 test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
8229 $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' 7039 $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"'
8230 fi 7040 fi
8231 7041
8232 if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then 7042 if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then
8233 # The given exports_symbols file has to be filtered, so filter it. 7043 # The given exports_symbols file has to be filtered, so filter it.
8234 func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" 7044 func_verbose "filter symbol list for \`$libname.la' to tag DATA exports"
8236 # 's' commands which not all seds can handle. GNU sed should be fine 7046 # 's' commands which not all seds can handle. GNU sed should be fine
8237 # though. Also, the filter scales superlinearly with the number of 7047 # though. Also, the filter scales superlinearly with the number of
8238 # global variables. join(1) would be nice here, but unfortunately 7048 # global variables. join(1) would be nice here, but unfortunately
8239 # isn't a blessed tool. 7049 # isn't a blessed tool.
8240 $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter 7050 $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
8241 func_append delfiles " $export_symbols $output_objdir/$libname.filter" 7051 delfiles="$delfiles $export_symbols $output_objdir/$libname.filter"
8242 export_symbols=$output_objdir/$libname.def 7052 export_symbols=$output_objdir/$libname.def
8243 $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols 7053 $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
8244 fi 7054 fi
8245 7055
8246 tmp_deplibs= 7056 tmp_deplibs=
8247 for test_deplib in $deplibs; do 7057 for test_deplib in $deplibs; do
8248 case " $convenience " in 7058 case " $convenience " in
8249 *" $test_deplib "*) ;; 7059 *" $test_deplib "*) ;;
8250 *) 7060 *)
8251 func_append tmp_deplibs " $test_deplib" 7061 tmp_deplibs="$tmp_deplibs $test_deplib"
8252 ;; 7062 ;;
8253 esac 7063 esac
8254 done 7064 done
8255 deplibs="$tmp_deplibs" 7065 deplibs="$tmp_deplibs"
8256 7066
8266 save_libobjs=$libobjs 7076 save_libobjs=$libobjs
8267 eval libobjs=\"\$libobjs $whole_archive_flag_spec\" 7077 eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
8268 test "X$libobjs" = "X " && libobjs= 7078 test "X$libobjs" = "X " && libobjs=
8269 else 7079 else
8270 gentop="$output_objdir/${outputname}x" 7080 gentop="$output_objdir/${outputname}x"
8271 func_append generated " $gentop" 7081 generated="$generated $gentop"
8272 7082
8273 func_extract_archives $gentop $convenience 7083 func_extract_archives $gentop $convenience
8274 func_append libobjs " $func_extract_archives_result" 7084 libobjs="$libobjs $func_extract_archives_result"
8275 test "X$libobjs" = "X " && libobjs= 7085 test "X$libobjs" = "X " && libobjs=
8276 fi 7086 fi
8277 fi 7087 fi
8278 7088
8279 if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then 7089 if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
8280 eval flag=\"$thread_safe_flag_spec\" 7090 eval flag=\"$thread_safe_flag_spec\"
8281 func_append linker_flags " $flag" 7091 linker_flags="$linker_flags $flag"
8282 fi 7092 fi
8283 7093
8284 # Make a backup of the uninstalled library when relinking 7094 # Make a backup of the uninstalled library when relinking
8285 if test "$opt_mode" = relink; then 7095 if test "$mode" = relink; then
8286 $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? 7096 $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $?
8287 fi 7097 fi
8288 7098
8289 # Do each of the archive commands. 7099 # Do each of the archive commands.
8290 if test "$module" = yes && test -n "$module_cmds" ; then 7100 if test "$module" = yes && test -n "$module_cmds" ; then
8325 # the spec. 7135 # the spec.
8326 if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then 7136 if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then
8327 save_libobjs=$libobjs 7137 save_libobjs=$libobjs
8328 fi 7138 fi
8329 save_output=$output 7139 save_output=$output
8330 func_basename "$output" 7140 output_la=`$ECHO "X$output" | $Xsed -e "$basename"`
8331 output_la=$func_basename_result
8332 7141
8333 # Clear the reloadable object creation command queue and 7142 # Clear the reloadable object creation command queue and
8334 # initialize k to one. 7143 # initialize k to one.
8335 test_cmds= 7144 test_cmds=
8336 concat_cmds= 7145 concat_cmds=
8339 k=1 7148 k=1
8340 7149
8341 if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then 7150 if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then
8342 output=${output_objdir}/${output_la}.lnkscript 7151 output=${output_objdir}/${output_la}.lnkscript
8343 func_verbose "creating GNU ld script: $output" 7152 func_verbose "creating GNU ld script: $output"
8344 echo 'INPUT (' > $output 7153 $ECHO 'INPUT (' > $output
8345 for obj in $save_libobjs 7154 for obj in $save_libobjs
8346 do 7155 do
8347 func_to_tool_file "$obj" 7156 $ECHO "$obj" >> $output
8348 $ECHO "$func_to_tool_file_result" >> $output
8349 done 7157 done
8350 echo ')' >> $output 7158 $ECHO ')' >> $output
8351 func_append delfiles " $output" 7159 delfiles="$delfiles $output"
8352 func_to_tool_file "$output"
8353 output=$func_to_tool_file_result
8354 elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then 7160 elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then
8355 output=${output_objdir}/${output_la}.lnk 7161 output=${output_objdir}/${output_la}.lnk
8356 func_verbose "creating linker input file list: $output" 7162 func_verbose "creating linker input file list: $output"
8357 : > $output 7163 : > $output
8358 set x $save_libobjs 7164 set x $save_libobjs
8362 firstobj="$1 " 7168 firstobj="$1 "
8363 shift 7169 shift
8364 fi 7170 fi
8365 for obj 7171 for obj
8366 do 7172 do
8367 func_to_tool_file "$obj" 7173 $ECHO "$obj" >> $output
8368 $ECHO "$func_to_tool_file_result" >> $output
8369 done 7174 done
8370 func_append delfiles " $output" 7175 delfiles="$delfiles $output"
8371 func_to_tool_file "$output" 7176 output=$firstobj\"$file_list_spec$output\"
8372 output=$firstobj\"$file_list_spec$func_to_tool_file_result\"
8373 else 7177 else
8374 if test -n "$save_libobjs"; then 7178 if test -n "$save_libobjs"; then
8375 func_verbose "creating reloadable object files..." 7179 func_verbose "creating reloadable object files..."
8376 output=$output_objdir/$output_la-${k}.$objext 7180 output=$output_objdir/$output_la-${k}.$objext
8377 eval test_cmds=\"$reload_cmds\" 7181 eval test_cmds=\"$reload_cmds\"
8391 else 7195 else
8392 # The command $test_cmds is almost too long, add a 7196 # The command $test_cmds is almost too long, add a
8393 # command to the queue. 7197 # command to the queue.
8394 if test "$k" -eq 1 ; then 7198 if test "$k" -eq 1 ; then
8395 # The first file doesn't have a previous command to add. 7199 # The first file doesn't have a previous command to add.
8396 reload_objs=$objlist 7200 eval concat_cmds=\"$reload_cmds $objlist $last_robj\"
8397 eval concat_cmds=\"$reload_cmds\"
8398 else 7201 else
8399 # All subsequent reloadable object files will link in 7202 # All subsequent reloadable object files will link in
8400 # the last one created. 7203 # the last one created.
8401 reload_objs="$objlist $last_robj" 7204 eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj~\$RM $last_robj\"
8402 eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\"
8403 fi 7205 fi
8404 last_robj=$output_objdir/$output_la-${k}.$objext 7206 last_robj=$output_objdir/$output_la-${k}.$objext
8405 func_arith $k + 1 7207 func_arith $k + 1
8406 k=$func_arith_result 7208 k=$func_arith_result
8407 output=$output_objdir/$output_la-${k}.$objext 7209 output=$output_objdir/$output_la-${k}.$objext
8408 objlist=" $obj" 7210 objlist=$obj
8409 func_len " $last_robj" 7211 func_len " $last_robj"
8410 func_arith $len0 + $func_len_result 7212 func_arith $len0 + $func_len_result
8411 len=$func_arith_result 7213 len=$func_arith_result
8412 fi 7214 fi
8413 done 7215 done
8414 # Handle the remaining objects by creating one last 7216 # Handle the remaining objects by creating one last
8415 # reloadable object file. All subsequent reloadable object 7217 # reloadable object file. All subsequent reloadable object
8416 # files will link in the last one created. 7218 # files will link in the last one created.
8417 test -z "$concat_cmds" || concat_cmds=$concat_cmds~ 7219 test -z "$concat_cmds" || concat_cmds=$concat_cmds~
8418 reload_objs="$objlist $last_robj" 7220 eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\"
8419 eval concat_cmds=\"\${concat_cmds}$reload_cmds\"
8420 if test -n "$last_robj"; then 7221 if test -n "$last_robj"; then
8421 eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\" 7222 eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\"
8422 fi 7223 fi
8423 func_append delfiles " $output" 7224 delfiles="$delfiles $output"
8424 7225
8425 else 7226 else
8426 output= 7227 output=
8427 fi 7228 fi
8428 7229
8452 } 7253 }
8453 $opt_dry_run || eval "$cmd" || { 7254 $opt_dry_run || eval "$cmd" || {
8454 lt_exit=$? 7255 lt_exit=$?
8455 7256
8456 # Restore the uninstalled library and exit 7257 # Restore the uninstalled library and exit
8457 if test "$opt_mode" = relink; then 7258 if test "$mode" = relink; then
8458 ( cd "$output_objdir" && \ 7259 ( cd "$output_objdir" && \
8459 $RM "${realname}T" && \ 7260 $RM "${realname}T" && \
8460 $MV "${realname}U" "$realname" ) 7261 $MV "${realname}U" "$realname" )
8461 fi 7262 fi
8462 7263
8473 7274
8474 if ${skipped_export-false}; then 7275 if ${skipped_export-false}; then
8475 if test -n "$export_symbols" && test -n "$include_expsyms"; then 7276 if test -n "$export_symbols" && test -n "$include_expsyms"; then
8476 tmp_export_symbols="$export_symbols" 7277 tmp_export_symbols="$export_symbols"
8477 test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" 7278 test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
8478 $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' 7279 $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"'
8479 fi 7280 fi
8480 7281
8481 if test -n "$orig_export_symbols"; then 7282 if test -n "$orig_export_symbols"; then
8482 # The given exports_symbols file has to be filtered, so filter it. 7283 # The given exports_symbols file has to be filtered, so filter it.
8483 func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" 7284 func_verbose "filter symbol list for \`$libname.la' to tag DATA exports"
8485 # 's' commands which not all seds can handle. GNU sed should be fine 7286 # 's' commands which not all seds can handle. GNU sed should be fine
8486 # though. Also, the filter scales superlinearly with the number of 7287 # though. Also, the filter scales superlinearly with the number of
8487 # global variables. join(1) would be nice here, but unfortunately 7288 # global variables. join(1) would be nice here, but unfortunately
8488 # isn't a blessed tool. 7289 # isn't a blessed tool.
8489 $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter 7290 $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
8490 func_append delfiles " $export_symbols $output_objdir/$libname.filter" 7291 delfiles="$delfiles $export_symbols $output_objdir/$libname.filter"
8491 export_symbols=$output_objdir/$libname.def 7292 export_symbols=$output_objdir/$libname.def
8492 $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols 7293 $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
8493 fi 7294 fi
8494 fi 7295 fi
8495 7296
8526 fi 7327 fi
8527 7328
8528 # Add any objects from preloaded convenience libraries 7329 # Add any objects from preloaded convenience libraries
8529 if test -n "$dlprefiles"; then 7330 if test -n "$dlprefiles"; then
8530 gentop="$output_objdir/${outputname}x" 7331 gentop="$output_objdir/${outputname}x"
8531 func_append generated " $gentop" 7332 generated="$generated $gentop"
8532 7333
8533 func_extract_archives $gentop $dlprefiles 7334 func_extract_archives $gentop $dlprefiles
8534 func_append libobjs " $func_extract_archives_result" 7335 libobjs="$libobjs $func_extract_archives_result"
8535 test "X$libobjs" = "X " && libobjs= 7336 test "X$libobjs" = "X " && libobjs=
8536 fi 7337 fi
8537 7338
8538 save_ifs="$IFS"; IFS='~' 7339 save_ifs="$IFS"; IFS='~'
8539 for cmd in $cmds; do 7340 for cmd in $cmds; do
8545 } 7346 }
8546 $opt_dry_run || eval "$cmd" || { 7347 $opt_dry_run || eval "$cmd" || {
8547 lt_exit=$? 7348 lt_exit=$?
8548 7349
8549 # Restore the uninstalled library and exit 7350 # Restore the uninstalled library and exit
8550 if test "$opt_mode" = relink; then 7351 if test "$mode" = relink; then
8551 ( cd "$output_objdir" && \ 7352 ( cd "$output_objdir" && \
8552 $RM "${realname}T" && \ 7353 $RM "${realname}T" && \
8553 $MV "${realname}U" "$realname" ) 7354 $MV "${realname}U" "$realname" )
8554 fi 7355 fi
8555 7356
8557 } 7358 }
8558 done 7359 done
8559 IFS="$save_ifs" 7360 IFS="$save_ifs"
8560 7361
8561 # Restore the uninstalled library and exit 7362 # Restore the uninstalled library and exit
8562 if test "$opt_mode" = relink; then 7363 if test "$mode" = relink; then
8563 $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? 7364 $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $?
8564 7365
8565 if test -n "$convenience"; then 7366 if test -n "$convenience"; then
8566 if test -z "$whole_archive_flag_spec"; then 7367 if test -z "$whole_archive_flag_spec"; then
8567 func_show_eval '${RM}r "$gentop"' 7368 func_show_eval '${RM}r "$gentop"'
8638 wl= 7439 wl=
8639 7440
8640 if test -n "$convenience"; then 7441 if test -n "$convenience"; then
8641 if test -n "$whole_archive_flag_spec"; then 7442 if test -n "$whole_archive_flag_spec"; then
8642 eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" 7443 eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\"
8643 reload_conv_objs=$reload_objs\ `$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'` 7444 reload_conv_objs=$reload_objs\ `$ECHO "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'`
8644 else 7445 else
8645 gentop="$output_objdir/${obj}x" 7446 gentop="$output_objdir/${obj}x"
8646 func_append generated " $gentop" 7447 generated="$generated $gentop"
8647 7448
8648 func_extract_archives $gentop $convenience 7449 func_extract_archives $gentop $convenience
8649 reload_conv_objs="$reload_objs $func_extract_archives_result" 7450 reload_conv_objs="$reload_objs $func_extract_archives_result"
8650 fi 7451 fi
8651 fi 7452 fi
8652 7453
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
8656 # Create the old-style object. 7454 # Create the old-style object.
8657 reload_objs="$objs$old_deplibs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; /\.lib$/d; $lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test 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
8658 7456
8659 output="$obj" 7457 output="$obj"
8660 func_execute_cmds "$reload_cmds" 'exit $?' 7458 func_execute_cmds "$reload_cmds" 'exit $?'
8661 7459
8662 # Exit if we aren't doing a library object file. 7460 # Exit if we aren't doing a library object file.
8712 func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support." 7510 func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support."
8713 7511
8714 case $host in 7512 case $host in
8715 *-*-rhapsody* | *-*-darwin1.[012]) 7513 *-*-rhapsody* | *-*-darwin1.[012])
8716 # On Rhapsody replace the C library is the System framework 7514 # On Rhapsody replace the C library is the System framework
8717 compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'` 7515 compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'`
8718 finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'` 7516 finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'`
8719 ;; 7517 ;;
8720 esac 7518 esac
8721 7519
8722 case $host in 7520 case $host in
8723 *-*-darwin*) 7521 *-*-darwin*)
8724 # Don't allow lazy linking, it breaks C++ global constructors 7522 # Don't allow lazy linking, it breaks C++ global constructors
8725 # But is supposedly fixed on 10.4 or later (yay!). 7523 # But is supposedly fixed on 10.4 or later (yay!).
8726 if test "$tagname" = CXX ; then 7524 if test "$tagname" = CXX ; then
8727 case ${MACOSX_DEPLOYMENT_TARGET-10.0} in 7525 case ${MACOSX_DEPLOYMENT_TARGET-10.0} in
8728 10.[0123]) 7526 10.[0123])
8729 func_append compile_command " ${wl}-bind_at_load" 7527 compile_command="$compile_command ${wl}-bind_at_load"
8730 func_append finalize_command " ${wl}-bind_at_load" 7528 finalize_command="$finalize_command ${wl}-bind_at_load"
8731 ;; 7529 ;;
8732 esac 7530 esac
8733 fi 7531 fi
8734 # Time to change all our "foo.ltframework" stuff back to "-framework foo" 7532 # Time to change all our "foo.ltframework" stuff back to "-framework foo"
8735 compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` 7533 compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
8736 finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` 7534 finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
8737 ;; 7535 ;;
8738 esac 7536 esac
8739 7537
8740 7538
8741 # move library search paths that coincide with paths to not yet 7539 # move library search paths that coincide with paths to not yet
8745 case " $new_libs " in 7543 case " $new_libs " in
8746 *" -L$path/$objdir "*) ;; 7544 *" -L$path/$objdir "*) ;;
8747 *) 7545 *)
8748 case " $compile_deplibs " in 7546 case " $compile_deplibs " in
8749 *" -L$path/$objdir "*) 7547 *" -L$path/$objdir "*)
8750 func_append new_libs " -L$path/$objdir" ;; 7548 new_libs="$new_libs -L$path/$objdir" ;;
8751 esac 7549 esac
8752 ;; 7550 ;;
8753 esac 7551 esac
8754 done 7552 done
8755 for deplib in $compile_deplibs; do 7553 for deplib in $compile_deplibs; do
8756 case $deplib in 7554 case $deplib in
8757 -L*) 7555 -L*)
8758 case " $new_libs " in 7556 case " $new_libs " in
8759 *" $deplib "*) ;; 7557 *" $deplib "*) ;;
8760 *) func_append new_libs " $deplib" ;; 7558 *) new_libs="$new_libs $deplib" ;;
8761 esac 7559 esac
8762 ;; 7560 ;;
8763 *) func_append new_libs " $deplib" ;; 7561 *) new_libs="$new_libs $deplib" ;;
8764 esac 7562 esac
8765 done 7563 done
8766 compile_deplibs="$new_libs" 7564 compile_deplibs="$new_libs"
8767 7565
8768 7566
8769 func_append compile_command " $compile_deplibs" 7567 compile_command="$compile_command $compile_deplibs"
8770 func_append finalize_command " $finalize_deplibs" 7568 finalize_command="$finalize_command $finalize_deplibs"
8771 7569
8772 if test -n "$rpath$xrpath"; then 7570 if test -n "$rpath$xrpath"; then
8773 # If the user specified any rpath flags, then add them. 7571 # If the user specified any rpath flags, then add them.
8774 for libdir in $rpath $xrpath; do 7572 for libdir in $rpath $xrpath; do
8775 # This is the magic to use -rpath. 7573 # This is the magic to use -rpath.
8776 case "$finalize_rpath " in 7574 case "$finalize_rpath " in
8777 *" $libdir "*) ;; 7575 *" $libdir "*) ;;
8778 *) func_append finalize_rpath " $libdir" ;; 7576 *) finalize_rpath="$finalize_rpath $libdir" ;;
8779 esac 7577 esac
8780 done 7578 done
8781 fi 7579 fi
8782 7580
8783 # Now hardcode the library paths 7581 # Now hardcode the library paths
8792 # Just accumulate the unique libdirs. 7590 # Just accumulate the unique libdirs.
8793 case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in 7591 case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
8794 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) 7592 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
8795 ;; 7593 ;;
8796 *) 7594 *)
8797 func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" 7595 hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
8798 ;; 7596 ;;
8799 esac 7597 esac
8800 fi 7598 fi
8801 else 7599 else
8802 eval flag=\"$hardcode_libdir_flag_spec\" 7600 eval flag=\"$hardcode_libdir_flag_spec\"
8803 func_append rpath " $flag" 7601 rpath="$rpath $flag"
8804 fi 7602 fi
8805 elif test -n "$runpath_var"; then 7603 elif test -n "$runpath_var"; then
8806 case "$perm_rpath " in 7604 case "$perm_rpath " in
8807 *" $libdir "*) ;; 7605 *" $libdir "*) ;;
8808 *) func_append perm_rpath " $libdir" ;; 7606 *) perm_rpath="$perm_rpath $libdir" ;;
8809 esac 7607 esac
8810 fi 7608 fi
8811 case $host in 7609 case $host in
8812 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) 7610 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
8813 testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'` 7611 testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'`
8814 case :$dllsearchpath: in 7612 case :$dllsearchpath: in
8815 *":$libdir:"*) ;; 7613 *":$libdir:"*) ;;
8816 ::) dllsearchpath=$libdir;; 7614 ::) dllsearchpath=$libdir;;
8817 *) func_append dllsearchpath ":$libdir";; 7615 *) dllsearchpath="$dllsearchpath:$libdir";;
8818 esac 7616 esac
8819 case :$dllsearchpath: in 7617 case :$dllsearchpath: in
8820 *":$testbindir:"*) ;; 7618 *":$testbindir:"*) ;;
8821 ::) dllsearchpath=$testbindir;; 7619 ::) dllsearchpath=$testbindir;;
8822 *) func_append dllsearchpath ":$testbindir";; 7620 *) dllsearchpath="$dllsearchpath:$testbindir";;
8823 esac 7621 esac
8824 ;; 7622 ;;
8825 esac 7623 esac
8826 done 7624 done
8827 # Substitute the hardcoded libdirs into the rpath. 7625 # Substitute the hardcoded libdirs into the rpath.
8843 # Just accumulate the unique libdirs. 7641 # Just accumulate the unique libdirs.
8844 case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in 7642 case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
8845 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) 7643 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
8846 ;; 7644 ;;
8847 *) 7645 *)
8848 func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" 7646 hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
8849 ;; 7647 ;;
8850 esac 7648 esac
8851 fi 7649 fi
8852 else 7650 else
8853 eval flag=\"$hardcode_libdir_flag_spec\" 7651 eval flag=\"$hardcode_libdir_flag_spec\"
8854 func_append rpath " $flag" 7652 rpath="$rpath $flag"
8855 fi 7653 fi
8856 elif test -n "$runpath_var"; then 7654 elif test -n "$runpath_var"; then
8857 case "$finalize_perm_rpath " in 7655 case "$finalize_perm_rpath " in
8858 *" $libdir "*) ;; 7656 *" $libdir "*) ;;
8859 *) func_append finalize_perm_rpath " $libdir" ;; 7657 *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
8860 esac 7658 esac
8861 fi 7659 fi
8862 done 7660 done
8863 # Substitute the hardcoded libdirs into the rpath. 7661 # Substitute the hardcoded libdirs into the rpath.
8864 if test -n "$hardcode_libdir_separator" && 7662 if test -n "$hardcode_libdir_separator" &&
8868 fi 7666 fi
8869 finalize_rpath="$rpath" 7667 finalize_rpath="$rpath"
8870 7668
8871 if test -n "$libobjs" && test "$build_old_libs" = yes; then 7669 if test -n "$libobjs" && test "$build_old_libs" = yes; then
8872 # Transform all the library objects into standard objects. 7670 # Transform all the library objects into standard objects.
8873 compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP` 7671 compile_command=`$ECHO "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
8874 finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP` 7672 finalize_command=`$ECHO "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
8875 fi 7673 fi
8876 7674
8877 func_generate_dlsyms "$outputname" "@PROGRAM@" "no" 7675 func_generate_dlsyms "$outputname" "@PROGRAM@" "no"
8878 7676
8879 # template prelinking step 7677 # template prelinking step
8881 func_execute_cmds "$prelink_cmds" 'exit $?' 7679 func_execute_cmds "$prelink_cmds" 'exit $?'
8882 fi 7680 fi
8883 7681
8884 wrappers_required=yes 7682 wrappers_required=yes
8885 case $host in 7683 case $host in
8886 *cegcc* | *mingw32ce*)
8887 # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway.
8888 wrappers_required=no
8889 ;;
8890 *cygwin* | *mingw* ) 7684 *cygwin* | *mingw* )
8891 if test "$build_libtool_libs" != yes; then 7685 if test "$build_libtool_libs" != yes; then
8892 wrappers_required=no 7686 wrappers_required=no
8893 fi 7687 fi
7688 ;;
7689 *cegcc)
7690 # Disable wrappers for cegcc, we are cross compiling anyway.
7691 wrappers_required=no
8894 ;; 7692 ;;
8895 *) 7693 *)
8896 if test "$need_relink" = no || test "$build_libtool_libs" != yes; then 7694 if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
8897 wrappers_required=no 7695 wrappers_required=no
8898 fi 7696 fi
8899 ;; 7697 ;;
8900 esac 7698 esac
8901 if test "$wrappers_required" = no; then 7699 if test "$wrappers_required" = no; then
8902 # Replace the output file specification. 7700 # Replace the output file specification.
8903 compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'` 7701 compile_command=`$ECHO "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
8904 link_command="$compile_command$compile_rpath" 7702 link_command="$compile_command$compile_rpath"
8905 7703
8906 # We have no uninstalled library dependencies, so finalize right now. 7704 # We have no uninstalled library dependencies, so finalize right now.
8907 exit_status=0 7705 exit_status=0
8908 func_show_eval "$link_command" 'exit_status=$?' 7706 func_show_eval "$link_command" 'exit_status=$?'
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 7707
8916 # Delete the generated files. 7708 # Delete the generated files.
8917 if test -f "$output_objdir/${outputname}S.${objext}"; then 7709 if test -f "$output_objdir/${outputname}S.${objext}"; then
8918 func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"' 7710 func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"'
8919 fi 7711 fi
8933 if test -n "$runpath_var"; then 7725 if test -n "$runpath_var"; then
8934 if test -n "$perm_rpath"; then 7726 if test -n "$perm_rpath"; then
8935 # We should set the runpath_var. 7727 # We should set the runpath_var.
8936 rpath= 7728 rpath=
8937 for dir in $perm_rpath; do 7729 for dir in $perm_rpath; do
8938 func_append rpath "$dir:" 7730 rpath="$rpath$dir:"
8939 done 7731 done
8940 compile_var="$runpath_var=\"$rpath\$$runpath_var\" " 7732 compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
8941 fi 7733 fi
8942 if test -n "$finalize_perm_rpath"; then 7734 if test -n "$finalize_perm_rpath"; then
8943 # We should set the runpath_var. 7735 # We should set the runpath_var.
8944 rpath= 7736 rpath=
8945 for dir in $finalize_perm_rpath; do 7737 for dir in $finalize_perm_rpath; do
8946 func_append rpath "$dir:" 7738 rpath="$rpath$dir:"
8947 done 7739 done
8948 finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " 7740 finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
8949 fi 7741 fi
8950 fi 7742 fi
8951 7743
8952 if test "$no_install" = yes; then 7744 if test "$no_install" = yes; then
8953 # We don't need to create a wrapper script. 7745 # We don't need to create a wrapper script.
8954 link_command="$compile_var$compile_command$compile_rpath" 7746 link_command="$compile_var$compile_command$compile_rpath"
8955 # Replace the output file specification. 7747 # Replace the output file specification.
8956 link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'` 7748 link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
8957 # Delete the old output file. 7749 # Delete the old output file.
8958 $opt_dry_run || $RM $output 7750 $opt_dry_run || $RM $output
8959 # Link the executable and exit 7751 # Link the executable and exit
8960 func_show_eval "$link_command" 'exit $?' 7752 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
8968 exit $EXIT_SUCCESS 7753 exit $EXIT_SUCCESS
8969 fi 7754 fi
8970 7755
8971 if test "$hardcode_action" = relink; then 7756 if test "$hardcode_action" = relink; then
8972 # Fast installation is not supported 7757 # Fast installation is not supported
8977 func_warning "\`$output' will be relinked during installation" 7762 func_warning "\`$output' will be relinked during installation"
8978 else 7763 else
8979 if test "$fast_install" != no; then 7764 if test "$fast_install" != no; then
8980 link_command="$finalize_var$compile_command$finalize_rpath" 7765 link_command="$finalize_var$compile_command$finalize_rpath"
8981 if test "$fast_install" = yes; then 7766 if test "$fast_install" = yes; then
8982 relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'` 7767 relink_command=`$ECHO "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'`
8983 else 7768 else
8984 # fast_install is set to needless 7769 # fast_install is set to needless
8985 relink_command= 7770 relink_command=
8986 fi 7771 fi
8987 else 7772 else
8989 relink_command="$finalize_var$finalize_command$finalize_rpath" 7774 relink_command="$finalize_var$finalize_command$finalize_rpath"
8990 fi 7775 fi
8991 fi 7776 fi
8992 7777
8993 # Replace the output file specification. 7778 # Replace the output file specification.
8994 link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` 7779 link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
8995 7780
8996 # Delete the old output files. 7781 # Delete the old output files.
8997 $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname 7782 $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname
8998 7783
8999 func_show_eval "$link_command" 'exit $?' 7784 func_show_eval "$link_command" 'exit $?'
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 7785
9007 # Now create the wrapper script. 7786 # Now create the wrapper script.
9008 func_verbose "creating $output" 7787 func_verbose "creating $output"
9009 7788
9010 # Quote the relink command for shipping. 7789 # Quote the relink command for shipping.
9019 func_quote_for_eval "$var_value" 7798 func_quote_for_eval "$var_value"
9020 relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" 7799 relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command"
9021 fi 7800 fi
9022 done 7801 done
9023 relink_command="(cd `pwd`; $relink_command)" 7802 relink_command="(cd `pwd`; $relink_command)"
9024 relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` 7803 relink_command=`$ECHO "X$relink_command" | $Xsed -e "$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"`
9025 fi 7815 fi
9026 7816
9027 # Only actually do things if not in dry run mode. 7817 # Only actually do things if not in dry run mode.
9028 $opt_dry_run || { 7818 $opt_dry_run || {
9029 # win32 will think the script is a binary if it has 7819 # win32 will think the script is a binary if it has
9099 oldobjs="$libobjs_save" 7889 oldobjs="$libobjs_save"
9100 build_libtool_libs=no 7890 build_libtool_libs=no
9101 else 7891 else
9102 oldobjs="$old_deplibs $non_pic_objects" 7892 oldobjs="$old_deplibs $non_pic_objects"
9103 if test "$preload" = yes && test -f "$symfileobj"; then 7893 if test "$preload" = yes && test -f "$symfileobj"; then
9104 func_append oldobjs " $symfileobj" 7894 oldobjs="$oldobjs $symfileobj"
9105 fi 7895 fi
9106 fi 7896 fi
9107 addlibs="$old_convenience" 7897 addlibs="$old_convenience"
9108 fi 7898 fi
9109 7899
9110 if test -n "$addlibs"; then 7900 if test -n "$addlibs"; then
9111 gentop="$output_objdir/${outputname}x" 7901 gentop="$output_objdir/${outputname}x"
9112 func_append generated " $gentop" 7902 generated="$generated $gentop"
9113 7903
9114 func_extract_archives $gentop $addlibs 7904 func_extract_archives $gentop $addlibs
9115 func_append oldobjs " $func_extract_archives_result" 7905 oldobjs="$oldobjs $func_extract_archives_result"
9116 fi 7906 fi
9117 7907
9118 # Do each command in the archive commands. 7908 # Do each command in the archive commands.
9119 if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then 7909 if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
9120 cmds=$old_archive_from_new_cmds 7910 cmds=$old_archive_from_new_cmds
9121 else 7911 else
9122 7912
9123 # Add any objects from preloaded convenience libraries 7913 # Add any objects from preloaded convenience libraries
9124 if test -n "$dlprefiles"; then 7914 if test -n "$dlprefiles"; then
9125 gentop="$output_objdir/${outputname}x" 7915 gentop="$output_objdir/${outputname}x"
9126 func_append generated " $gentop" 7916 generated="$generated $gentop"
9127 7917
9128 func_extract_archives $gentop $dlprefiles 7918 func_extract_archives $gentop $dlprefiles
9129 func_append oldobjs " $func_extract_archives_result" 7919 oldobjs="$oldobjs $func_extract_archives_result"
9130 fi 7920 fi
9131 7921
9132 # POSIX demands no paths to be encoded in archives. We have 7922 # POSIX demands no paths to be encoded in archives. We have
9133 # to avoid creating archives with duplicate basenames if we 7923 # to avoid creating archives with duplicate basenames if we
9134 # might have to extract them afterwards, e.g., when creating a 7924 # might have to extract them afterwards, e.g., when creating a
9140 func_basename "$obj" 7930 func_basename "$obj"
9141 $ECHO "$func_basename_result" 7931 $ECHO "$func_basename_result"
9142 done | sort | sort -uc >/dev/null 2>&1); then 7932 done | sort | sort -uc >/dev/null 2>&1); then
9143 : 7933 :
9144 else 7934 else
9145 echo "copying selected object files to avoid basename conflicts..." 7935 $ECHO "copying selected object files to avoid basename conflicts..."
9146 gentop="$output_objdir/${outputname}x" 7936 gentop="$output_objdir/${outputname}x"
9147 func_append generated " $gentop" 7937 generated="$generated $gentop"
9148 func_mkdir_p "$gentop" 7938 func_mkdir_p "$gentop"
9149 save_oldobjs=$oldobjs 7939 save_oldobjs=$oldobjs
9150 oldobjs= 7940 oldobjs=
9151 counter=1 7941 counter=1
9152 for obj in $save_oldobjs 7942 for obj in $save_oldobjs
9166 *[\ /]"$newobj "*) ;; 7956 *[\ /]"$newobj "*) ;;
9167 *) if test ! -f "$gentop/$newobj"; then break; fi ;; 7957 *) if test ! -f "$gentop/$newobj"; then break; fi ;;
9168 esac 7958 esac
9169 done 7959 done
9170 func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" 7960 func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj"
9171 func_append oldobjs " $gentop/$newobj" 7961 oldobjs="$oldobjs $gentop/$newobj"
9172 ;; 7962 ;;
9173 *) func_append oldobjs " $obj" ;; 7963 *) oldobjs="$oldobjs $obj" ;;
9174 esac 7964 esac
9175 done 7965 done
9176 fi 7966 fi
9177 func_to_tool_file "$oldlib" func_convert_file_msys_to_w32
9178 tool_oldlib=$func_to_tool_file_result
9179 eval cmds=\"$old_archive_cmds\" 7967 eval cmds=\"$old_archive_cmds\"
9180 7968
9181 func_len " $cmds" 7969 func_len " $cmds"
9182 len=$func_len_result 7970 len=$func_len_result
9183 if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then 7971 if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
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 7972 cmds=$old_archive_cmds
9195 else 7973 else
9196 # the command line is too long to link in one step, link in parts 7974 # the command line is too long to link in one step, link in parts
9197 func_verbose "using piecewise archive linking..." 7975 func_verbose "using piecewise archive linking..."
9198 save_RANLIB=$RANLIB 7976 save_RANLIB=$RANLIB
9263 relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" 8041 relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command"
9264 fi 8042 fi
9265 done 8043 done
9266 # Quote the link command for shipping. 8044 # Quote the link command for shipping.
9267 relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" 8045 relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
9268 relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` 8046 relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"`
9269 if test "$hardcode_automatic" = yes ; then 8047 if test "$hardcode_automatic" = yes ; then
9270 relink_command= 8048 relink_command=
9271 fi 8049 fi
9272 8050
9273 # Only create the output if not a dry run. 8051 # Only create the output if not a dry run.
9283 for deplib in $dependency_libs; do 8061 for deplib in $dependency_libs; do
9284 case $deplib in 8062 case $deplib in
9285 *.la) 8063 *.la)
9286 func_basename "$deplib" 8064 func_basename "$deplib"
9287 name="$func_basename_result" 8065 name="$func_basename_result"
9288 func_resolve_sysroot "$deplib" 8066 eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
9289 eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result`
9290 test -z "$libdir" && \ 8067 test -z "$libdir" && \
9291 func_fatal_error "\`$deplib' is not a valid libtool archive" 8068 func_fatal_error "\`$deplib' is not a valid libtool archive"
9292 func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name" 8069 newdependency_libs="$newdependency_libs $libdir/$name"
9293 ;; 8070 ;;
9294 -L*) 8071 *) newdependency_libs="$newdependency_libs $deplib" ;;
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"
9303 ;;
9304 *) func_append newdependency_libs " $deplib" ;;
9305 esac 8072 esac
9306 done 8073 done
9307 dependency_libs="$newdependency_libs" 8074 dependency_libs="$newdependency_libs"
9308 newdlfiles= 8075 newdlfiles=
9309 8076
9313 func_basename "$lib" 8080 func_basename "$lib"
9314 name="$func_basename_result" 8081 name="$func_basename_result"
9315 eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` 8082 eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
9316 test -z "$libdir" && \ 8083 test -z "$libdir" && \
9317 func_fatal_error "\`$lib' is not a valid libtool archive" 8084 func_fatal_error "\`$lib' is not a valid libtool archive"
9318 func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name" 8085 newdlfiles="$newdlfiles $libdir/$name"
9319 ;; 8086 ;;
9320 *) func_append newdlfiles " $lib" ;; 8087 *) newdlfiles="$newdlfiles $lib" ;;
9321 esac 8088 esac
9322 done 8089 done
9323 dlfiles="$newdlfiles" 8090 dlfiles="$newdlfiles"
9324 newdlprefiles= 8091 newdlprefiles=
9325 for lib in $dlprefiles; do 8092 for lib in $dlprefiles; do
9332 func_basename "$lib" 8099 func_basename "$lib"
9333 name="$func_basename_result" 8100 name="$func_basename_result"
9334 eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` 8101 eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
9335 test -z "$libdir" && \ 8102 test -z "$libdir" && \
9336 func_fatal_error "\`$lib' is not a valid libtool archive" 8103 func_fatal_error "\`$lib' is not a valid libtool archive"
9337 func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name" 8104 newdlprefiles="$newdlprefiles $libdir/$name"
9338 ;; 8105 ;;
9339 esac 8106 esac
9340 done 8107 done
9341 dlprefiles="$newdlprefiles" 8108 dlprefiles="$newdlprefiles"
9342 else 8109 else
9344 for lib in $dlfiles; do 8111 for lib in $dlfiles; do
9345 case $lib in 8112 case $lib in
9346 [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; 8113 [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
9347 *) abs=`pwd`"/$lib" ;; 8114 *) abs=`pwd`"/$lib" ;;
9348 esac 8115 esac
9349 func_append newdlfiles " $abs" 8116 newdlfiles="$newdlfiles $abs"
9350 done 8117 done
9351 dlfiles="$newdlfiles" 8118 dlfiles="$newdlfiles"
9352 newdlprefiles= 8119 newdlprefiles=
9353 for lib in $dlprefiles; do 8120 for lib in $dlprefiles; do
9354 case $lib in 8121 case $lib in
9355 [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; 8122 [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
9356 *) abs=`pwd`"/$lib" ;; 8123 *) abs=`pwd`"/$lib" ;;
9357 esac 8124 esac
9358 func_append newdlprefiles " $abs" 8125 newdlprefiles="$newdlprefiles $abs"
9359 done 8126 done
9360 dlprefiles="$newdlprefiles" 8127 dlprefiles="$newdlprefiles"
9361 fi 8128 fi
9362 $RM $output 8129 $RM $output
9363 # place dlname in correct position for cygwin 8130 # 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.
9372 tdlname=$dlname 8131 tdlname=$dlname
9373 case $host,$output,$installed,$module,$dlname in 8132 case $host,$output,$installed,$module,$dlname in
9374 *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) 8133 *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;;
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 ;;
9385 esac 8134 esac
9386 $ECHO > $output "\ 8135 $ECHO > $output "\
9387 # $outputname - a libtool library file 8136 # $outputname - a libtool library file
9388 # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION 8137 # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
9389 # 8138 #
9438 ;; 8187 ;;
9439 esac 8188 esac
9440 exit $EXIT_SUCCESS 8189 exit $EXIT_SUCCESS
9441 } 8190 }
9442 8191
9443 { test "$opt_mode" = link || test "$opt_mode" = relink; } && 8192 { test "$mode" = link || test "$mode" = relink; } &&
9444 func_mode_link ${1+"$@"} 8193 func_mode_link ${1+"$@"}
9445 8194
9446 8195
9447 # func_mode_uninstall arg... 8196 # func_mode_uninstall arg...
9448 func_mode_uninstall () 8197 func_mode_uninstall ()
9458 libtool_install_magic="$magic" 8207 libtool_install_magic="$magic"
9459 8208
9460 for arg 8209 for arg
9461 do 8210 do
9462 case $arg in 8211 case $arg in
9463 -f) func_append RM " $arg"; rmforce=yes ;; 8212 -f) RM="$RM $arg"; rmforce=yes ;;
9464 -*) func_append RM " $arg" ;; 8213 -*) RM="$RM $arg" ;;
9465 *) func_append files " $arg" ;; 8214 *) files="$files $arg" ;;
9466 esac 8215 esac
9467 done 8216 done
9468 8217
9469 test -z "$RM" && \ 8218 test -z "$RM" && \
9470 func_fatal_help "you must specify an RM program" 8219 func_fatal_help "you must specify an RM program"
9471 8220
9472 rmdirs= 8221 rmdirs=
9473 8222
8223 origobjdir="$objdir"
9474 for file in $files; do 8224 for file in $files; do
9475 func_dirname "$file" "" "." 8225 func_dirname "$file" "" "."
9476 dir="$func_dirname_result" 8226 dir="$func_dirname_result"
9477 if test "X$dir" = X.; then 8227 if test "X$dir" = X.; then
9478 odir="$objdir" 8228 objdir="$origobjdir"
9479 else 8229 else
9480 odir="$dir/$objdir" 8230 objdir="$dir/$origobjdir"
9481 fi 8231 fi
9482 func_basename "$file" 8232 func_basename "$file"
9483 name="$func_basename_result" 8233 name="$func_basename_result"
9484 test "$opt_mode" = uninstall && odir="$dir" 8234 test "$mode" = uninstall && objdir="$dir"
9485 8235
9486 # Remember odir for removal later, being careful to avoid duplicates 8236 # Remember objdir for removal later, being careful to avoid duplicates
9487 if test "$opt_mode" = clean; then 8237 if test "$mode" = clean; then
9488 case " $rmdirs " in 8238 case " $rmdirs " in
9489 *" $odir "*) ;; 8239 *" $objdir "*) ;;
9490 *) func_append rmdirs " $odir" ;; 8240 *) rmdirs="$rmdirs $objdir" ;;
9491 esac 8241 esac
9492 fi 8242 fi
9493 8243
9494 # Don't error if the file doesn't exist and rm -f was used. 8244 # Don't error if the file doesn't exist and rm -f was used.
9495 if { test -L "$file"; } >/dev/null 2>&1 || 8245 if { test -L "$file"; } >/dev/null 2>&1 ||
9511 if func_lalib_p "$file"; then 8261 if func_lalib_p "$file"; then
9512 func_source $dir/$name 8262 func_source $dir/$name
9513 8263
9514 # Delete the libtool libraries and symlinks. 8264 # Delete the libtool libraries and symlinks.
9515 for n in $library_names; do 8265 for n in $library_names; do
9516 func_append rmfiles " $odir/$n" 8266 rmfiles="$rmfiles $objdir/$n"
9517 done 8267 done
9518 test -n "$old_library" && func_append rmfiles " $odir/$old_library" 8268 test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library"
9519 8269
9520 case "$opt_mode" in 8270 case "$mode" in
9521 clean) 8271 clean)
9522 case " $library_names " in 8272 case " $library_names " in
8273 # " " in the beginning catches empty $dlname
9523 *" $dlname "*) ;; 8274 *" $dlname "*) ;;
9524 *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;; 8275 *) rmfiles="$rmfiles $objdir/$dlname" ;;
9525 esac 8276 esac
9526 test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i" 8277 test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i"
9527 ;; 8278 ;;
9528 uninstall) 8279 uninstall)
9529 if test -n "$library_names"; then 8280 if test -n "$library_names"; then
9530 # Do each command in the postuninstall commands. 8281 # Do each command in the postuninstall commands.
9531 func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' 8282 func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1'
9549 func_source $dir/$name 8300 func_source $dir/$name
9550 8301
9551 # Add PIC object to the list of files to remove. 8302 # Add PIC object to the list of files to remove.
9552 if test -n "$pic_object" && 8303 if test -n "$pic_object" &&
9553 test "$pic_object" != none; then 8304 test "$pic_object" != none; then
9554 func_append rmfiles " $dir/$pic_object" 8305 rmfiles="$rmfiles $dir/$pic_object"
9555 fi 8306 fi
9556 8307
9557 # Add non-PIC object to the list of files to remove. 8308 # Add non-PIC object to the list of files to remove.
9558 if test -n "$non_pic_object" && 8309 if test -n "$non_pic_object" &&
9559 test "$non_pic_object" != none; then 8310 test "$non_pic_object" != none; then
9560 func_append rmfiles " $dir/$non_pic_object" 8311 rmfiles="$rmfiles $dir/$non_pic_object"
9561 fi 8312 fi
9562 fi 8313 fi
9563 ;; 8314 ;;
9564 8315
9565 *) 8316 *)
9566 if test "$opt_mode" = clean ; then 8317 if test "$mode" = clean ; then
9567 noexename=$name 8318 noexename=$name
9568 case $file in 8319 case $file in
9569 *.exe) 8320 *.exe)
9570 func_stripname '' '.exe' "$file" 8321 func_stripname '' '.exe' "$file"
9571 file=$func_stripname_result 8322 file=$func_stripname_result
9572 func_stripname '' '.exe' "$name" 8323 func_stripname '' '.exe' "$name"
9573 noexename=$func_stripname_result 8324 noexename=$func_stripname_result
9574 # $file with .exe has already been added to rmfiles, 8325 # $file with .exe has already been added to rmfiles,
9575 # add $file without .exe 8326 # add $file without .exe
9576 func_append rmfiles " $file" 8327 rmfiles="$rmfiles $file"
9577 ;; 8328 ;;
9578 esac 8329 esac
9579 # Do a test to see if this is a libtool program. 8330 # Do a test to see if this is a libtool program.
9580 if func_ltwrapper_p "$file"; then 8331 if func_ltwrapper_p "$file"; then
9581 if func_ltwrapper_executable_p "$file"; then 8332 if func_ltwrapper_executable_p "$file"; then
9582 func_ltwrapper_scriptname "$file" 8333 func_ltwrapper_scriptname "$file"
9583 relink_command= 8334 relink_command=
9584 func_source $func_ltwrapper_scriptname_result 8335 func_source $func_ltwrapper_scriptname_result
9585 func_append rmfiles " $func_ltwrapper_scriptname_result" 8336 rmfiles="$rmfiles $func_ltwrapper_scriptname_result"
9586 else 8337 else
9587 relink_command= 8338 relink_command=
9588 func_source $dir/$noexename 8339 func_source $dir/$noexename
9589 fi 8340 fi
9590 8341
9591 # note $name still contains .exe if it was in $file originally 8342 # note $name still contains .exe if it was in $file originally
9592 # as does the version of $file that was added into $rmfiles 8343 # as does the version of $file that was added into $rmfiles
9593 func_append rmfiles " $odir/$name $odir/${name}S.${objext}" 8344 rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}"
9594 if test "$fast_install" = yes && test -n "$relink_command"; then 8345 if test "$fast_install" = yes && test -n "$relink_command"; then
9595 func_append rmfiles " $odir/lt-$name" 8346 rmfiles="$rmfiles $objdir/lt-$name"
9596 fi 8347 fi
9597 if test "X$noexename" != "X$name" ; then 8348 if test "X$noexename" != "X$name" ; then
9598 func_append rmfiles " $odir/lt-${noexename}.c" 8349 rmfiles="$rmfiles $objdir/lt-${noexename}.c"
9599 fi 8350 fi
9600 fi 8351 fi
9601 fi 8352 fi
9602 ;; 8353 ;;
9603 esac 8354 esac
9604 func_show_eval "$RM $rmfiles" 'exit_status=1' 8355 func_show_eval "$RM $rmfiles" 'exit_status=1'
9605 done 8356 done
8357 objdir="$origobjdir"
9606 8358
9607 # Try to remove the ${objdir}s in the directories where we deleted files 8359 # Try to remove the ${objdir}s in the directories where we deleted files
9608 for dir in $rmdirs; do 8360 for dir in $rmdirs; do
9609 if test -d "$dir"; then 8361 if test -d "$dir"; then
9610 func_show_eval "rmdir $dir >/dev/null 2>&1" 8362 func_show_eval "rmdir $dir >/dev/null 2>&1"
9612 done 8364 done
9613 8365
9614 exit $exit_status 8366 exit $exit_status
9615 } 8367 }
9616 8368
9617 { test "$opt_mode" = uninstall || test "$opt_mode" = clean; } && 8369 { test "$mode" = uninstall || test "$mode" = clean; } &&
9618 func_mode_uninstall ${1+"$@"} 8370 func_mode_uninstall ${1+"$@"}
9619 8371
9620 test -z "$opt_mode" && { 8372 test -z "$mode" && {
9621 help="$generic_help" 8373 help="$generic_help"
9622 func_fatal_help "you must specify a MODE" 8374 func_fatal_help "you must specify a MODE"
9623 } 8375 }
9624 8376
9625 test -z "$exec_cmd" && \ 8377 test -z "$exec_cmd" && \
9626 func_fatal_help "invalid operation mode \`$opt_mode'" 8378 func_fatal_help "invalid operation mode \`$mode'"
9627 8379
9628 if test -n "$exec_cmd"; then 8380 if test -n "$exec_cmd"; then
9629 eval exec "$exec_cmd" 8381 eval exec "$exec_cmd"
9630 exit $EXIT_FAILURE 8382 exit $EXIT_FAILURE
9631 fi 8383 fi