Mercurial > urweb
comparison ltmain.sh @ 1459:156b8e8c25d8
Grandfather into release: Use latest Debian testing autotools, etc.
author | Adam Chlipala <adam@chlipala.net> |
---|---|
date | Sun, 15 May 2011 17:20:08 -0400 |
parents | 482815817e99 |
children | 3b57a6ddef1a |
comparison
equal
deleted
inserted
replaced
1458:bd6b03bc6333 | 1459:156b8e8c25d8 |
---|---|
1 # Generated from ltmain.m4sh. | 1 |
2 | 2 # libtool (GNU libtool) 2.4 |
3 # ltmain.sh (GNU libtool) 2.2.6b | |
4 # Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996 | 3 # Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996 |
5 | 4 |
6 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, 2007 2008 Free Software Foundation, Inc. | 5 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, |
6 # 2007, 2008, 2009, 2010 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 # --tag=TAG use configuration variables from tag TAG | 42 # --no-quiet, --no-silent |
43 # -v, --verbose print informational messages (default) | 43 # print informational messages (default) |
44 # --version print version information | 44 # --tag=TAG use configuration variables from tag TAG |
45 # -h, --help print short or long help message | 45 # -v, --verbose print more informational messages than default |
46 # --no-verbose don't print the extra informational messages | |
47 # --version print version information | |
48 # -h, --help, --help-all print short, long, or detailed help message | |
46 # | 49 # |
47 # MODE must be one of the following: | 50 # MODE must be one of the following: |
48 # | 51 # |
49 # clean remove files from the build directory | 52 # clean remove files from the build directory |
50 # compile compile a source file into a libtool object | 53 # compile compile a source file into a libtool object |
51 # execute automatically set library path, then run a program | 54 # execute automatically set library path, then run a program |
52 # finish complete the installation of libtool libraries | 55 # finish complete the installation of libtool libraries |
53 # install install libraries or executables | 56 # install install libraries or executables |
54 # link create a library or an executable | 57 # link create a library or an executable |
55 # uninstall remove libraries from an installed directory | 58 # uninstall remove libraries from an installed directory |
56 # | 59 # |
57 # MODE-ARGS vary depending on the MODE. | 60 # MODE-ARGS vary depending on the MODE. When passed as first option, |
61 # `--mode=MODE' may be abbreviated as `MODE' or a unique abbreviation of that. | |
58 # Try `$progname --help --mode=MODE' for a more detailed description of MODE. | 62 # Try `$progname --help --mode=MODE' for a more detailed description of MODE. |
59 # | 63 # |
60 # When reporting a bug, please describe a test case to reproduce it and | 64 # When reporting a bug, please describe a test case to reproduce it and |
61 # include the following information: | 65 # include the following information: |
62 # | 66 # |
63 # host-triplet: $host | 67 # host-triplet: $host |
64 # shell: $SHELL | 68 # shell: $SHELL |
65 # compiler: $LTCC | 69 # compiler: $LTCC |
66 # compiler flags: $LTCFLAGS | 70 # compiler flags: $LTCFLAGS |
67 # linker: $LD (gnu? $with_gnu_ld) | 71 # linker: $LD (gnu? $with_gnu_ld) |
68 # $progname: (GNU libtool) 2.2.6b Debian-2.2.6b-2 | 72 # $progname: (GNU libtool) 2.4 Debian-2.4-2 |
69 # automake: $automake_version | 73 # automake: $automake_version |
70 # autoconf: $autoconf_version | 74 # autoconf: $autoconf_version |
71 # | 75 # |
72 # Report bugs to <bug-libtool@gnu.org>. | 76 # Report bugs to <bug-libtool@gnu.org>. |
73 | 77 # GNU libtool home page: <http://www.gnu.org/software/libtool/>. |
74 PROGRAM=ltmain.sh | 78 # General help using GNU software: <http://www.gnu.org/gethelp/>. |
79 | |
80 PROGRAM=libtool | |
75 PACKAGE=libtool | 81 PACKAGE=libtool |
76 VERSION="2.2.6b Debian-2.2.6b-2" | 82 VERSION="2.4 Debian-2.4-2" |
77 TIMESTAMP="" | 83 TIMESTAMP="" |
78 package_revision=1.3017 | 84 package_revision=1.3293 |
79 | 85 |
80 # Be Bourne compatible | 86 # Be Bourne compatible |
81 if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then | 87 if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then |
82 emulate sh | 88 emulate sh |
83 NULLCMD=: | 89 NULLCMD=: |
89 case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac | 95 case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac |
90 fi | 96 fi |
91 BIN_SH=xpg4; export BIN_SH # for Tru64 | 97 BIN_SH=xpg4; export BIN_SH # for Tru64 |
92 DUALCASE=1; export DUALCASE # for MKS sh | 98 DUALCASE=1; export DUALCASE # for MKS sh |
93 | 99 |
100 # A function that is used when there is no print builtin or printf. | |
101 func_fallback_echo () | |
102 { | |
103 eval 'cat <<_LTECHO_EOF | |
104 $1 | |
105 _LTECHO_EOF' | |
106 } | |
107 | |
94 # NLS nuisances: We save the old values to restore during execute mode. | 108 # 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). | |
98 lt_user_locale= | 109 lt_user_locale= |
99 lt_safe_locale= | 110 lt_safe_locale= |
100 for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES | 111 for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES |
101 do | 112 do |
102 eval "if test \"\${$lt_var+set}\" = set; then | 113 eval "if test \"\${$lt_var+set}\" = set; then |
105 export $lt_var | 116 export $lt_var |
106 lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\" | 117 lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\" |
107 lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\" | 118 lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\" |
108 fi" | 119 fi" |
109 done | 120 done |
121 LC_ALL=C | |
122 LANGUAGE=C | |
123 export LANGUAGE LC_ALL | |
110 | 124 |
111 $lt_unset CDPATH | 125 $lt_unset CDPATH |
112 | 126 |
113 | 127 |
128 # Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh | |
129 # is ksh but when the shell is invoked as "sh" and the current value of | |
130 # the _XPG environment variable is not equal to 1 (one), the special | |
131 # positional parameter $0, within a function call, is the name of the | |
132 # function. | |
133 progpath="$0" | |
114 | 134 |
115 | 135 |
116 | 136 |
117 : ${CP="cp -f"} | 137 : ${CP="cp -f"} |
118 : ${ECHO="echo"} | 138 test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'} |
119 : ${EGREP="/bin/grep -E"} | 139 : ${EGREP="/bin/grep -E"} |
120 : ${FGREP="/bin/grep -F"} | 140 : ${FGREP="/bin/grep -F"} |
121 : ${GREP="/bin/grep"} | 141 : ${GREP="/bin/grep"} |
122 : ${LN_S="ln -s"} | 142 : ${LN_S="ln -s"} |
123 : ${MAKE="make"} | 143 : ${MAKE="make"} |
141 ' | 161 ' |
142 IFS=" $lt_nl" | 162 IFS=" $lt_nl" |
143 | 163 |
144 dirname="s,/[^/]*$,," | 164 dirname="s,/[^/]*$,," |
145 basename="s,^.*/,," | 165 basename="s,^.*/,," |
166 | |
167 # func_dirname file append nondir_replacement | |
168 # Compute the dirname of FILE. If nonempty, add APPEND to the result, | |
169 # otherwise set result to NONDIR_REPLACEMENT. | |
170 func_dirname () | |
171 { | |
172 func_dirname_result=`$ECHO "${1}" | $SED "$dirname"` | |
173 if test "X$func_dirname_result" = "X${1}"; then | |
174 func_dirname_result="${3}" | |
175 else | |
176 func_dirname_result="$func_dirname_result${2}" | |
177 fi | |
178 } # func_dirname may be replaced by extended shell implementation | |
179 | |
180 | |
181 # func_basename file | |
182 func_basename () | |
183 { | |
184 func_basename_result=`$ECHO "${1}" | $SED "$basename"` | |
185 } # func_basename may be replaced by extended shell implementation | |
186 | |
146 | 187 |
147 # func_dirname_and_basename file append nondir_replacement | 188 # func_dirname_and_basename file append nondir_replacement |
148 # perform func_basename and func_dirname in a single function | 189 # perform func_basename and func_dirname in a single function |
149 # call: | 190 # call: |
150 # dirname: Compute the dirname of FILE. If nonempty, | 191 # dirname: Compute the dirname of FILE. If nonempty, |
156 # Implementation must be kept synchronized with func_dirname | 197 # Implementation must be kept synchronized with func_dirname |
157 # and func_basename. For efficiency, we do not delegate to | 198 # and func_basename. For efficiency, we do not delegate to |
158 # those functions but instead duplicate the functionality here. | 199 # those functions but instead duplicate the functionality here. |
159 func_dirname_and_basename () | 200 func_dirname_and_basename () |
160 { | 201 { |
161 # Extract subdirectory from the argument. | 202 # Extract subdirectory from the argument. |
162 func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"` | 203 func_dirname_result=`$ECHO "${1}" | $SED -e "$dirname"` |
163 if test "X$func_dirname_result" = "X${1}"; then | 204 if test "X$func_dirname_result" = "X${1}"; then |
164 func_dirname_result="${3}" | 205 func_dirname_result="${3}" |
165 else | 206 else |
166 func_dirname_result="$func_dirname_result${2}" | 207 func_dirname_result="$func_dirname_result${2}" |
208 fi | |
209 func_basename_result=`$ECHO "${1}" | $SED -e "$basename"` | |
210 } # func_dirname_and_basename may be replaced by extended shell implementation | |
211 | |
212 | |
213 # func_stripname prefix suffix name | |
214 # strip PREFIX and SUFFIX off of NAME. | |
215 # PREFIX and SUFFIX must not contain globbing or regex special | |
216 # characters, hashes, percent signs, but SUFFIX may contain a leading | |
217 # dot (in which case that matches only a dot). | |
218 # func_strip_suffix prefix name | |
219 func_stripname () | |
220 { | |
221 case ${2} in | |
222 .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; | |
223 *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; | |
224 esac | |
225 } # func_stripname may be replaced by extended shell implementation | |
226 | |
227 | |
228 # These SED scripts presuppose an absolute path with a trailing slash. | |
229 pathcar='s,^/\([^/]*\).*$,\1,' | |
230 pathcdr='s,^/[^/]*,,' | |
231 removedotparts=':dotsl | |
232 s@/\./@/@g | |
233 t dotsl | |
234 s,/\.$,/,' | |
235 collapseslashes='s@/\{1,\}@/@g' | |
236 finalslash='s,/*$,/,' | |
237 | |
238 # func_normal_abspath PATH | |
239 # Remove doubled-up and trailing slashes, "." path components, | |
240 # and cancel out any ".." path components in PATH after making | |
241 # it an absolute path. | |
242 # value returned in "$func_normal_abspath_result" | |
243 func_normal_abspath () | |
244 { | |
245 # Start from root dir and reassemble the path. | |
246 func_normal_abspath_result= | |
247 func_normal_abspath_tpath=$1 | |
248 func_normal_abspath_altnamespace= | |
249 case $func_normal_abspath_tpath in | |
250 "") | |
251 # Empty path, that just means $cwd. | |
252 func_stripname '' '/' "`pwd`" | |
253 func_normal_abspath_result=$func_stripname_result | |
254 return | |
255 ;; | |
256 # The next three entries are used to spot a run of precisely | |
257 # two leading slashes without using negated character classes; | |
258 # we take advantage of case's first-match behaviour. | |
259 ///*) | |
260 # Unusual form of absolute path, do nothing. | |
261 ;; | |
262 //*) | |
263 # Not necessarily an ordinary path; POSIX reserves leading '//' | |
264 # and for example Cygwin uses it to access remote file shares | |
265 # over CIFS/SMB, so we conserve a leading double slash if found. | |
266 func_normal_abspath_altnamespace=/ | |
267 ;; | |
268 /*) | |
269 # Absolute path, do nothing. | |
270 ;; | |
271 *) | |
272 # Relative path, prepend $cwd. | |
273 func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath | |
274 ;; | |
275 esac | |
276 # Cancel out all the simple stuff to save iterations. We also want | |
277 # the path to end with a slash for ease of parsing, so make sure | |
278 # there is one (and only one) here. | |
279 func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ | |
280 -e "$removedotparts" -e "$collapseslashes" -e "$finalslash"` | |
281 while :; do | |
282 # Processed it all yet? | |
283 if test "$func_normal_abspath_tpath" = / ; then | |
284 # If we ascended to the root using ".." the result may be empty now. | |
285 if test -z "$func_normal_abspath_result" ; then | |
286 func_normal_abspath_result=/ | |
287 fi | |
288 break | |
289 fi | |
290 func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \ | |
291 -e "$pathcar"` | |
292 func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ | |
293 -e "$pathcdr"` | |
294 # Figure out what to do with it | |
295 case $func_normal_abspath_tcomponent in | |
296 "") | |
297 # Trailing empty path component, ignore it. | |
298 ;; | |
299 ..) | |
300 # Parent dir; strip last assembled component from result. | |
301 func_dirname "$func_normal_abspath_result" | |
302 func_normal_abspath_result=$func_dirname_result | |
303 ;; | |
304 *) | |
305 # Actual path component, append it. | |
306 func_normal_abspath_result=$func_normal_abspath_result/$func_normal_abspath_tcomponent | |
307 ;; | |
308 esac | |
309 done | |
310 # Restore leading double-slash if one was found on entry. | |
311 func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result | |
312 } | |
313 | |
314 # func_relative_path SRCDIR DSTDIR | |
315 # generates a relative path from SRCDIR to DSTDIR, with a trailing | |
316 # slash if non-empty, suitable for immediately appending a filename | |
317 # without needing to append a separator. | |
318 # value returned in "$func_relative_path_result" | |
319 func_relative_path () | |
320 { | |
321 func_relative_path_result= | |
322 func_normal_abspath "$1" | |
323 func_relative_path_tlibdir=$func_normal_abspath_result | |
324 func_normal_abspath "$2" | |
325 func_relative_path_tbindir=$func_normal_abspath_result | |
326 | |
327 # Ascend the tree starting from libdir | |
328 while :; do | |
329 # check if we have found a prefix of bindir | |
330 case $func_relative_path_tbindir in | |
331 $func_relative_path_tlibdir) | |
332 # found an exact match | |
333 func_relative_path_tcancelled= | |
334 break | |
335 ;; | |
336 $func_relative_path_tlibdir*) | |
337 # found a matching prefix | |
338 func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir" | |
339 func_relative_path_tcancelled=$func_stripname_result | |
340 if test -z "$func_relative_path_result"; then | |
341 func_relative_path_result=. | |
342 fi | |
343 break | |
344 ;; | |
345 *) | |
346 func_dirname $func_relative_path_tlibdir | |
347 func_relative_path_tlibdir=${func_dirname_result} | |
348 if test "x$func_relative_path_tlibdir" = x ; then | |
349 # Have to descend all the way to the root! | |
350 func_relative_path_result=../$func_relative_path_result | |
351 func_relative_path_tcancelled=$func_relative_path_tbindir | |
352 break | |
353 fi | |
354 func_relative_path_result=../$func_relative_path_result | |
355 ;; | |
356 esac | |
357 done | |
358 | |
359 # Now calculate path; take care to avoid doubling-up slashes. | |
360 func_stripname '' '/' "$func_relative_path_result" | |
361 func_relative_path_result=$func_stripname_result | |
362 func_stripname '/' '/' "$func_relative_path_tcancelled" | |
363 if test "x$func_stripname_result" != x ; then | |
364 func_relative_path_result=${func_relative_path_result}/${func_stripname_result} | |
167 fi | 365 fi |
168 func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"` | 366 |
169 } | 367 # Normalisation. If bindir is libdir, return empty string, |
170 | 368 # else relative path ending with a slash; either way, target |
171 # Generated shell functions inserted here. | 369 # file name can be directly appended. |
172 | 370 if test ! -z "$func_relative_path_result"; then |
173 # Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh | 371 func_stripname './' '' "$func_relative_path_result/" |
174 # is ksh but when the shell is invoked as "sh" and the current value of | 372 func_relative_path_result=$func_stripname_result |
175 # the _XPG environment variable is not equal to 1 (one), the special | 373 fi |
176 # positional parameter $0, within a function call, is the name of the | 374 } |
177 # function. | |
178 progpath="$0" | |
179 | 375 |
180 # The name of this program: | 376 # 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: | |
183 func_dirname_and_basename "$progpath" | 377 func_dirname_and_basename "$progpath" |
184 progname=$func_basename_result | 378 progname=$func_basename_result |
185 case $progname in | |
186 -*) progname=./$progname ;; | |
187 esac | |
188 | 379 |
189 # Make sure we have an absolute path for reexecution: | 380 # Make sure we have an absolute path for reexecution: |
190 case $progpath in | 381 case $progpath in |
191 [\\/]*|[A-Za-z]:\\*) ;; | 382 [\\/]*|[A-Za-z]:\\*) ;; |
192 *[\\/]*) | 383 *[\\/]*) |
213 sed_quote_subst='s/\([`"$\\]\)/\\\1/g' | 404 sed_quote_subst='s/\([`"$\\]\)/\\\1/g' |
214 | 405 |
215 # Same as above, but do not quote variable references. | 406 # Same as above, but do not quote variable references. |
216 double_quote_subst='s/\(["`\\]\)/\\\1/g' | 407 double_quote_subst='s/\(["`\\]\)/\\\1/g' |
217 | 408 |
409 # Sed substitution that turns a string into a regex matching for the | |
410 # string literally. | |
411 sed_make_literal_regex='s,[].[^$\\*\/],\\&,g' | |
412 | |
413 # Sed substitution that converts a w32 file name or path | |
414 # which contains forward slashes, into one that contains | |
415 # (escaped) backslashes. A very naive implementation. | |
416 lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' | |
417 | |
218 # Re-`\' parameter expansions in output of double_quote_subst that were | 418 # Re-`\' parameter expansions in output of double_quote_subst that were |
219 # `\'-ed in input to the same. If an odd number of `\' preceded a '$' | 419 # `\'-ed in input to the same. If an odd number of `\' preceded a '$' |
220 # in input to double_quote_subst, that '$' was protected from expansion. | 420 # in input to double_quote_subst, that '$' was protected from expansion. |
221 # Since each input `\' is now two `\'s, look for any number of runs of | 421 # Since each input `\' is now two `\'s, look for any number of runs of |
222 # four `\'s followed by two `\'s and then a '$'. `\' that '$'. | 422 # four `\'s followed by two `\'s and then a '$'. `\' that '$'. |
241 # func_echo arg... | 441 # func_echo arg... |
242 # Echo program name prefixed message, along with the current mode | 442 # Echo program name prefixed message, along with the current mode |
243 # name if it has been set yet. | 443 # name if it has been set yet. |
244 func_echo () | 444 func_echo () |
245 { | 445 { |
246 $ECHO "$progname${mode+: }$mode: $*" | 446 $ECHO "$progname: ${opt_mode+$opt_mode: }$*" |
247 } | 447 } |
248 | 448 |
249 # func_verbose arg... | 449 # func_verbose arg... |
250 # Echo program name prefixed message in verbose mode only. | 450 # Echo program name prefixed message in verbose mode only. |
251 func_verbose () | 451 func_verbose () |
256 # fails when set -e is in force, so we need another command to | 456 # fails when set -e is in force, so we need another command to |
257 # work around that: | 457 # work around that: |
258 : | 458 : |
259 } | 459 } |
260 | 460 |
461 # func_echo_all arg... | |
462 # Invoke $ECHO with all args, space-separated. | |
463 func_echo_all () | |
464 { | |
465 $ECHO "$*" | |
466 } | |
467 | |
261 # func_error arg... | 468 # func_error arg... |
262 # Echo program name prefixed message to standard error. | 469 # Echo program name prefixed message to standard error. |
263 func_error () | 470 func_error () |
264 { | 471 { |
265 $ECHO "$progname${mode+: }$mode: "${1+"$@"} 1>&2 | 472 $ECHO "$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2 |
266 } | 473 } |
267 | 474 |
268 # func_warning arg... | 475 # func_warning arg... |
269 # Echo program name prefixed warning message to standard error. | 476 # Echo program name prefixed warning message to standard error. |
270 func_warning () | 477 func_warning () |
271 { | 478 { |
272 $opt_warning && $ECHO "$progname${mode+: }$mode: warning: "${1+"$@"} 1>&2 | 479 $opt_warning && $ECHO "$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2 |
273 | 480 |
274 # bash bug again: | 481 # bash bug again: |
275 : | 482 : |
276 } | 483 } |
277 | 484 |
324 | 531 |
325 # If the last portion added has no slash in it, the list is done | 532 # If the last portion added has no slash in it, the list is done |
326 case $my_directory_path in */*) ;; *) break ;; esac | 533 case $my_directory_path in */*) ;; *) break ;; esac |
327 | 534 |
328 # ...otherwise throw away the child directory and loop | 535 # ...otherwise throw away the child directory and loop |
329 my_directory_path=`$ECHO "X$my_directory_path" | $Xsed -e "$dirname"` | 536 my_directory_path=`$ECHO "$my_directory_path" | $SED -e "$dirname"` |
330 done | 537 done |
331 my_dir_list=`$ECHO "X$my_dir_list" | $Xsed -e 's,:*$,,'` | 538 my_dir_list=`$ECHO "$my_dir_list" | $SED 's,:*$,,'` |
332 | 539 |
333 save_mkdir_p_IFS="$IFS"; IFS=':' | 540 save_mkdir_p_IFS="$IFS"; IFS=':' |
334 for my_dir in $my_dir_list; do | 541 for my_dir in $my_dir_list; do |
335 IFS="$save_mkdir_p_IFS" | 542 IFS="$save_mkdir_p_IFS" |
336 # mkdir can fail with a `File exist' error if two processes | 543 # mkdir can fail with a `File exist' error if two processes |
376 # If we're not in dry-run mode, bomb out on failure | 583 # If we're not in dry-run mode, bomb out on failure |
377 test -d "$my_tmpdir" || \ | 584 test -d "$my_tmpdir" || \ |
378 func_fatal_error "cannot create temporary directory \`$my_tmpdir'" | 585 func_fatal_error "cannot create temporary directory \`$my_tmpdir'" |
379 fi | 586 fi |
380 | 587 |
381 $ECHO "X$my_tmpdir" | $Xsed | 588 $ECHO "$my_tmpdir" |
382 } | 589 } |
383 | 590 |
384 | 591 |
385 # func_quote_for_eval arg | 592 # func_quote_for_eval arg |
386 # Aesthetically quote ARG to be evaled later. | 593 # Aesthetically quote ARG to be evaled later. |
390 # which are still active within double quotes backslashified. | 597 # which are still active within double quotes backslashified. |
391 func_quote_for_eval () | 598 func_quote_for_eval () |
392 { | 599 { |
393 case $1 in | 600 case $1 in |
394 *[\\\`\"\$]*) | 601 *[\\\`\"\$]*) |
395 func_quote_for_eval_unquoted_result=`$ECHO "X$1" | $Xsed -e "$sed_quote_subst"` ;; | 602 func_quote_for_eval_unquoted_result=`$ECHO "$1" | $SED "$sed_quote_subst"` ;; |
396 *) | 603 *) |
397 func_quote_for_eval_unquoted_result="$1" ;; | 604 func_quote_for_eval_unquoted_result="$1" ;; |
398 esac | 605 esac |
399 | 606 |
400 case $func_quote_for_eval_unquoted_result in | 607 case $func_quote_for_eval_unquoted_result in |
417 # but do not quote variable references. | 624 # but do not quote variable references. |
418 func_quote_for_expand () | 625 func_quote_for_expand () |
419 { | 626 { |
420 case $1 in | 627 case $1 in |
421 *[\\\`\"]*) | 628 *[\\\`\"]*) |
422 my_arg=`$ECHO "X$1" | $Xsed \ | 629 my_arg=`$ECHO "$1" | $SED \ |
423 -e "$double_quote_subst" -e "$sed_double_backslash"` ;; | 630 -e "$double_quote_subst" -e "$sed_double_backslash"` ;; |
424 *) | 631 *) |
425 my_arg="$1" ;; | 632 my_arg="$1" ;; |
426 esac | 633 esac |
427 | 634 |
486 eval "(exit $my_status); $my_fail_exp" | 693 eval "(exit $my_status); $my_fail_exp" |
487 fi | 694 fi |
488 fi | 695 fi |
489 } | 696 } |
490 | 697 |
491 | 698 # func_tr_sh |
492 | 699 # Turn $1 into a string suitable for a shell variable name. |
700 # Result is stored in $func_tr_sh_result. All characters | |
701 # not in the set a-zA-Z0-9_ are replaced with '_'. Further, | |
702 # if $1 begins with a digit, a '_' is prepended as well. | |
703 func_tr_sh () | |
704 { | |
705 case $1 in | |
706 [0-9]* | *[!a-zA-Z0-9_]*) | |
707 func_tr_sh_result=`$ECHO "$1" | $SED 's/^\([0-9]\)/_\1/; s/[^a-zA-Z0-9_]/_/g'` | |
708 ;; | |
709 * ) | |
710 func_tr_sh_result=$1 | |
711 ;; | |
712 esac | |
713 } | |
493 | 714 |
494 | 715 |
495 # func_version | 716 # func_version |
496 # Echo version message to standard output and exit. | 717 # Echo version message to standard output and exit. |
497 func_version () | 718 func_version () |
498 { | 719 { |
499 $SED -n '/^# '$PROGRAM' (GNU /,/# warranty; / { | 720 $opt_debug |
721 | |
722 $SED -n '/(C)/!b go | |
723 :more | |
724 /\./!{ | |
725 N | |
726 s/\n# / / | |
727 b more | |
728 } | |
729 :go | |
730 /^# '$PROGRAM' (GNU /,/# warranty; / { | |
500 s/^# // | 731 s/^# // |
501 s/^# *$// | 732 s/^# *$// |
502 s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/ | 733 s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/ |
503 p | 734 p |
504 }' < "$progpath" | 735 }' < "$progpath" |
507 | 738 |
508 # func_usage | 739 # func_usage |
509 # Echo short help message to standard output and exit. | 740 # Echo short help message to standard output and exit. |
510 func_usage () | 741 func_usage () |
511 { | 742 { |
512 $SED -n '/^# Usage:/,/# -h/ { | 743 $opt_debug |
744 | |
745 $SED -n '/^# Usage:/,/^# *.*--help/ { | |
513 s/^# // | 746 s/^# // |
514 s/^# *$// | 747 s/^# *$// |
515 s/\$progname/'$progname'/ | 748 s/\$progname/'$progname'/ |
516 p | 749 p |
517 }' < "$progpath" | 750 }' < "$progpath" |
518 $ECHO | 751 echo |
519 $ECHO "run \`$progname --help | more' for full usage" | 752 $ECHO "run \`$progname --help | more' for full usage" |
520 exit $? | 753 exit $? |
521 } | 754 } |
522 | 755 |
523 # func_help | 756 # func_help [NOEXIT] |
524 # Echo long help message to standard output and exit. | 757 # Echo long help message to standard output and exit, |
758 # unless 'noexit' is passed as argument. | |
525 func_help () | 759 func_help () |
526 { | 760 { |
761 $opt_debug | |
762 | |
527 $SED -n '/^# Usage:/,/# Report bugs to/ { | 763 $SED -n '/^# Usage:/,/# Report bugs to/ { |
764 :print | |
528 s/^# // | 765 s/^# // |
529 s/^# *$// | 766 s/^# *$// |
530 s*\$progname*'$progname'* | 767 s*\$progname*'$progname'* |
531 s*\$host*'"$host"'* | 768 s*\$host*'"$host"'* |
532 s*\$SHELL*'"$SHELL"'* | 769 s*\$SHELL*'"$SHELL"'* |
535 s*\$LD*'"$LD"'* | 772 s*\$LD*'"$LD"'* |
536 s/\$with_gnu_ld/'"$with_gnu_ld"'/ | 773 s/\$with_gnu_ld/'"$with_gnu_ld"'/ |
537 s/\$automake_version/'"`(automake --version) 2>/dev/null |$SED 1q`"'/ | 774 s/\$automake_version/'"`(automake --version) 2>/dev/null |$SED 1q`"'/ |
538 s/\$autoconf_version/'"`(autoconf --version) 2>/dev/null |$SED 1q`"'/ | 775 s/\$autoconf_version/'"`(autoconf --version) 2>/dev/null |$SED 1q`"'/ |
539 p | 776 p |
540 }' < "$progpath" | 777 d |
541 exit $? | 778 } |
779 /^# .* home page:/b print | |
780 /^# General help using/b print | |
781 ' < "$progpath" | |
782 ret=$? | |
783 if test -z "$1"; then | |
784 exit $ret | |
785 fi | |
542 } | 786 } |
543 | 787 |
544 # func_missing_arg argname | 788 # func_missing_arg argname |
545 # Echo program name prefixed message to standard error and set global | 789 # Echo program name prefixed message to standard error and set global |
546 # exit_cmd. | 790 # exit_cmd. |
547 func_missing_arg () | 791 func_missing_arg () |
548 { | 792 { |
549 func_error "missing argument for $1" | 793 $opt_debug |
794 | |
795 func_error "missing argument for $1." | |
550 exit_cmd=exit | 796 exit_cmd=exit |
551 } | 797 } |
552 | 798 |
799 | |
800 # func_split_short_opt shortopt | |
801 # Set func_split_short_opt_name and func_split_short_opt_arg shell | |
802 # variables after splitting SHORTOPT after the 2nd character. | |
803 func_split_short_opt () | |
804 { | |
805 my_sed_short_opt='1s/^\(..\).*$/\1/;q' | |
806 my_sed_short_rest='1s/^..\(.*\)$/\1/;q' | |
807 | |
808 func_split_short_opt_name=`$ECHO "$1" | $SED "$my_sed_short_opt"` | |
809 func_split_short_opt_arg=`$ECHO "$1" | $SED "$my_sed_short_rest"` | |
810 } # func_split_short_opt may be replaced by extended shell implementation | |
811 | |
812 | |
813 # func_split_long_opt longopt | |
814 # Set func_split_long_opt_name and func_split_long_opt_arg shell | |
815 # variables after splitting LONGOPT at the `=' sign. | |
816 func_split_long_opt () | |
817 { | |
818 my_sed_long_opt='1s/^\(--[^=]*\)=.*/\1/;q' | |
819 my_sed_long_arg='1s/^--[^=]*=//' | |
820 | |
821 func_split_long_opt_name=`$ECHO "$1" | $SED "$my_sed_long_opt"` | |
822 func_split_long_opt_arg=`$ECHO "$1" | $SED "$my_sed_long_arg"` | |
823 } # func_split_long_opt may be replaced by extended shell implementation | |
824 | |
553 exit_cmd=: | 825 exit_cmd=: |
554 | 826 |
555 | 827 |
556 | 828 |
557 | 829 |
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 | |
582 | 830 |
583 magic="%%%MAGIC variable%%%" | 831 magic="%%%MAGIC variable%%%" |
584 magic_exe="%%%MAGIC EXE variable%%%" | 832 magic_exe="%%%MAGIC EXE variable%%%" |
585 | 833 |
586 # Global variables. | 834 # Global variables. |
587 # $mode is unset | |
588 nonopt= | 835 nonopt= |
589 execute_dlfiles= | |
590 preserve_args= | 836 preserve_args= |
591 lo2o="s/\\.lo\$/.${objext}/" | 837 lo2o="s/\\.lo\$/.${objext}/" |
592 o2lo="s/\\.${objext}\$/.lo/" | 838 o2lo="s/\\.${objext}\$/.lo/" |
593 extracted_archives= | 839 extracted_archives= |
594 extracted_serial=0 | 840 extracted_serial=0 |
595 | 841 |
596 opt_dry_run=false | |
597 opt_duplicate_deps=false | |
598 opt_silent=false | |
599 opt_debug=: | |
600 | |
601 # If this variable is set in any of the actions, the command in it | 842 # If this variable is set in any of the actions, the command in it |
602 # will be execed at the end. This prevents here-documents from being | 843 # will be execed at the end. This prevents here-documents from being |
603 # left over by shells. | 844 # left over by shells. |
604 exec_cmd= | 845 exec_cmd= |
605 | 846 |
847 # func_append var value | |
848 # Append VALUE to the end of shell variable VAR. | |
849 func_append () | |
850 { | |
851 eval "${1}=\$${1}\${2}" | |
852 } # func_append may be replaced by extended shell implementation | |
853 | |
854 # func_append_quoted var value | |
855 # Quote VALUE and append to the end of shell variable VAR, separated | |
856 # by a space. | |
857 func_append_quoted () | |
858 { | |
859 func_quote_for_eval "${2}" | |
860 eval "${1}=\$${1}\\ \$func_quote_for_eval_result" | |
861 } # func_append_quoted may be replaced by extended shell implementation | |
862 | |
863 | |
864 # func_arith arithmetic-term... | |
865 func_arith () | |
866 { | |
867 func_arith_result=`expr "${@}"` | |
868 } # func_arith may be replaced by extended shell implementation | |
869 | |
870 | |
871 # func_len string | |
872 # STRING may not start with a hyphen. | |
873 func_len () | |
874 { | |
875 func_len_result=`expr "${1}" : ".*" 2>/dev/null || echo $max_cmd_len` | |
876 } # func_len may be replaced by extended shell implementation | |
877 | |
878 | |
879 # func_lo2o object | |
880 func_lo2o () | |
881 { | |
882 func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"` | |
883 } # func_lo2o may be replaced by extended shell implementation | |
884 | |
885 | |
886 # func_xform libobj-or-source | |
887 func_xform () | |
888 { | |
889 func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'` | |
890 } # func_xform may be replaced by extended shell implementation | |
891 | |
892 | |
606 # func_fatal_configuration arg... | 893 # func_fatal_configuration arg... |
607 # Echo program name prefixed message to standard error, followed by | 894 # Echo program name prefixed message to standard error, followed by |
608 # a configuration failure hint, and exit. | 895 # a configuration failure hint, and exit. |
609 func_fatal_configuration () | 896 func_fatal_configuration () |
610 { | 897 { |
634 | 921 |
635 # func_features | 922 # func_features |
636 # Display the features supported by this script. | 923 # Display the features supported by this script. |
637 func_features () | 924 func_features () |
638 { | 925 { |
639 $ECHO "host: $host" | 926 echo "host: $host" |
640 if test "$build_libtool_libs" = yes; then | 927 if test "$build_libtool_libs" = yes; then |
641 $ECHO "enable shared libraries" | 928 echo "enable shared libraries" |
642 else | 929 else |
643 $ECHO "disable shared libraries" | 930 echo "disable shared libraries" |
644 fi | 931 fi |
645 if test "$build_old_libs" = yes; then | 932 if test "$build_old_libs" = yes; then |
646 $ECHO "enable static libraries" | 933 echo "enable static libraries" |
647 else | 934 else |
648 $ECHO "disable static libraries" | 935 echo "disable static libraries" |
649 fi | 936 fi |
650 | 937 |
651 exit $? | 938 exit $? |
652 } | 939 } |
653 | 940 |
688 else | 975 else |
689 func_error "ignoring unknown tag $tagname" | 976 func_error "ignoring unknown tag $tagname" |
690 fi | 977 fi |
691 ;; | 978 ;; |
692 esac | 979 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 | |
820 } | 980 } |
821 | 981 |
822 # func_check_version_match | 982 # func_check_version_match |
823 # Ensure that we are using m4 macros, and libtool script from the same | 983 # Ensure that we are using m4 macros, and libtool script from the same |
824 # release of libtool. | 984 # release of libtool. |
853 exit $EXIT_MISMATCH | 1013 exit $EXIT_MISMATCH |
854 fi | 1014 fi |
855 } | 1015 } |
856 | 1016 |
857 | 1017 |
1018 # Shorthand for --mode=foo, only valid as the first argument | |
1019 case $1 in | |
1020 clean|clea|cle|cl) | |
1021 shift; set dummy --mode clean ${1+"$@"}; shift | |
1022 ;; | |
1023 compile|compil|compi|comp|com|co|c) | |
1024 shift; set dummy --mode compile ${1+"$@"}; shift | |
1025 ;; | |
1026 execute|execut|execu|exec|exe|ex|e) | |
1027 shift; set dummy --mode execute ${1+"$@"}; shift | |
1028 ;; | |
1029 finish|finis|fini|fin|fi|f) | |
1030 shift; set dummy --mode finish ${1+"$@"}; shift | |
1031 ;; | |
1032 install|instal|insta|inst|ins|in|i) | |
1033 shift; set dummy --mode install ${1+"$@"}; shift | |
1034 ;; | |
1035 link|lin|li|l) | |
1036 shift; set dummy --mode link ${1+"$@"}; shift | |
1037 ;; | |
1038 uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) | |
1039 shift; set dummy --mode uninstall ${1+"$@"}; shift | |
1040 ;; | |
1041 esac | |
1042 | |
1043 | |
1044 | |
1045 # Option defaults: | |
1046 opt_debug=: | |
1047 opt_dry_run=false | |
1048 opt_config=false | |
1049 opt_preserve_dup_deps=false | |
1050 opt_features=false | |
1051 opt_finish=false | |
1052 opt_help=false | |
1053 opt_help_all=false | |
1054 opt_silent=: | |
1055 opt_verbose=: | |
1056 opt_silent=false | |
1057 opt_verbose=false | |
1058 | |
1059 | |
1060 # Parse options once, thoroughly. This comes as soon as possible in the | |
1061 # script to make things like `--version' happen as quickly as we can. | |
1062 { | |
1063 # this just eases exit handling | |
1064 while test $# -gt 0; do | |
1065 opt="$1" | |
1066 shift | |
1067 case $opt in | |
1068 --debug|-x) opt_debug='set -x' | |
1069 func_echo "enabling shell trace mode" | |
1070 $opt_debug | |
1071 ;; | |
1072 --dry-run|--dryrun|-n) | |
1073 opt_dry_run=: | |
1074 ;; | |
1075 --config) | |
1076 opt_config=: | |
1077 func_config | |
1078 ;; | |
1079 --dlopen|-dlopen) | |
1080 optarg="$1" | |
1081 opt_dlopen="${opt_dlopen+$opt_dlopen | |
1082 }$optarg" | |
1083 shift | |
1084 ;; | |
1085 --preserve-dup-deps) | |
1086 opt_preserve_dup_deps=: | |
1087 ;; | |
1088 --features) | |
1089 opt_features=: | |
1090 func_features | |
1091 ;; | |
1092 --finish) | |
1093 opt_finish=: | |
1094 set dummy --mode finish ${1+"$@"}; shift | |
1095 ;; | |
1096 --help) | |
1097 opt_help=: | |
1098 ;; | |
1099 --help-all) | |
1100 opt_help_all=: | |
1101 opt_help=': help-all' | |
1102 ;; | |
1103 --mode) | |
1104 test $# = 0 && func_missing_arg $opt && break | |
1105 optarg="$1" | |
1106 opt_mode="$optarg" | |
1107 case $optarg in | |
1108 # Valid mode arguments: | |
1109 clean|compile|execute|finish|install|link|relink|uninstall) ;; | |
1110 | |
1111 # Catch anything else as an error | |
1112 *) func_error "invalid argument for $opt" | |
1113 exit_cmd=exit | |
1114 break | |
1115 ;; | |
1116 esac | |
1117 shift | |
1118 ;; | |
1119 --no-silent|--no-quiet) | |
1120 opt_silent=false | |
1121 func_append preserve_args " $opt" | |
1122 ;; | |
1123 --no-verbose) | |
1124 opt_verbose=false | |
1125 func_append preserve_args " $opt" | |
1126 ;; | |
1127 --silent|--quiet) | |
1128 opt_silent=: | |
1129 func_append preserve_args " $opt" | |
1130 opt_verbose=false | |
1131 ;; | |
1132 --verbose|-v) | |
1133 opt_verbose=: | |
1134 func_append preserve_args " $opt" | |
1135 opt_silent=false | |
1136 ;; | |
1137 --tag) | |
1138 test $# = 0 && func_missing_arg $opt && break | |
1139 optarg="$1" | |
1140 opt_tag="$optarg" | |
1141 func_append preserve_args " $opt $optarg" | |
1142 func_enable_tag "$optarg" | |
1143 shift | |
1144 ;; | |
1145 | |
1146 -\?|-h) func_usage ;; | |
1147 --help) func_help ;; | |
1148 --version) func_version ;; | |
1149 | |
1150 # Separate optargs to long options: | |
1151 --*=*) | |
1152 func_split_long_opt "$opt" | |
1153 set dummy "$func_split_long_opt_name" "$func_split_long_opt_arg" ${1+"$@"} | |
1154 shift | |
1155 ;; | |
1156 | |
1157 # Separate non-argument short options: | |
1158 -\?*|-h*|-n*|-v*) | |
1159 func_split_short_opt "$opt" | |
1160 set dummy "$func_split_short_opt_name" "-$func_split_short_opt_arg" ${1+"$@"} | |
1161 shift | |
1162 ;; | |
1163 | |
1164 --) break ;; | |
1165 -*) func_fatal_help "unrecognized option \`$opt'" ;; | |
1166 *) set dummy "$opt" ${1+"$@"}; shift; break ;; | |
1167 esac | |
1168 done | |
1169 | |
1170 # Validate options: | |
1171 | |
1172 # save first non-option argument | |
1173 if test "$#" -gt 0; then | |
1174 nonopt="$opt" | |
1175 shift | |
1176 fi | |
1177 | |
1178 # preserve --debug | |
1179 test "$opt_debug" = : || func_append preserve_args " --debug" | |
1180 | |
1181 case $host in | |
1182 *cygwin* | *mingw* | *pw32* | *cegcc*) | |
1183 # don't eliminate duplications in $postdeps and $predeps | |
1184 opt_duplicate_compiler_generated_deps=: | |
1185 ;; | |
1186 *) | |
1187 opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps | |
1188 ;; | |
1189 esac | |
1190 | |
1191 $opt_help || { | |
1192 # Sanity checks first: | |
1193 func_check_version_match | |
1194 | |
1195 if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then | |
1196 func_fatal_configuration "not configured to build any kind of library" | |
1197 fi | |
1198 | |
1199 # Darwin sucks | |
1200 eval std_shrext=\"$shrext_cmds\" | |
1201 | |
1202 # Only execute mode is allowed to have -dlopen flags. | |
1203 if test -n "$opt_dlopen" && test "$opt_mode" != execute; then | |
1204 func_error "unrecognized option \`-dlopen'" | |
1205 $ECHO "$help" 1>&2 | |
1206 exit $EXIT_FAILURE | |
1207 fi | |
1208 | |
1209 # Change the help message to a mode-specific one. | |
1210 generic_help="$help" | |
1211 help="Try \`$progname --help --mode=$opt_mode' for more information." | |
1212 } | |
1213 | |
1214 | |
1215 # Bail if the options were screwed | |
1216 $exit_cmd $EXIT_FAILURE | |
1217 } | |
1218 | |
1219 | |
1220 | |
1221 | |
858 ## ----------- ## | 1222 ## ----------- ## |
859 ## Main. ## | 1223 ## Main. ## |
860 ## ----------- ## | 1224 ## ----------- ## |
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 | |
889 | 1225 |
890 # func_lalib_p file | 1226 # func_lalib_p file |
891 # True iff FILE is a libtool `.la' library or `.lo' object file. | 1227 # True iff FILE is a libtool `.la' library or `.lo' object file. |
892 # This function is only a basic sanity check; it will hardly flush out | 1228 # This function is only a basic sanity check; it will hardly flush out |
893 # determined imposters. | 1229 # determined imposters. |
948 # Assumes file is an ltwrapper_executable | 1284 # Assumes file is an ltwrapper_executable |
949 # uses $file to determine the appropriate filename for a | 1285 # uses $file to determine the appropriate filename for a |
950 # temporary ltwrapper_script. | 1286 # temporary ltwrapper_script. |
951 func_ltwrapper_scriptname () | 1287 func_ltwrapper_scriptname () |
952 { | 1288 { |
953 func_ltwrapper_scriptname_result="" | 1289 func_dirname_and_basename "$1" "" "." |
954 if func_ltwrapper_executable_p "$1"; then | 1290 func_stripname '' '.exe' "$func_basename_result" |
955 func_dirname_and_basename "$1" "" "." | 1291 func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper" |
956 func_stripname '' '.exe' "$func_basename_result" | |
957 func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper" | |
958 fi | |
959 } | 1292 } |
960 | 1293 |
961 # func_ltwrapper_p file | 1294 # func_ltwrapper_p file |
962 # True iff FILE is a libtool wrapper script or wrapper executable | 1295 # True iff FILE is a libtool wrapper script or wrapper executable |
963 # This function is only a basic sanity check; it will hardly flush out | 1296 # This function is only a basic sanity check; it will hardly flush out |
999 *) . "./$1" ;; | 1332 *) . "./$1" ;; |
1000 esac | 1333 esac |
1001 } | 1334 } |
1002 | 1335 |
1003 | 1336 |
1337 # func_resolve_sysroot PATH | |
1338 # Replace a leading = in PATH with a sysroot. Store the result into | |
1339 # func_resolve_sysroot_result | |
1340 func_resolve_sysroot () | |
1341 { | |
1342 func_resolve_sysroot_result=$1 | |
1343 case $func_resolve_sysroot_result in | |
1344 =*) | |
1345 func_stripname '=' '' "$func_resolve_sysroot_result" | |
1346 func_resolve_sysroot_result=$lt_sysroot$func_stripname_result | |
1347 ;; | |
1348 esac | |
1349 } | |
1350 | |
1351 # func_replace_sysroot PATH | |
1352 # If PATH begins with the sysroot, replace it with = and | |
1353 # store the result into func_replace_sysroot_result. | |
1354 func_replace_sysroot () | |
1355 { | |
1356 case "$lt_sysroot:$1" in | |
1357 ?*:"$lt_sysroot"*) | |
1358 func_stripname "$lt_sysroot" '' "$1" | |
1359 func_replace_sysroot_result="=$func_stripname_result" | |
1360 ;; | |
1361 *) | |
1362 # Including no sysroot. | |
1363 func_replace_sysroot_result=$1 | |
1364 ;; | |
1365 esac | |
1366 } | |
1367 | |
1004 # func_infer_tag arg | 1368 # func_infer_tag arg |
1005 # Infer tagged configuration to use if any are available and | 1369 # Infer tagged configuration to use if any are available and |
1006 # if one wasn't chosen via the "--tag" command line option. | 1370 # if one wasn't chosen via the "--tag" command line option. |
1007 # Only attempt this if the compiler in the base compile | 1371 # Only attempt this if the compiler in the base compile |
1008 # command doesn't match the default compiler. | 1372 # command doesn't match the default compiler. |
1011 { | 1375 { |
1012 $opt_debug | 1376 $opt_debug |
1013 if test -n "$available_tags" && test -z "$tagname"; then | 1377 if test -n "$available_tags" && test -z "$tagname"; then |
1014 CC_quoted= | 1378 CC_quoted= |
1015 for arg in $CC; do | 1379 for arg in $CC; do |
1016 func_quote_for_eval "$arg" | 1380 func_append_quoted CC_quoted "$arg" |
1017 CC_quoted="$CC_quoted $func_quote_for_eval_result" | |
1018 done | 1381 done |
1382 CC_expanded=`func_echo_all $CC` | |
1383 CC_quoted_expanded=`func_echo_all $CC_quoted` | |
1019 case $@ in | 1384 case $@ in |
1020 # Blanks in the command may have been stripped by the calling shell, | 1385 # Blanks in the command may have been stripped by the calling shell, |
1021 # but not from the CC environment variable when configure was run. | 1386 # but not from the CC environment variable when configure was run. |
1022 " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) ;; | 1387 " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ |
1388 " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;; | |
1023 # Blanks at the start of $base_compile will cause this to fail | 1389 # Blanks at the start of $base_compile will cause this to fail |
1024 # if we don't check for them as well. | 1390 # if we don't check for them as well. |
1025 *) | 1391 *) |
1026 for z in $available_tags; do | 1392 for z in $available_tags; do |
1027 if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then | 1393 if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then |
1028 # Evaluate the configuration. | 1394 # Evaluate the configuration. |
1029 eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" | 1395 eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" |
1030 CC_quoted= | 1396 CC_quoted= |
1031 for arg in $CC; do | 1397 for arg in $CC; do |
1032 # Double-quote args containing other shell metacharacters. | 1398 # Double-quote args containing other shell metacharacters. |
1033 func_quote_for_eval "$arg" | 1399 func_append_quoted CC_quoted "$arg" |
1034 CC_quoted="$CC_quoted $func_quote_for_eval_result" | |
1035 done | 1400 done |
1401 CC_expanded=`func_echo_all $CC` | |
1402 CC_quoted_expanded=`func_echo_all $CC_quoted` | |
1036 case "$@ " in | 1403 case "$@ " in |
1037 " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) | 1404 " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ |
1405 " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) | |
1038 # The compiler in the base compile command matches | 1406 # The compiler in the base compile command matches |
1039 # the one in the tagged configuration. | 1407 # the one in the tagged configuration. |
1040 # Assume this is the tagged configuration we want. | 1408 # Assume this is the tagged configuration we want. |
1041 tagname=$z | 1409 tagname=$z |
1042 break | 1410 break |
1095 EOF | 1463 EOF |
1096 $MV "${write_libobj}T" "${write_libobj}" | 1464 $MV "${write_libobj}T" "${write_libobj}" |
1097 } | 1465 } |
1098 } | 1466 } |
1099 | 1467 |
1468 | |
1469 ################################################## | |
1470 # FILE NAME AND PATH CONVERSION HELPER FUNCTIONS # | |
1471 ################################################## | |
1472 | |
1473 # func_convert_core_file_wine_to_w32 ARG | |
1474 # Helper function used by file name conversion functions when $build is *nix, | |
1475 # and $host is mingw, cygwin, or some other w32 environment. Relies on a | |
1476 # correctly configured wine environment available, with the winepath program | |
1477 # in $build's $PATH. | |
1478 # | |
1479 # ARG is the $build file name to be converted to w32 format. | |
1480 # Result is available in $func_convert_core_file_wine_to_w32_result, and will | |
1481 # be empty on error (or when ARG is empty) | |
1482 func_convert_core_file_wine_to_w32 () | |
1483 { | |
1484 $opt_debug | |
1485 func_convert_core_file_wine_to_w32_result="$1" | |
1486 if test -n "$1"; then | |
1487 # Unfortunately, winepath does not exit with a non-zero error code, so we | |
1488 # are forced to check the contents of stdout. On the other hand, if the | |
1489 # command is not found, the shell will set an exit code of 127 and print | |
1490 # *an error message* to stdout. So we must check for both error code of | |
1491 # zero AND non-empty stdout, which explains the odd construction: | |
1492 func_convert_core_file_wine_to_w32_tmp=`winepath -w "$1" 2>/dev/null` | |
1493 if test "$?" -eq 0 && test -n "${func_convert_core_file_wine_to_w32_tmp}"; then | |
1494 func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" | | |
1495 $SED -e "$lt_sed_naive_backslashify"` | |
1496 else | |
1497 func_convert_core_file_wine_to_w32_result= | |
1498 fi | |
1499 fi | |
1500 } | |
1501 # end: func_convert_core_file_wine_to_w32 | |
1502 | |
1503 | |
1504 # func_convert_core_path_wine_to_w32 ARG | |
1505 # Helper function used by path conversion functions when $build is *nix, and | |
1506 # $host is mingw, cygwin, or some other w32 environment. Relies on a correctly | |
1507 # configured wine environment available, with the winepath program in $build's | |
1508 # $PATH. Assumes ARG has no leading or trailing path separator characters. | |
1509 # | |
1510 # ARG is path to be converted from $build format to win32. | |
1511 # Result is available in $func_convert_core_path_wine_to_w32_result. | |
1512 # Unconvertible file (directory) names in ARG are skipped; if no directory names | |
1513 # are convertible, then the result may be empty. | |
1514 func_convert_core_path_wine_to_w32 () | |
1515 { | |
1516 $opt_debug | |
1517 # unfortunately, winepath doesn't convert paths, only file names | |
1518 func_convert_core_path_wine_to_w32_result="" | |
1519 if test -n "$1"; then | |
1520 oldIFS=$IFS | |
1521 IFS=: | |
1522 for func_convert_core_path_wine_to_w32_f in $1; do | |
1523 IFS=$oldIFS | |
1524 func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f" | |
1525 if test -n "$func_convert_core_file_wine_to_w32_result" ; then | |
1526 if test -z "$func_convert_core_path_wine_to_w32_result"; then | |
1527 func_convert_core_path_wine_to_w32_result="$func_convert_core_file_wine_to_w32_result" | |
1528 else | |
1529 func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result" | |
1530 fi | |
1531 fi | |
1532 done | |
1533 IFS=$oldIFS | |
1534 fi | |
1535 } | |
1536 # end: func_convert_core_path_wine_to_w32 | |
1537 | |
1538 | |
1539 # func_cygpath ARGS... | |
1540 # Wrapper around calling the cygpath program via LT_CYGPATH. This is used when | |
1541 # when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2) | |
1542 # $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or | |
1543 # (2), returns the Cygwin file name or path in func_cygpath_result (input | |
1544 # file name or path is assumed to be in w32 format, as previously converted | |
1545 # from $build's *nix or MSYS format). In case (3), returns the w32 file name | |
1546 # or path in func_cygpath_result (input file name or path is assumed to be in | |
1547 # Cygwin format). Returns an empty string on error. | |
1548 # | |
1549 # ARGS are passed to cygpath, with the last one being the file name or path to | |
1550 # be converted. | |
1551 # | |
1552 # Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH | |
1553 # environment variable; do not put it in $PATH. | |
1554 func_cygpath () | |
1555 { | |
1556 $opt_debug | |
1557 if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then | |
1558 func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null` | |
1559 if test "$?" -ne 0; then | |
1560 # on failure, ensure result is empty | |
1561 func_cygpath_result= | |
1562 fi | |
1563 else | |
1564 func_cygpath_result= | |
1565 func_error "LT_CYGPATH is empty or specifies non-existent file: \`$LT_CYGPATH'" | |
1566 fi | |
1567 } | |
1568 #end: func_cygpath | |
1569 | |
1570 | |
1571 # func_convert_core_msys_to_w32 ARG | |
1572 # Convert file name or path ARG from MSYS format to w32 format. Return | |
1573 # result in func_convert_core_msys_to_w32_result. | |
1574 func_convert_core_msys_to_w32 () | |
1575 { | |
1576 $opt_debug | |
1577 # awkward: cmd appends spaces to result | |
1578 func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null | | |
1579 $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"` | |
1580 } | |
1581 #end: func_convert_core_msys_to_w32 | |
1582 | |
1583 | |
1584 # func_convert_file_check ARG1 ARG2 | |
1585 # Verify that ARG1 (a file name in $build format) was converted to $host | |
1586 # format in ARG2. Otherwise, emit an error message, but continue (resetting | |
1587 # func_to_host_file_result to ARG1). | |
1588 func_convert_file_check () | |
1589 { | |
1590 $opt_debug | |
1591 if test -z "$2" && test -n "$1" ; then | |
1592 func_error "Could not determine host file name corresponding to" | |
1593 func_error " \`$1'" | |
1594 func_error "Continuing, but uninstalled executables may not work." | |
1595 # Fallback: | |
1596 func_to_host_file_result="$1" | |
1597 fi | |
1598 } | |
1599 # end func_convert_file_check | |
1600 | |
1601 | |
1602 # func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH | |
1603 # Verify that FROM_PATH (a path in $build format) was converted to $host | |
1604 # format in TO_PATH. Otherwise, emit an error message, but continue, resetting | |
1605 # func_to_host_file_result to a simplistic fallback value (see below). | |
1606 func_convert_path_check () | |
1607 { | |
1608 $opt_debug | |
1609 if test -z "$4" && test -n "$3"; then | |
1610 func_error "Could not determine the host path corresponding to" | |
1611 func_error " \`$3'" | |
1612 func_error "Continuing, but uninstalled executables may not work." | |
1613 # Fallback. This is a deliberately simplistic "conversion" and | |
1614 # should not be "improved". See libtool.info. | |
1615 if test "x$1" != "x$2"; then | |
1616 lt_replace_pathsep_chars="s|$1|$2|g" | |
1617 func_to_host_path_result=`echo "$3" | | |
1618 $SED -e "$lt_replace_pathsep_chars"` | |
1619 else | |
1620 func_to_host_path_result="$3" | |
1621 fi | |
1622 fi | |
1623 } | |
1624 # end func_convert_path_check | |
1625 | |
1626 | |
1627 # func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG | |
1628 # Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT | |
1629 # and appending REPL if ORIG matches BACKPAT. | |
1630 func_convert_path_front_back_pathsep () | |
1631 { | |
1632 $opt_debug | |
1633 case $4 in | |
1634 $1 ) func_to_host_path_result="$3$func_to_host_path_result" | |
1635 ;; | |
1636 esac | |
1637 case $4 in | |
1638 $2 ) func_append func_to_host_path_result "$3" | |
1639 ;; | |
1640 esac | |
1641 } | |
1642 # end func_convert_path_front_back_pathsep | |
1643 | |
1644 | |
1645 ################################################## | |
1646 # $build to $host FILE NAME CONVERSION FUNCTIONS # | |
1647 ################################################## | |
1648 # invoked via `$to_host_file_cmd ARG' | |
1649 # | |
1650 # In each case, ARG is the path to be converted from $build to $host format. | |
1651 # Result will be available in $func_to_host_file_result. | |
1652 | |
1653 | |
1654 # func_to_host_file ARG | |
1655 # Converts the file name ARG from $build format to $host format. Return result | |
1656 # in func_to_host_file_result. | |
1657 func_to_host_file () | |
1658 { | |
1659 $opt_debug | |
1660 $to_host_file_cmd "$1" | |
1661 } | |
1662 # end func_to_host_file | |
1663 | |
1664 | |
1665 # func_to_tool_file ARG LAZY | |
1666 # converts the file name ARG from $build format to toolchain format. Return | |
1667 # result in func_to_tool_file_result. If the conversion in use is listed | |
1668 # in (the comma separated) LAZY, no conversion takes place. | |
1669 func_to_tool_file () | |
1670 { | |
1671 $opt_debug | |
1672 case ,$2, in | |
1673 *,"$to_tool_file_cmd",*) | |
1674 func_to_tool_file_result=$1 | |
1675 ;; | |
1676 *) | |
1677 $to_tool_file_cmd "$1" | |
1678 func_to_tool_file_result=$func_to_host_file_result | |
1679 ;; | |
1680 esac | |
1681 } | |
1682 # end func_to_tool_file | |
1683 | |
1684 | |
1685 # func_convert_file_noop ARG | |
1686 # Copy ARG to func_to_host_file_result. | |
1687 func_convert_file_noop () | |
1688 { | |
1689 func_to_host_file_result="$1" | |
1690 } | |
1691 # end func_convert_file_noop | |
1692 | |
1693 | |
1694 # func_convert_file_msys_to_w32 ARG | |
1695 # Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic | |
1696 # conversion to w32 is not available inside the cwrapper. Returns result in | |
1697 # func_to_host_file_result. | |
1698 func_convert_file_msys_to_w32 () | |
1699 { | |
1700 $opt_debug | |
1701 func_to_host_file_result="$1" | |
1702 if test -n "$1"; then | |
1703 func_convert_core_msys_to_w32 "$1" | |
1704 func_to_host_file_result="$func_convert_core_msys_to_w32_result" | |
1705 fi | |
1706 func_convert_file_check "$1" "$func_to_host_file_result" | |
1707 } | |
1708 # end func_convert_file_msys_to_w32 | |
1709 | |
1710 | |
1711 # func_convert_file_cygwin_to_w32 ARG | |
1712 # Convert file name ARG from Cygwin to w32 format. Returns result in | |
1713 # func_to_host_file_result. | |
1714 func_convert_file_cygwin_to_w32 () | |
1715 { | |
1716 $opt_debug | |
1717 func_to_host_file_result="$1" | |
1718 if test -n "$1"; then | |
1719 # because $build is cygwin, we call "the" cygpath in $PATH; no need to use | |
1720 # LT_CYGPATH in this case. | |
1721 func_to_host_file_result=`cygpath -m "$1"` | |
1722 fi | |
1723 func_convert_file_check "$1" "$func_to_host_file_result" | |
1724 } | |
1725 # end func_convert_file_cygwin_to_w32 | |
1726 | |
1727 | |
1728 # func_convert_file_nix_to_w32 ARG | |
1729 # Convert file name ARG from *nix to w32 format. Requires a wine environment | |
1730 # and a working winepath. Returns result in func_to_host_file_result. | |
1731 func_convert_file_nix_to_w32 () | |
1732 { | |
1733 $opt_debug | |
1734 func_to_host_file_result="$1" | |
1735 if test -n "$1"; then | |
1736 func_convert_core_file_wine_to_w32 "$1" | |
1737 func_to_host_file_result="$func_convert_core_file_wine_to_w32_result" | |
1738 fi | |
1739 func_convert_file_check "$1" "$func_to_host_file_result" | |
1740 } | |
1741 # end func_convert_file_nix_to_w32 | |
1742 | |
1743 | |
1744 # func_convert_file_msys_to_cygwin ARG | |
1745 # Convert file name ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. | |
1746 # Returns result in func_to_host_file_result. | |
1747 func_convert_file_msys_to_cygwin () | |
1748 { | |
1749 $opt_debug | |
1750 func_to_host_file_result="$1" | |
1751 if test -n "$1"; then | |
1752 func_convert_core_msys_to_w32 "$1" | |
1753 func_cygpath -u "$func_convert_core_msys_to_w32_result" | |
1754 func_to_host_file_result="$func_cygpath_result" | |
1755 fi | |
1756 func_convert_file_check "$1" "$func_to_host_file_result" | |
1757 } | |
1758 # end func_convert_file_msys_to_cygwin | |
1759 | |
1760 | |
1761 # func_convert_file_nix_to_cygwin ARG | |
1762 # Convert file name ARG from *nix to Cygwin format. Requires Cygwin installed | |
1763 # in a wine environment, working winepath, and LT_CYGPATH set. Returns result | |
1764 # in func_to_host_file_result. | |
1765 func_convert_file_nix_to_cygwin () | |
1766 { | |
1767 $opt_debug | |
1768 func_to_host_file_result="$1" | |
1769 if test -n "$1"; then | |
1770 # convert from *nix to w32, then use cygpath to convert from w32 to cygwin. | |
1771 func_convert_core_file_wine_to_w32 "$1" | |
1772 func_cygpath -u "$func_convert_core_file_wine_to_w32_result" | |
1773 func_to_host_file_result="$func_cygpath_result" | |
1774 fi | |
1775 func_convert_file_check "$1" "$func_to_host_file_result" | |
1776 } | |
1777 # end func_convert_file_nix_to_cygwin | |
1778 | |
1779 | |
1780 ############################################# | |
1781 # $build to $host PATH CONVERSION FUNCTIONS # | |
1782 ############################################# | |
1783 # invoked via `$to_host_path_cmd ARG' | |
1784 # | |
1785 # In each case, ARG is the path to be converted from $build to $host format. | |
1786 # The result will be available in $func_to_host_path_result. | |
1787 # | |
1788 # Path separators are also converted from $build format to $host format. If | |
1789 # ARG begins or ends with a path separator character, it is preserved (but | |
1790 # converted to $host format) on output. | |
1791 # | |
1792 # All path conversion functions are named using the following convention: | |
1793 # file name conversion function : func_convert_file_X_to_Y () | |
1794 # path conversion function : func_convert_path_X_to_Y () | |
1795 # where, for any given $build/$host combination the 'X_to_Y' value is the | |
1796 # same. If conversion functions are added for new $build/$host combinations, | |
1797 # the two new functions must follow this pattern, or func_init_to_host_path_cmd | |
1798 # will break. | |
1799 | |
1800 | |
1801 # func_init_to_host_path_cmd | |
1802 # Ensures that function "pointer" variable $to_host_path_cmd is set to the | |
1803 # appropriate value, based on the value of $to_host_file_cmd. | |
1804 to_host_path_cmd= | |
1805 func_init_to_host_path_cmd () | |
1806 { | |
1807 $opt_debug | |
1808 if test -z "$to_host_path_cmd"; then | |
1809 func_stripname 'func_convert_file_' '' "$to_host_file_cmd" | |
1810 to_host_path_cmd="func_convert_path_${func_stripname_result}" | |
1811 fi | |
1812 } | |
1813 | |
1814 | |
1815 # func_to_host_path ARG | |
1816 # Converts the path ARG from $build format to $host format. Return result | |
1817 # in func_to_host_path_result. | |
1818 func_to_host_path () | |
1819 { | |
1820 $opt_debug | |
1821 func_init_to_host_path_cmd | |
1822 $to_host_path_cmd "$1" | |
1823 } | |
1824 # end func_to_host_path | |
1825 | |
1826 | |
1827 # func_convert_path_noop ARG | |
1828 # Copy ARG to func_to_host_path_result. | |
1829 func_convert_path_noop () | |
1830 { | |
1831 func_to_host_path_result="$1" | |
1832 } | |
1833 # end func_convert_path_noop | |
1834 | |
1835 | |
1836 # func_convert_path_msys_to_w32 ARG | |
1837 # Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic | |
1838 # conversion to w32 is not available inside the cwrapper. Returns result in | |
1839 # func_to_host_path_result. | |
1840 func_convert_path_msys_to_w32 () | |
1841 { | |
1842 $opt_debug | |
1843 func_to_host_path_result="$1" | |
1844 if test -n "$1"; then | |
1845 # Remove leading and trailing path separator characters from ARG. MSYS | |
1846 # behavior is inconsistent here; cygpath turns them into '.;' and ';.'; | |
1847 # and winepath ignores them completely. | |
1848 func_stripname : : "$1" | |
1849 func_to_host_path_tmp1=$func_stripname_result | |
1850 func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" | |
1851 func_to_host_path_result="$func_convert_core_msys_to_w32_result" | |
1852 func_convert_path_check : ";" \ | |
1853 "$func_to_host_path_tmp1" "$func_to_host_path_result" | |
1854 func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" | |
1855 fi | |
1856 } | |
1857 # end func_convert_path_msys_to_w32 | |
1858 | |
1859 | |
1860 # func_convert_path_cygwin_to_w32 ARG | |
1861 # Convert path ARG from Cygwin to w32 format. Returns result in | |
1862 # func_to_host_file_result. | |
1863 func_convert_path_cygwin_to_w32 () | |
1864 { | |
1865 $opt_debug | |
1866 func_to_host_path_result="$1" | |
1867 if test -n "$1"; then | |
1868 # See func_convert_path_msys_to_w32: | |
1869 func_stripname : : "$1" | |
1870 func_to_host_path_tmp1=$func_stripname_result | |
1871 func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"` | |
1872 func_convert_path_check : ";" \ | |
1873 "$func_to_host_path_tmp1" "$func_to_host_path_result" | |
1874 func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" | |
1875 fi | |
1876 } | |
1877 # end func_convert_path_cygwin_to_w32 | |
1878 | |
1879 | |
1880 # func_convert_path_nix_to_w32 ARG | |
1881 # Convert path ARG from *nix to w32 format. Requires a wine environment and | |
1882 # a working winepath. Returns result in func_to_host_file_result. | |
1883 func_convert_path_nix_to_w32 () | |
1884 { | |
1885 $opt_debug | |
1886 func_to_host_path_result="$1" | |
1887 if test -n "$1"; then | |
1888 # See func_convert_path_msys_to_w32: | |
1889 func_stripname : : "$1" | |
1890 func_to_host_path_tmp1=$func_stripname_result | |
1891 func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" | |
1892 func_to_host_path_result="$func_convert_core_path_wine_to_w32_result" | |
1893 func_convert_path_check : ";" \ | |
1894 "$func_to_host_path_tmp1" "$func_to_host_path_result" | |
1895 func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" | |
1896 fi | |
1897 } | |
1898 # end func_convert_path_nix_to_w32 | |
1899 | |
1900 | |
1901 # func_convert_path_msys_to_cygwin ARG | |
1902 # Convert path ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. | |
1903 # Returns result in func_to_host_file_result. | |
1904 func_convert_path_msys_to_cygwin () | |
1905 { | |
1906 $opt_debug | |
1907 func_to_host_path_result="$1" | |
1908 if test -n "$1"; then | |
1909 # See func_convert_path_msys_to_w32: | |
1910 func_stripname : : "$1" | |
1911 func_to_host_path_tmp1=$func_stripname_result | |
1912 func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" | |
1913 func_cygpath -u -p "$func_convert_core_msys_to_w32_result" | |
1914 func_to_host_path_result="$func_cygpath_result" | |
1915 func_convert_path_check : : \ | |
1916 "$func_to_host_path_tmp1" "$func_to_host_path_result" | |
1917 func_convert_path_front_back_pathsep ":*" "*:" : "$1" | |
1918 fi | |
1919 } | |
1920 # end func_convert_path_msys_to_cygwin | |
1921 | |
1922 | |
1923 # func_convert_path_nix_to_cygwin ARG | |
1924 # Convert path ARG from *nix to Cygwin format. Requires Cygwin installed in a | |
1925 # a wine environment, working winepath, and LT_CYGPATH set. Returns result in | |
1926 # func_to_host_file_result. | |
1927 func_convert_path_nix_to_cygwin () | |
1928 { | |
1929 $opt_debug | |
1930 func_to_host_path_result="$1" | |
1931 if test -n "$1"; then | |
1932 # Remove leading and trailing path separator characters from | |
1933 # ARG. msys behavior is inconsistent here, cygpath turns them | |
1934 # into '.;' and ';.', and winepath ignores them completely. | |
1935 func_stripname : : "$1" | |
1936 func_to_host_path_tmp1=$func_stripname_result | |
1937 func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" | |
1938 func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result" | |
1939 func_to_host_path_result="$func_cygpath_result" | |
1940 func_convert_path_check : : \ | |
1941 "$func_to_host_path_tmp1" "$func_to_host_path_result" | |
1942 func_convert_path_front_back_pathsep ":*" "*:" : "$1" | |
1943 fi | |
1944 } | |
1945 # end func_convert_path_nix_to_cygwin | |
1946 | |
1947 | |
1100 # func_mode_compile arg... | 1948 # func_mode_compile arg... |
1101 func_mode_compile () | 1949 func_mode_compile () |
1102 { | 1950 { |
1103 $opt_debug | 1951 $opt_debug |
1104 # Get the compilation command and the source file. | 1952 # Get the compilation command and the source file. |
1135 arg_mode=target | 1983 arg_mode=target |
1136 continue | 1984 continue |
1137 ;; | 1985 ;; |
1138 | 1986 |
1139 -pie | -fpie | -fPIE) | 1987 -pie | -fpie | -fPIE) |
1140 pie_flag="$pie_flag $arg" | 1988 func_append pie_flag " $arg" |
1141 continue | 1989 continue |
1142 ;; | 1990 ;; |
1143 | 1991 |
1144 -shared | -static | -prefer-pic | -prefer-non-pic) | 1992 -shared | -static | -prefer-pic | -prefer-non-pic) |
1145 later="$later $arg" | 1993 func_append later " $arg" |
1146 continue | 1994 continue |
1147 ;; | 1995 ;; |
1148 | 1996 |
1149 -no-suppress) | 1997 -no-suppress) |
1150 suppress_opt=no | 1998 suppress_opt=no |
1161 args=$func_stripname_result | 2009 args=$func_stripname_result |
1162 lastarg= | 2010 lastarg= |
1163 save_ifs="$IFS"; IFS=',' | 2011 save_ifs="$IFS"; IFS=',' |
1164 for arg in $args; do | 2012 for arg in $args; do |
1165 IFS="$save_ifs" | 2013 IFS="$save_ifs" |
1166 func_quote_for_eval "$arg" | 2014 func_append_quoted lastarg "$arg" |
1167 lastarg="$lastarg $func_quote_for_eval_result" | |
1168 done | 2015 done |
1169 IFS="$save_ifs" | 2016 IFS="$save_ifs" |
1170 func_stripname ' ' '' "$lastarg" | 2017 func_stripname ' ' '' "$lastarg" |
1171 lastarg=$func_stripname_result | 2018 lastarg=$func_stripname_result |
1172 | 2019 |
1173 # Add the arguments to base_compile. | 2020 # Add the arguments to base_compile. |
1174 base_compile="$base_compile $lastarg" | 2021 func_append base_compile " $lastarg" |
1175 continue | 2022 continue |
1176 ;; | 2023 ;; |
1177 | 2024 |
1178 *) | 2025 *) |
1179 # Accept the current argument as the source file. | 2026 # Accept the current argument as the source file. |
1185 esac # case $arg | 2032 esac # case $arg |
1186 ;; | 2033 ;; |
1187 esac # case $arg_mode | 2034 esac # case $arg_mode |
1188 | 2035 |
1189 # Aesthetically quote the previous argument. | 2036 # Aesthetically quote the previous argument. |
1190 func_quote_for_eval "$lastarg" | 2037 func_append_quoted base_compile "$lastarg" |
1191 base_compile="$base_compile $func_quote_for_eval_result" | |
1192 done # for arg | 2038 done # for arg |
1193 | 2039 |
1194 case $arg_mode in | 2040 case $arg_mode in |
1195 arg) | 2041 arg) |
1196 func_fatal_error "you must specify an argument for -Xcompile" | 2042 func_fatal_error "you must specify an argument for -Xcompile" |
1211 # If the user specifies -o file.o, it is replaced with file.lo | 2057 # If the user specifies -o file.o, it is replaced with file.lo |
1212 case $libobj in | 2058 case $libobj in |
1213 *.[cCFSifmso] | \ | 2059 *.[cCFSifmso] | \ |
1214 *.ada | *.adb | *.ads | *.asm | \ | 2060 *.ada | *.adb | *.ads | *.asm | \ |
1215 *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \ | 2061 *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \ |
1216 *.[fF][09]? | *.for | *.java | *.obj | *.sx) | 2062 *.[fF][09]? | *.for | *.java | *.obj | *.sx | *.cu | *.cup) |
1217 func_xform "$libobj" | 2063 func_xform "$libobj" |
1218 libobj=$func_xform_result | 2064 libobj=$func_xform_result |
1219 ;; | 2065 ;; |
1220 esac | 2066 esac |
1221 | 2067 |
1286 fi | 2132 fi |
1287 | 2133 |
1288 # Calculate the filename of the output object if compiler does | 2134 # Calculate the filename of the output object if compiler does |
1289 # not support -o with -c | 2135 # not support -o with -c |
1290 if test "$compiler_c_o" = no; then | 2136 if test "$compiler_c_o" = no; then |
1291 output_obj=`$ECHO "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext} | 2137 output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.${objext} |
1292 lockfile="$output_obj.lock" | 2138 lockfile="$output_obj.lock" |
1293 else | 2139 else |
1294 output_obj= | 2140 output_obj= |
1295 need_locks=no | 2141 need_locks=no |
1296 lockfile= | 2142 lockfile= |
1317 compiler." | 2163 compiler." |
1318 | 2164 |
1319 $opt_dry_run || $RM $removelist | 2165 $opt_dry_run || $RM $removelist |
1320 exit $EXIT_FAILURE | 2166 exit $EXIT_FAILURE |
1321 fi | 2167 fi |
1322 removelist="$removelist $output_obj" | 2168 func_append removelist " $output_obj" |
1323 $ECHO "$srcfile" > "$lockfile" | 2169 $ECHO "$srcfile" > "$lockfile" |
1324 fi | 2170 fi |
1325 | 2171 |
1326 $opt_dry_run || $RM $removelist | 2172 $opt_dry_run || $RM $removelist |
1327 removelist="$removelist $lockfile" | 2173 func_append removelist " $lockfile" |
1328 trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 | 2174 trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 |
1329 | 2175 |
1330 if test -n "$fix_srcfile_path"; then | 2176 func_to_tool_file "$srcfile" func_convert_file_msys_to_w32 |
1331 eval srcfile=\"$fix_srcfile_path\" | 2177 srcfile=$func_to_tool_file_result |
1332 fi | |
1333 func_quote_for_eval "$srcfile" | 2178 func_quote_for_eval "$srcfile" |
1334 qsrcfile=$func_quote_for_eval_result | 2179 qsrcfile=$func_quote_for_eval_result |
1335 | 2180 |
1336 # Only build a PIC object if we are building libtool libraries. | 2181 # Only build a PIC object if we are building libtool libraries. |
1337 if test "$build_libtool_libs" = yes; then | 2182 if test "$build_libtool_libs" = yes; then |
1347 | 2192 |
1348 func_mkdir_p "$xdir$objdir" | 2193 func_mkdir_p "$xdir$objdir" |
1349 | 2194 |
1350 if test -z "$output_obj"; then | 2195 if test -z "$output_obj"; then |
1351 # Place PIC objects in $objdir | 2196 # Place PIC objects in $objdir |
1352 command="$command -o $lobj" | 2197 func_append command " -o $lobj" |
1353 fi | 2198 fi |
1354 | 2199 |
1355 func_show_eval_locale "$command" \ | 2200 func_show_eval_locale "$command" \ |
1356 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE' | 2201 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE' |
1357 | 2202 |
1394 command="$base_compile $qsrcfile$pie_flag" | 2239 command="$base_compile $qsrcfile$pie_flag" |
1395 else | 2240 else |
1396 command="$base_compile $qsrcfile $pic_flag" | 2241 command="$base_compile $qsrcfile $pic_flag" |
1397 fi | 2242 fi |
1398 if test "$compiler_c_o" = yes; then | 2243 if test "$compiler_c_o" = yes; then |
1399 command="$command -o $obj" | 2244 func_append command " -o $obj" |
1400 fi | 2245 fi |
1401 | 2246 |
1402 # Suppress compiler output if we already did a PIC compilation. | 2247 # Suppress compiler output if we already did a PIC compilation. |
1403 command="$command$suppress_output" | 2248 func_append command "$suppress_output" |
1404 func_show_eval_locale "$command" \ | 2249 func_show_eval_locale "$command" \ |
1405 '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' | 2250 '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' |
1406 | 2251 |
1407 if test "$need_locks" = warn && | 2252 if test "$need_locks" = warn && |
1408 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then | 2253 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then |
1443 | 2288 |
1444 exit $EXIT_SUCCESS | 2289 exit $EXIT_SUCCESS |
1445 } | 2290 } |
1446 | 2291 |
1447 $opt_help || { | 2292 $opt_help || { |
1448 test "$mode" = compile && func_mode_compile ${1+"$@"} | 2293 test "$opt_mode" = compile && func_mode_compile ${1+"$@"} |
1449 } | 2294 } |
1450 | 2295 |
1451 func_mode_help () | 2296 func_mode_help () |
1452 { | 2297 { |
1453 # We need to display help for each of the modes. | 2298 # We need to display help for each of the modes. |
1454 case $mode in | 2299 case $opt_mode in |
1455 "") | 2300 "") |
1456 # Generic help is extracted from the usage comments | 2301 # Generic help is extracted from the usage comments |
1457 # at the start of this file. | 2302 # at the start of this file. |
1458 func_help | 2303 func_help |
1459 ;; | 2304 ;; |
1480 | 2325 |
1481 This mode accepts the following additional options: | 2326 This mode accepts the following additional options: |
1482 | 2327 |
1483 -o OUTPUT-FILE set the output file name to OUTPUT-FILE | 2328 -o OUTPUT-FILE set the output file name to OUTPUT-FILE |
1484 -no-suppress do not suppress compiler output for multiple passes | 2329 -no-suppress do not suppress compiler output for multiple passes |
1485 -prefer-pic try to building PIC objects only | 2330 -prefer-pic try to build PIC objects only |
1486 -prefer-non-pic try to building non-PIC objects only | 2331 -prefer-non-pic try to build non-PIC objects only |
1487 -shared do not build a \`.o' file suitable for static linking | 2332 -shared do not build a \`.o' file suitable for static linking |
1488 -static only build a \`.o' file suitable for static linking | 2333 -static only build a \`.o' file suitable for static linking |
2334 -Wc,FLAG pass FLAG directly to the compiler | |
1489 | 2335 |
1490 COMPILE-COMMAND is a command to be used in creating a \`standard' object file | 2336 COMPILE-COMMAND is a command to be used in creating a \`standard' object file |
1491 from the given SOURCEFILE. | 2337 from the given SOURCEFILE. |
1492 | 2338 |
1493 The output file name is determined by removing the directory component from | 2339 The output file name is determined by removing the directory component from |
1536 INSTALL-COMMAND is the installation command. The first component should be | 2382 INSTALL-COMMAND is the installation command. The first component should be |
1537 either the \`install' or \`cp' program. | 2383 either the \`install' or \`cp' program. |
1538 | 2384 |
1539 The following components of INSTALL-COMMAND are treated specially: | 2385 The following components of INSTALL-COMMAND are treated specially: |
1540 | 2386 |
1541 -inst-prefix PREFIX-DIR Use PREFIX-DIR as a staging area for installation | 2387 -inst-prefix-dir PREFIX-DIR Use PREFIX-DIR as a staging area for installation |
1542 | 2388 |
1543 The rest of the components are interpreted as arguments to that command (only | 2389 The rest of the components are interpreted as arguments to that command (only |
1544 BSD-compatible install options are recognized)." | 2390 BSD-compatible install options are recognized)." |
1545 ;; | 2391 ;; |
1546 | 2392 |
1556 | 2402 |
1557 The following components of LINK-COMMAND are treated specially: | 2403 The following components of LINK-COMMAND are treated specially: |
1558 | 2404 |
1559 -all-static do not do any dynamic linking at all | 2405 -all-static do not do any dynamic linking at all |
1560 -avoid-version do not add a version suffix if possible | 2406 -avoid-version do not add a version suffix if possible |
2407 -bindir BINDIR specify path to binaries directory (for systems where | |
2408 libraries must be found in the PATH setting at runtime) | |
1561 -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime | 2409 -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime |
1562 -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols | 2410 -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols |
1563 -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) | 2411 -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) |
1564 -export-symbols SYMFILE | 2412 -export-symbols SYMFILE |
1565 try to export only the symbols listed in SYMFILE | 2413 try to export only the symbols listed in SYMFILE |
1584 -static-libtool-libs | 2432 -static-libtool-libs |
1585 do not do any dynamic linking of libtool libraries | 2433 do not do any dynamic linking of libtool libraries |
1586 -version-info CURRENT[:REVISION[:AGE]] | 2434 -version-info CURRENT[:REVISION[:AGE]] |
1587 specify library version info [each variable defaults to 0] | 2435 specify library version info [each variable defaults to 0] |
1588 -weak LIBNAME declare that the target provides the LIBNAME interface | 2436 -weak LIBNAME declare that the target provides the LIBNAME interface |
2437 -Wc,FLAG | |
2438 -Xcompiler FLAG pass linker-specific FLAG directly to the compiler | |
2439 -Wl,FLAG | |
2440 -Xlinker FLAG pass linker-specific FLAG directly to the linker | |
2441 -XCClinker FLAG pass link-specific FLAG to the compiler driver (CC) | |
1589 | 2442 |
1590 All other options (arguments beginning with \`-') are ignored. | 2443 All other options (arguments beginning with \`-') are ignored. |
1591 | 2444 |
1592 Every other argument is treated as a filename. Files ending in \`.la' are | 2445 Every other argument is treated as a filename. Files ending in \`.la' are |
1593 treated as uninstalled libtool libraries, other files are standard or library | 2446 treated as uninstalled libtool libraries, other files are standard or library |
1617 If FILE is a libtool library, all the files associated with it are deleted. | 2470 If FILE is a libtool library, all the files associated with it are deleted. |
1618 Otherwise, only FILE itself is deleted using RM." | 2471 Otherwise, only FILE itself is deleted using RM." |
1619 ;; | 2472 ;; |
1620 | 2473 |
1621 *) | 2474 *) |
1622 func_fatal_help "invalid operation mode \`$mode'" | 2475 func_fatal_help "invalid operation mode \`$opt_mode'" |
1623 ;; | 2476 ;; |
1624 esac | 2477 esac |
1625 | 2478 |
1626 $ECHO | 2479 echo |
1627 $ECHO "Try \`$progname --help' for more information about other modes." | 2480 $ECHO "Try \`$progname --help' for more information about other modes." |
1628 | 2481 } |
1629 exit $? | 2482 |
1630 } | 2483 # Now that we've collected a possible --mode arg, show help if necessary |
1631 | 2484 if $opt_help; then |
1632 # Now that we've collected a possible --mode arg, show help if necessary | 2485 if test "$opt_help" = :; then |
1633 $opt_help && func_mode_help | 2486 func_mode_help |
2487 else | |
2488 { | |
2489 func_help noexit | |
2490 for opt_mode in compile link execute install finish uninstall clean; do | |
2491 func_mode_help | |
2492 done | |
2493 } | sed -n '1p; 2,$s/^Usage:/ or: /p' | |
2494 { | |
2495 func_help noexit | |
2496 for opt_mode in compile link execute install finish uninstall clean; do | |
2497 echo | |
2498 func_mode_help | |
2499 done | |
2500 } | | |
2501 sed '1d | |
2502 /^When reporting/,/^Report/{ | |
2503 H | |
2504 d | |
2505 } | |
2506 $x | |
2507 /information about other modes/d | |
2508 /more detailed .*MODE/d | |
2509 s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/' | |
2510 fi | |
2511 exit $? | |
2512 fi | |
1634 | 2513 |
1635 | 2514 |
1636 # func_mode_execute arg... | 2515 # func_mode_execute arg... |
1637 func_mode_execute () | 2516 func_mode_execute () |
1638 { | 2517 { |
1641 cmd="$nonopt" | 2520 cmd="$nonopt" |
1642 test -z "$cmd" && \ | 2521 test -z "$cmd" && \ |
1643 func_fatal_help "you must specify a COMMAND" | 2522 func_fatal_help "you must specify a COMMAND" |
1644 | 2523 |
1645 # Handle -dlopen flags immediately. | 2524 # Handle -dlopen flags immediately. |
1646 for file in $execute_dlfiles; do | 2525 for file in $opt_dlopen; do |
1647 test -f "$file" \ | 2526 test -f "$file" \ |
1648 || func_fatal_help "\`$file' is not a file" | 2527 || func_fatal_help "\`$file' is not a file" |
1649 | 2528 |
1650 dir= | 2529 dir= |
1651 case $file in | 2530 case $file in |
1652 *.la) | 2531 *.la) |
2532 func_resolve_sysroot "$file" | |
2533 file=$func_resolve_sysroot_result | |
2534 | |
1653 # Check to see that this really is a libtool archive. | 2535 # Check to see that this really is a libtool archive. |
1654 func_lalib_unsafe_p "$file" \ | 2536 func_lalib_unsafe_p "$file" \ |
1655 || func_fatal_help "\`$lib' is not a valid libtool archive" | 2537 || func_fatal_help "\`$lib' is not a valid libtool archive" |
1656 | 2538 |
1657 # Read the libtool library. | 2539 # Read the libtool library. |
1669 | 2551 |
1670 func_dirname "$file" "" "." | 2552 func_dirname "$file" "" "." |
1671 dir="$func_dirname_result" | 2553 dir="$func_dirname_result" |
1672 | 2554 |
1673 if test -f "$dir/$objdir/$dlname"; then | 2555 if test -f "$dir/$objdir/$dlname"; then |
1674 dir="$dir/$objdir" | 2556 func_append dir "/$objdir" |
1675 else | 2557 else |
1676 if test ! -f "$dir/$dlname"; then | 2558 if test ! -f "$dir/$dlname"; then |
1677 func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" | 2559 func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" |
1678 fi | 2560 fi |
1679 fi | 2561 fi |
1710 # Check if any of the arguments is a wrapper script. | 2592 # Check if any of the arguments is a wrapper script. |
1711 args= | 2593 args= |
1712 for file | 2594 for file |
1713 do | 2595 do |
1714 case $file in | 2596 case $file in |
1715 -*) ;; | 2597 -* | *.la | *.lo ) ;; |
1716 *) | 2598 *) |
1717 # Do a test to see if this is really a libtool program. | 2599 # Do a test to see if this is really a libtool program. |
1718 if func_ltwrapper_script_p "$file"; then | 2600 if func_ltwrapper_script_p "$file"; then |
1719 func_source "$file" | 2601 func_source "$file" |
1720 # Transform arg to wrapped name. | 2602 # Transform arg to wrapped name. |
1726 file="$progdir/$program" | 2608 file="$progdir/$program" |
1727 fi | 2609 fi |
1728 ;; | 2610 ;; |
1729 esac | 2611 esac |
1730 # Quote arguments (to preserve shell metacharacters). | 2612 # Quote arguments (to preserve shell metacharacters). |
1731 func_quote_for_eval "$file" | 2613 func_append_quoted args "$file" |
1732 args="$args $func_quote_for_eval_result" | |
1733 done | 2614 done |
1734 | 2615 |
1735 if test "X$opt_dry_run" = Xfalse; then | 2616 if test "X$opt_dry_run" = Xfalse; then |
1736 if test -n "$shlibpath_var"; then | 2617 if test -n "$shlibpath_var"; then |
1737 # Export the shlibpath_var. | 2618 # Export the shlibpath_var. |
1752 exec_cmd="\$cmd$args" | 2633 exec_cmd="\$cmd$args" |
1753 else | 2634 else |
1754 # Display what would be done. | 2635 # Display what would be done. |
1755 if test -n "$shlibpath_var"; then | 2636 if test -n "$shlibpath_var"; then |
1756 eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\"" | 2637 eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\"" |
1757 $ECHO "export $shlibpath_var" | 2638 echo "export $shlibpath_var" |
1758 fi | 2639 fi |
1759 $ECHO "$cmd$args" | 2640 $ECHO "$cmd$args" |
1760 exit $EXIT_SUCCESS | 2641 exit $EXIT_SUCCESS |
1761 fi | 2642 fi |
1762 } | 2643 } |
1763 | 2644 |
1764 test "$mode" = execute && func_mode_execute ${1+"$@"} | 2645 test "$opt_mode" = execute && func_mode_execute ${1+"$@"} |
1765 | 2646 |
1766 | 2647 |
1767 # func_mode_finish arg... | 2648 # func_mode_finish arg... |
1768 func_mode_finish () | 2649 func_mode_finish () |
1769 { | 2650 { |
1770 $opt_debug | 2651 $opt_debug |
1771 libdirs="$nonopt" | 2652 libs= |
2653 libdirs= | |
1772 admincmds= | 2654 admincmds= |
1773 | 2655 |
2656 for opt in "$nonopt" ${1+"$@"} | |
2657 do | |
2658 if test -d "$opt"; then | |
2659 func_append libdirs " $opt" | |
2660 | |
2661 elif test -f "$opt"; then | |
2662 if func_lalib_unsafe_p "$opt"; then | |
2663 func_append libs " $opt" | |
2664 else | |
2665 func_warning "\`$opt' is not a valid libtool archive" | |
2666 fi | |
2667 | |
2668 else | |
2669 func_fatal_error "invalid argument \`$opt'" | |
2670 fi | |
2671 done | |
2672 | |
2673 if test -n "$libs"; then | |
2674 if test -n "$lt_sysroot"; then | |
2675 sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"` | |
2676 sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;" | |
2677 else | |
2678 sysroot_cmd= | |
2679 fi | |
2680 | |
2681 # Remove sysroot references | |
2682 if $opt_dry_run; then | |
2683 for lib in $libs; do | |
2684 echo "removing references to $lt_sysroot and \`=' prefixes from $lib" | |
2685 done | |
2686 else | |
2687 tmpdir=`func_mktempdir` | |
2688 for lib in $libs; do | |
2689 sed -e "${sysroot_cmd} s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \ | |
2690 > $tmpdir/tmp-la | |
2691 mv -f $tmpdir/tmp-la $lib | |
2692 done | |
2693 ${RM}r "$tmpdir" | |
2694 fi | |
2695 fi | |
2696 | |
1774 if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then | 2697 if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then |
1775 for dir | |
1776 do | |
1777 libdirs="$libdirs $dir" | |
1778 done | |
1779 | |
1780 for libdir in $libdirs; do | 2698 for libdir in $libdirs; do |
1781 if test -n "$finish_cmds"; then | 2699 if test -n "$finish_cmds"; then |
1782 # Do each command in the finish commands. | 2700 # Do each command in the finish commands. |
1783 func_execute_cmds "$finish_cmds" 'admincmds="$admincmds | 2701 func_execute_cmds "$finish_cmds" 'admincmds="$admincmds |
1784 '"$cmd"'"' | 2702 '"$cmd"'"' |
1785 fi | 2703 fi |
1786 if test -n "$finish_eval"; then | 2704 if test -n "$finish_eval"; then |
1787 # Do the single finish_eval. | 2705 # Do the single finish_eval. |
1788 eval cmds=\"$finish_eval\" | 2706 eval cmds=\"$finish_eval\" |
1789 $opt_dry_run || eval "$cmds" || admincmds="$admincmds | 2707 $opt_dry_run || eval "$cmds" || func_append admincmds " |
1790 $cmds" | 2708 $cmds" |
1791 fi | 2709 fi |
1792 done | 2710 done |
1793 fi | 2711 fi |
1794 | 2712 |
1795 # Exit here if they wanted silent mode. | 2713 # Exit here if they wanted silent mode. |
1796 $opt_silent && exit $EXIT_SUCCESS | 2714 $opt_silent && exit $EXIT_SUCCESS |
1797 | 2715 |
1798 $ECHO "X----------------------------------------------------------------------" | $Xsed | 2716 if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then |
1799 $ECHO "Libraries have been installed in:" | 2717 echo "----------------------------------------------------------------------" |
1800 for libdir in $libdirs; do | 2718 echo "Libraries have been installed in:" |
1801 $ECHO " $libdir" | 2719 for libdir in $libdirs; do |
1802 done | 2720 $ECHO " $libdir" |
1803 $ECHO | 2721 done |
1804 $ECHO "If you ever happen to want to link against installed libraries" | 2722 echo |
1805 $ECHO "in a given directory, LIBDIR, you must either use libtool, and" | 2723 echo "If you ever happen to want to link against installed libraries" |
1806 $ECHO "specify the full pathname of the library, or use the \`-LLIBDIR'" | 2724 echo "in a given directory, LIBDIR, you must either use libtool, and" |
1807 $ECHO "flag during linking and do at least one of the following:" | 2725 echo "specify the full pathname of the library, or use the \`-LLIBDIR'" |
1808 if test -n "$shlibpath_var"; then | 2726 echo "flag during linking and do at least one of the following:" |
1809 $ECHO " - add LIBDIR to the \`$shlibpath_var' environment variable" | 2727 if test -n "$shlibpath_var"; then |
1810 $ECHO " during execution" | 2728 echo " - add LIBDIR to the \`$shlibpath_var' environment variable" |
2729 echo " during execution" | |
2730 fi | |
2731 if test -n "$runpath_var"; then | |
2732 echo " - add LIBDIR to the \`$runpath_var' environment variable" | |
2733 echo " during linking" | |
2734 fi | |
2735 if test -n "$hardcode_libdir_flag_spec"; then | |
2736 libdir=LIBDIR | |
2737 eval flag=\"$hardcode_libdir_flag_spec\" | |
2738 | |
2739 $ECHO " - use the \`$flag' linker flag" | |
2740 fi | |
2741 if test -n "$admincmds"; then | |
2742 $ECHO " - have your system administrator run these commands:$admincmds" | |
2743 fi | |
2744 if test -f /etc/ld.so.conf; then | |
2745 echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" | |
2746 fi | |
2747 echo | |
2748 | |
2749 echo "See any operating system documentation about shared libraries for" | |
2750 case $host in | |
2751 solaris2.[6789]|solaris2.1[0-9]) | |
2752 echo "more information, such as the ld(1), crle(1) and ld.so(8) manual" | |
2753 echo "pages." | |
2754 ;; | |
2755 *) | |
2756 echo "more information, such as the ld(1) and ld.so(8) manual pages." | |
2757 ;; | |
2758 esac | |
2759 echo "----------------------------------------------------------------------" | |
1811 fi | 2760 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 | |
1841 exit $EXIT_SUCCESS | 2761 exit $EXIT_SUCCESS |
1842 } | 2762 } |
1843 | 2763 |
1844 test "$mode" = finish && func_mode_finish ${1+"$@"} | 2764 test "$opt_mode" = finish && func_mode_finish ${1+"$@"} |
1845 | 2765 |
1846 | 2766 |
1847 # func_mode_install arg... | 2767 # func_mode_install arg... |
1848 func_mode_install () | 2768 func_mode_install () |
1849 { | 2769 { |
1850 $opt_debug | 2770 $opt_debug |
1851 # There may be an optional sh(1) argument at the beginning of | 2771 # There may be an optional sh(1) argument at the beginning of |
1852 # install_prog (especially on Windows NT). | 2772 # install_prog (especially on Windows NT). |
1853 if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || | 2773 if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || |
1854 # Allow the use of GNU shtool's install command. | 2774 # Allow the use of GNU shtool's install command. |
1855 $ECHO "X$nonopt" | $GREP shtool >/dev/null; then | 2775 case $nonopt in *shtool*) :;; *) false;; esac; then |
1856 # Aesthetically quote it. | 2776 # Aesthetically quote it. |
1857 func_quote_for_eval "$nonopt" | 2777 func_quote_for_eval "$nonopt" |
1858 install_prog="$func_quote_for_eval_result " | 2778 install_prog="$func_quote_for_eval_result " |
1859 arg=$1 | 2779 arg=$1 |
1860 shift | 2780 shift |
1864 fi | 2784 fi |
1865 | 2785 |
1866 # The real first argument should be the name of the installation program. | 2786 # The real first argument should be the name of the installation program. |
1867 # Aesthetically quote it. | 2787 # Aesthetically quote it. |
1868 func_quote_for_eval "$arg" | 2788 func_quote_for_eval "$arg" |
1869 install_prog="$install_prog$func_quote_for_eval_result" | 2789 func_append install_prog "$func_quote_for_eval_result" |
2790 install_shared_prog=$install_prog | |
2791 case " $install_prog " in | |
2792 *[\\\ /]cp\ *) install_cp=: ;; | |
2793 *) install_cp=false ;; | |
2794 esac | |
1870 | 2795 |
1871 # We need to accept at least all the BSD install flags. | 2796 # We need to accept at least all the BSD install flags. |
1872 dest= | 2797 dest= |
1873 files= | 2798 files= |
1874 opts= | 2799 opts= |
1875 prev= | 2800 prev= |
1876 install_type= | 2801 install_type= |
1877 isdir=no | 2802 isdir=no |
1878 stripme= | 2803 stripme= |
2804 no_mode=: | |
1879 for arg | 2805 for arg |
1880 do | 2806 do |
2807 arg2= | |
1881 if test -n "$dest"; then | 2808 if test -n "$dest"; then |
1882 files="$files $dest" | 2809 func_append files " $dest" |
1883 dest=$arg | 2810 dest=$arg |
1884 continue | 2811 continue |
1885 fi | 2812 fi |
1886 | 2813 |
1887 case $arg in | 2814 case $arg in |
1888 -d) isdir=yes ;; | 2815 -d) isdir=yes ;; |
1889 -f) | 2816 -f) |
1890 case " $install_prog " in | 2817 if $install_cp; then :; else |
1891 *[\\\ /]cp\ *) ;; | 2818 prev=$arg |
1892 *) prev=$arg ;; | 2819 fi |
1893 esac | |
1894 ;; | 2820 ;; |
1895 -g | -m | -o) | 2821 -g | -m | -o) |
1896 prev=$arg | 2822 prev=$arg |
1897 ;; | 2823 ;; |
1898 -s) | 2824 -s) |
1902 -*) | 2828 -*) |
1903 ;; | 2829 ;; |
1904 *) | 2830 *) |
1905 # If the previous option needed an argument, then skip it. | 2831 # If the previous option needed an argument, then skip it. |
1906 if test -n "$prev"; then | 2832 if test -n "$prev"; then |
2833 if test "x$prev" = x-m && test -n "$install_override_mode"; then | |
2834 arg2=$install_override_mode | |
2835 no_mode=false | |
2836 fi | |
1907 prev= | 2837 prev= |
1908 else | 2838 else |
1909 dest=$arg | 2839 dest=$arg |
1910 continue | 2840 continue |
1911 fi | 2841 fi |
1912 ;; | 2842 ;; |
1913 esac | 2843 esac |
1914 | 2844 |
1915 # Aesthetically quote the argument. | 2845 # Aesthetically quote the argument. |
1916 func_quote_for_eval "$arg" | 2846 func_quote_for_eval "$arg" |
1917 install_prog="$install_prog $func_quote_for_eval_result" | 2847 func_append install_prog " $func_quote_for_eval_result" |
2848 if test -n "$arg2"; then | |
2849 func_quote_for_eval "$arg2" | |
2850 fi | |
2851 func_append install_shared_prog " $func_quote_for_eval_result" | |
1918 done | 2852 done |
1919 | 2853 |
1920 test -z "$install_prog" && \ | 2854 test -z "$install_prog" && \ |
1921 func_fatal_help "you must specify an install program" | 2855 func_fatal_help "you must specify an install program" |
1922 | 2856 |
1923 test -n "$prev" && \ | 2857 test -n "$prev" && \ |
1924 func_fatal_help "the \`$prev' option requires an argument" | 2858 func_fatal_help "the \`$prev' option requires an argument" |
2859 | |
2860 if test -n "$install_override_mode" && $no_mode; then | |
2861 if $install_cp; then :; else | |
2862 func_quote_for_eval "$install_override_mode" | |
2863 func_append install_shared_prog " -m $func_quote_for_eval_result" | |
2864 fi | |
2865 fi | |
1925 | 2866 |
1926 if test -z "$files"; then | 2867 if test -z "$files"; then |
1927 if test -z "$dest"; then | 2868 if test -z "$dest"; then |
1928 func_fatal_help "no file or destination specified" | 2869 func_fatal_help "no file or destination specified" |
1929 else | 2870 else |
1975 | 2916 |
1976 # Do each installation. | 2917 # Do each installation. |
1977 case $file in | 2918 case $file in |
1978 *.$libext) | 2919 *.$libext) |
1979 # Do the static libraries later. | 2920 # Do the static libraries later. |
1980 staticlibs="$staticlibs $file" | 2921 func_append staticlibs " $file" |
1981 ;; | 2922 ;; |
1982 | 2923 |
1983 *.la) | 2924 *.la) |
2925 func_resolve_sysroot "$file" | |
2926 file=$func_resolve_sysroot_result | |
2927 | |
1984 # Check to see that this really is a libtool archive. | 2928 # Check to see that this really is a libtool archive. |
1985 func_lalib_unsafe_p "$file" \ | 2929 func_lalib_unsafe_p "$file" \ |
1986 || func_fatal_help "\`$file' is not a valid libtool archive" | 2930 || func_fatal_help "\`$file' is not a valid libtool archive" |
1987 | 2931 |
1988 library_names= | 2932 library_names= |
1992 | 2936 |
1993 # Add the libdir to current_libdirs if it is the destination. | 2937 # Add the libdir to current_libdirs if it is the destination. |
1994 if test "X$destdir" = "X$libdir"; then | 2938 if test "X$destdir" = "X$libdir"; then |
1995 case "$current_libdirs " in | 2939 case "$current_libdirs " in |
1996 *" $libdir "*) ;; | 2940 *" $libdir "*) ;; |
1997 *) current_libdirs="$current_libdirs $libdir" ;; | 2941 *) func_append current_libdirs " $libdir" ;; |
1998 esac | 2942 esac |
1999 else | 2943 else |
2000 # Note the libdir as a future libdir. | 2944 # Note the libdir as a future libdir. |
2001 case "$future_libdirs " in | 2945 case "$future_libdirs " in |
2002 *" $libdir "*) ;; | 2946 *" $libdir "*) ;; |
2003 *) future_libdirs="$future_libdirs $libdir" ;; | 2947 *) func_append future_libdirs " $libdir" ;; |
2004 esac | 2948 esac |
2005 fi | 2949 fi |
2006 | 2950 |
2007 func_dirname "$file" "/" "" | 2951 func_dirname "$file" "/" "" |
2008 dir="$func_dirname_result" | 2952 dir="$func_dirname_result" |
2009 dir="$dir$objdir" | 2953 func_append dir "$objdir" |
2010 | 2954 |
2011 if test -n "$relink_command"; then | 2955 if test -n "$relink_command"; then |
2012 # Determine the prefix the user has applied to our future dir. | 2956 # Determine the prefix the user has applied to our future dir. |
2013 inst_prefix_dir=`$ECHO "X$destdir" | $Xsed -e "s%$libdir\$%%"` | 2957 inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"` |
2014 | 2958 |
2015 # Don't allow the user to place us outside of our expected | 2959 # Don't allow the user to place us outside of our expected |
2016 # location b/c this prevents finding dependent libraries that | 2960 # location b/c this prevents finding dependent libraries that |
2017 # are installed to the same prefix. | 2961 # are installed to the same prefix. |
2018 # At present, this check doesn't affect windows .dll's that | 2962 # At present, this check doesn't affect windows .dll's that |
2021 test "$inst_prefix_dir" = "$destdir" && \ | 2965 test "$inst_prefix_dir" = "$destdir" && \ |
2022 func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir" | 2966 func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir" |
2023 | 2967 |
2024 if test -n "$inst_prefix_dir"; then | 2968 if test -n "$inst_prefix_dir"; then |
2025 # Stick the inst_prefix_dir data into the link command. | 2969 # Stick the inst_prefix_dir data into the link command. |
2026 relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` | 2970 relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` |
2027 else | 2971 else |
2028 relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%%"` | 2972 relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"` |
2029 fi | 2973 fi |
2030 | 2974 |
2031 func_warning "relinking \`$file'" | 2975 func_warning "relinking \`$file'" |
2032 func_show_eval "$relink_command" \ | 2976 func_show_eval "$relink_command" \ |
2033 'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"' | 2977 'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"' |
2041 | 2985 |
2042 srcname="$realname" | 2986 srcname="$realname" |
2043 test -n "$relink_command" && srcname="$realname"T | 2987 test -n "$relink_command" && srcname="$realname"T |
2044 | 2988 |
2045 # Install the shared library and build the symlinks. | 2989 # Install the shared library and build the symlinks. |
2046 func_show_eval "$install_prog $dir/$srcname $destdir/$realname" \ | 2990 func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \ |
2047 'exit $?' | 2991 'exit $?' |
2048 tstripme="$stripme" | 2992 tstripme="$stripme" |
2049 case $host_os in | 2993 case $host_os in |
2050 cygwin* | mingw* | pw32* | cegcc*) | 2994 cygwin* | mingw* | pw32* | cegcc*) |
2051 case $realname in | 2995 case $realname in |
2081 name="$func_basename_result" | 3025 name="$func_basename_result" |
2082 instname="$dir/$name"i | 3026 instname="$dir/$name"i |
2083 func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' | 3027 func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' |
2084 | 3028 |
2085 # Maybe install the static library, too. | 3029 # Maybe install the static library, too. |
2086 test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library" | 3030 test -n "$old_library" && func_append staticlibs " $dir/$old_library" |
2087 ;; | 3031 ;; |
2088 | 3032 |
2089 *.lo) | 3033 *.lo) |
2090 # Install (i.e. copy) a libtool object. | 3034 # Install (i.e. copy) a libtool object. |
2091 | 3035 |
2181 # Check to see that each library is installed. | 3125 # Check to see that each library is installed. |
2182 libdir= | 3126 libdir= |
2183 if test -f "$lib"; then | 3127 if test -f "$lib"; then |
2184 func_source "$lib" | 3128 func_source "$lib" |
2185 fi | 3129 fi |
2186 libfile="$libdir/"`$ECHO "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test | 3130 libfile="$libdir/"`$ECHO "$lib" | $SED 's%^.*/%%g'` ### testsuite: skip nested quoting test |
2187 if test -n "$libdir" && test ! -f "$libfile"; then | 3131 if test -n "$libdir" && test ! -f "$libfile"; then |
2188 func_warning "\`$lib' has not been installed in \`$libdir'" | 3132 func_warning "\`$lib' has not been installed in \`$libdir'" |
2189 finalize=no | 3133 finalize=no |
2190 fi | 3134 fi |
2191 done | 3135 done |
2200 tmpdir=`func_mktempdir` | 3144 tmpdir=`func_mktempdir` |
2201 func_basename "$file$stripped_ext" | 3145 func_basename "$file$stripped_ext" |
2202 file="$func_basename_result" | 3146 file="$func_basename_result" |
2203 outputname="$tmpdir/$file" | 3147 outputname="$tmpdir/$file" |
2204 # Replace the output file specification. | 3148 # Replace the output file specification. |
2205 relink_command=`$ECHO "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'` | 3149 relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'` |
2206 | 3150 |
2207 $opt_silent || { | 3151 $opt_silent || { |
2208 func_quote_for_expand "$relink_command" | 3152 func_quote_for_expand "$relink_command" |
2209 eval "func_echo $func_quote_for_expand_result" | 3153 eval "func_echo $func_quote_for_expand_result" |
2210 } | 3154 } |
2219 func_warning "cannot relink \`$file'" | 3163 func_warning "cannot relink \`$file'" |
2220 fi | 3164 fi |
2221 } | 3165 } |
2222 else | 3166 else |
2223 # Install the binary that we compiled earlier. | 3167 # Install the binary that we compiled earlier. |
2224 file=`$ECHO "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"` | 3168 file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"` |
2225 fi | 3169 fi |
2226 fi | 3170 fi |
2227 | 3171 |
2228 # remove .exe since cygwin /usr/bin/install will append another | 3172 # remove .exe since cygwin /usr/bin/install will append another |
2229 # one anyway | 3173 # one anyway |
2278 else | 3222 else |
2279 exit $EXIT_SUCCESS | 3223 exit $EXIT_SUCCESS |
2280 fi | 3224 fi |
2281 } | 3225 } |
2282 | 3226 |
2283 test "$mode" = install && func_mode_install ${1+"$@"} | 3227 test "$opt_mode" = install && func_mode_install ${1+"$@"} |
2284 | 3228 |
2285 | 3229 |
2286 # func_generate_dlsyms outputname originator pic_p | 3230 # func_generate_dlsyms outputname originator pic_p |
2287 # Extract symbols from dlprefiles and create ${outputname}S.o with | 3231 # Extract symbols from dlprefiles and create ${outputname}S.o with |
2288 # a dlpreopen symbol table. | 3232 # a dlpreopen symbol table. |
2321 | 3265 |
2322 #ifdef __cplusplus | 3266 #ifdef __cplusplus |
2323 extern \"C\" { | 3267 extern \"C\" { |
2324 #endif | 3268 #endif |
2325 | 3269 |
3270 #if defined(__GNUC__) && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4)) | |
3271 #pragma GCC diagnostic ignored \"-Wstrict-prototypes\" | |
3272 #endif | |
3273 | |
3274 /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ | |
3275 #if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) | |
3276 /* DATA imports from DLLs on WIN32 con't be const, because runtime | |
3277 relocations are performed -- see ld's documentation on pseudo-relocs. */ | |
3278 # define LT_DLSYM_CONST | |
3279 #elif defined(__osf__) | |
3280 /* This system does not cope well with relocations in const data. */ | |
3281 # define LT_DLSYM_CONST | |
3282 #else | |
3283 # define LT_DLSYM_CONST const | |
3284 #endif | |
3285 | |
2326 /* External symbol declarations for the compiler. */\ | 3286 /* External symbol declarations for the compiler. */\ |
2327 " | 3287 " |
2328 | 3288 |
2329 if test "$dlself" = yes; then | 3289 if test "$dlself" = yes; then |
2330 func_verbose "generating symbol list for \`$output'" | 3290 func_verbose "generating symbol list for \`$output'" |
2331 | 3291 |
2332 $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist" | 3292 $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist" |
2333 | 3293 |
2334 # Add our own program objects to the symbol list. | 3294 # Add our own program objects to the symbol list. |
2335 progfiles=`$ECHO "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` | 3295 progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP` |
2336 for progfile in $progfiles; do | 3296 for progfile in $progfiles; do |
2337 func_verbose "extracting global C symbols from \`$progfile'" | 3297 func_to_tool_file "$progfile" func_convert_file_msys_to_w32 |
2338 $opt_dry_run || eval "$NM $progfile | $global_symbol_pipe >> '$nlist'" | 3298 func_verbose "extracting global C symbols from \`$func_to_tool_file_result'" |
3299 $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'" | |
2339 done | 3300 done |
2340 | 3301 |
2341 if test -n "$exclude_expsyms"; then | 3302 if test -n "$exclude_expsyms"; then |
2342 $opt_dry_run || { | 3303 $opt_dry_run || { |
2343 eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' | 3304 eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' |
2369 $opt_dry_run || { | 3330 $opt_dry_run || { |
2370 eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' | 3331 eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' |
2371 eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' | 3332 eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' |
2372 eval '$MV "$nlist"T "$nlist"' | 3333 eval '$MV "$nlist"T "$nlist"' |
2373 case $host in | 3334 case $host in |
2374 *cygwin | *mingw* | *cegcc* ) | 3335 *cygwin* | *mingw* | *cegcc* ) |
2375 eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' | 3336 eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' |
2376 eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' | 3337 eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' |
2377 ;; | 3338 ;; |
2378 esac | 3339 esac |
2379 } | 3340 } |
2382 | 3343 |
2383 for dlprefile in $dlprefiles; do | 3344 for dlprefile in $dlprefiles; do |
2384 func_verbose "extracting global C symbols from \`$dlprefile'" | 3345 func_verbose "extracting global C symbols from \`$dlprefile'" |
2385 func_basename "$dlprefile" | 3346 func_basename "$dlprefile" |
2386 name="$func_basename_result" | 3347 name="$func_basename_result" |
2387 $opt_dry_run || { | 3348 case $host in |
2388 eval '$ECHO ": $name " >> "$nlist"' | 3349 *cygwin* | *mingw* | *cegcc* ) |
2389 eval "$NM $dlprefile 2>/dev/null | $global_symbol_pipe >> '$nlist'" | 3350 # if an import library, we need to obtain dlname |
2390 } | 3351 if func_win32_import_lib_p "$dlprefile"; then |
3352 func_tr_sh "$dlprefile" | |
3353 eval "curr_lafile=\$libfile_$func_tr_sh_result" | |
3354 dlprefile_dlbasename="" | |
3355 if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then | |
3356 # Use subshell, to avoid clobbering current variable values | |
3357 dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"` | |
3358 if test -n "$dlprefile_dlname" ; then | |
3359 func_basename "$dlprefile_dlname" | |
3360 dlprefile_dlbasename="$func_basename_result" | |
3361 else | |
3362 # no lafile. user explicitly requested -dlpreopen <import library>. | |
3363 $sharedlib_from_linklib_cmd "$dlprefile" | |
3364 dlprefile_dlbasename=$sharedlib_from_linklib_result | |
3365 fi | |
3366 fi | |
3367 $opt_dry_run || { | |
3368 if test -n "$dlprefile_dlbasename" ; then | |
3369 eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"' | |
3370 else | |
3371 func_warning "Could not compute DLL name from $name" | |
3372 eval '$ECHO ": $name " >> "$nlist"' | |
3373 fi | |
3374 func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 | |
3375 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe | | |
3376 $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'" | |
3377 } | |
3378 else # not an import lib | |
3379 $opt_dry_run || { | |
3380 eval '$ECHO ": $name " >> "$nlist"' | |
3381 func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 | |
3382 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" | |
3383 } | |
3384 fi | |
3385 ;; | |
3386 *) | |
3387 $opt_dry_run || { | |
3388 eval '$ECHO ": $name " >> "$nlist"' | |
3389 func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 | |
3390 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" | |
3391 } | |
3392 ;; | |
3393 esac | |
2391 done | 3394 done |
2392 | 3395 |
2393 $opt_dry_run || { | 3396 $opt_dry_run || { |
2394 # Make sure we have at least an empty file. | 3397 # Make sure we have at least an empty file. |
2395 test -f "$nlist" || : > "$nlist" | 3398 test -f "$nlist" || : > "$nlist" |
2413 fi | 3416 fi |
2414 | 3417 |
2415 if test -f "$nlist"S; then | 3418 if test -f "$nlist"S; then |
2416 eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"' | 3419 eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"' |
2417 else | 3420 else |
2418 $ECHO '/* NONE */' >> "$output_objdir/$my_dlsyms" | 3421 echo '/* NONE */' >> "$output_objdir/$my_dlsyms" |
2419 fi | 3422 fi |
2420 | 3423 |
2421 $ECHO >> "$output_objdir/$my_dlsyms" "\ | 3424 echo >> "$output_objdir/$my_dlsyms" "\ |
2422 | 3425 |
2423 /* The mapping between symbol names and symbols. */ | 3426 /* The mapping between symbol names and symbols. */ |
2424 typedef struct { | 3427 typedef struct { |
2425 const char *name; | 3428 const char *name; |
2426 void *address; | 3429 void *address; |
2427 } lt_dlsymlist; | 3430 } lt_dlsymlist; |
2428 " | 3431 extern LT_DLSYM_CONST lt_dlsymlist |
2429 case $host in | |
2430 *cygwin* | *mingw* | *cegcc* ) | |
2431 $ECHO >> "$output_objdir/$my_dlsyms" "\ | |
2432 /* DATA imports from DLLs on WIN32 con't be const, because | |
2433 runtime relocations are performed -- see ld's documentation | |
2434 on pseudo-relocs. */" | |
2435 lt_dlsym_const= ;; | |
2436 *osf5*) | |
2437 echo >> "$output_objdir/$my_dlsyms" "\ | |
2438 /* This system does not cope well with relocations in const data */" | |
2439 lt_dlsym_const= ;; | |
2440 *) | |
2441 lt_dlsym_const=const ;; | |
2442 esac | |
2443 | |
2444 $ECHO >> "$output_objdir/$my_dlsyms" "\ | |
2445 extern $lt_dlsym_const lt_dlsymlist | |
2446 lt_${my_prefix}_LTX_preloaded_symbols[]; | 3432 lt_${my_prefix}_LTX_preloaded_symbols[]; |
2447 $lt_dlsym_const lt_dlsymlist | 3433 LT_DLSYM_CONST lt_dlsymlist |
2448 lt_${my_prefix}_LTX_preloaded_symbols[] = | 3434 lt_${my_prefix}_LTX_preloaded_symbols[] = |
2449 {\ | 3435 {\ |
2450 { \"$my_originator\", (void *) 0 }," | 3436 { \"$my_originator\", (void *) 0 }," |
2451 | 3437 |
2452 case $need_lib_prefix in | 3438 case $need_lib_prefix in |
2455 ;; | 3441 ;; |
2456 *) | 3442 *) |
2457 eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms" | 3443 eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms" |
2458 ;; | 3444 ;; |
2459 esac | 3445 esac |
2460 $ECHO >> "$output_objdir/$my_dlsyms" "\ | 3446 echo >> "$output_objdir/$my_dlsyms" "\ |
2461 {0, (void *) 0} | 3447 {0, (void *) 0} |
2462 }; | 3448 }; |
2463 | 3449 |
2464 /* This works around a problem in FreeBSD linker */ | 3450 /* This works around a problem in FreeBSD linker */ |
2465 #ifdef FREEBSD_WORKAROUND | 3451 #ifdef FREEBSD_WORKAROUND |
2498 esac | 3484 esac |
2499 symtab_cflags= | 3485 symtab_cflags= |
2500 for arg in $LTCFLAGS; do | 3486 for arg in $LTCFLAGS; do |
2501 case $arg in | 3487 case $arg in |
2502 -pie | -fpie | -fPIE) ;; | 3488 -pie | -fpie | -fPIE) ;; |
2503 *) symtab_cflags="$symtab_cflags $arg" ;; | 3489 *) func_append symtab_cflags " $arg" ;; |
2504 esac | 3490 esac |
2505 done | 3491 done |
2506 | 3492 |
2507 # Now compile the dynamic symbol file. | 3493 # Now compile the dynamic symbol file. |
2508 func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?' | 3494 func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?' |
2513 # Transform the symbol file into the correct name. | 3499 # Transform the symbol file into the correct name. |
2514 symfileobj="$output_objdir/${my_outputname}S.$objext" | 3500 symfileobj="$output_objdir/${my_outputname}S.$objext" |
2515 case $host in | 3501 case $host in |
2516 *cygwin* | *mingw* | *cegcc* ) | 3502 *cygwin* | *mingw* | *cegcc* ) |
2517 if test -f "$output_objdir/$my_outputname.def"; then | 3503 if test -f "$output_objdir/$my_outputname.def"; then |
2518 compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` | 3504 compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` |
2519 finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` | 3505 finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` |
2520 else | 3506 else |
2521 compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` | 3507 compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` |
2522 finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` | 3508 finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` |
2523 fi | 3509 fi |
2524 ;; | 3510 ;; |
2525 *) | 3511 *) |
2526 compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` | 3512 compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` |
2527 finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` | 3513 finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` |
2528 ;; | 3514 ;; |
2529 esac | 3515 esac |
2530 ;; | 3516 ;; |
2531 *) | 3517 *) |
2532 func_fatal_error "unknown suffix for \`$my_dlsyms'" | 3518 func_fatal_error "unknown suffix for \`$my_dlsyms'" |
2536 # We keep going just in case the user didn't refer to | 3522 # We keep going just in case the user didn't refer to |
2537 # lt_preloaded_symbols. The linker will fail if global_symbol_pipe | 3523 # lt_preloaded_symbols. The linker will fail if global_symbol_pipe |
2538 # really was required. | 3524 # really was required. |
2539 | 3525 |
2540 # Nullify the symbol file. | 3526 # Nullify the symbol file. |
2541 compile_command=`$ECHO "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"` | 3527 compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"` |
2542 finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"` | 3528 finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"` |
2543 fi | 3529 fi |
2544 } | 3530 } |
2545 | 3531 |
2546 # func_win32_libid arg | 3532 # func_win32_libid arg |
2547 # return the library type of file 'arg' | 3533 # return the library type of file 'arg' |
2548 # | 3534 # |
2549 # Need a lot of goo to handle *both* DLLs and import libs | 3535 # Need a lot of goo to handle *both* DLLs and import libs |
2550 # Has to be a shell function in order to 'eat' the argument | 3536 # Has to be a shell function in order to 'eat' the argument |
2551 # that is supplied when $file_magic_command is called. | 3537 # that is supplied when $file_magic_command is called. |
3538 # Despite the name, also deal with 64 bit binaries. | |
2552 func_win32_libid () | 3539 func_win32_libid () |
2553 { | 3540 { |
2554 $opt_debug | 3541 $opt_debug |
2555 win32_libid_type="unknown" | 3542 win32_libid_type="unknown" |
2556 win32_fileres=`file -L $1 2>/dev/null` | 3543 win32_fileres=`file -L $1 2>/dev/null` |
2557 case $win32_fileres in | 3544 case $win32_fileres in |
2558 *ar\ archive\ import\ library*) # definitely import | 3545 *ar\ archive\ import\ library*) # definitely import |
2559 win32_libid_type="x86 archive import" | 3546 win32_libid_type="x86 archive import" |
2560 ;; | 3547 ;; |
2561 *ar\ archive*) # could be an import, or static | 3548 *ar\ archive*) # could be an import, or static |
3549 # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD. | |
2562 if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | | 3550 if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | |
2563 $EGREP 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then | 3551 $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then |
2564 win32_nmres=`eval $NM -f posix -A $1 | | 3552 func_to_tool_file "$1" func_convert_file_msys_to_w32 |
3553 win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" | | |
2565 $SED -n -e ' | 3554 $SED -n -e ' |
2566 1,100{ | 3555 1,100{ |
2567 / I /{ | 3556 / I /{ |
2568 s,.*,import, | 3557 s,.*,import, |
2569 p | 3558 p |
2588 ;; | 3577 ;; |
2589 esac | 3578 esac |
2590 $ECHO "$win32_libid_type" | 3579 $ECHO "$win32_libid_type" |
2591 } | 3580 } |
2592 | 3581 |
3582 # func_cygming_dll_for_implib ARG | |
3583 # | |
3584 # Platform-specific function to extract the | |
3585 # name of the DLL associated with the specified | |
3586 # import library ARG. | |
3587 # Invoked by eval'ing the libtool variable | |
3588 # $sharedlib_from_linklib_cmd | |
3589 # Result is available in the variable | |
3590 # $sharedlib_from_linklib_result | |
3591 func_cygming_dll_for_implib () | |
3592 { | |
3593 $opt_debug | |
3594 sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"` | |
3595 } | |
3596 | |
3597 # func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs | |
3598 # | |
3599 # The is the core of a fallback implementation of a | |
3600 # platform-specific function to extract the name of the | |
3601 # DLL associated with the specified import library LIBNAME. | |
3602 # | |
3603 # SECTION_NAME is either .idata$6 or .idata$7, depending | |
3604 # on the platform and compiler that created the implib. | |
3605 # | |
3606 # Echos the name of the DLL associated with the | |
3607 # specified import library. | |
3608 func_cygming_dll_for_implib_fallback_core () | |
3609 { | |
3610 $opt_debug | |
3611 match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"` | |
3612 $OBJDUMP -s --section "$1" "$2" 2>/dev/null | | |
3613 $SED '/^Contents of section '"$match_literal"':/{ | |
3614 # Place marker at beginning of archive member dllname section | |
3615 s/.*/====MARK====/ | |
3616 p | |
3617 d | |
3618 } | |
3619 # These lines can sometimes be longer than 43 characters, but | |
3620 # are always uninteresting | |
3621 /:[ ]*file format pe[i]\{,1\}-/d | |
3622 /^In archive [^:]*:/d | |
3623 # Ensure marker is printed | |
3624 /^====MARK====/p | |
3625 # Remove all lines with less than 43 characters | |
3626 /^.\{43\}/!d | |
3627 # From remaining lines, remove first 43 characters | |
3628 s/^.\{43\}//' | | |
3629 $SED -n ' | |
3630 # Join marker and all lines until next marker into a single line | |
3631 /^====MARK====/ b para | |
3632 H | |
3633 $ b para | |
3634 b | |
3635 :para | |
3636 x | |
3637 s/\n//g | |
3638 # Remove the marker | |
3639 s/^====MARK====// | |
3640 # Remove trailing dots and whitespace | |
3641 s/[\. \t]*$// | |
3642 # Print | |
3643 /./p' | | |
3644 # we now have a list, one entry per line, of the stringified | |
3645 # contents of the appropriate section of all members of the | |
3646 # archive which possess that section. Heuristic: eliminate | |
3647 # all those which have a first or second character that is | |
3648 # a '.' (that is, objdump's representation of an unprintable | |
3649 # character.) This should work for all archives with less than | |
3650 # 0x302f exports -- but will fail for DLLs whose name actually | |
3651 # begins with a literal '.' or a single character followed by | |
3652 # a '.'. | |
3653 # | |
3654 # Of those that remain, print the first one. | |
3655 $SED -e '/^\./d;/^.\./d;q' | |
3656 } | |
3657 | |
3658 # func_cygming_gnu_implib_p ARG | |
3659 # This predicate returns with zero status (TRUE) if | |
3660 # ARG is a GNU/binutils-style import library. Returns | |
3661 # with nonzero status (FALSE) otherwise. | |
3662 func_cygming_gnu_implib_p () | |
3663 { | |
3664 $opt_debug | |
3665 func_to_tool_file "$1" func_convert_file_msys_to_w32 | |
3666 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)$'` | |
3667 test -n "$func_cygming_gnu_implib_tmp" | |
3668 } | |
3669 | |
3670 # func_cygming_ms_implib_p ARG | |
3671 # This predicate returns with zero status (TRUE) if | |
3672 # ARG is an MS-style import library. Returns | |
3673 # with nonzero status (FALSE) otherwise. | |
3674 func_cygming_ms_implib_p () | |
3675 { | |
3676 $opt_debug | |
3677 func_to_tool_file "$1" func_convert_file_msys_to_w32 | |
3678 func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'` | |
3679 test -n "$func_cygming_ms_implib_tmp" | |
3680 } | |
3681 | |
3682 # func_cygming_dll_for_implib_fallback ARG | |
3683 # Platform-specific function to extract the | |
3684 # name of the DLL associated with the specified | |
3685 # import library ARG. | |
3686 # | |
3687 # This fallback implementation is for use when $DLLTOOL | |
3688 # does not support the --identify-strict option. | |
3689 # Invoked by eval'ing the libtool variable | |
3690 # $sharedlib_from_linklib_cmd | |
3691 # Result is available in the variable | |
3692 # $sharedlib_from_linklib_result | |
3693 func_cygming_dll_for_implib_fallback () | |
3694 { | |
3695 $opt_debug | |
3696 if func_cygming_gnu_implib_p "$1" ; then | |
3697 # binutils import library | |
3698 sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"` | |
3699 elif func_cygming_ms_implib_p "$1" ; then | |
3700 # ms-generated import library | |
3701 sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"` | |
3702 else | |
3703 # unknown | |
3704 sharedlib_from_linklib_result="" | |
3705 fi | |
3706 } | |
2593 | 3707 |
2594 | 3708 |
2595 # func_extract_an_archive dir oldlib | 3709 # func_extract_an_archive dir oldlib |
2596 func_extract_an_archive () | 3710 func_extract_an_archive () |
2597 { | 3711 { |
2598 $opt_debug | 3712 $opt_debug |
2599 f_ex_an_ar_dir="$1"; shift | 3713 f_ex_an_ar_dir="$1"; shift |
2600 f_ex_an_ar_oldlib="$1" | 3714 f_ex_an_ar_oldlib="$1" |
2601 func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" 'exit $?' | 3715 if test "$lock_old_archive_extraction" = yes; then |
3716 lockfile=$f_ex_an_ar_oldlib.lock | |
3717 until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do | |
3718 func_echo "Waiting for $lockfile to be removed" | |
3719 sleep 2 | |
3720 done | |
3721 fi | |
3722 func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \ | |
3723 'stat=$?; rm -f "$lockfile"; exit $stat' | |
3724 if test "$lock_old_archive_extraction" = yes; then | |
3725 $opt_dry_run || rm -f "$lockfile" | |
3726 fi | |
2602 if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then | 3727 if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then |
2603 : | 3728 : |
2604 else | 3729 else |
2605 func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" | 3730 func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" |
2606 fi | 3731 fi |
2667 ## Okay now we've a bunch of thin objects, gotta fatten them up :) | 3792 ## Okay now we've a bunch of thin objects, gotta fatten them up :) |
2668 darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u` | 3793 darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u` |
2669 darwin_file= | 3794 darwin_file= |
2670 darwin_files= | 3795 darwin_files= |
2671 for darwin_file in $darwin_filelist; do | 3796 for darwin_file in $darwin_filelist; do |
2672 darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP` | 3797 darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP` |
2673 $LIPO -create -output "$darwin_file" $darwin_files | 3798 $LIPO -create -output "$darwin_file" $darwin_files |
2674 done # $darwin_filelist | 3799 done # $darwin_filelist |
2675 $RM -rf unfat-$$ | 3800 $RM -rf unfat-$$ |
2676 cd "$darwin_orig_dir" | 3801 cd "$darwin_orig_dir" |
2677 else | 3802 else |
2682 ;; | 3807 ;; |
2683 *) | 3808 *) |
2684 func_extract_an_archive "$my_xdir" "$my_xabs" | 3809 func_extract_an_archive "$my_xdir" "$my_xabs" |
2685 ;; | 3810 ;; |
2686 esac | 3811 esac |
2687 my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` | 3812 my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP` |
2688 done | 3813 done |
2689 | 3814 |
2690 func_extract_archives_result="$my_oldobjs" | 3815 func_extract_archives_result="$my_oldobjs" |
2691 } | 3816 } |
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 | |
2927 | 3817 |
2928 | 3818 |
2929 # func_emit_wrapper [arg=no] | 3819 # func_emit_wrapper [arg=no] |
2930 # | 3820 # |
2931 # Emit a libtool wrapper script on stdout. | 3821 # Emit a libtool wrapper script on stdout. |
2940 # will assume that the directory in which it is stored is | 3830 # will assume that the directory in which it is stored is |
2941 # the $objdir directory. This is a cygwin/mingw-specific | 3831 # the $objdir directory. This is a cygwin/mingw-specific |
2942 # behavior. | 3832 # behavior. |
2943 func_emit_wrapper () | 3833 func_emit_wrapper () |
2944 { | 3834 { |
2945 func_emit_wrapper_arg1=no | 3835 func_emit_wrapper_arg1=${1-no} |
2946 if test -n "$1" ; then | 3836 |
2947 func_emit_wrapper_arg1=$1 | 3837 $ECHO "\ |
2948 fi | 3838 #! $SHELL |
2949 | 3839 |
2950 # split this up so that func_emit_cwrapperexe_src | 3840 # $output - temporary wrapper script for $objdir/$outputname |
2951 # can call each part independently. | 3841 # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION |
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 | |
2958 # | 3842 # |
2959 # Convert paths to host format when used with build tools. | 3843 # The $output program cannot be directly executed until all the libtool |
2960 # Intended for use with "native" mingw (where libtool itself | 3844 # libraries that it depends on are installed. |
2961 # is running under the msys shell), or in the following cross- | |
2962 # build environments: | |
2963 # $build $host | |
2964 # mingw (msys) mingw [e.g. native] | |
2965 # cygwin mingw | |
2966 # *nix + wine mingw | |
2967 # where wine is equipped with the `winepath' executable. | |
2968 # In the native mingw case, the (msys) shell automatically | |
2969 # converts paths for any non-msys applications it launches, | |
2970 # but that facility isn't available from inside the cwrapper. | |
2971 # Similar accommodations are necessary for $host mingw and | |
2972 # $build cygwin. Calling this function does no harm for other | |
2973 # $host/$build combinations not listed above. | |
2974 # | 3845 # |
2975 # ARG is the path (on $build) that should be converted to | 3846 # This wrapper script should never be moved out of the build directory. |
2976 # the proper representation for $host. The result is stored | 3847 # If it is, it will not operate correctly. |
2977 # in $func_to_host_path_result. | 3848 |
2978 func_to_host_path () | 3849 # Sed substitution that helps us do robust quoting. It backslashifies |
2979 { | 3850 # metacharacters that are still active within double-quoted strings. |
2980 func_to_host_path_result="$1" | 3851 sed_quote_subst='$sed_quote_subst' |
2981 if test -n "$1" ; then | 3852 |
2982 case $host in | 3853 # Be Bourne compatible |
2983 *mingw* ) | 3854 if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then |
2984 lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' | 3855 emulate sh |
2985 case $build in | 3856 NULLCMD=: |
2986 *mingw* ) # actually, msys | 3857 # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which |
2987 # awkward: cmd appends spaces to result | 3858 # is contrary to our usage. Disable this feature. |
2988 lt_sed_strip_trailing_spaces="s/[ ]*\$//" | 3859 alias -g '\${1+\"\$@\"}'='\"\$@\"' |
2989 func_to_host_path_tmp1=`( cmd //c echo "$1" |\ | 3860 setopt NO_GLOB_SUBST |
2990 $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""` | 3861 else |
2991 func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ | 3862 case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac |
2992 $SED -e "$lt_sed_naive_backslashify"` | 3863 fi |
2993 ;; | 3864 BIN_SH=xpg4; export BIN_SH # for Tru64 |
2994 *cygwin* ) | 3865 DUALCASE=1; export DUALCASE # for MKS sh |
2995 func_to_host_path_tmp1=`cygpath -w "$1"` | 3866 |
2996 func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ | 3867 # The HP-UX ksh and POSIX shell print the target directory to stdout |
2997 $SED -e "$lt_sed_naive_backslashify"` | 3868 # if CDPATH is set. |
2998 ;; | 3869 (unset CDPATH) >/dev/null 2>&1 && unset CDPATH |
2999 * ) | 3870 |
3000 # Unfortunately, winepath does not exit with a non-zero | 3871 relink_command=\"$relink_command\" |
3001 # error code, so we are forced to check the contents of | 3872 |
3002 # stdout. On the other hand, if the command is not | 3873 # This environment variable determines our operation mode. |
3003 # found, the shell will set an exit code of 127 and print | 3874 if test \"\$libtool_install_magic\" = \"$magic\"; then |
3004 # *an error message* to stdout. So we must check for both | 3875 # install mode needs the following variables: |
3005 # error code of zero AND non-empty stdout, which explains | 3876 generated_by_libtool_version='$macro_version' |
3006 # the odd construction: | 3877 notinst_deplibs='$notinst_deplibs' |
3007 func_to_host_path_tmp1=`winepath -w "$1" 2>/dev/null` | 3878 else |
3008 if test "$?" -eq 0 && test -n "${func_to_host_path_tmp1}"; then | 3879 # When we are sourced in execute mode, \$file and \$ECHO are already set. |
3009 func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ | 3880 if test \"\$libtool_execute_magic\" != \"$magic\"; then |
3010 $SED -e "$lt_sed_naive_backslashify"` | 3881 file=\"\$0\"" |
3011 else | 3882 |
3012 # Allow warning below. | 3883 qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"` |
3013 func_to_host_path_result="" | 3884 $ECHO "\ |
3014 fi | 3885 |
3015 ;; | 3886 # A function that is used when there is no print builtin or printf. |
3016 esac | 3887 func_fallback_echo () |
3017 if test -z "$func_to_host_path_result" ; then | 3888 { |
3018 func_error "Could not determine host path corresponding to" | 3889 eval 'cat <<_LTECHO_EOF |
3019 func_error " '$1'" | 3890 \$1 |
3020 func_error "Continuing, but uninstalled executables may not work." | 3891 _LTECHO_EOF' |
3021 # Fallback: | 3892 } |
3022 func_to_host_path_result="$1" | 3893 ECHO=\"$qECHO\" |
3023 fi | 3894 fi |
3024 ;; | 3895 |
3896 # Very basic option parsing. These options are (a) specific to | |
3897 # the libtool wrapper, (b) are identical between the wrapper | |
3898 # /script/ and the wrapper /executable/ which is used only on | |
3899 # windows platforms, and (c) all begin with the string "--lt-" | |
3900 # (application programs are unlikely to have options which match | |
3901 # this pattern). | |
3902 # | |
3903 # There are only two supported options: --lt-debug and | |
3904 # --lt-dump-script. There is, deliberately, no --lt-help. | |
3905 # | |
3906 # The first argument to this parsing function should be the | |
3907 # script's $0 value, followed by "$@". | |
3908 lt_option_debug= | |
3909 func_parse_lt_options () | |
3910 { | |
3911 lt_script_arg0=\$0 | |
3912 shift | |
3913 for lt_opt | |
3914 do | |
3915 case \"\$lt_opt\" in | |
3916 --lt-debug) lt_option_debug=1 ;; | |
3917 --lt-dump-script) | |
3918 lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\` | |
3919 test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=. | |
3920 lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\` | |
3921 cat \"\$lt_dump_D/\$lt_dump_F\" | |
3922 exit 0 | |
3923 ;; | |
3924 --lt-*) | |
3925 \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2 | |
3926 exit 1 | |
3927 ;; | |
3928 esac | |
3929 done | |
3930 | |
3931 # Print the debug banner immediately: | |
3932 if test -n \"\$lt_option_debug\"; then | |
3933 echo \"${outputname}:${output}:\${LINENO}: libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\" 1>&2 | |
3934 fi | |
3935 } | |
3936 | |
3937 # Used when --lt-debug. Prints its arguments to stdout | |
3938 # (redirection is the responsibility of the caller) | |
3939 func_lt_dump_args () | |
3940 { | |
3941 lt_dump_args_N=1; | |
3942 for lt_arg | |
3943 do | |
3944 \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[\$lt_dump_args_N]: \$lt_arg\" | |
3945 lt_dump_args_N=\`expr \$lt_dump_args_N + 1\` | |
3946 done | |
3947 } | |
3948 | |
3949 # Core function for launching the target application | |
3950 func_exec_program_core () | |
3951 { | |
3952 " | |
3953 case $host in | |
3954 # Backslashes separate directories on plain windows | |
3955 *-*-mingw | *-*-os2* | *-cegcc*) | |
3956 $ECHO "\ | |
3957 if test -n \"\$lt_option_debug\"; then | |
3958 \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir\\\\\$program\" 1>&2 | |
3959 func_lt_dump_args \${1+\"\$@\"} 1>&2 | |
3960 fi | |
3961 exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} | |
3962 " | |
3963 ;; | |
3964 | |
3965 *) | |
3966 $ECHO "\ | |
3967 if test -n \"\$lt_option_debug\"; then | |
3968 \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir/\$program\" 1>&2 | |
3969 func_lt_dump_args \${1+\"\$@\"} 1>&2 | |
3970 fi | |
3971 exec \"\$progdir/\$program\" \${1+\"\$@\"} | |
3972 " | |
3973 ;; | |
3974 esac | |
3975 $ECHO "\ | |
3976 \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 | |
3977 exit 1 | |
3978 } | |
3979 | |
3980 # A function to encapsulate launching the target application | |
3981 # Strips options in the --lt-* namespace from \$@ and | |
3982 # launches target application with the remaining arguments. | |
3983 func_exec_program () | |
3984 { | |
3985 for lt_wr_arg | |
3986 do | |
3987 case \$lt_wr_arg in | |
3988 --lt-*) ;; | |
3989 *) set x \"\$@\" \"\$lt_wr_arg\"; shift;; | |
3990 esac | |
3991 shift | |
3992 done | |
3993 func_exec_program_core \${1+\"\$@\"} | |
3994 } | |
3995 | |
3996 # Parse options | |
3997 func_parse_lt_options \"\$0\" \${1+\"\$@\"} | |
3998 | |
3999 # Find the directory that this script lives in. | |
4000 thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\` | |
4001 test \"x\$thisdir\" = \"x\$file\" && thisdir=. | |
4002 | |
4003 # Follow symbolic links until we get to the real thisdir. | |
4004 file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\` | |
4005 while test -n \"\$file\"; do | |
4006 destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\` | |
4007 | |
4008 # If there was a directory component, then change thisdir. | |
4009 if test \"x\$destdir\" != \"x\$file\"; then | |
4010 case \"\$destdir\" in | |
4011 [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; | |
4012 *) thisdir=\"\$thisdir/\$destdir\" ;; | |
4013 esac | |
4014 fi | |
4015 | |
4016 file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\` | |
4017 file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\` | |
4018 done | |
4019 | |
4020 # Usually 'no', except on cygwin/mingw when embedded into | |
4021 # the cwrapper. | |
4022 WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1 | |
4023 if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then | |
4024 # special case for '.' | |
4025 if test \"\$thisdir\" = \".\"; then | |
4026 thisdir=\`pwd\` | |
4027 fi | |
4028 # remove .libs from thisdir | |
4029 case \"\$thisdir\" in | |
4030 *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;; | |
4031 $objdir ) thisdir=. ;; | |
3025 esac | 4032 esac |
3026 fi | 4033 fi |
3027 } | 4034 |
3028 # end: func_to_host_path | 4035 # Try to get the absolute directory name. |
3029 | 4036 absdir=\`cd \"\$thisdir\" && pwd\` |
3030 # func_to_host_pathlist arg | 4037 test -n \"\$absdir\" && thisdir=\"\$absdir\" |
3031 # | 4038 " |
3032 # Convert pathlists to host format when used with build tools. | 4039 |
3033 # See func_to_host_path(), above. This function supports the | 4040 if test "$fast_install" = yes; then |
3034 # following $build/$host combinations (but does no harm for | 4041 $ECHO "\ |
3035 # combinations not listed here): | 4042 program=lt-'$outputname'$exeext |
3036 # $build $host | 4043 progdir=\"\$thisdir/$objdir\" |
3037 # mingw (msys) mingw [e.g. native] | 4044 |
3038 # cygwin mingw | 4045 if test ! -f \"\$progdir/\$program\" || |
3039 # *nix + wine mingw | 4046 { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ |
3040 # | 4047 test \"X\$file\" != \"X\$progdir/\$program\"; }; then |
3041 # Path separators are also converted from $build format to | 4048 |
3042 # $host format. If ARG begins or ends with a path separator | 4049 file=\"\$\$-\$program\" |
3043 # character, it is preserved (but converted to $host format) | 4050 |
3044 # on output. | 4051 if test ! -d \"\$progdir\"; then |
3045 # | 4052 $MKDIR \"\$progdir\" |
3046 # ARG is a pathlist (on $build) that should be converted to | 4053 else |
3047 # the proper representation on $host. The result is stored | 4054 $RM \"\$progdir/\$file\" |
3048 # in $func_to_host_pathlist_result. | 4055 fi" |
3049 func_to_host_pathlist () | 4056 |
3050 { | 4057 $ECHO "\ |
3051 func_to_host_pathlist_result="$1" | 4058 |
3052 if test -n "$1" ; then | 4059 # relink executable if necessary |
3053 case $host in | 4060 if test -n \"\$relink_command\"; then |
3054 *mingw* ) | 4061 if relink_command_output=\`eval \$relink_command 2>&1\`; then : |
3055 lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' | 4062 else |
3056 # Remove leading and trailing path separator characters from | 4063 $ECHO \"\$relink_command_output\" >&2 |
3057 # ARG. msys behavior is inconsistent here, cygpath turns them | 4064 $RM \"\$progdir/\$file\" |
3058 # into '.;' and ';.', and winepath ignores them completely. | 4065 exit 1 |
3059 func_to_host_pathlist_tmp2="$1" | 4066 fi |
3060 # Once set for this call, this variable should not be | 4067 fi |
3061 # reassigned. It is used in tha fallback case. | 4068 |
3062 func_to_host_pathlist_tmp1=`echo "$func_to_host_pathlist_tmp2" |\ | 4069 $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || |
3063 $SED -e 's|^:*||' -e 's|:*$||'` | 4070 { $RM \"\$progdir/\$program\"; |
3064 case $build in | 4071 $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; } |
3065 *mingw* ) # Actually, msys. | 4072 $RM \"\$progdir/\$file\" |
3066 # Awkward: cmd appends spaces to result. | 4073 fi" |
3067 lt_sed_strip_trailing_spaces="s/[ ]*\$//" | 4074 else |
3068 func_to_host_pathlist_tmp2=`( cmd //c echo "$func_to_host_pathlist_tmp1" |\ | 4075 $ECHO "\ |
3069 $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""` | 4076 program='$outputname' |
3070 func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\ | 4077 progdir=\"\$thisdir/$objdir\" |
3071 $SED -e "$lt_sed_naive_backslashify"` | 4078 " |
3072 ;; | 4079 fi |
3073 *cygwin* ) | 4080 |
3074 func_to_host_pathlist_tmp2=`cygpath -w -p "$func_to_host_pathlist_tmp1"` | 4081 $ECHO "\ |
3075 func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\ | 4082 |
3076 $SED -e "$lt_sed_naive_backslashify"` | 4083 if test -f \"\$progdir/\$program\"; then" |
3077 ;; | 4084 |
3078 * ) | 4085 # fixup the dll searchpath if we need to. |
3079 # unfortunately, winepath doesn't convert pathlists | 4086 # |
3080 func_to_host_pathlist_result="" | 4087 # Fix the DLL searchpath if we need to. Do this before prepending |
3081 func_to_host_pathlist_oldIFS=$IFS | 4088 # to shlibpath, because on Windows, both are PATH and uninstalled |
3082 IFS=: | 4089 # libraries must come first. |
3083 for func_to_host_pathlist_f in $func_to_host_pathlist_tmp1 ; do | 4090 if test -n "$dllsearchpath"; then |
3084 IFS=$func_to_host_pathlist_oldIFS | 4091 $ECHO "\ |
3085 if test -n "$func_to_host_pathlist_f" ; then | 4092 # Add the dll search path components to the executable PATH |
3086 func_to_host_path "$func_to_host_pathlist_f" | 4093 PATH=$dllsearchpath:\$PATH |
3087 if test -n "$func_to_host_path_result" ; then | 4094 " |
3088 if test -z "$func_to_host_pathlist_result" ; then | 4095 fi |
3089 func_to_host_pathlist_result="$func_to_host_path_result" | 4096 |
3090 else | 4097 # Export our shlibpath_var if we have one. |
3091 func_to_host_pathlist_result="$func_to_host_pathlist_result;$func_to_host_path_result" | 4098 if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then |
3092 fi | 4099 $ECHO "\ |
3093 fi | 4100 # Add our own library path to $shlibpath_var |
3094 fi | 4101 $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" |
3095 IFS=: | 4102 |
3096 done | 4103 # Some systems cannot cope with colon-terminated $shlibpath_var |
3097 IFS=$func_to_host_pathlist_oldIFS | 4104 # The second colon is a workaround for a bug in BeOS R4 sed |
3098 ;; | 4105 $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\` |
3099 esac | 4106 |
3100 if test -z "$func_to_host_pathlist_result" ; then | 4107 export $shlibpath_var |
3101 func_error "Could not determine the host path(s) corresponding to" | 4108 " |
3102 func_error " '$1'" | 4109 fi |
3103 func_error "Continuing, but uninstalled executables may not work." | 4110 |
3104 # Fallback. This may break if $1 contains DOS-style drive | 4111 $ECHO "\ |
3105 # specifications. The fix is not to complicate the expression | 4112 if test \"\$libtool_execute_magic\" != \"$magic\"; then |
3106 # below, but for the user to provide a working wine installation | 4113 # Run the actual program with our arguments. |
3107 # with winepath so that path translation in the cross-to-mingw | 4114 func_exec_program \${1+\"\$@\"} |
3108 # case works properly. | 4115 fi |
3109 lt_replace_pathsep_nix_to_dos="s|:|;|g" | 4116 else |
3110 func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp1" |\ | 4117 # The program doesn't exist. |
3111 $SED -e "$lt_replace_pathsep_nix_to_dos"` | 4118 \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 |
3112 fi | 4119 \$ECHO \"This script is just a wrapper for \$program.\" 1>&2 |
3113 # Now, add the leading and trailing path separators back | 4120 \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2 |
3114 case "$1" in | 4121 exit 1 |
3115 :* ) func_to_host_pathlist_result=";$func_to_host_pathlist_result" | |
3116 ;; | |
3117 esac | |
3118 case "$1" in | |
3119 *: ) func_to_host_pathlist_result="$func_to_host_pathlist_result;" | |
3120 ;; | |
3121 esac | |
3122 ;; | |
3123 esac | |
3124 fi | 4122 fi |
3125 } | 4123 fi\ |
3126 # end: func_to_host_pathlist | 4124 " |
4125 } | |
4126 | |
3127 | 4127 |
3128 # func_emit_cwrapperexe_src | 4128 # func_emit_cwrapperexe_src |
3129 # emit the source code for a wrapper executable on stdout | 4129 # emit the source code for a wrapper executable on stdout |
3130 # Must ONLY be called from within func_mode_link because | 4130 # Must ONLY be called from within func_mode_link because |
3131 # it depends on a number of variable set therein. | 4131 # it depends on a number of variable set therein. |
3139 The $output program cannot be directly executed until all the libtool | 4139 The $output program cannot be directly executed until all the libtool |
3140 libraries that it depends on are installed. | 4140 libraries that it depends on are installed. |
3141 | 4141 |
3142 This wrapper executable should never be moved out of the build directory. | 4142 This wrapper executable should never be moved out of the build directory. |
3143 If it is, it will not operate correctly. | 4143 If it is, it will not operate correctly. |
3144 | |
3145 Currently, it simply execs the wrapper *script* "$SHELL $output", | |
3146 but could eventually absorb all of the scripts functionality and | |
3147 exec $objdir/$outputname directly. | |
3148 */ | 4144 */ |
3149 EOF | 4145 EOF |
3150 cat <<"EOF" | 4146 cat <<"EOF" |
4147 #ifdef _MSC_VER | |
4148 # define _CRT_SECURE_NO_DEPRECATE 1 | |
4149 #endif | |
3151 #include <stdio.h> | 4150 #include <stdio.h> |
3152 #include <stdlib.h> | 4151 #include <stdlib.h> |
3153 #ifdef _MSC_VER | 4152 #ifdef _MSC_VER |
3154 # include <direct.h> | 4153 # include <direct.h> |
3155 # include <process.h> | 4154 # include <process.h> |
3156 # include <io.h> | 4155 # include <io.h> |
3157 # define setmode _setmode | |
3158 #else | 4156 #else |
3159 # include <unistd.h> | 4157 # include <unistd.h> |
3160 # include <stdint.h> | 4158 # include <stdint.h> |
3161 # ifdef __CYGWIN__ | 4159 # ifdef __CYGWIN__ |
3162 # include <io.h> | 4160 # 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 | |
3169 # endif | 4161 # endif |
3170 #endif | 4162 #endif |
3171 #include <malloc.h> | 4163 #include <malloc.h> |
3172 #include <stdarg.h> | 4164 #include <stdarg.h> |
3173 #include <assert.h> | 4165 #include <assert.h> |
3175 #include <ctype.h> | 4167 #include <ctype.h> |
3176 #include <errno.h> | 4168 #include <errno.h> |
3177 #include <fcntl.h> | 4169 #include <fcntl.h> |
3178 #include <sys/stat.h> | 4170 #include <sys/stat.h> |
3179 | 4171 |
4172 /* declarations of non-ANSI functions */ | |
4173 #if defined(__MINGW32__) | |
4174 # ifdef __STRICT_ANSI__ | |
4175 int _putenv (const char *); | |
4176 # endif | |
4177 #elif defined(__CYGWIN__) | |
4178 # ifdef __STRICT_ANSI__ | |
4179 char *realpath (const char *, char *); | |
4180 int putenv (char *); | |
4181 int setenv (const char *, const char *, int); | |
4182 # endif | |
4183 /* #elif defined (other platforms) ... */ | |
4184 #endif | |
4185 | |
4186 /* portability defines, excluding path handling macros */ | |
4187 #if defined(_MSC_VER) | |
4188 # define setmode _setmode | |
4189 # define stat _stat | |
4190 # define chmod _chmod | |
4191 # define getcwd _getcwd | |
4192 # define putenv _putenv | |
4193 # define S_IXUSR _S_IEXEC | |
4194 # ifndef _INTPTR_T_DEFINED | |
4195 # define _INTPTR_T_DEFINED | |
4196 # define intptr_t int | |
4197 # endif | |
4198 #elif defined(__MINGW32__) | |
4199 # define setmode _setmode | |
4200 # define stat _stat | |
4201 # define chmod _chmod | |
4202 # define getcwd _getcwd | |
4203 # define putenv _putenv | |
4204 #elif defined(__CYGWIN__) | |
4205 # define HAVE_SETENV | |
4206 # define FOPEN_WB "wb" | |
4207 /* #elif defined (other platforms) ... */ | |
4208 #endif | |
4209 | |
3180 #if defined(PATH_MAX) | 4210 #if defined(PATH_MAX) |
3181 # define LT_PATHMAX PATH_MAX | 4211 # define LT_PATHMAX PATH_MAX |
3182 #elif defined(MAXPATHLEN) | 4212 #elif defined(MAXPATHLEN) |
3183 # define LT_PATHMAX MAXPATHLEN | 4213 # define LT_PATHMAX MAXPATHLEN |
3184 #else | 4214 #else |
3190 #endif | 4220 #endif |
3191 #ifndef S_IXGRP | 4221 #ifndef S_IXGRP |
3192 # define S_IXGRP 0 | 4222 # define S_IXGRP 0 |
3193 #endif | 4223 #endif |
3194 | 4224 |
3195 #ifdef _MSC_VER | 4225 /* path handling portability macros */ |
3196 # define S_IXUSR _S_IEXEC | |
3197 # define stat _stat | |
3198 # ifndef _INTPTR_T_DEFINED | |
3199 # define intptr_t int | |
3200 # endif | |
3201 #endif | |
3202 | |
3203 #ifndef DIR_SEPARATOR | 4226 #ifndef DIR_SEPARATOR |
3204 # define DIR_SEPARATOR '/' | 4227 # define DIR_SEPARATOR '/' |
3205 # define PATH_SEPARATOR ':' | 4228 # define PATH_SEPARATOR ':' |
3206 #endif | 4229 #endif |
3207 | 4230 |
3228 # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) | 4251 # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) |
3229 #else /* PATH_SEPARATOR_2 */ | 4252 #else /* PATH_SEPARATOR_2 */ |
3230 # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) | 4253 # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) |
3231 #endif /* PATH_SEPARATOR_2 */ | 4254 #endif /* PATH_SEPARATOR_2 */ |
3232 | 4255 |
3233 #ifdef __CYGWIN__ | |
3234 # define FOPEN_WB "wb" | |
3235 #endif | |
3236 | |
3237 #ifndef FOPEN_WB | 4256 #ifndef FOPEN_WB |
3238 # define FOPEN_WB "w" | 4257 # define FOPEN_WB "w" |
3239 #endif | 4258 #endif |
3240 #ifndef _O_BINARY | 4259 #ifndef _O_BINARY |
3241 # define _O_BINARY 0 | 4260 # define _O_BINARY 0 |
3244 #define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) | 4263 #define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) |
3245 #define XFREE(stale) do { \ | 4264 #define XFREE(stale) do { \ |
3246 if (stale) { free ((void *) stale); stale = 0; } \ | 4265 if (stale) { free ((void *) stale); stale = 0; } \ |
3247 } while (0) | 4266 } while (0) |
3248 | 4267 |
3249 #undef LTWRAPPER_DEBUGPRINTF | 4268 #if defined(LT_DEBUGWRAPPER) |
3250 #if defined DEBUGWRAPPER | 4269 static int lt_debug = 1; |
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 } | |
3260 #else | 4270 #else |
3261 # define LTWRAPPER_DEBUGPRINTF(args) | 4271 static int lt_debug = 0; |
3262 #endif | 4272 #endif |
3263 | 4273 |
3264 const char *program_name = NULL; | 4274 const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */ |
3265 | 4275 |
3266 void *xmalloc (size_t num); | 4276 void *xmalloc (size_t num); |
3267 char *xstrdup (const char *string); | 4277 char *xstrdup (const char *string); |
3268 const char *base_name (const char *name); | 4278 const char *base_name (const char *name); |
3269 char *find_executable (const char *wrapper); | 4279 char *find_executable (const char *wrapper); |
3270 char *chase_symlinks (const char *pathspec); | 4280 char *chase_symlinks (const char *pathspec); |
3271 int make_executable (const char *path); | 4281 int make_executable (const char *path); |
3272 int check_executable (const char *path); | 4282 int check_executable (const char *path); |
3273 char *strendzap (char *str, const char *pat); | 4283 char *strendzap (char *str, const char *pat); |
3274 void lt_fatal (const char *message, ...); | 4284 void lt_debugprintf (const char *file, int line, const char *fmt, ...); |
4285 void lt_fatal (const char *file, int line, const char *message, ...); | |
4286 static const char *nonnull (const char *s); | |
4287 static const char *nonempty (const char *s); | |
3275 void lt_setenv (const char *name, const char *value); | 4288 void lt_setenv (const char *name, const char *value); |
3276 char *lt_extend_str (const char *orig_value, const char *add, int to_end); | 4289 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); | |
3281 void lt_update_exe_path (const char *name, const char *value); | 4290 void lt_update_exe_path (const char *name, const char *value); |
3282 void lt_update_lib_path (const char *name, const char *value); | 4291 void lt_update_lib_path (const char *name, const char *value); |
3283 | 4292 char **prepare_spawn (char **argv); |
3284 static const char *script_text_part1 = | 4293 void lt_dump_script (FILE *f); |
3285 EOF | 4294 EOF |
3286 | 4295 |
3287 func_emit_wrapper_part1 yes | | |
3288 $SED -e 's/\([\\"]\)/\\\1/g' \ | |
3289 -e 's/^/ "/' -e 's/$/\\n"/' | |
3290 echo ";" | |
3291 cat <<EOF | 4296 cat <<EOF |
3292 | 4297 volatile const char * MAGIC_EXE = "$magic_exe"; |
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"; | |
3302 const char * LIB_PATH_VARNAME = "$shlibpath_var"; | 4298 const char * LIB_PATH_VARNAME = "$shlibpath_var"; |
3303 EOF | 4299 EOF |
3304 | 4300 |
3305 if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then | 4301 if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then |
3306 func_to_host_pathlist "$temp_rpath" | 4302 func_to_host_path "$temp_rpath" |
3307 cat <<EOF | 4303 cat <<EOF |
3308 const char * LIB_PATH_VALUE = "$func_to_host_pathlist_result"; | 4304 const char * LIB_PATH_VALUE = "$func_to_host_path_result"; |
3309 EOF | 4305 EOF |
3310 else | 4306 else |
3311 cat <<"EOF" | 4307 cat <<"EOF" |
3312 const char * LIB_PATH_VALUE = ""; | 4308 const char * LIB_PATH_VALUE = ""; |
3313 EOF | 4309 EOF |
3314 fi | 4310 fi |
3315 | 4311 |
3316 if test -n "$dllsearchpath"; then | 4312 if test -n "$dllsearchpath"; then |
3317 func_to_host_pathlist "$dllsearchpath:" | 4313 func_to_host_path "$dllsearchpath:" |
3318 cat <<EOF | 4314 cat <<EOF |
3319 const char * EXE_PATH_VARNAME = "PATH"; | 4315 const char * EXE_PATH_VARNAME = "PATH"; |
3320 const char * EXE_PATH_VALUE = "$func_to_host_pathlist_result"; | 4316 const char * EXE_PATH_VALUE = "$func_to_host_path_result"; |
3321 EOF | 4317 EOF |
3322 else | 4318 else |
3323 cat <<"EOF" | 4319 cat <<"EOF" |
3324 const char * EXE_PATH_VARNAME = ""; | 4320 const char * EXE_PATH_VARNAME = ""; |
3325 const char * EXE_PATH_VALUE = ""; | 4321 const char * EXE_PATH_VALUE = ""; |
3338 | 4334 |
3339 | 4335 |
3340 cat <<"EOF" | 4336 cat <<"EOF" |
3341 | 4337 |
3342 #define LTWRAPPER_OPTION_PREFIX "--lt-" | 4338 #define LTWRAPPER_OPTION_PREFIX "--lt-" |
3343 #define LTWRAPPER_OPTION_PREFIX_LENGTH 5 | 4339 |
3344 | |
3345 static const size_t opt_prefix_len = LTWRAPPER_OPTION_PREFIX_LENGTH; | |
3346 static const char *ltwrapper_option_prefix = LTWRAPPER_OPTION_PREFIX; | 4340 static const char *ltwrapper_option_prefix = LTWRAPPER_OPTION_PREFIX; |
3347 | |
3348 static const char *dumpscript_opt = LTWRAPPER_OPTION_PREFIX "dump-script"; | 4341 static const char *dumpscript_opt = LTWRAPPER_OPTION_PREFIX "dump-script"; |
3349 | 4342 static const char *debug_opt = LTWRAPPER_OPTION_PREFIX "debug"; |
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 */ | |
3361 | 4343 |
3362 int | 4344 int |
3363 main (int argc, char *argv[]) | 4345 main (int argc, char *argv[]) |
3364 { | 4346 { |
3365 char **newargz; | 4347 char **newargz; |
3372 intptr_t rval = 127; | 4354 intptr_t rval = 127; |
3373 | 4355 |
3374 int i; | 4356 int i; |
3375 | 4357 |
3376 program_name = (char *) xstrdup (base_name (argv[0])); | 4358 program_name = (char *) xstrdup (base_name (argv[0])); |
3377 LTWRAPPER_DEBUGPRINTF (("(main) argv[0] : %s\n", argv[0])); | 4359 newargz = XMALLOC (char *, argc + 1); |
3378 LTWRAPPER_DEBUGPRINTF (("(main) program_name : %s\n", program_name)); | 4360 |
3379 | 4361 /* very simple arg parsing; don't want to rely on getopt |
3380 /* very simple arg parsing; don't want to rely on getopt */ | 4362 * also, copy all non cwrapper options to newargz, except |
4363 * argz[0], which is handled differently | |
4364 */ | |
4365 newargc=0; | |
3381 for (i = 1; i < argc; i++) | 4366 for (i = 1; i < argc; i++) |
3382 { | 4367 { |
3383 if (strcmp (argv[i], dumpscript_opt) == 0) | 4368 if (strcmp (argv[i], dumpscript_opt) == 0) |
3384 { | 4369 { |
3385 EOF | 4370 EOF |
3389 echo " setmode(1,_O_BINARY);" | 4374 echo " setmode(1,_O_BINARY);" |
3390 ;; | 4375 ;; |
3391 esac | 4376 esac |
3392 | 4377 |
3393 cat <<"EOF" | 4378 cat <<"EOF" |
3394 printf ("%s", script_text_part1); | 4379 lt_dump_script (stdout); |
3395 printf ("%s", script_text_part2); | |
3396 return 0; | 4380 return 0; |
3397 } | 4381 } |
4382 if (strcmp (argv[i], debug_opt) == 0) | |
4383 { | |
4384 lt_debug = 1; | |
4385 continue; | |
4386 } | |
4387 if (strcmp (argv[i], ltwrapper_option_prefix) == 0) | |
4388 { | |
4389 /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX | |
4390 namespace, but it is not one of the ones we know about and | |
4391 have already dealt with, above (inluding dump-script), then | |
4392 report an error. Otherwise, targets might begin to believe | |
4393 they are allowed to use options in the LTWRAPPER_OPTION_PREFIX | |
4394 namespace. The first time any user complains about this, we'll | |
4395 need to make LTWRAPPER_OPTION_PREFIX a configure-time option | |
4396 or a configure.ac-settable value. | |
4397 */ | |
4398 lt_fatal (__FILE__, __LINE__, | |
4399 "unrecognized %s option: '%s'", | |
4400 ltwrapper_option_prefix, argv[i]); | |
4401 } | |
4402 /* otherwise ... */ | |
4403 newargz[++newargc] = xstrdup (argv[i]); | |
3398 } | 4404 } |
3399 | 4405 newargz[++newargc] = NULL; |
3400 newargz = XMALLOC (char *, argc + 1); | 4406 |
4407 EOF | |
4408 cat <<EOF | |
4409 /* The GNU banner must be the first non-error debug message */ | |
4410 lt_debugprintf (__FILE__, __LINE__, "libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\n"); | |
4411 EOF | |
4412 cat <<"EOF" | |
4413 lt_debugprintf (__FILE__, __LINE__, "(main) argv[0]: %s\n", argv[0]); | |
4414 lt_debugprintf (__FILE__, __LINE__, "(main) program_name: %s\n", program_name); | |
4415 | |
3401 tmp_pathspec = find_executable (argv[0]); | 4416 tmp_pathspec = find_executable (argv[0]); |
3402 if (tmp_pathspec == NULL) | 4417 if (tmp_pathspec == NULL) |
3403 lt_fatal ("Couldn't find %s", argv[0]); | 4418 lt_fatal (__FILE__, __LINE__, "couldn't find %s", argv[0]); |
3404 LTWRAPPER_DEBUGPRINTF (("(main) found exe (before symlink chase) at : %s\n", | 4419 lt_debugprintf (__FILE__, __LINE__, |
3405 tmp_pathspec)); | 4420 "(main) found exe (before symlink chase) at: %s\n", |
4421 tmp_pathspec); | |
3406 | 4422 |
3407 actual_cwrapper_path = chase_symlinks (tmp_pathspec); | 4423 actual_cwrapper_path = chase_symlinks (tmp_pathspec); |
3408 LTWRAPPER_DEBUGPRINTF (("(main) found exe (after symlink chase) at : %s\n", | 4424 lt_debugprintf (__FILE__, __LINE__, |
3409 actual_cwrapper_path)); | 4425 "(main) found exe (after symlink chase) at: %s\n", |
4426 actual_cwrapper_path); | |
3410 XFREE (tmp_pathspec); | 4427 XFREE (tmp_pathspec); |
3411 | 4428 |
3412 actual_cwrapper_name = xstrdup( base_name (actual_cwrapper_path)); | 4429 actual_cwrapper_name = xstrdup (base_name (actual_cwrapper_path)); |
3413 strendzap (actual_cwrapper_path, actual_cwrapper_name); | 4430 strendzap (actual_cwrapper_path, actual_cwrapper_name); |
3414 | 4431 |
3415 /* wrapper name transforms */ | 4432 /* wrapper name transforms */ |
3416 strendzap (actual_cwrapper_name, ".exe"); | 4433 strendzap (actual_cwrapper_name, ".exe"); |
3417 tmp_pathspec = lt_extend_str (actual_cwrapper_name, ".exe", 1); | 4434 tmp_pathspec = lt_extend_str (actual_cwrapper_name, ".exe", 1); |
3425 tmp_pathspec = lt_extend_str (target_name, ".exe", 1); | 4442 tmp_pathspec = lt_extend_str (target_name, ".exe", 1); |
3426 XFREE (target_name); | 4443 XFREE (target_name); |
3427 target_name = tmp_pathspec; | 4444 target_name = tmp_pathspec; |
3428 tmp_pathspec = 0; | 4445 tmp_pathspec = 0; |
3429 | 4446 |
3430 LTWRAPPER_DEBUGPRINTF (("(main) libtool target name: %s\n", | 4447 lt_debugprintf (__FILE__, __LINE__, |
3431 target_name)); | 4448 "(main) libtool target name: %s\n", |
4449 target_name); | |
3432 EOF | 4450 EOF |
3433 | 4451 |
3434 cat <<EOF | 4452 cat <<EOF |
3435 newargz[0] = | 4453 newargz[0] = |
3436 XMALLOC (char, (strlen (actual_cwrapper_path) + | 4454 XMALLOC (char, (strlen (actual_cwrapper_path) + |
3476 XFREE (actual_cwrapper_path); | 4494 XFREE (actual_cwrapper_path); |
3477 XFREE (actual_cwrapper_name); | 4495 XFREE (actual_cwrapper_name); |
3478 | 4496 |
3479 lt_setenv ("BIN_SH", "xpg4"); /* for Tru64 */ | 4497 lt_setenv ("BIN_SH", "xpg4"); /* for Tru64 */ |
3480 lt_setenv ("DUALCASE", "1"); /* for MSK sh */ | 4498 lt_setenv ("DUALCASE", "1"); /* for MSK sh */ |
4499 /* Update the DLL searchpath. EXE_PATH_VALUE ($dllsearchpath) must | |
4500 be prepended before (that is, appear after) LIB_PATH_VALUE ($temp_rpath) | |
4501 because on Windows, both *_VARNAMEs are PATH but uninstalled | |
4502 libraries must come first. */ | |
4503 lt_update_exe_path (EXE_PATH_VARNAME, EXE_PATH_VALUE); | |
3481 lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE); | 4504 lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE); |
3482 lt_update_exe_path (EXE_PATH_VARNAME, EXE_PATH_VALUE); | 4505 |
3483 | 4506 lt_debugprintf (__FILE__, __LINE__, "(main) lt_argv_zero: %s\n", |
3484 newargc=0; | 4507 nonnull (lt_argv_zero)); |
3485 for (i = 1; i < argc; i++) | |
3486 { | |
3487 if (strncmp (argv[i], env_set_opt, env_set_opt_len) == 0) | |
3488 { | |
3489 if (argv[i][env_set_opt_len] == '=') | |
3490 { | |
3491 const char *p = argv[i] + env_set_opt_len + 1; | |
3492 lt_opt_process_env_set (p); | |
3493 } | |
3494 else if (argv[i][env_set_opt_len] == '\0' && i + 1 < argc) | |
3495 { | |
3496 lt_opt_process_env_set (argv[++i]); /* don't copy */ | |
3497 } | |
3498 else | |
3499 lt_fatal ("%s missing required argument", env_set_opt); | |
3500 continue; | |
3501 } | |
3502 if (strncmp (argv[i], env_prepend_opt, env_prepend_opt_len) == 0) | |
3503 { | |
3504 if (argv[i][env_prepend_opt_len] == '=') | |
3505 { | |
3506 const char *p = argv[i] + env_prepend_opt_len + 1; | |
3507 lt_opt_process_env_prepend (p); | |
3508 } | |
3509 else if (argv[i][env_prepend_opt_len] == '\0' && i + 1 < argc) | |
3510 { | |
3511 lt_opt_process_env_prepend (argv[++i]); /* don't copy */ | |
3512 } | |
3513 else | |
3514 lt_fatal ("%s missing required argument", env_prepend_opt); | |
3515 continue; | |
3516 } | |
3517 if (strncmp (argv[i], env_append_opt, env_append_opt_len) == 0) | |
3518 { | |
3519 if (argv[i][env_append_opt_len] == '=') | |
3520 { | |
3521 const char *p = argv[i] + env_append_opt_len + 1; | |
3522 lt_opt_process_env_append (p); | |
3523 } | |
3524 else if (argv[i][env_append_opt_len] == '\0' && i + 1 < argc) | |
3525 { | |
3526 lt_opt_process_env_append (argv[++i]); /* don't copy */ | |
3527 } | |
3528 else | |
3529 lt_fatal ("%s missing required argument", env_append_opt); | |
3530 continue; | |
3531 } | |
3532 if (strncmp (argv[i], ltwrapper_option_prefix, opt_prefix_len) == 0) | |
3533 { | |
3534 /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX | |
3535 namespace, but it is not one of the ones we know about and | |
3536 have already dealt with, above (inluding dump-script), then | |
3537 report an error. Otherwise, targets might begin to believe | |
3538 they are allowed to use options in the LTWRAPPER_OPTION_PREFIX | |
3539 namespace. The first time any user complains about this, we'll | |
3540 need to make LTWRAPPER_OPTION_PREFIX a configure-time option | |
3541 or a configure.ac-settable value. | |
3542 */ | |
3543 lt_fatal ("Unrecognized option in %s namespace: '%s'", | |
3544 ltwrapper_option_prefix, argv[i]); | |
3545 } | |
3546 /* otherwise ... */ | |
3547 newargz[++newargc] = xstrdup (argv[i]); | |
3548 } | |
3549 newargz[++newargc] = NULL; | |
3550 | |
3551 LTWRAPPER_DEBUGPRINTF (("(main) lt_argv_zero : %s\n", (lt_argv_zero ? lt_argv_zero : "<NULL>"))); | |
3552 for (i = 0; i < newargc; i++) | 4508 for (i = 0; i < newargc; i++) |
3553 { | 4509 { |
3554 LTWRAPPER_DEBUGPRINTF (("(main) newargz[%d] : %s\n", i, (newargz[i] ? newargz[i] : "<NULL>"))); | 4510 lt_debugprintf (__FILE__, __LINE__, "(main) newargz[%d]: %s\n", |
4511 i, nonnull (newargz[i])); | |
3555 } | 4512 } |
3556 | 4513 |
3557 EOF | 4514 EOF |
3558 | 4515 |
3559 case $host_os in | 4516 case $host_os in |
3560 mingw*) | 4517 mingw*) |
3561 cat <<"EOF" | 4518 cat <<"EOF" |
3562 /* execv doesn't actually work on mingw as expected on unix */ | 4519 /* execv doesn't actually work on mingw as expected on unix */ |
4520 newargz = prepare_spawn (newargz); | |
3563 rval = _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz); | 4521 rval = _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz); |
3564 if (rval == -1) | 4522 if (rval == -1) |
3565 { | 4523 { |
3566 /* failed to start process */ | 4524 /* failed to start process */ |
3567 LTWRAPPER_DEBUGPRINTF (("(main) failed to launch target \"%s\": errno = %d\n", lt_argv_zero, errno)); | 4525 lt_debugprintf (__FILE__, __LINE__, |
4526 "(main) failed to launch target \"%s\": %s\n", | |
4527 lt_argv_zero, nonnull (strerror (errno))); | |
3568 return 127; | 4528 return 127; |
3569 } | 4529 } |
3570 return rval; | 4530 return rval; |
3571 EOF | 4531 EOF |
3572 ;; | 4532 ;; |
3584 void * | 4544 void * |
3585 xmalloc (size_t num) | 4545 xmalloc (size_t num) |
3586 { | 4546 { |
3587 void *p = (void *) malloc (num); | 4547 void *p = (void *) malloc (num); |
3588 if (!p) | 4548 if (!p) |
3589 lt_fatal ("Memory exhausted"); | 4549 lt_fatal (__FILE__, __LINE__, "memory exhausted"); |
3590 | 4550 |
3591 return p; | 4551 return p; |
3592 } | 4552 } |
3593 | 4553 |
3594 char * | 4554 char * |
3618 int | 4578 int |
3619 check_executable (const char *path) | 4579 check_executable (const char *path) |
3620 { | 4580 { |
3621 struct stat st; | 4581 struct stat st; |
3622 | 4582 |
3623 LTWRAPPER_DEBUGPRINTF (("(check_executable) : %s\n", | 4583 lt_debugprintf (__FILE__, __LINE__, "(check_executable): %s\n", |
3624 path ? (*path ? path : "EMPTY!") : "NULL!")); | 4584 nonempty (path)); |
3625 if ((!path) || (!*path)) | 4585 if ((!path) || (!*path)) |
3626 return 0; | 4586 return 0; |
3627 | 4587 |
3628 if ((stat (path, &st) >= 0) | 4588 if ((stat (path, &st) >= 0) |
3629 && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH))) | 4589 && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH))) |
3636 make_executable (const char *path) | 4596 make_executable (const char *path) |
3637 { | 4597 { |
3638 int rval = 0; | 4598 int rval = 0; |
3639 struct stat st; | 4599 struct stat st; |
3640 | 4600 |
3641 LTWRAPPER_DEBUGPRINTF (("(make_executable) : %s\n", | 4601 lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n", |
3642 path ? (*path ? path : "EMPTY!") : "NULL!")); | 4602 nonempty (path)); |
3643 if ((!path) || (!*path)) | 4603 if ((!path) || (!*path)) |
3644 return 0; | 4604 return 0; |
3645 | 4605 |
3646 if (stat (path, &st) >= 0) | 4606 if (stat (path, &st) >= 0) |
3647 { | 4607 { |
3663 /* static buffer for getcwd */ | 4623 /* static buffer for getcwd */ |
3664 char tmp[LT_PATHMAX + 1]; | 4624 char tmp[LT_PATHMAX + 1]; |
3665 int tmp_len; | 4625 int tmp_len; |
3666 char *concat_name; | 4626 char *concat_name; |
3667 | 4627 |
3668 LTWRAPPER_DEBUGPRINTF (("(find_executable) : %s\n", | 4628 lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n", |
3669 wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!")); | 4629 nonempty (wrapper)); |
3670 | 4630 |
3671 if ((wrapper == NULL) || (*wrapper == '\0')) | 4631 if ((wrapper == NULL) || (*wrapper == '\0')) |
3672 return NULL; | 4632 return NULL; |
3673 | 4633 |
3674 /* Absolute path? */ | 4634 /* Absolute path? */ |
3717 p_next = (*q == '\0' ? q : q + 1); | 4677 p_next = (*q == '\0' ? q : q + 1); |
3718 if (p_len == 0) | 4678 if (p_len == 0) |
3719 { | 4679 { |
3720 /* empty path: current directory */ | 4680 /* empty path: current directory */ |
3721 if (getcwd (tmp, LT_PATHMAX) == NULL) | 4681 if (getcwd (tmp, LT_PATHMAX) == NULL) |
3722 lt_fatal ("getcwd failed"); | 4682 lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", |
4683 nonnull (strerror (errno))); | |
3723 tmp_len = strlen (tmp); | 4684 tmp_len = strlen (tmp); |
3724 concat_name = | 4685 concat_name = |
3725 XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); | 4686 XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); |
3726 memcpy (concat_name, tmp, tmp_len); | 4687 memcpy (concat_name, tmp, tmp_len); |
3727 concat_name[tmp_len] = '/'; | 4688 concat_name[tmp_len] = '/'; |
3742 } | 4703 } |
3743 /* not found in PATH; assume curdir */ | 4704 /* not found in PATH; assume curdir */ |
3744 } | 4705 } |
3745 /* Relative path | not found in path: prepend cwd */ | 4706 /* Relative path | not found in path: prepend cwd */ |
3746 if (getcwd (tmp, LT_PATHMAX) == NULL) | 4707 if (getcwd (tmp, LT_PATHMAX) == NULL) |
3747 lt_fatal ("getcwd failed"); | 4708 lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", |
4709 nonnull (strerror (errno))); | |
3748 tmp_len = strlen (tmp); | 4710 tmp_len = strlen (tmp); |
3749 concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); | 4711 concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); |
3750 memcpy (concat_name, tmp, tmp_len); | 4712 memcpy (concat_name, tmp, tmp_len); |
3751 concat_name[tmp_len] = '/'; | 4713 concat_name[tmp_len] = '/'; |
3752 strcpy (concat_name + tmp_len + 1, wrapper); | 4714 strcpy (concat_name + tmp_len + 1, wrapper); |
3768 char *tmp_pathspec = xstrdup (pathspec); | 4730 char *tmp_pathspec = xstrdup (pathspec); |
3769 char *p; | 4731 char *p; |
3770 int has_symlinks = 0; | 4732 int has_symlinks = 0; |
3771 while (strlen (tmp_pathspec) && !has_symlinks) | 4733 while (strlen (tmp_pathspec) && !has_symlinks) |
3772 { | 4734 { |
3773 LTWRAPPER_DEBUGPRINTF (("checking path component for symlinks: %s\n", | 4735 lt_debugprintf (__FILE__, __LINE__, |
3774 tmp_pathspec)); | 4736 "checking path component for symlinks: %s\n", |
4737 tmp_pathspec); | |
3775 if (lstat (tmp_pathspec, &s) == 0) | 4738 if (lstat (tmp_pathspec, &s) == 0) |
3776 { | 4739 { |
3777 if (S_ISLNK (s.st_mode) != 0) | 4740 if (S_ISLNK (s.st_mode) != 0) |
3778 { | 4741 { |
3779 has_symlinks = 1; | 4742 has_symlinks = 1; |
3791 } | 4754 } |
3792 *p = '\0'; | 4755 *p = '\0'; |
3793 } | 4756 } |
3794 else | 4757 else |
3795 { | 4758 { |
3796 char *errstr = strerror (errno); | 4759 lt_fatal (__FILE__, __LINE__, |
3797 lt_fatal ("Error accessing file %s (%s)", tmp_pathspec, errstr); | 4760 "error accessing file \"%s\": %s", |
4761 tmp_pathspec, nonnull (strerror (errno))); | |
3798 } | 4762 } |
3799 } | 4763 } |
3800 XFREE (tmp_pathspec); | 4764 XFREE (tmp_pathspec); |
3801 | 4765 |
3802 if (!has_symlinks) | 4766 if (!has_symlinks) |
3805 } | 4769 } |
3806 | 4770 |
3807 tmp_pathspec = realpath (pathspec, buf); | 4771 tmp_pathspec = realpath (pathspec, buf); |
3808 if (tmp_pathspec == 0) | 4772 if (tmp_pathspec == 0) |
3809 { | 4773 { |
3810 lt_fatal ("Could not follow symlinks for %s", pathspec); | 4774 lt_fatal (__FILE__, __LINE__, |
4775 "could not follow symlinks for %s", pathspec); | |
3811 } | 4776 } |
3812 return xstrdup (tmp_pathspec); | 4777 return xstrdup (tmp_pathspec); |
3813 #endif | 4778 #endif |
3814 } | 4779 } |
3815 | 4780 |
3831 *str = '\0'; | 4796 *str = '\0'; |
3832 } | 4797 } |
3833 return str; | 4798 return str; |
3834 } | 4799 } |
3835 | 4800 |
4801 void | |
4802 lt_debugprintf (const char *file, int line, const char *fmt, ...) | |
4803 { | |
4804 va_list args; | |
4805 if (lt_debug) | |
4806 { | |
4807 (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line); | |
4808 va_start (args, fmt); | |
4809 (void) vfprintf (stderr, fmt, args); | |
4810 va_end (args); | |
4811 } | |
4812 } | |
4813 | |
3836 static void | 4814 static void |
3837 lt_error_core (int exit_status, const char *mode, | 4815 lt_error_core (int exit_status, const char *file, |
4816 int line, const char *mode, | |
3838 const char *message, va_list ap) | 4817 const char *message, va_list ap) |
3839 { | 4818 { |
3840 fprintf (stderr, "%s: %s: ", program_name, mode); | 4819 fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode); |
3841 vfprintf (stderr, message, ap); | 4820 vfprintf (stderr, message, ap); |
3842 fprintf (stderr, ".\n"); | 4821 fprintf (stderr, ".\n"); |
3843 | 4822 |
3844 if (exit_status >= 0) | 4823 if (exit_status >= 0) |
3845 exit (exit_status); | 4824 exit (exit_status); |
3846 } | 4825 } |
3847 | 4826 |
3848 void | 4827 void |
3849 lt_fatal (const char *message, ...) | 4828 lt_fatal (const char *file, int line, const char *message, ...) |
3850 { | 4829 { |
3851 va_list ap; | 4830 va_list ap; |
3852 va_start (ap, message); | 4831 va_start (ap, message); |
3853 lt_error_core (EXIT_FAILURE, "FATAL", message, ap); | 4832 lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap); |
3854 va_end (ap); | 4833 va_end (ap); |
4834 } | |
4835 | |
4836 static const char * | |
4837 nonnull (const char *s) | |
4838 { | |
4839 return s ? s : "(null)"; | |
4840 } | |
4841 | |
4842 static const char * | |
4843 nonempty (const char *s) | |
4844 { | |
4845 return (s && !*s) ? "(empty)" : nonnull (s); | |
3855 } | 4846 } |
3856 | 4847 |
3857 void | 4848 void |
3858 lt_setenv (const char *name, const char *value) | 4849 lt_setenv (const char *name, const char *value) |
3859 { | 4850 { |
3860 LTWRAPPER_DEBUGPRINTF (("(lt_setenv) setting '%s' to '%s'\n", | 4851 lt_debugprintf (__FILE__, __LINE__, |
3861 (name ? name : "<NULL>"), | 4852 "(lt_setenv) setting '%s' to '%s'\n", |
3862 (value ? value : "<NULL>"))); | 4853 nonnull (name), nonnull (value)); |
3863 { | 4854 { |
3864 #ifdef HAVE_SETENV | 4855 #ifdef HAVE_SETENV |
3865 /* always make a copy, for consistency with !HAVE_SETENV */ | 4856 /* always make a copy, for consistency with !HAVE_SETENV */ |
3866 char *str = xstrdup (value); | 4857 char *str = xstrdup (value); |
3867 setenv (name, str, 1); | 4858 setenv (name, str, 1); |
3902 new_value = xstrdup (add); | 4893 new_value = xstrdup (add); |
3903 } | 4894 } |
3904 return new_value; | 4895 return new_value; |
3905 } | 4896 } |
3906 | 4897 |
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 | |
3990 void | 4898 void |
3991 lt_update_exe_path (const char *name, const char *value) | 4899 lt_update_exe_path (const char *name, const char *value) |
3992 { | 4900 { |
3993 LTWRAPPER_DEBUGPRINTF (("(lt_update_exe_path) modifying '%s' by prepending '%s'\n", | 4901 lt_debugprintf (__FILE__, __LINE__, |
3994 (name ? name : "<NULL>"), | 4902 "(lt_update_exe_path) modifying '%s' by prepending '%s'\n", |
3995 (value ? value : "<NULL>"))); | 4903 nonnull (name), nonnull (value)); |
3996 | 4904 |
3997 if (name && *name && value && *value) | 4905 if (name && *name && value && *value) |
3998 { | 4906 { |
3999 char *new_value = lt_extend_str (getenv (name), value, 0); | 4907 char *new_value = lt_extend_str (getenv (name), value, 0); |
4000 /* some systems can't cope with a ':'-terminated path #' */ | 4908 /* some systems can't cope with a ':'-terminated path #' */ |
4009 } | 4917 } |
4010 | 4918 |
4011 void | 4919 void |
4012 lt_update_lib_path (const char *name, const char *value) | 4920 lt_update_lib_path (const char *name, const char *value) |
4013 { | 4921 { |
4014 LTWRAPPER_DEBUGPRINTF (("(lt_update_lib_path) modifying '%s' by prepending '%s'\n", | 4922 lt_debugprintf (__FILE__, __LINE__, |
4015 (name ? name : "<NULL>"), | 4923 "(lt_update_lib_path) modifying '%s' by prepending '%s'\n", |
4016 (value ? value : "<NULL>"))); | 4924 nonnull (name), nonnull (value)); |
4017 | 4925 |
4018 if (name && *name && value && *value) | 4926 if (name && *name && value && *value) |
4019 { | 4927 { |
4020 char *new_value = lt_extend_str (getenv (name), value, 0); | 4928 char *new_value = lt_extend_str (getenv (name), value, 0); |
4021 lt_setenv (name, new_value); | 4929 lt_setenv (name, new_value); |
4022 XFREE (new_value); | 4930 XFREE (new_value); |
4023 } | 4931 } |
4024 } | 4932 } |
4025 | 4933 |
4026 | |
4027 EOF | 4934 EOF |
4935 case $host_os in | |
4936 mingw*) | |
4937 cat <<"EOF" | |
4938 | |
4939 /* Prepares an argument vector before calling spawn(). | |
4940 Note that spawn() does not by itself call the command interpreter | |
4941 (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") : | |
4942 ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); | |
4943 GetVersionEx(&v); | |
4944 v.dwPlatformId == VER_PLATFORM_WIN32_NT; | |
4945 }) ? "cmd.exe" : "command.com"). | |
4946 Instead it simply concatenates the arguments, separated by ' ', and calls | |
4947 CreateProcess(). We must quote the arguments since Win32 CreateProcess() | |
4948 interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a | |
4949 special way: | |
4950 - Space and tab are interpreted as delimiters. They are not treated as | |
4951 delimiters if they are surrounded by double quotes: "...". | |
4952 - Unescaped double quotes are removed from the input. Their only effect is | |
4953 that within double quotes, space and tab are treated like normal | |
4954 characters. | |
4955 - Backslashes not followed by double quotes are not special. | |
4956 - But 2*n+1 backslashes followed by a double quote become | |
4957 n backslashes followed by a double quote (n >= 0): | |
4958 \" -> " | |
4959 \\\" -> \" | |
4960 \\\\\" -> \\" | |
4961 */ | |
4962 #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" | |
4963 #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" | |
4964 char ** | |
4965 prepare_spawn (char **argv) | |
4966 { | |
4967 size_t argc; | |
4968 char **new_argv; | |
4969 size_t i; | |
4970 | |
4971 /* Count number of arguments. */ | |
4972 for (argc = 0; argv[argc] != NULL; argc++) | |
4973 ; | |
4974 | |
4975 /* Allocate new argument vector. */ | |
4976 new_argv = XMALLOC (char *, argc + 1); | |
4977 | |
4978 /* Put quoted arguments into the new argument vector. */ | |
4979 for (i = 0; i < argc; i++) | |
4980 { | |
4981 const char *string = argv[i]; | |
4982 | |
4983 if (string[0] == '\0') | |
4984 new_argv[i] = xstrdup ("\"\""); | |
4985 else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL) | |
4986 { | |
4987 int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL); | |
4988 size_t length; | |
4989 unsigned int backslashes; | |
4990 const char *s; | |
4991 char *quoted_string; | |
4992 char *p; | |
4993 | |
4994 length = 0; | |
4995 backslashes = 0; | |
4996 if (quote_around) | |
4997 length++; | |
4998 for (s = string; *s != '\0'; s++) | |
4999 { | |
5000 char c = *s; | |
5001 if (c == '"') | |
5002 length += backslashes + 1; | |
5003 length++; | |
5004 if (c == '\\') | |
5005 backslashes++; | |
5006 else | |
5007 backslashes = 0; | |
5008 } | |
5009 if (quote_around) | |
5010 length += backslashes + 1; | |
5011 | |
5012 quoted_string = XMALLOC (char, length + 1); | |
5013 | |
5014 p = quoted_string; | |
5015 backslashes = 0; | |
5016 if (quote_around) | |
5017 *p++ = '"'; | |
5018 for (s = string; *s != '\0'; s++) | |
5019 { | |
5020 char c = *s; | |
5021 if (c == '"') | |
5022 { | |
5023 unsigned int j; | |
5024 for (j = backslashes + 1; j > 0; j--) | |
5025 *p++ = '\\'; | |
5026 } | |
5027 *p++ = c; | |
5028 if (c == '\\') | |
5029 backslashes++; | |
5030 else | |
5031 backslashes = 0; | |
5032 } | |
5033 if (quote_around) | |
5034 { | |
5035 unsigned int j; | |
5036 for (j = backslashes; j > 0; j--) | |
5037 *p++ = '\\'; | |
5038 *p++ = '"'; | |
5039 } | |
5040 *p = '\0'; | |
5041 | |
5042 new_argv[i] = quoted_string; | |
5043 } | |
5044 else | |
5045 new_argv[i] = (char *) string; | |
5046 } | |
5047 new_argv[argc] = NULL; | |
5048 | |
5049 return new_argv; | |
5050 } | |
5051 EOF | |
5052 ;; | |
5053 esac | |
5054 | |
5055 cat <<"EOF" | |
5056 void lt_dump_script (FILE* f) | |
5057 { | |
5058 EOF | |
5059 func_emit_wrapper yes | | |
5060 $SED -e 's/\([\\"]\)/\\\1/g' \ | |
5061 -e 's/^/ fputs ("/' -e 's/$/\\n", f);/' | |
5062 | |
5063 cat <<"EOF" | |
5064 } | |
5065 EOF | |
4028 } | 5066 } |
4029 # end: func_emit_cwrapperexe_src | 5067 # end: func_emit_cwrapperexe_src |
5068 | |
5069 # func_win32_import_lib_p ARG | |
5070 # True if ARG is an import lib, as indicated by $file_magic_cmd | |
5071 func_win32_import_lib_p () | |
5072 { | |
5073 $opt_debug | |
5074 case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in | |
5075 *import*) : ;; | |
5076 *) false ;; | |
5077 esac | |
5078 } | |
4030 | 5079 |
4031 # func_mode_link arg... | 5080 # func_mode_link arg... |
4032 func_mode_link () | 5081 func_mode_link () |
4033 { | 5082 { |
4034 $opt_debug | 5083 $opt_debug |
4070 lib_search_path=`pwd` | 5119 lib_search_path=`pwd` |
4071 inst_prefix_dir= | 5120 inst_prefix_dir= |
4072 new_inherited_linker_flags= | 5121 new_inherited_linker_flags= |
4073 | 5122 |
4074 avoid_version=no | 5123 avoid_version=no |
5124 bindir= | |
4075 dlfiles= | 5125 dlfiles= |
4076 dlprefiles= | 5126 dlprefiles= |
4077 dlself=no | 5127 dlself=no |
4078 export_dynamic=no | 5128 export_dynamic=no |
4079 export_symbols= | 5129 export_symbols= |
4162 func_append finalize_command " @OUTPUT@" | 5212 func_append finalize_command " @OUTPUT@" |
4163 ;; | 5213 ;; |
4164 esac | 5214 esac |
4165 | 5215 |
4166 case $prev in | 5216 case $prev in |
5217 bindir) | |
5218 bindir="$arg" | |
5219 prev= | |
5220 continue | |
5221 ;; | |
4167 dlfiles|dlprefiles) | 5222 dlfiles|dlprefiles) |
4168 if test "$preload" = no; then | 5223 if test "$preload" = no; then |
4169 # Add the symbol object into the linking commands. | 5224 # Add the symbol object into the linking commands. |
4170 func_append compile_command " @SYMFILE@" | 5225 func_append compile_command " @SYMFILE@" |
4171 func_append finalize_command " @SYMFILE@" | 5226 func_append finalize_command " @SYMFILE@" |
4193 prev= | 5248 prev= |
4194 continue | 5249 continue |
4195 ;; | 5250 ;; |
4196 *) | 5251 *) |
4197 if test "$prev" = dlfiles; then | 5252 if test "$prev" = dlfiles; then |
4198 dlfiles="$dlfiles $arg" | 5253 func_append dlfiles " $arg" |
4199 else | 5254 else |
4200 dlprefiles="$dlprefiles $arg" | 5255 func_append dlprefiles " $arg" |
4201 fi | 5256 fi |
4202 prev= | 5257 prev= |
4203 continue | 5258 continue |
4204 ;; | 5259 ;; |
4205 esac | 5260 esac |
4219 framework) | 5274 framework) |
4220 case $host in | 5275 case $host in |
4221 *-*-darwin*) | 5276 *-*-darwin*) |
4222 case "$deplibs " in | 5277 case "$deplibs " in |
4223 *" $qarg.ltframework "*) ;; | 5278 *" $qarg.ltframework "*) ;; |
4224 *) deplibs="$deplibs $qarg.ltframework" # this is fixed later | 5279 *) func_append deplibs " $qarg.ltframework" # this is fixed later |
4225 ;; | 5280 ;; |
4226 esac | 5281 esac |
4227 ;; | 5282 ;; |
4228 esac | 5283 esac |
4229 prev= | 5284 prev= |
4238 if test -f "$arg"; then | 5293 if test -f "$arg"; then |
4239 save_arg=$arg | 5294 save_arg=$arg |
4240 moreargs= | 5295 moreargs= |
4241 for fil in `cat "$save_arg"` | 5296 for fil in `cat "$save_arg"` |
4242 do | 5297 do |
4243 # moreargs="$moreargs $fil" | 5298 # func_append moreargs " $fil" |
4244 arg=$fil | 5299 arg=$fil |
4245 # A libtool-controlled object. | 5300 # A libtool-controlled object. |
4246 | 5301 |
4247 # Check to see that this really is a libtool object. | 5302 # Check to see that this really is a libtool object. |
4248 if func_lalib_unsafe_p "$arg"; then | 5303 if func_lalib_unsafe_p "$arg"; then |
4267 # Prepend the subdirectory the object is found in. | 5322 # Prepend the subdirectory the object is found in. |
4268 pic_object="$xdir$pic_object" | 5323 pic_object="$xdir$pic_object" |
4269 | 5324 |
4270 if test "$prev" = dlfiles; then | 5325 if test "$prev" = dlfiles; then |
4271 if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then | 5326 if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then |
4272 dlfiles="$dlfiles $pic_object" | 5327 func_append dlfiles " $pic_object" |
4273 prev= | 5328 prev= |
4274 continue | 5329 continue |
4275 else | 5330 else |
4276 # If libtool objects are unsupported, then we need to preload. | 5331 # If libtool objects are unsupported, then we need to preload. |
4277 prev=dlprefiles | 5332 prev=dlprefiles |
4279 fi | 5334 fi |
4280 | 5335 |
4281 # CHECK ME: I think I busted this. -Ossama | 5336 # CHECK ME: I think I busted this. -Ossama |
4282 if test "$prev" = dlprefiles; then | 5337 if test "$prev" = dlprefiles; then |
4283 # Preload the old-style object. | 5338 # Preload the old-style object. |
4284 dlprefiles="$dlprefiles $pic_object" | 5339 func_append dlprefiles " $pic_object" |
4285 prev= | 5340 prev= |
4286 fi | 5341 fi |
4287 | 5342 |
4288 # A PIC object. | 5343 # A PIC object. |
4289 func_append libobjs " $pic_object" | 5344 func_append libobjs " $pic_object" |
4349 ;; | 5404 ;; |
4350 esac | 5405 esac |
4351 if test "$prev" = rpath; then | 5406 if test "$prev" = rpath; then |
4352 case "$rpath " in | 5407 case "$rpath " in |
4353 *" $arg "*) ;; | 5408 *" $arg "*) ;; |
4354 *) rpath="$rpath $arg" ;; | 5409 *) func_append rpath " $arg" ;; |
4355 esac | 5410 esac |
4356 else | 5411 else |
4357 case "$xrpath " in | 5412 case "$xrpath " in |
4358 *" $arg "*) ;; | 5413 *" $arg "*) ;; |
4359 *) xrpath="$xrpath $arg" ;; | 5414 *) func_append xrpath " $arg" ;; |
4360 esac | 5415 esac |
4361 fi | 5416 fi |
4362 prev= | 5417 prev= |
4363 continue | 5418 continue |
4364 ;; | 5419 ;; |
4366 shrext_cmds="$arg" | 5421 shrext_cmds="$arg" |
4367 prev= | 5422 prev= |
4368 continue | 5423 continue |
4369 ;; | 5424 ;; |
4370 weak) | 5425 weak) |
4371 weak_libs="$weak_libs $arg" | 5426 func_append weak_libs " $arg" |
4372 prev= | 5427 prev= |
4373 continue | 5428 continue |
4374 ;; | 5429 ;; |
4375 xcclinker) | 5430 xcclinker) |
4376 linker_flags="$linker_flags $qarg" | 5431 func_append linker_flags " $qarg" |
4377 compiler_flags="$compiler_flags $qarg" | 5432 func_append compiler_flags " $qarg" |
4378 prev= | 5433 prev= |
4379 func_append compile_command " $qarg" | 5434 func_append compile_command " $qarg" |
4380 func_append finalize_command " $qarg" | 5435 func_append finalize_command " $qarg" |
4381 continue | 5436 continue |
4382 ;; | 5437 ;; |
4383 xcompiler) | 5438 xcompiler) |
4384 compiler_flags="$compiler_flags $qarg" | 5439 func_append compiler_flags " $qarg" |
4385 prev= | 5440 prev= |
4386 func_append compile_command " $qarg" | 5441 func_append compile_command " $qarg" |
4387 func_append finalize_command " $qarg" | 5442 func_append finalize_command " $qarg" |
4388 continue | 5443 continue |
4389 ;; | 5444 ;; |
4390 xlinker) | 5445 xlinker) |
4391 linker_flags="$linker_flags $qarg" | 5446 func_append linker_flags " $qarg" |
4392 compiler_flags="$compiler_flags $wl$qarg" | 5447 func_append compiler_flags " $wl$qarg" |
4393 prev= | 5448 prev= |
4394 func_append compile_command " $wl$qarg" | 5449 func_append compile_command " $wl$qarg" |
4395 func_append finalize_command " $wl$qarg" | 5450 func_append finalize_command " $wl$qarg" |
4396 continue | 5451 continue |
4397 ;; | 5452 ;; |
4423 -avoid-version) | 5478 -avoid-version) |
4424 avoid_version=yes | 5479 avoid_version=yes |
4425 continue | 5480 continue |
4426 ;; | 5481 ;; |
4427 | 5482 |
5483 -bindir) | |
5484 prev=bindir | |
5485 continue | |
5486 ;; | |
5487 | |
4428 -dlopen) | 5488 -dlopen) |
4429 prev=dlfiles | 5489 prev=dlfiles |
4430 continue | 5490 continue |
4431 ;; | 5491 ;; |
4432 | 5492 |
4473 esac | 5533 esac |
4474 continue | 5534 continue |
4475 ;; | 5535 ;; |
4476 | 5536 |
4477 -L*) | 5537 -L*) |
4478 func_stripname '-L' '' "$arg" | 5538 func_stripname "-L" '' "$arg" |
4479 dir=$func_stripname_result | 5539 if test -z "$func_stripname_result"; then |
4480 if test -z "$dir"; then | |
4481 if test "$#" -gt 0; then | 5540 if test "$#" -gt 0; then |
4482 func_fatal_error "require no space between \`-L' and \`$1'" | 5541 func_fatal_error "require no space between \`-L' and \`$1'" |
4483 else | 5542 else |
4484 func_fatal_error "need path for \`-L' option" | 5543 func_fatal_error "need path for \`-L' option" |
4485 fi | 5544 fi |
4486 fi | 5545 fi |
5546 func_resolve_sysroot "$func_stripname_result" | |
5547 dir=$func_resolve_sysroot_result | |
4487 # We need an absolute path. | 5548 # We need an absolute path. |
4488 case $dir in | 5549 case $dir in |
4489 [\\/]* | [A-Za-z]:[\\/]*) ;; | 5550 [\\/]* | [A-Za-z]:[\\/]*) ;; |
4490 *) | 5551 *) |
4491 absdir=`cd "$dir" && pwd` | 5552 absdir=`cd "$dir" && pwd` |
4493 func_fatal_error "cannot determine absolute directory name of \`$dir'" | 5554 func_fatal_error "cannot determine absolute directory name of \`$dir'" |
4494 dir="$absdir" | 5555 dir="$absdir" |
4495 ;; | 5556 ;; |
4496 esac | 5557 esac |
4497 case "$deplibs " in | 5558 case "$deplibs " in |
4498 *" -L$dir "*) ;; | 5559 *" -L$dir "* | *" $arg "*) |
5560 # Will only happen for absolute or sysroot arguments | |
5561 ;; | |
4499 *) | 5562 *) |
4500 deplibs="$deplibs -L$dir" | 5563 # Preserve sysroot, but never include relative directories |
4501 lib_search_path="$lib_search_path $dir" | 5564 case $dir in |
5565 [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;; | |
5566 *) func_append deplibs " -L$dir" ;; | |
5567 esac | |
5568 func_append lib_search_path " $dir" | |
4502 ;; | 5569 ;; |
4503 esac | 5570 esac |
4504 case $host in | 5571 case $host in |
4505 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) | 5572 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) |
4506 testbindir=`$ECHO "X$dir" | $Xsed -e 's*/lib$*/bin*'` | 5573 testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'` |
4507 case :$dllsearchpath: in | 5574 case :$dllsearchpath: in |
4508 *":$dir:"*) ;; | 5575 *":$dir:"*) ;; |
4509 ::) dllsearchpath=$dir;; | 5576 ::) dllsearchpath=$dir;; |
4510 *) dllsearchpath="$dllsearchpath:$dir";; | 5577 *) func_append dllsearchpath ":$dir";; |
4511 esac | 5578 esac |
4512 case :$dllsearchpath: in | 5579 case :$dllsearchpath: in |
4513 *":$testbindir:"*) ;; | 5580 *":$testbindir:"*) ;; |
4514 ::) dllsearchpath=$testbindir;; | 5581 ::) dllsearchpath=$testbindir;; |
4515 *) dllsearchpath="$dllsearchpath:$testbindir";; | 5582 *) func_append dllsearchpath ":$testbindir";; |
4516 esac | 5583 esac |
4517 ;; | 5584 ;; |
4518 esac | 5585 esac |
4519 continue | 5586 continue |
4520 ;; | 5587 ;; |
4521 | 5588 |
4522 -l*) | 5589 -l*) |
4523 if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then | 5590 if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then |
4524 case $host in | 5591 case $host in |
4525 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc*) | 5592 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*) |
4526 # These systems don't actually have a C or math library (as such) | 5593 # These systems don't actually have a C or math library (as such) |
4527 continue | 5594 continue |
4528 ;; | 5595 ;; |
4529 *-*-os2*) | 5596 *-*-os2*) |
4530 # These systems don't actually have a C library (as such) | 5597 # These systems don't actually have a C library (as such) |
4534 # Do not include libc due to us having libc/libc_r. | 5601 # Do not include libc due to us having libc/libc_r. |
4535 test "X$arg" = "X-lc" && continue | 5602 test "X$arg" = "X-lc" && continue |
4536 ;; | 5603 ;; |
4537 *-*-rhapsody* | *-*-darwin1.[012]) | 5604 *-*-rhapsody* | *-*-darwin1.[012]) |
4538 # Rhapsody C and math libraries are in the System framework | 5605 # Rhapsody C and math libraries are in the System framework |
4539 deplibs="$deplibs System.ltframework" | 5606 func_append deplibs " System.ltframework" |
4540 continue | 5607 continue |
4541 ;; | 5608 ;; |
4542 *-*-sco3.2v5* | *-*-sco5v6*) | 5609 *-*-sco3.2v5* | *-*-sco5v6*) |
4543 # Causes problems with __ctype | 5610 # Causes problems with __ctype |
4544 test "X$arg" = "X-lc" && continue | 5611 test "X$arg" = "X-lc" && continue |
4554 # Do not include libc_r directly, use -pthread flag. | 5621 # Do not include libc_r directly, use -pthread flag. |
4555 continue | 5622 continue |
4556 ;; | 5623 ;; |
4557 esac | 5624 esac |
4558 fi | 5625 fi |
4559 deplibs="$deplibs $arg" | 5626 func_append deplibs " $arg" |
4560 continue | 5627 continue |
4561 ;; | 5628 ;; |
4562 | 5629 |
4563 -module) | 5630 -module) |
4564 module=yes | 5631 module=yes |
4566 ;; | 5633 ;; |
4567 | 5634 |
4568 # Tru64 UNIX uses -model [arg] to determine the layout of C++ | 5635 # Tru64 UNIX uses -model [arg] to determine the layout of C++ |
4569 # classes, name mangling, and exception handling. | 5636 # classes, name mangling, and exception handling. |
4570 # Darwin uses the -arch flag to determine output architecture. | 5637 # Darwin uses the -arch flag to determine output architecture. |
4571 -model|-arch|-isysroot) | 5638 -model|-arch|-isysroot|--sysroot) |
4572 compiler_flags="$compiler_flags $arg" | 5639 func_append compiler_flags " $arg" |
4573 func_append compile_command " $arg" | 5640 func_append compile_command " $arg" |
4574 func_append finalize_command " $arg" | 5641 func_append finalize_command " $arg" |
4575 prev=xcompiler | 5642 prev=xcompiler |
4576 continue | 5643 continue |
4577 ;; | 5644 ;; |
4578 | 5645 |
4579 -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) | 5646 -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) |
4580 compiler_flags="$compiler_flags $arg" | 5647 func_append compiler_flags " $arg" |
4581 func_append compile_command " $arg" | 5648 func_append compile_command " $arg" |
4582 func_append finalize_command " $arg" | 5649 func_append finalize_command " $arg" |
4583 case "$new_inherited_linker_flags " in | 5650 case "$new_inherited_linker_flags " in |
4584 *" $arg "*) ;; | 5651 *" $arg "*) ;; |
4585 * ) new_inherited_linker_flags="$new_inherited_linker_flags $arg" ;; | 5652 * ) func_append new_inherited_linker_flags " $arg" ;; |
4586 esac | 5653 esac |
4587 continue | 5654 continue |
4588 ;; | 5655 ;; |
4589 | 5656 |
4590 -multi_module) | 5657 -multi_module) |
4647 func_stripname '-R' '' "$arg" | 5714 func_stripname '-R' '' "$arg" |
4648 dir=$func_stripname_result | 5715 dir=$func_stripname_result |
4649 # We need an absolute path. | 5716 # We need an absolute path. |
4650 case $dir in | 5717 case $dir in |
4651 [\\/]* | [A-Za-z]:[\\/]*) ;; | 5718 [\\/]* | [A-Za-z]:[\\/]*) ;; |
5719 =*) | |
5720 func_stripname '=' '' "$dir" | |
5721 dir=$lt_sysroot$func_stripname_result | |
5722 ;; | |
4652 *) | 5723 *) |
4653 func_fatal_error "only absolute run-paths are allowed" | 5724 func_fatal_error "only absolute run-paths are allowed" |
4654 ;; | 5725 ;; |
4655 esac | 5726 esac |
4656 case "$xrpath " in | 5727 case "$xrpath " in |
4657 *" $dir "*) ;; | 5728 *" $dir "*) ;; |
4658 *) xrpath="$xrpath $dir" ;; | 5729 *) func_append xrpath " $dir" ;; |
4659 esac | 5730 esac |
4660 continue | 5731 continue |
4661 ;; | 5732 ;; |
4662 | 5733 |
4663 -shared) | 5734 -shared) |
4706 arg= | 5777 arg= |
4707 save_ifs="$IFS"; IFS=',' | 5778 save_ifs="$IFS"; IFS=',' |
4708 for flag in $args; do | 5779 for flag in $args; do |
4709 IFS="$save_ifs" | 5780 IFS="$save_ifs" |
4710 func_quote_for_eval "$flag" | 5781 func_quote_for_eval "$flag" |
4711 arg="$arg $wl$func_quote_for_eval_result" | 5782 func_append arg " $func_quote_for_eval_result" |
4712 compiler_flags="$compiler_flags $func_quote_for_eval_result" | 5783 func_append compiler_flags " $func_quote_for_eval_result" |
4713 done | 5784 done |
4714 IFS="$save_ifs" | 5785 IFS="$save_ifs" |
4715 func_stripname ' ' '' "$arg" | 5786 func_stripname ' ' '' "$arg" |
4716 arg=$func_stripname_result | 5787 arg=$func_stripname_result |
4717 ;; | 5788 ;; |
4722 arg= | 5793 arg= |
4723 save_ifs="$IFS"; IFS=',' | 5794 save_ifs="$IFS"; IFS=',' |
4724 for flag in $args; do | 5795 for flag in $args; do |
4725 IFS="$save_ifs" | 5796 IFS="$save_ifs" |
4726 func_quote_for_eval "$flag" | 5797 func_quote_for_eval "$flag" |
4727 arg="$arg $wl$func_quote_for_eval_result" | 5798 func_append arg " $wl$func_quote_for_eval_result" |
4728 compiler_flags="$compiler_flags $wl$func_quote_for_eval_result" | 5799 func_append compiler_flags " $wl$func_quote_for_eval_result" |
4729 linker_flags="$linker_flags $func_quote_for_eval_result" | 5800 func_append linker_flags " $func_quote_for_eval_result" |
4730 done | 5801 done |
4731 IFS="$save_ifs" | 5802 IFS="$save_ifs" |
4732 func_stripname ' ' '' "$arg" | 5803 func_stripname ' ' '' "$arg" |
4733 arg=$func_stripname_result | 5804 arg=$func_stripname_result |
4734 ;; | 5805 ;; |
4752 -msg_*) | 5823 -msg_*) |
4753 func_quote_for_eval "$arg" | 5824 func_quote_for_eval "$arg" |
4754 arg="$func_quote_for_eval_result" | 5825 arg="$func_quote_for_eval_result" |
4755 ;; | 5826 ;; |
4756 | 5827 |
4757 # -64, -mips[0-9] enable 64-bit mode on the SGI compiler | 5828 # Flags to be passed through unchanged, with rationale: |
4758 # -r[0-9][0-9]* specifies the processor on the SGI compiler | 5829 # -64, -mips[0-9] enable 64-bit mode for the SGI compiler |
4759 # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler | 5830 # -r[0-9][0-9]* specify processor for the SGI compiler |
4760 # +DA*, +DD* enable 64-bit mode on the HP compiler | 5831 # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler |
4761 # -q* pass through compiler args for the IBM compiler | 5832 # +DA*, +DD* enable 64-bit mode for the HP compiler |
4762 # -m*, -t[45]*, -txscale* pass through architecture-specific | 5833 # -q* compiler args for the IBM compiler |
4763 # compiler args for GCC | 5834 # -m*, -t[45]*, -txscale* architecture-specific flags for GCC |
4764 # -F/path gives path to uninstalled frameworks, gcc on darwin | 5835 # -F/path path to uninstalled frameworks, gcc on darwin |
4765 # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC | 5836 # -p, -pg, --coverage, -fprofile-* profiling flags for GCC |
4766 # @file GCC response files | 5837 # @file GCC response files |
5838 # -tp=* Portland pgcc target processor selection | |
5839 # --sysroot=* for sysroot support | |
5840 # -O*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization | |
4767 -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ | 5841 -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ |
4768 -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*) | 5842 -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \ |
5843 -O*|-flto*|-fwhopr*|-fuse-linker-plugin) | |
4769 func_quote_for_eval "$arg" | 5844 func_quote_for_eval "$arg" |
4770 arg="$func_quote_for_eval_result" | 5845 arg="$func_quote_for_eval_result" |
4771 func_append compile_command " $arg" | 5846 func_append compile_command " $arg" |
4772 func_append finalize_command " $arg" | 5847 func_append finalize_command " $arg" |
4773 compiler_flags="$compiler_flags $arg" | 5848 func_append compiler_flags " $arg" |
4774 continue | 5849 continue |
4775 ;; | 5850 ;; |
4776 | 5851 |
4777 # Some other compiler flag. | 5852 # Some other compiler flag. |
4778 -* | +*) | 5853 -* | +*) |
4780 arg="$func_quote_for_eval_result" | 5855 arg="$func_quote_for_eval_result" |
4781 ;; | 5856 ;; |
4782 | 5857 |
4783 *.$objext) | 5858 *.$objext) |
4784 # A standard object. | 5859 # A standard object. |
4785 objs="$objs $arg" | 5860 func_append objs " $arg" |
4786 ;; | 5861 ;; |
4787 | 5862 |
4788 *.lo) | 5863 *.lo) |
4789 # A libtool-controlled object. | 5864 # A libtool-controlled object. |
4790 | 5865 |
4811 # Prepend the subdirectory the object is found in. | 5886 # Prepend the subdirectory the object is found in. |
4812 pic_object="$xdir$pic_object" | 5887 pic_object="$xdir$pic_object" |
4813 | 5888 |
4814 if test "$prev" = dlfiles; then | 5889 if test "$prev" = dlfiles; then |
4815 if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then | 5890 if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then |
4816 dlfiles="$dlfiles $pic_object" | 5891 func_append dlfiles " $pic_object" |
4817 prev= | 5892 prev= |
4818 continue | 5893 continue |
4819 else | 5894 else |
4820 # If libtool objects are unsupported, then we need to preload. | 5895 # If libtool objects are unsupported, then we need to preload. |
4821 prev=dlprefiles | 5896 prev=dlprefiles |
4823 fi | 5898 fi |
4824 | 5899 |
4825 # CHECK ME: I think I busted this. -Ossama | 5900 # CHECK ME: I think I busted this. -Ossama |
4826 if test "$prev" = dlprefiles; then | 5901 if test "$prev" = dlprefiles; then |
4827 # Preload the old-style object. | 5902 # Preload the old-style object. |
4828 dlprefiles="$dlprefiles $pic_object" | 5903 func_append dlprefiles " $pic_object" |
4829 prev= | 5904 prev= |
4830 fi | 5905 fi |
4831 | 5906 |
4832 # A PIC object. | 5907 # A PIC object. |
4833 func_append libobjs " $pic_object" | 5908 func_append libobjs " $pic_object" |
4868 fi | 5943 fi |
4869 ;; | 5944 ;; |
4870 | 5945 |
4871 *.$libext) | 5946 *.$libext) |
4872 # An archive. | 5947 # An archive. |
4873 deplibs="$deplibs $arg" | 5948 func_append deplibs " $arg" |
4874 old_deplibs="$old_deplibs $arg" | 5949 func_append old_deplibs " $arg" |
4875 continue | 5950 continue |
4876 ;; | 5951 ;; |
4877 | 5952 |
4878 *.la) | 5953 *.la) |
4879 # A libtool-controlled library. | 5954 # A libtool-controlled library. |
4880 | 5955 |
5956 func_resolve_sysroot "$arg" | |
4881 if test "$prev" = dlfiles; then | 5957 if test "$prev" = dlfiles; then |
4882 # This library was specified with -dlopen. | 5958 # This library was specified with -dlopen. |
4883 dlfiles="$dlfiles $arg" | 5959 func_append dlfiles " $func_resolve_sysroot_result" |
4884 prev= | 5960 prev= |
4885 elif test "$prev" = dlprefiles; then | 5961 elif test "$prev" = dlprefiles; then |
4886 # The library was specified with -dlpreopen. | 5962 # The library was specified with -dlpreopen. |
4887 dlprefiles="$dlprefiles $arg" | 5963 func_append dlprefiles " $func_resolve_sysroot_result" |
4888 prev= | 5964 prev= |
4889 else | 5965 else |
4890 deplibs="$deplibs $arg" | 5966 func_append deplibs " $func_resolve_sysroot_result" |
4891 fi | 5967 fi |
4892 continue | 5968 continue |
4893 ;; | 5969 ;; |
4894 | 5970 |
4895 # Some other compiler argument. | 5971 # Some other compiler argument. |
4923 outputname="$func_basename_result" | 5999 outputname="$func_basename_result" |
4924 libobjs_save="$libobjs" | 6000 libobjs_save="$libobjs" |
4925 | 6001 |
4926 if test -n "$shlibpath_var"; then | 6002 if test -n "$shlibpath_var"; then |
4927 # get the directories listed in $shlibpath_var | 6003 # get the directories listed in $shlibpath_var |
4928 eval shlib_search_path=\`\$ECHO \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\` | 6004 eval shlib_search_path=\`\$ECHO \"\${$shlibpath_var}\" \| \$SED \'s/:/ /g\'\` |
4929 else | 6005 else |
4930 shlib_search_path= | 6006 shlib_search_path= |
4931 fi | 6007 fi |
4932 eval sys_lib_search_path=\"$sys_lib_search_path_spec\" | 6008 eval sys_lib_search_path=\"$sys_lib_search_path_spec\" |
4933 eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" | 6009 eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" |
4934 | 6010 |
4935 func_dirname "$output" "/" "" | 6011 func_dirname "$output" "/" "" |
4936 output_objdir="$func_dirname_result$objdir" | 6012 output_objdir="$func_dirname_result$objdir" |
6013 func_to_tool_file "$output_objdir/" | |
6014 tool_output_objdir=$func_to_tool_file_result | |
4937 # Create the object directory. | 6015 # Create the object directory. |
4938 func_mkdir_p "$output_objdir" | 6016 func_mkdir_p "$output_objdir" |
4939 | 6017 |
4940 # Determine the type of output | 6018 # Determine the type of output |
4941 case $output in | 6019 case $output in |
4952 | 6030 |
4953 libs= | 6031 libs= |
4954 # Find all interdependent deplibs by searching for libraries | 6032 # Find all interdependent deplibs by searching for libraries |
4955 # that are linked more than once (e.g. -la -lb -la) | 6033 # that are linked more than once (e.g. -la -lb -la) |
4956 for deplib in $deplibs; do | 6034 for deplib in $deplibs; do |
4957 if $opt_duplicate_deps ; then | 6035 if $opt_preserve_dup_deps ; then |
4958 case "$libs " in | 6036 case "$libs " in |
4959 *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; | 6037 *" $deplib "*) func_append specialdeplibs " $deplib" ;; |
4960 esac | 6038 esac |
4961 fi | 6039 fi |
4962 libs="$libs $deplib" | 6040 func_append libs " $deplib" |
4963 done | 6041 done |
4964 | 6042 |
4965 if test "$linkmode" = lib; then | 6043 if test "$linkmode" = lib; then |
4966 libs="$predeps $libs $compiler_lib_search_path $postdeps" | 6044 libs="$predeps $libs $compiler_lib_search_path $postdeps" |
4967 | 6045 |
4970 # not to be eliminated). | 6048 # not to be eliminated). |
4971 pre_post_deps= | 6049 pre_post_deps= |
4972 if $opt_duplicate_compiler_generated_deps; then | 6050 if $opt_duplicate_compiler_generated_deps; then |
4973 for pre_post_dep in $predeps $postdeps; do | 6051 for pre_post_dep in $predeps $postdeps; do |
4974 case "$pre_post_deps " in | 6052 case "$pre_post_deps " in |
4975 *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;; | 6053 *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;; |
4976 esac | 6054 esac |
4977 pre_post_deps="$pre_post_deps $pre_post_dep" | 6055 func_append pre_post_deps " $pre_post_dep" |
4978 done | 6056 done |
4979 fi | 6057 fi |
4980 pre_post_deps= | 6058 pre_post_deps= |
4981 fi | 6059 fi |
4982 | 6060 |
5042 if test "$linkmode,$pass" = "lib,dlpreopen"; then | 6120 if test "$linkmode,$pass" = "lib,dlpreopen"; then |
5043 # Collect and forward deplibs of preopened libtool libs | 6121 # Collect and forward deplibs of preopened libtool libs |
5044 for lib in $dlprefiles; do | 6122 for lib in $dlprefiles; do |
5045 # Ignore non-libtool-libs | 6123 # Ignore non-libtool-libs |
5046 dependency_libs= | 6124 dependency_libs= |
6125 func_resolve_sysroot "$lib" | |
5047 case $lib in | 6126 case $lib in |
5048 *.la) func_source "$lib" ;; | 6127 *.la) func_source "$func_resolve_sysroot_result" ;; |
5049 esac | 6128 esac |
5050 | 6129 |
5051 # Collect preopened libtool deplibs, except any this library | 6130 # Collect preopened libtool deplibs, except any this library |
5052 # has declared as weak libs | 6131 # has declared as weak libs |
5053 for deplib in $dependency_libs; do | 6132 for deplib in $dependency_libs; do |
5054 deplib_base=`$ECHO "X$deplib" | $Xsed -e "$basename"` | 6133 func_basename "$deplib" |
6134 deplib_base=$func_basename_result | |
5055 case " $weak_libs " in | 6135 case " $weak_libs " in |
5056 *" $deplib_base "*) ;; | 6136 *" $deplib_base "*) ;; |
5057 *) deplibs="$deplibs $deplib" ;; | 6137 *) func_append deplibs " $deplib" ;; |
5058 esac | 6138 esac |
5059 done | 6139 done |
5060 done | 6140 done |
5061 libs="$dlprefiles" | 6141 libs="$dlprefiles" |
5062 fi | 6142 fi |
5073 -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) | 6153 -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) |
5074 if test "$linkmode,$pass" = "prog,link"; then | 6154 if test "$linkmode,$pass" = "prog,link"; then |
5075 compile_deplibs="$deplib $compile_deplibs" | 6155 compile_deplibs="$deplib $compile_deplibs" |
5076 finalize_deplibs="$deplib $finalize_deplibs" | 6156 finalize_deplibs="$deplib $finalize_deplibs" |
5077 else | 6157 else |
5078 compiler_flags="$compiler_flags $deplib" | 6158 func_append compiler_flags " $deplib" |
5079 if test "$linkmode" = lib ; then | 6159 if test "$linkmode" = lib ; then |
5080 case "$new_inherited_linker_flags " in | 6160 case "$new_inherited_linker_flags " in |
5081 *" $deplib "*) ;; | 6161 *" $deplib "*) ;; |
5082 * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;; | 6162 * ) func_append new_inherited_linker_flags " $deplib" ;; |
5083 esac | 6163 esac |
5084 fi | 6164 fi |
5085 fi | 6165 fi |
5086 continue | 6166 continue |
5087 ;; | 6167 ;; |
5162 else | 6242 else |
5163 deplibs="$deplib $deplibs" | 6243 deplibs="$deplib $deplibs" |
5164 if test "$linkmode" = lib ; then | 6244 if test "$linkmode" = lib ; then |
5165 case "$new_inherited_linker_flags " in | 6245 case "$new_inherited_linker_flags " in |
5166 *" $deplib "*) ;; | 6246 *" $deplib "*) ;; |
5167 * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;; | 6247 * ) func_append new_inherited_linker_flags " $deplib" ;; |
5168 esac | 6248 esac |
5169 fi | 6249 fi |
5170 fi | 6250 fi |
5171 continue | 6251 continue |
5172 ;; | 6252 ;; |
5175 lib) | 6255 lib) |
5176 deplibs="$deplib $deplibs" | 6256 deplibs="$deplib $deplibs" |
5177 test "$pass" = conv && continue | 6257 test "$pass" = conv && continue |
5178 newdependency_libs="$deplib $newdependency_libs" | 6258 newdependency_libs="$deplib $newdependency_libs" |
5179 func_stripname '-L' '' "$deplib" | 6259 func_stripname '-L' '' "$deplib" |
5180 newlib_search_path="$newlib_search_path $func_stripname_result" | 6260 func_resolve_sysroot "$func_stripname_result" |
6261 func_append newlib_search_path " $func_resolve_sysroot_result" | |
5181 ;; | 6262 ;; |
5182 prog) | 6263 prog) |
5183 if test "$pass" = conv; then | 6264 if test "$pass" = conv; then |
5184 deplibs="$deplib $deplibs" | 6265 deplibs="$deplib $deplibs" |
5185 continue | 6266 continue |
5189 else | 6270 else |
5190 compile_deplibs="$deplib $compile_deplibs" | 6271 compile_deplibs="$deplib $compile_deplibs" |
5191 finalize_deplibs="$deplib $finalize_deplibs" | 6272 finalize_deplibs="$deplib $finalize_deplibs" |
5192 fi | 6273 fi |
5193 func_stripname '-L' '' "$deplib" | 6274 func_stripname '-L' '' "$deplib" |
5194 newlib_search_path="$newlib_search_path $func_stripname_result" | 6275 func_resolve_sysroot "$func_stripname_result" |
6276 func_append newlib_search_path " $func_resolve_sysroot_result" | |
5195 ;; | 6277 ;; |
5196 *) | 6278 *) |
5197 func_warning "\`-L' is ignored for archives/objects" | 6279 func_warning "\`-L' is ignored for archives/objects" |
5198 ;; | 6280 ;; |
5199 esac # linkmode | 6281 esac # linkmode |
5200 continue | 6282 continue |
5201 ;; # -L | 6283 ;; # -L |
5202 -R*) | 6284 -R*) |
5203 if test "$pass" = link; then | 6285 if test "$pass" = link; then |
5204 func_stripname '-R' '' "$deplib" | 6286 func_stripname '-R' '' "$deplib" |
5205 dir=$func_stripname_result | 6287 func_resolve_sysroot "$func_stripname_result" |
6288 dir=$func_resolve_sysroot_result | |
5206 # Make sure the xrpath contains only unique directories. | 6289 # Make sure the xrpath contains only unique directories. |
5207 case "$xrpath " in | 6290 case "$xrpath " in |
5208 *" $dir "*) ;; | 6291 *" $dir "*) ;; |
5209 *) xrpath="$xrpath $dir" ;; | 6292 *) func_append xrpath " $dir" ;; |
5210 esac | 6293 esac |
5211 fi | 6294 fi |
5212 deplibs="$deplib $deplibs" | 6295 deplibs="$deplib $deplibs" |
5213 continue | 6296 continue |
5214 ;; | 6297 ;; |
5215 *.la) lib="$deplib" ;; | 6298 *.la) |
6299 func_resolve_sysroot "$deplib" | |
6300 lib=$func_resolve_sysroot_result | |
6301 ;; | |
5216 *.$libext) | 6302 *.$libext) |
5217 if test "$pass" = conv; then | 6303 if test "$pass" = conv; then |
5218 deplibs="$deplib $deplibs" | 6304 deplibs="$deplib $deplibs" |
5219 continue | 6305 continue |
5220 fi | 6306 fi |
5228 valid_a_lib=no | 6314 valid_a_lib=no |
5229 case $deplibs_check_method in | 6315 case $deplibs_check_method in |
5230 match_pattern*) | 6316 match_pattern*) |
5231 set dummy $deplibs_check_method; shift | 6317 set dummy $deplibs_check_method; shift |
5232 match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` | 6318 match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` |
5233 if eval "\$ECHO \"X$deplib\"" 2>/dev/null | $Xsed -e 10q \ | 6319 if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \ |
5234 | $EGREP "$match_pattern_regex" > /dev/null; then | 6320 | $EGREP "$match_pattern_regex" > /dev/null; then |
5235 valid_a_lib=yes | 6321 valid_a_lib=yes |
5236 fi | 6322 fi |
5237 ;; | 6323 ;; |
5238 pass_all) | 6324 pass_all) |
5239 valid_a_lib=yes | 6325 valid_a_lib=yes |
5240 ;; | 6326 ;; |
5241 esac | 6327 esac |
5242 if test "$valid_a_lib" != yes; then | 6328 if test "$valid_a_lib" != yes; then |
5243 $ECHO | 6329 echo |
5244 $ECHO "*** Warning: Trying to link with static lib archive $deplib." | 6330 $ECHO "*** Warning: Trying to link with static lib archive $deplib." |
5245 $ECHO "*** I have the capability to make that library automatically link in when" | 6331 echo "*** I have the capability to make that library automatically link in when" |
5246 $ECHO "*** you link to this library. But I can only do this if you have a" | 6332 echo "*** you link to this library. But I can only do this if you have a" |
5247 $ECHO "*** shared version of the library, which you do not appear to have" | 6333 echo "*** shared version of the library, which you do not appear to have" |
5248 $ECHO "*** because the file extensions .$libext of this argument makes me believe" | 6334 echo "*** because the file extensions .$libext of this argument makes me believe" |
5249 $ECHO "*** that it is just a static archive that I should not use here." | 6335 echo "*** that it is just a static archive that I should not use here." |
5250 else | 6336 else |
5251 $ECHO | 6337 echo |
5252 $ECHO "*** Warning: Linking the shared library $output against the" | 6338 $ECHO "*** Warning: Linking the shared library $output against the" |
5253 $ECHO "*** static library $deplib is not portable!" | 6339 $ECHO "*** static library $deplib is not portable!" |
5254 deplibs="$deplib $deplibs" | 6340 deplibs="$deplib $deplibs" |
5255 fi | 6341 fi |
5256 ;; | 6342 ;; |
5273 deplibs="$deplib $deplibs" | 6359 deplibs="$deplib $deplibs" |
5274 elif test "$linkmode" = prog; then | 6360 elif test "$linkmode" = prog; then |
5275 if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then | 6361 if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then |
5276 # If there is no dlopen support or we're linking statically, | 6362 # If there is no dlopen support or we're linking statically, |
5277 # we need to preload. | 6363 # we need to preload. |
5278 newdlprefiles="$newdlprefiles $deplib" | 6364 func_append newdlprefiles " $deplib" |
5279 compile_deplibs="$deplib $compile_deplibs" | 6365 compile_deplibs="$deplib $compile_deplibs" |
5280 finalize_deplibs="$deplib $finalize_deplibs" | 6366 finalize_deplibs="$deplib $finalize_deplibs" |
5281 else | 6367 else |
5282 newdlfiles="$newdlfiles $deplib" | 6368 func_append newdlfiles " $deplib" |
5283 fi | 6369 fi |
5284 fi | 6370 fi |
5285 continue | 6371 continue |
5286 ;; | 6372 ;; |
5287 %DEPLIBS%) | 6373 %DEPLIBS%) |
5319 # Read the .la file | 6405 # Read the .la file |
5320 func_source "$lib" | 6406 func_source "$lib" |
5321 | 6407 |
5322 # Convert "-framework foo" to "foo.ltframework" | 6408 # Convert "-framework foo" to "foo.ltframework" |
5323 if test -n "$inherited_linker_flags"; then | 6409 if test -n "$inherited_linker_flags"; then |
5324 tmp_inherited_linker_flags=`$ECHO "X$inherited_linker_flags" | $Xsed -e 's/-framework \([^ $]*\)/\1.ltframework/g'` | 6410 tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'` |
5325 for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do | 6411 for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do |
5326 case " $new_inherited_linker_flags " in | 6412 case " $new_inherited_linker_flags " in |
5327 *" $tmp_inherited_linker_flag "*) ;; | 6413 *" $tmp_inherited_linker_flag "*) ;; |
5328 *) new_inherited_linker_flags="$new_inherited_linker_flags $tmp_inherited_linker_flag";; | 6414 *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";; |
5329 esac | 6415 esac |
5330 done | 6416 done |
5331 fi | 6417 fi |
5332 dependency_libs=`$ECHO "X $dependency_libs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` | 6418 dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` |
5333 if test "$linkmode,$pass" = "lib,link" || | 6419 if test "$linkmode,$pass" = "lib,link" || |
5334 test "$linkmode,$pass" = "prog,scan" || | 6420 test "$linkmode,$pass" = "prog,scan" || |
5335 { test "$linkmode" != prog && test "$linkmode" != lib; }; then | 6421 { test "$linkmode" != prog && test "$linkmode" != lib; }; then |
5336 test -n "$dlopen" && dlfiles="$dlfiles $dlopen" | 6422 test -n "$dlopen" && func_append dlfiles " $dlopen" |
5337 test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen" | 6423 test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen" |
5338 fi | 6424 fi |
5339 | 6425 |
5340 if test "$pass" = conv; then | 6426 if test "$pass" = conv; then |
5341 # Only check for convenience libraries | 6427 # Only check for convenience libraries |
5342 deplibs="$lib $deplibs" | 6428 deplibs="$lib $deplibs" |
5343 if test -z "$libdir"; then | 6429 if test -z "$libdir"; then |
5344 if test -z "$old_library"; then | 6430 if test -z "$old_library"; then |
5345 func_fatal_error "cannot find name of link library for \`$lib'" | 6431 func_fatal_error "cannot find name of link library for \`$lib'" |
5346 fi | 6432 fi |
5347 # It is a libtool convenience library, so add in its objects. | 6433 # It is a libtool convenience library, so add in its objects. |
5348 convenience="$convenience $ladir/$objdir/$old_library" | 6434 func_append convenience " $ladir/$objdir/$old_library" |
5349 old_convenience="$old_convenience $ladir/$objdir/$old_library" | 6435 func_append old_convenience " $ladir/$objdir/$old_library" |
5350 tmp_libs= | 6436 tmp_libs= |
5351 for deplib in $dependency_libs; do | 6437 for deplib in $dependency_libs; do |
5352 deplibs="$deplib $deplibs" | 6438 deplibs="$deplib $deplibs" |
5353 if $opt_duplicate_deps ; then | 6439 if $opt_preserve_dup_deps ; then |
5354 case "$tmp_libs " in | 6440 case "$tmp_libs " in |
5355 *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; | 6441 *" $deplib "*) func_append specialdeplibs " $deplib" ;; |
5356 esac | 6442 esac |
5357 fi | 6443 fi |
5358 tmp_libs="$tmp_libs $deplib" | 6444 func_append tmp_libs " $deplib" |
5359 done | 6445 done |
5360 elif test "$linkmode" != prog && test "$linkmode" != lib; then | 6446 elif test "$linkmode" != prog && test "$linkmode" != lib; then |
5361 func_fatal_error "\`$lib' is not a convenience library" | 6447 func_fatal_error "\`$lib' is not a convenience library" |
5362 fi | 6448 fi |
5363 continue | 6449 continue |
5364 fi # $pass = conv | 6450 fi # $pass = conv |
5365 | 6451 |
5366 | 6452 |
5367 # Get the name of the library we link against. | 6453 # Get the name of the library we link against. |
5368 linklib= | 6454 linklib= |
5369 for l in $old_library $library_names; do | 6455 if test -n "$old_library" && |
5370 linklib="$l" | 6456 { test "$prefer_static_libs" = yes || |
5371 done | 6457 test "$prefer_static_libs,$installed" = "built,no"; }; then |
6458 linklib=$old_library | |
6459 else | |
6460 for l in $old_library $library_names; do | |
6461 linklib="$l" | |
6462 done | |
6463 fi | |
5372 if test -z "$linklib"; then | 6464 if test -z "$linklib"; then |
5373 func_fatal_error "cannot find name of link library for \`$lib'" | 6465 func_fatal_error "cannot find name of link library for \`$lib'" |
5374 fi | 6466 fi |
5375 | 6467 |
5376 # This library was specified with -dlopen. | 6468 # This library was specified with -dlopen. |
5383 test "$build_libtool_libs" = no; then | 6475 test "$build_libtool_libs" = no; then |
5384 # If there is no dlname, no dlopen support or we're linking | 6476 # If there is no dlname, no dlopen support or we're linking |
5385 # statically, we need to preload. We also need to preload any | 6477 # statically, we need to preload. We also need to preload any |
5386 # dependent libraries so libltdl's deplib preloader doesn't | 6478 # dependent libraries so libltdl's deplib preloader doesn't |
5387 # bomb out in the load deplibs phase. | 6479 # bomb out in the load deplibs phase. |
5388 dlprefiles="$dlprefiles $lib $dependency_libs" | 6480 func_append dlprefiles " $lib $dependency_libs" |
5389 else | 6481 else |
5390 newdlfiles="$newdlfiles $lib" | 6482 func_append newdlfiles " $lib" |
5391 fi | 6483 fi |
5392 continue | 6484 continue |
5393 fi # $pass = dlopen | 6485 fi # $pass = dlopen |
5394 | 6486 |
5395 # We need an absolute path. | 6487 # We need an absolute path. |
5407 func_basename "$lib" | 6499 func_basename "$lib" |
5408 laname="$func_basename_result" | 6500 laname="$func_basename_result" |
5409 | 6501 |
5410 # Find the relevant object directory and library name. | 6502 # Find the relevant object directory and library name. |
5411 if test "X$installed" = Xyes; then | 6503 if test "X$installed" = Xyes; then |
5412 if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then | 6504 if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then |
5413 func_warning "library \`$lib' was moved." | 6505 func_warning "library \`$lib' was moved." |
5414 dir="$ladir" | 6506 dir="$ladir" |
5415 absdir="$abs_ladir" | 6507 absdir="$abs_ladir" |
5416 libdir="$abs_ladir" | 6508 libdir="$abs_ladir" |
5417 else | 6509 else |
5418 dir="$libdir" | 6510 dir="$lt_sysroot$libdir" |
5419 absdir="$libdir" | 6511 absdir="$lt_sysroot$libdir" |
5420 fi | 6512 fi |
5421 test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes | 6513 test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes |
5422 else | 6514 else |
5423 if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then | 6515 if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then |
5424 dir="$ladir" | 6516 dir="$ladir" |
5425 absdir="$abs_ladir" | 6517 absdir="$abs_ladir" |
5426 # Remove this search path later | 6518 # Remove this search path later |
5427 notinst_path="$notinst_path $abs_ladir" | 6519 func_append notinst_path " $abs_ladir" |
5428 else | 6520 else |
5429 dir="$ladir/$objdir" | 6521 dir="$ladir/$objdir" |
5430 absdir="$abs_ladir/$objdir" | 6522 absdir="$abs_ladir/$objdir" |
5431 # Remove this search path later | 6523 # Remove this search path later |
5432 notinst_path="$notinst_path $abs_ladir" | 6524 func_append notinst_path " $abs_ladir" |
5433 fi | 6525 fi |
5434 fi # $installed = yes | 6526 fi # $installed = yes |
5435 func_stripname 'lib' '.la' "$laname" | 6527 func_stripname 'lib' '.la' "$laname" |
5436 name=$func_stripname_result | 6528 name=$func_stripname_result |
5437 | 6529 |
5438 # This library was specified with -dlpreopen. | 6530 # This library was specified with -dlpreopen. |
5439 if test "$pass" = dlpreopen; then | 6531 if test "$pass" = dlpreopen; then |
5440 if test -z "$libdir" && test "$linkmode" = prog; then | 6532 if test -z "$libdir" && test "$linkmode" = prog; then |
5441 func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'" | 6533 func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'" |
5442 fi | 6534 fi |
5443 # Prefer using a static library (so that no silly _DYNAMIC symbols | 6535 case "$host" in |
5444 # are required to link). | 6536 # special handling for platforms with PE-DLLs. |
5445 if test -n "$old_library"; then | 6537 *cygwin* | *mingw* | *cegcc* ) |
5446 newdlprefiles="$newdlprefiles $dir/$old_library" | 6538 # Linker will automatically link against shared library if both |
5447 # Keep a list of preopened convenience libraries to check | 6539 # static and shared are present. Therefore, ensure we extract |
5448 # that they are being used correctly in the link pass. | 6540 # symbols from the import library if a shared library is present |
5449 test -z "$libdir" && \ | 6541 # (otherwise, the dlopen module name will be incorrect). We do |
5450 dlpreconveniencelibs="$dlpreconveniencelibs $dir/$old_library" | 6542 # this by putting the import library name into $newdlprefiles. |
5451 # Otherwise, use the dlname, so that lt_dlopen finds it. | 6543 # We recover the dlopen module name by 'saving' the la file |
5452 elif test -n "$dlname"; then | 6544 # name in a special purpose variable, and (later) extracting the |
5453 newdlprefiles="$newdlprefiles $dir/$dlname" | 6545 # dlname from the la file. |
5454 else | 6546 if test -n "$dlname"; then |
5455 newdlprefiles="$newdlprefiles $dir/$linklib" | 6547 func_tr_sh "$dir/$linklib" |
5456 fi | 6548 eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname" |
6549 func_append newdlprefiles " $dir/$linklib" | |
6550 else | |
6551 func_append newdlprefiles " $dir/$old_library" | |
6552 # Keep a list of preopened convenience libraries to check | |
6553 # that they are being used correctly in the link pass. | |
6554 test -z "$libdir" && \ | |
6555 func_append dlpreconveniencelibs " $dir/$old_library" | |
6556 fi | |
6557 ;; | |
6558 * ) | |
6559 # Prefer using a static library (so that no silly _DYNAMIC symbols | |
6560 # are required to link). | |
6561 if test -n "$old_library"; then | |
6562 func_append newdlprefiles " $dir/$old_library" | |
6563 # Keep a list of preopened convenience libraries to check | |
6564 # that they are being used correctly in the link pass. | |
6565 test -z "$libdir" && \ | |
6566 func_append dlpreconveniencelibs " $dir/$old_library" | |
6567 # Otherwise, use the dlname, so that lt_dlopen finds it. | |
6568 elif test -n "$dlname"; then | |
6569 func_append newdlprefiles " $dir/$dlname" | |
6570 else | |
6571 func_append newdlprefiles " $dir/$linklib" | |
6572 fi | |
6573 ;; | |
6574 esac | |
5457 fi # $pass = dlpreopen | 6575 fi # $pass = dlpreopen |
5458 | 6576 |
5459 if test -z "$libdir"; then | 6577 if test -z "$libdir"; then |
5460 # Link the convenience library | 6578 # Link the convenience library |
5461 if test "$linkmode" = lib; then | 6579 if test "$linkmode" = lib; then |
5469 continue | 6587 continue |
5470 fi | 6588 fi |
5471 | 6589 |
5472 | 6590 |
5473 if test "$linkmode" = prog && test "$pass" != link; then | 6591 if test "$linkmode" = prog && test "$pass" != link; then |
5474 newlib_search_path="$newlib_search_path $ladir" | 6592 func_append newlib_search_path " $ladir" |
5475 deplibs="$lib $deplibs" | 6593 deplibs="$lib $deplibs" |
5476 | 6594 |
5477 linkalldeplibs=no | 6595 linkalldeplibs=no |
5478 if test "$link_all_deplibs" != no || test -z "$library_names" || | 6596 if test "$link_all_deplibs" != no || test -z "$library_names" || |
5479 test "$build_libtool_libs" = no; then | 6597 test "$build_libtool_libs" = no; then |
5482 | 6600 |
5483 tmp_libs= | 6601 tmp_libs= |
5484 for deplib in $dependency_libs; do | 6602 for deplib in $dependency_libs; do |
5485 case $deplib in | 6603 case $deplib in |
5486 -L*) func_stripname '-L' '' "$deplib" | 6604 -L*) func_stripname '-L' '' "$deplib" |
5487 newlib_search_path="$newlib_search_path $func_stripname_result" | 6605 func_resolve_sysroot "$func_stripname_result" |
6606 func_append newlib_search_path " $func_resolve_sysroot_result" | |
5488 ;; | 6607 ;; |
5489 esac | 6608 esac |
5490 # Need to link against all dependency_libs? | 6609 # Need to link against all dependency_libs? |
5491 if test "$linkalldeplibs" = yes; then | 6610 if test "$linkalldeplibs" = yes; then |
5492 deplibs="$deplib $deplibs" | 6611 deplibs="$deplib $deplibs" |
5493 else | 6612 else |
5494 # Need to hardcode shared library paths | 6613 # Need to hardcode shared library paths |
5495 # or/and link against static libraries | 6614 # or/and link against static libraries |
5496 newdependency_libs="$deplib $newdependency_libs" | 6615 newdependency_libs="$deplib $newdependency_libs" |
5497 fi | 6616 fi |
5498 if $opt_duplicate_deps ; then | 6617 if $opt_preserve_dup_deps ; then |
5499 case "$tmp_libs " in | 6618 case "$tmp_libs " in |
5500 *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; | 6619 *" $deplib "*) func_append specialdeplibs " $deplib" ;; |
5501 esac | 6620 esac |
5502 fi | 6621 fi |
5503 tmp_libs="$tmp_libs $deplib" | 6622 func_append tmp_libs " $deplib" |
5504 done # for deplib | 6623 done # for deplib |
5505 continue | 6624 continue |
5506 fi # $linkmode = prog... | 6625 fi # $linkmode = prog... |
5507 | 6626 |
5508 if test "$linkmode,$pass" = "prog,link"; then | 6627 if test "$linkmode,$pass" = "prog,link"; then |
5513 # We need to hardcode the library path | 6632 # We need to hardcode the library path |
5514 if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then | 6633 if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then |
5515 # Make sure the rpath contains only unique directories. | 6634 # Make sure the rpath contains only unique directories. |
5516 case "$temp_rpath:" in | 6635 case "$temp_rpath:" in |
5517 *"$absdir:"*) ;; | 6636 *"$absdir:"*) ;; |
5518 *) temp_rpath="$temp_rpath$absdir:" ;; | 6637 *) func_append temp_rpath "$absdir:" ;; |
5519 esac | 6638 esac |
5520 fi | 6639 fi |
5521 | 6640 |
5522 # Hardcode the library path. | 6641 # Hardcode the library path. |
5523 # Skip directories that are in the system default run-time | 6642 # Skip directories that are in the system default run-time |
5525 case " $sys_lib_dlsearch_path " in | 6644 case " $sys_lib_dlsearch_path " in |
5526 *" $absdir "*) ;; | 6645 *" $absdir "*) ;; |
5527 *) | 6646 *) |
5528 case "$compile_rpath " in | 6647 case "$compile_rpath " in |
5529 *" $absdir "*) ;; | 6648 *" $absdir "*) ;; |
5530 *) compile_rpath="$compile_rpath $absdir" | 6649 *) func_append compile_rpath " $absdir" ;; |
5531 esac | 6650 esac |
5532 ;; | 6651 ;; |
5533 esac | 6652 esac |
5534 case " $sys_lib_dlsearch_path " in | 6653 case " $sys_lib_dlsearch_path " in |
5535 *" $libdir "*) ;; | 6654 *" $libdir "*) ;; |
5536 *) | 6655 *) |
5537 case "$finalize_rpath " in | 6656 case "$finalize_rpath " in |
5538 *" $libdir "*) ;; | 6657 *" $libdir "*) ;; |
5539 *) finalize_rpath="$finalize_rpath $libdir" | 6658 *) func_append finalize_rpath " $libdir" ;; |
5540 esac | 6659 esac |
5541 ;; | 6660 ;; |
5542 esac | 6661 esac |
5543 fi # $linkmode,$pass = prog,link... | 6662 fi # $linkmode,$pass = prog,link... |
5544 | 6663 |
5559 if test -n "$library_names" && | 6678 if test -n "$library_names" && |
5560 { test "$use_static_libs" = no || test -z "$old_library"; }; then | 6679 { test "$use_static_libs" = no || test -z "$old_library"; }; then |
5561 case $host in | 6680 case $host in |
5562 *cygwin* | *mingw* | *cegcc*) | 6681 *cygwin* | *mingw* | *cegcc*) |
5563 # No point in relinking DLLs because paths are not encoded | 6682 # No point in relinking DLLs because paths are not encoded |
5564 notinst_deplibs="$notinst_deplibs $lib" | 6683 func_append notinst_deplibs " $lib" |
5565 need_relink=no | 6684 need_relink=no |
5566 ;; | 6685 ;; |
5567 *) | 6686 *) |
5568 if test "$installed" = no; then | 6687 if test "$installed" = no; then |
5569 notinst_deplibs="$notinst_deplibs $lib" | 6688 func_append notinst_deplibs " $lib" |
5570 need_relink=yes | 6689 need_relink=yes |
5571 fi | 6690 fi |
5572 ;; | 6691 ;; |
5573 esac | 6692 esac |
5574 # This is a shared library | 6693 # This is a shared library |
5581 dlopenmodule="$dlpremoduletest" | 6700 dlopenmodule="$dlpremoduletest" |
5582 break | 6701 break |
5583 fi | 6702 fi |
5584 done | 6703 done |
5585 if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then | 6704 if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then |
5586 $ECHO | 6705 echo |
5587 if test "$linkmode" = prog; then | 6706 if test "$linkmode" = prog; then |
5588 $ECHO "*** Warning: Linking the executable $output against the loadable module" | 6707 $ECHO "*** Warning: Linking the executable $output against the loadable module" |
5589 else | 6708 else |
5590 $ECHO "*** Warning: Linking the shared library $output against the loadable module" | 6709 $ECHO "*** Warning: Linking the shared library $output against the loadable module" |
5591 fi | 6710 fi |
5599 case " $sys_lib_dlsearch_path " in | 6718 case " $sys_lib_dlsearch_path " in |
5600 *" $absdir "*) ;; | 6719 *" $absdir "*) ;; |
5601 *) | 6720 *) |
5602 case "$compile_rpath " in | 6721 case "$compile_rpath " in |
5603 *" $absdir "*) ;; | 6722 *" $absdir "*) ;; |
5604 *) compile_rpath="$compile_rpath $absdir" | 6723 *) func_append compile_rpath " $absdir" ;; |
5605 esac | 6724 esac |
5606 ;; | 6725 ;; |
5607 esac | 6726 esac |
5608 case " $sys_lib_dlsearch_path " in | 6727 case " $sys_lib_dlsearch_path " in |
5609 *" $libdir "*) ;; | 6728 *" $libdir "*) ;; |
5610 *) | 6729 *) |
5611 case "$finalize_rpath " in | 6730 case "$finalize_rpath " in |
5612 *" $libdir "*) ;; | 6731 *" $libdir "*) ;; |
5613 *) finalize_rpath="$finalize_rpath $libdir" | 6732 *) func_append finalize_rpath " $libdir" ;; |
5614 esac | 6733 esac |
5615 ;; | 6734 ;; |
5616 esac | 6735 esac |
5617 fi | 6736 fi |
5618 | 6737 |
5662 # make sure the library variables are pointing to the new library | 6781 # make sure the library variables are pointing to the new library |
5663 dir=$output_objdir | 6782 dir=$output_objdir |
5664 linklib=$newlib | 6783 linklib=$newlib |
5665 fi # test -n "$old_archive_from_expsyms_cmds" | 6784 fi # test -n "$old_archive_from_expsyms_cmds" |
5666 | 6785 |
5667 if test "$linkmode" = prog || test "$mode" != relink; then | 6786 if test "$linkmode" = prog || test "$opt_mode" != relink; then |
5668 add_shlibpath= | 6787 add_shlibpath= |
5669 add_dir= | 6788 add_dir= |
5670 add= | 6789 add= |
5671 lib_linked=yes | 6790 lib_linked=yes |
5672 case $hardcode_action in | 6791 case $hardcode_action in |
5684 if /usr/bin/file -L $add 2> /dev/null | | 6803 if /usr/bin/file -L $add 2> /dev/null | |
5685 $GREP ": [^:]* bundle" >/dev/null ; then | 6804 $GREP ": [^:]* bundle" >/dev/null ; then |
5686 if test "X$dlopenmodule" != "X$lib"; then | 6805 if test "X$dlopenmodule" != "X$lib"; then |
5687 $ECHO "*** Warning: lib $linklib is a module, not a shared library" | 6806 $ECHO "*** Warning: lib $linklib is a module, not a shared library" |
5688 if test -z "$old_library" ; then | 6807 if test -z "$old_library" ; then |
5689 $ECHO | 6808 echo |
5690 $ECHO "*** And there doesn't seem to be a static archive available" | 6809 echo "*** And there doesn't seem to be a static archive available" |
5691 $ECHO "*** The link will probably fail, sorry" | 6810 echo "*** The link will probably fail, sorry" |
5692 else | 6811 else |
5693 add="$dir/$old_library" | 6812 add="$dir/$old_library" |
5694 fi | 6813 fi |
5695 elif test -n "$old_library"; then | 6814 elif test -n "$old_library"; then |
5696 add="$dir/$old_library" | 6815 add="$dir/$old_library" |
5718 add_dir="-L$dir" | 6837 add_dir="-L$dir" |
5719 # Try looking first in the location we're being installed to. | 6838 # Try looking first in the location we're being installed to. |
5720 if test -n "$inst_prefix_dir"; then | 6839 if test -n "$inst_prefix_dir"; then |
5721 case $libdir in | 6840 case $libdir in |
5722 [\\/]*) | 6841 [\\/]*) |
5723 add_dir="$add_dir -L$inst_prefix_dir$libdir" | 6842 func_append add_dir " -L$inst_prefix_dir$libdir" |
5724 ;; | 6843 ;; |
5725 esac | 6844 esac |
5726 fi | 6845 fi |
5727 add="-l$name" | 6846 add="-l$name" |
5728 elif test "$hardcode_shlibpath_var" = yes; then | 6847 elif test "$hardcode_shlibpath_var" = yes; then |
5740 fi | 6859 fi |
5741 | 6860 |
5742 if test -n "$add_shlibpath"; then | 6861 if test -n "$add_shlibpath"; then |
5743 case :$compile_shlibpath: in | 6862 case :$compile_shlibpath: in |
5744 *":$add_shlibpath:"*) ;; | 6863 *":$add_shlibpath:"*) ;; |
5745 *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;; | 6864 *) func_append compile_shlibpath "$add_shlibpath:" ;; |
5746 esac | 6865 esac |
5747 fi | 6866 fi |
5748 if test "$linkmode" = prog; then | 6867 if test "$linkmode" = prog; then |
5749 test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" | 6868 test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" |
5750 test -n "$add" && compile_deplibs="$add $compile_deplibs" | 6869 test -n "$add" && compile_deplibs="$add $compile_deplibs" |
5754 if test "$hardcode_direct" != yes && | 6873 if test "$hardcode_direct" != yes && |
5755 test "$hardcode_minus_L" != yes && | 6874 test "$hardcode_minus_L" != yes && |
5756 test "$hardcode_shlibpath_var" = yes; then | 6875 test "$hardcode_shlibpath_var" = yes; then |
5757 case :$finalize_shlibpath: in | 6876 case :$finalize_shlibpath: in |
5758 *":$libdir:"*) ;; | 6877 *":$libdir:"*) ;; |
5759 *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; | 6878 *) func_append finalize_shlibpath "$libdir:" ;; |
5760 esac | 6879 esac |
5761 fi | 6880 fi |
5762 fi | 6881 fi |
5763 fi | 6882 fi |
5764 | 6883 |
5765 if test "$linkmode" = prog || test "$mode" = relink; then | 6884 if test "$linkmode" = prog || test "$opt_mode" = relink; then |
5766 add_shlibpath= | 6885 add_shlibpath= |
5767 add_dir= | 6886 add_dir= |
5768 add= | 6887 add= |
5769 # Finalize command for both is simple: just hardcode it. | 6888 # Finalize command for both is simple: just hardcode it. |
5770 if test "$hardcode_direct" = yes && | 6889 if test "$hardcode_direct" = yes && |
5774 add_dir="-L$libdir" | 6893 add_dir="-L$libdir" |
5775 add="-l$name" | 6894 add="-l$name" |
5776 elif test "$hardcode_shlibpath_var" = yes; then | 6895 elif test "$hardcode_shlibpath_var" = yes; then |
5777 case :$finalize_shlibpath: in | 6896 case :$finalize_shlibpath: in |
5778 *":$libdir:"*) ;; | 6897 *":$libdir:"*) ;; |
5779 *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; | 6898 *) func_append finalize_shlibpath "$libdir:" ;; |
5780 esac | 6899 esac |
5781 add="-l$name" | 6900 add="-l$name" |
5782 elif test "$hardcode_automatic" = yes; then | 6901 elif test "$hardcode_automatic" = yes; then |
5783 if test -n "$inst_prefix_dir" && | 6902 if test -n "$inst_prefix_dir" && |
5784 test -f "$inst_prefix_dir$libdir/$linklib" ; then | 6903 test -f "$inst_prefix_dir$libdir/$linklib" ; then |
5791 add_dir="-L$libdir" | 6910 add_dir="-L$libdir" |
5792 # Try looking first in the location we're being installed to. | 6911 # Try looking first in the location we're being installed to. |
5793 if test -n "$inst_prefix_dir"; then | 6912 if test -n "$inst_prefix_dir"; then |
5794 case $libdir in | 6913 case $libdir in |
5795 [\\/]*) | 6914 [\\/]*) |
5796 add_dir="$add_dir -L$inst_prefix_dir$libdir" | 6915 func_append add_dir " -L$inst_prefix_dir$libdir" |
5797 ;; | 6916 ;; |
5798 esac | 6917 esac |
5799 fi | 6918 fi |
5800 add="-l$name" | 6919 add="-l$name" |
5801 fi | 6920 fi |
5826 # We're trying link a shared library against a static one | 6945 # We're trying link a shared library against a static one |
5827 # but the system doesn't support it. | 6946 # but the system doesn't support it. |
5828 | 6947 |
5829 # Just print a warning and add the library to dependency_libs so | 6948 # Just print a warning and add the library to dependency_libs so |
5830 # that the program can be linked against the static library. | 6949 # that the program can be linked against the static library. |
5831 $ECHO | 6950 echo |
5832 $ECHO "*** Warning: This system can not link to static lib archive $lib." | 6951 $ECHO "*** Warning: This system can not link to static lib archive $lib." |
5833 $ECHO "*** I have the capability to make that library automatically link in when" | 6952 echo "*** I have the capability to make that library automatically link in when" |
5834 $ECHO "*** you link to this library. But I can only do this if you have a" | 6953 echo "*** you link to this library. But I can only do this if you have a" |
5835 $ECHO "*** shared version of the library, which you do not appear to have." | 6954 echo "*** shared version of the library, which you do not appear to have." |
5836 if test "$module" = yes; then | 6955 if test "$module" = yes; then |
5837 $ECHO "*** But as you try to build a module library, libtool will still create " | 6956 echo "*** But as you try to build a module library, libtool will still create " |
5838 $ECHO "*** a static module, that should work as long as the dlopening application" | 6957 echo "*** a static module, that should work as long as the dlopening application" |
5839 $ECHO "*** is linked with the -dlopen flag to resolve symbols at runtime." | 6958 echo "*** is linked with the -dlopen flag to resolve symbols at runtime." |
5840 if test -z "$global_symbol_pipe"; then | 6959 if test -z "$global_symbol_pipe"; then |
5841 $ECHO | 6960 echo |
5842 $ECHO "*** However, this would only work if libtool was able to extract symbol" | 6961 echo "*** However, this would only work if libtool was able to extract symbol" |
5843 $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could" | 6962 echo "*** lists from a program, using \`nm' or equivalent, but libtool could" |
5844 $ECHO "*** not find such a program. So, this module is probably useless." | 6963 echo "*** not find such a program. So, this module is probably useless." |
5845 $ECHO "*** \`nm' from GNU binutils and a full rebuild may help." | 6964 echo "*** \`nm' from GNU binutils and a full rebuild may help." |
5846 fi | 6965 fi |
5847 if test "$build_old_libs" = no; then | 6966 if test "$build_old_libs" = no; then |
5848 build_libtool_libs=module | 6967 build_libtool_libs=module |
5849 build_old_libs=yes | 6968 build_old_libs=yes |
5850 else | 6969 else |
5868 case $libdir in | 6987 case $libdir in |
5869 -R*) func_stripname '-R' '' "$libdir" | 6988 -R*) func_stripname '-R' '' "$libdir" |
5870 temp_xrpath=$func_stripname_result | 6989 temp_xrpath=$func_stripname_result |
5871 case " $xrpath " in | 6990 case " $xrpath " in |
5872 *" $temp_xrpath "*) ;; | 6991 *" $temp_xrpath "*) ;; |
5873 *) xrpath="$xrpath $temp_xrpath";; | 6992 *) func_append xrpath " $temp_xrpath";; |
5874 esac;; | 6993 esac;; |
5875 *) temp_deplibs="$temp_deplibs $libdir";; | 6994 *) func_append temp_deplibs " $libdir";; |
5876 esac | 6995 esac |
5877 done | 6996 done |
5878 dependency_libs="$temp_deplibs" | 6997 dependency_libs="$temp_deplibs" |
5879 fi | 6998 fi |
5880 | 6999 |
5881 newlib_search_path="$newlib_search_path $absdir" | 7000 func_append newlib_search_path " $absdir" |
5882 # Link against this library | 7001 # Link against this library |
5883 test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" | 7002 test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" |
5884 # ... and its dependency_libs | 7003 # ... and its dependency_libs |
5885 tmp_libs= | 7004 tmp_libs= |
5886 for deplib in $dependency_libs; do | 7005 for deplib in $dependency_libs; do |
5887 newdependency_libs="$deplib $newdependency_libs" | 7006 newdependency_libs="$deplib $newdependency_libs" |
5888 if $opt_duplicate_deps ; then | 7007 case $deplib in |
7008 -L*) func_stripname '-L' '' "$deplib" | |
7009 func_resolve_sysroot "$func_stripname_result";; | |
7010 *) func_resolve_sysroot "$deplib" ;; | |
7011 esac | |
7012 if $opt_preserve_dup_deps ; then | |
5889 case "$tmp_libs " in | 7013 case "$tmp_libs " in |
5890 *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; | 7014 *" $func_resolve_sysroot_result "*) |
7015 func_append specialdeplibs " $func_resolve_sysroot_result" ;; | |
5891 esac | 7016 esac |
5892 fi | 7017 fi |
5893 tmp_libs="$tmp_libs $deplib" | 7018 func_append tmp_libs " $func_resolve_sysroot_result" |
5894 done | 7019 done |
5895 | 7020 |
5896 if test "$link_all_deplibs" != no; then | 7021 if test "$link_all_deplibs" != no; then |
5897 # Add the search paths of all dependency libraries | 7022 # Add the search paths of all dependency libraries |
5898 for deplib in $dependency_libs; do | 7023 for deplib in $dependency_libs; do |
5899 path= | 7024 path= |
5900 case $deplib in | 7025 case $deplib in |
5901 -L*) path="$deplib" ;; | 7026 -L*) path="$deplib" ;; |
5902 *.la) | 7027 *.la) |
7028 func_resolve_sysroot "$deplib" | |
7029 deplib=$func_resolve_sysroot_result | |
5903 func_dirname "$deplib" "" "." | 7030 func_dirname "$deplib" "" "." |
5904 dir="$func_dirname_result" | 7031 dir=$func_dirname_result |
5905 # We need an absolute path. | 7032 # We need an absolute path. |
5906 case $dir in | 7033 case $dir in |
5907 [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; | 7034 [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; |
5908 *) | 7035 *) |
5909 absdir=`cd "$dir" && pwd` | 7036 absdir=`cd "$dir" && pwd` |
5926 depdepl="$absdir/$objdir/$depdepl" | 7053 depdepl="$absdir/$objdir/$depdepl" |
5927 darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` | 7054 darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` |
5928 if test -z "$darwin_install_name"; then | 7055 if test -z "$darwin_install_name"; then |
5929 darwin_install_name=`${OTOOL64} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` | 7056 darwin_install_name=`${OTOOL64} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` |
5930 fi | 7057 fi |
5931 compiler_flags="$compiler_flags ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}" | 7058 func_append compiler_flags " ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}" |
5932 linker_flags="$linker_flags -dylib_file ${darwin_install_name}:${depdepl}" | 7059 func_append linker_flags " -dylib_file ${darwin_install_name}:${depdepl}" |
5933 path= | 7060 path= |
5934 fi | 7061 fi |
5935 fi | 7062 fi |
5936 ;; | 7063 ;; |
5937 *) | 7064 *) |
5960 if test "$pass" = link; then | 7087 if test "$pass" = link; then |
5961 if test "$linkmode" = "prog"; then | 7088 if test "$linkmode" = "prog"; then |
5962 compile_deplibs="$new_inherited_linker_flags $compile_deplibs" | 7089 compile_deplibs="$new_inherited_linker_flags $compile_deplibs" |
5963 finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" | 7090 finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" |
5964 else | 7091 else |
5965 compiler_flags="$compiler_flags "`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` | 7092 compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` |
5966 fi | 7093 fi |
5967 fi | 7094 fi |
5968 dependency_libs="$newdependency_libs" | 7095 dependency_libs="$newdependency_libs" |
5969 if test "$pass" = dlpreopen; then | 7096 if test "$pass" = dlpreopen; then |
5970 # Link the dlpreopened libraries before other libraries | 7097 # Link the dlpreopened libraries before other libraries |
5977 # Make sure lib_search_path contains only unique directories. | 7104 # Make sure lib_search_path contains only unique directories. |
5978 lib_search_path= | 7105 lib_search_path= |
5979 for dir in $newlib_search_path; do | 7106 for dir in $newlib_search_path; do |
5980 case "$lib_search_path " in | 7107 case "$lib_search_path " in |
5981 *" $dir "*) ;; | 7108 *" $dir "*) ;; |
5982 *) lib_search_path="$lib_search_path $dir" ;; | 7109 *) func_append lib_search_path " $dir" ;; |
5983 esac | 7110 esac |
5984 done | 7111 done |
5985 newlib_search_path= | 7112 newlib_search_path= |
5986 fi | 7113 fi |
5987 | 7114 |
6035 for deplib in $new_libs; do | 7162 for deplib in $new_libs; do |
6036 case $deplib in | 7163 case $deplib in |
6037 -L*) | 7164 -L*) |
6038 case " $tmp_libs " in | 7165 case " $tmp_libs " in |
6039 *" $deplib "*) ;; | 7166 *" $deplib "*) ;; |
6040 *) tmp_libs="$tmp_libs $deplib" ;; | 7167 *) func_append tmp_libs " $deplib" ;; |
6041 esac | 7168 esac |
6042 ;; | 7169 ;; |
6043 *) tmp_libs="$tmp_libs $deplib" ;; | 7170 *) func_append tmp_libs " $deplib" ;; |
6044 esac | 7171 esac |
6045 done | 7172 done |
6046 eval $var=\"$tmp_libs\" | 7173 eval $var=\"$tmp_libs\" |
6047 done # for var | 7174 done # for var |
6048 fi | 7175 fi |
6054 *" $i "*) | 7181 *" $i "*) |
6055 i="" | 7182 i="" |
6056 ;; | 7183 ;; |
6057 esac | 7184 esac |
6058 if test -n "$i" ; then | 7185 if test -n "$i" ; then |
6059 tmp_libs="$tmp_libs $i" | 7186 func_append tmp_libs " $i" |
6060 fi | 7187 fi |
6061 done | 7188 done |
6062 dependency_libs=$tmp_libs | 7189 dependency_libs=$tmp_libs |
6063 done # for pass | 7190 done # for pass |
6064 if test "$linkmode" = prog; then | 7191 if test "$linkmode" = prog; then |
6095 func_warning "\`-export-symbols' is ignored for archives" | 7222 func_warning "\`-export-symbols' is ignored for archives" |
6096 | 7223 |
6097 # Now set the variables for building old libraries. | 7224 # Now set the variables for building old libraries. |
6098 build_libtool_libs=no | 7225 build_libtool_libs=no |
6099 oldlibs="$output" | 7226 oldlibs="$output" |
6100 objs="$objs$old_deplibs" | 7227 func_append objs "$old_deplibs" |
6101 ;; | 7228 ;; |
6102 | 7229 |
6103 lib) | 7230 lib) |
6104 # Make sure we only generate libraries of the form `libNAME.la'. | 7231 # Make sure we only generate libraries of the form `libNAME.la'. |
6105 case $outputname in | 7232 case $outputname in |
6128 | 7255 |
6129 if test -n "$objs"; then | 7256 if test -n "$objs"; then |
6130 if test "$deplibs_check_method" != pass_all; then | 7257 if test "$deplibs_check_method" != pass_all; then |
6131 func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs" | 7258 func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs" |
6132 else | 7259 else |
6133 $ECHO | 7260 echo |
6134 $ECHO "*** Warning: Linking the shared library $output against the non-libtool" | 7261 $ECHO "*** Warning: Linking the shared library $output against the non-libtool" |
6135 $ECHO "*** objects $objs is not portable!" | 7262 $ECHO "*** objects $objs is not portable!" |
6136 libobjs="$libobjs $objs" | 7263 func_append libobjs " $objs" |
6137 fi | 7264 fi |
6138 fi | 7265 fi |
6139 | 7266 |
6140 test "$dlself" != no && \ | 7267 test "$dlself" != no && \ |
6141 func_warning "\`-dlopen self' is ignored for libtool libraries" | 7268 func_warning "\`-dlopen self' is ignored for libtool libraries" |
6196 func_arith $number_major + $number_minor | 7323 func_arith $number_major + $number_minor |
6197 current=$func_arith_result | 7324 current=$func_arith_result |
6198 age="$number_minor" | 7325 age="$number_minor" |
6199 revision="$number_revision" | 7326 revision="$number_revision" |
6200 ;; | 7327 ;; |
6201 freebsd-aout|freebsd-elf|sunos) | 7328 freebsd-aout|freebsd-elf|qnx|sunos) |
6202 current="$number_major" | 7329 current="$number_major" |
6203 revision="$number_minor" | 7330 revision="$number_minor" |
6204 age="0" | 7331 age="0" |
6205 ;; | 7332 ;; |
6206 irix|nonstopux) | 7333 irix|nonstopux) |
6332 loop=$func_arith_result | 7459 loop=$func_arith_result |
6333 verstring="$verstring:${iface}.0" | 7460 verstring="$verstring:${iface}.0" |
6334 done | 7461 done |
6335 | 7462 |
6336 # Make executables depend on our current version. | 7463 # Make executables depend on our current version. |
6337 verstring="$verstring:${current}.0" | 7464 func_append verstring ":${current}.0" |
6338 ;; | 7465 ;; |
6339 | 7466 |
6340 qnx) | 7467 qnx) |
6341 major=".$current" | 7468 major=".$current" |
6342 versuffix=".$current" | 7469 versuffix=".$current" |
6400 fi | 7527 fi |
6401 | 7528 |
6402 fi | 7529 fi |
6403 | 7530 |
6404 func_generate_dlsyms "$libname" "$libname" "yes" | 7531 func_generate_dlsyms "$libname" "$libname" "yes" |
6405 libobjs="$libobjs $symfileobj" | 7532 func_append libobjs " $symfileobj" |
6406 test "X$libobjs" = "X " && libobjs= | 7533 test "X$libobjs" = "X " && libobjs= |
6407 | 7534 |
6408 if test "$mode" != relink; then | 7535 if test "$opt_mode" != relink; then |
6409 # Remove our outputs, but don't remove object files since they | 7536 # Remove our outputs, but don't remove object files since they |
6410 # may have been created when compiling PIC objects. | 7537 # may have been created when compiling PIC objects. |
6411 removelist= | 7538 removelist= |
6412 tempremovelist=`$ECHO "$output_objdir/*"` | 7539 tempremovelist=`$ECHO "$output_objdir/*"` |
6413 for p in $tempremovelist; do | 7540 for p in $tempremovelist; do |
6419 if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 | 7546 if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 |
6420 then | 7547 then |
6421 continue | 7548 continue |
6422 fi | 7549 fi |
6423 fi | 7550 fi |
6424 removelist="$removelist $p" | 7551 func_append removelist " $p" |
6425 ;; | 7552 ;; |
6426 *) ;; | 7553 *) ;; |
6427 esac | 7554 esac |
6428 done | 7555 done |
6429 test -n "$removelist" && \ | 7556 test -n "$removelist" && \ |
6430 func_show_eval "${RM}r \$removelist" | 7557 func_show_eval "${RM}r \$removelist" |
6431 fi | 7558 fi |
6432 | 7559 |
6433 # Now set the variables for building old libraries. | 7560 # Now set the variables for building old libraries. |
6434 if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then | 7561 if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then |
6435 oldlibs="$oldlibs $output_objdir/$libname.$libext" | 7562 func_append oldlibs " $output_objdir/$libname.$libext" |
6436 | 7563 |
6437 # Transform .lo files to .o files. | 7564 # Transform .lo files to .o files. |
6438 oldobjs="$objs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP` | 7565 oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; $lo2o" | $NL2SP` |
6439 fi | 7566 fi |
6440 | 7567 |
6441 # Eliminate all temporary directories. | 7568 # Eliminate all temporary directories. |
6442 #for path in $notinst_path; do | 7569 #for path in $notinst_path; do |
6443 # lib_search_path=`$ECHO "X$lib_search_path " | $Xsed -e "s% $path % %g"` | 7570 # lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"` |
6444 # deplibs=`$ECHO "X$deplibs " | $Xsed -e "s% -L$path % %g"` | 7571 # deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"` |
6445 # dependency_libs=`$ECHO "X$dependency_libs " | $Xsed -e "s% -L$path % %g"` | 7572 # dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"` |
6446 #done | 7573 #done |
6447 | 7574 |
6448 if test -n "$xrpath"; then | 7575 if test -n "$xrpath"; then |
6449 # If the user specified any rpath flags, then add them. | 7576 # If the user specified any rpath flags, then add them. |
6450 temp_xrpath= | 7577 temp_xrpath= |
6451 for libdir in $xrpath; do | 7578 for libdir in $xrpath; do |
6452 temp_xrpath="$temp_xrpath -R$libdir" | 7579 func_replace_sysroot "$libdir" |
7580 func_append temp_xrpath " -R$func_replace_sysroot_result" | |
6453 case "$finalize_rpath " in | 7581 case "$finalize_rpath " in |
6454 *" $libdir "*) ;; | 7582 *" $libdir "*) ;; |
6455 *) finalize_rpath="$finalize_rpath $libdir" ;; | 7583 *) func_append finalize_rpath " $libdir" ;; |
6456 esac | 7584 esac |
6457 done | 7585 done |
6458 if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then | 7586 if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then |
6459 dependency_libs="$temp_xrpath $dependency_libs" | 7587 dependency_libs="$temp_xrpath $dependency_libs" |
6460 fi | 7588 fi |
6464 old_dlfiles="$dlfiles" | 7592 old_dlfiles="$dlfiles" |
6465 dlfiles= | 7593 dlfiles= |
6466 for lib in $old_dlfiles; do | 7594 for lib in $old_dlfiles; do |
6467 case " $dlprefiles $dlfiles " in | 7595 case " $dlprefiles $dlfiles " in |
6468 *" $lib "*) ;; | 7596 *" $lib "*) ;; |
6469 *) dlfiles="$dlfiles $lib" ;; | 7597 *) func_append dlfiles " $lib" ;; |
6470 esac | 7598 esac |
6471 done | 7599 done |
6472 | 7600 |
6473 # Make sure dlprefiles contains only unique files | 7601 # Make sure dlprefiles contains only unique files |
6474 old_dlprefiles="$dlprefiles" | 7602 old_dlprefiles="$dlprefiles" |
6475 dlprefiles= | 7603 dlprefiles= |
6476 for lib in $old_dlprefiles; do | 7604 for lib in $old_dlprefiles; do |
6477 case "$dlprefiles " in | 7605 case "$dlprefiles " in |
6478 *" $lib "*) ;; | 7606 *" $lib "*) ;; |
6479 *) dlprefiles="$dlprefiles $lib" ;; | 7607 *) func_append dlprefiles " $lib" ;; |
6480 esac | 7608 esac |
6481 done | 7609 done |
6482 | 7610 |
6483 if test "$build_libtool_libs" = yes; then | 7611 if test "$build_libtool_libs" = yes; then |
6484 if test -n "$rpath"; then | 7612 if test -n "$rpath"; then |
6485 case $host in | 7613 case $host in |
6486 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc*) | 7614 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*) |
6487 # these systems don't actually have a c library (as such)! | 7615 # these systems don't actually have a c library (as such)! |
6488 ;; | 7616 ;; |
6489 *-*-rhapsody* | *-*-darwin1.[012]) | 7617 *-*-rhapsody* | *-*-darwin1.[012]) |
6490 # Rhapsody C library is in the System framework | 7618 # Rhapsody C library is in the System framework |
6491 deplibs="$deplibs System.ltframework" | 7619 func_append deplibs " System.ltframework" |
6492 ;; | 7620 ;; |
6493 *-*-netbsd*) | 7621 *-*-netbsd*) |
6494 # Don't link with libc until the a.out ld.so is fixed. | 7622 # Don't link with libc until the a.out ld.so is fixed. |
6495 ;; | 7623 ;; |
6496 *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) | 7624 *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) |
6503 # Compiler inserts libc in the correct place for threads to work | 7631 # Compiler inserts libc in the correct place for threads to work |
6504 ;; | 7632 ;; |
6505 *) | 7633 *) |
6506 # Add libc to deplibs on all other systems if necessary. | 7634 # Add libc to deplibs on all other systems if necessary. |
6507 if test "$build_libtool_need_lc" = "yes"; then | 7635 if test "$build_libtool_need_lc" = "yes"; then |
6508 deplibs="$deplibs -lc" | 7636 func_append deplibs " -lc" |
6509 fi | 7637 fi |
6510 ;; | 7638 ;; |
6511 esac | 7639 esac |
6512 fi | 7640 fi |
6513 | 7641 |
6552 func_stripname -l '' "$i" | 7680 func_stripname -l '' "$i" |
6553 name=$func_stripname_result | 7681 name=$func_stripname_result |
6554 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then | 7682 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then |
6555 case " $predeps $postdeps " in | 7683 case " $predeps $postdeps " in |
6556 *" $i "*) | 7684 *" $i "*) |
6557 newdeplibs="$newdeplibs $i" | 7685 func_append newdeplibs " $i" |
6558 i="" | 7686 i="" |
6559 ;; | 7687 ;; |
6560 esac | 7688 esac |
6561 fi | 7689 fi |
6562 if test -n "$i" ; then | 7690 if test -n "$i" ; then |
6563 libname=`eval "\\$ECHO \"$libname_spec\""` | 7691 libname=`eval "\\$ECHO \"$libname_spec\""` |
6564 deplib_matches=`eval "\\$ECHO \"$library_names_spec\""` | 7692 deplib_matches=`eval "\\$ECHO \"$library_names_spec\""` |
6565 set dummy $deplib_matches; shift | 7693 set dummy $deplib_matches; shift |
6566 deplib_match=$1 | 7694 deplib_match=$1 |
6567 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then | 7695 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then |
6568 newdeplibs="$newdeplibs $i" | 7696 func_append newdeplibs " $i" |
6569 else | 7697 else |
6570 droppeddeps=yes | 7698 droppeddeps=yes |
6571 $ECHO | 7699 echo |
6572 $ECHO "*** Warning: dynamic linker does not accept needed library $i." | 7700 $ECHO "*** Warning: dynamic linker does not accept needed library $i." |
6573 $ECHO "*** I have the capability to make that library automatically link in when" | 7701 echo "*** I have the capability to make that library automatically link in when" |
6574 $ECHO "*** you link to this library. But I can only do this if you have a" | 7702 echo "*** you link to this library. But I can only do this if you have a" |
6575 $ECHO "*** shared version of the library, which I believe you do not have" | 7703 echo "*** shared version of the library, which I believe you do not have" |
6576 $ECHO "*** because a test_compile did reveal that the linker did not use it for" | 7704 echo "*** because a test_compile did reveal that the linker did not use it for" |
6577 $ECHO "*** its dynamic dependency list that programs get resolved with at runtime." | 7705 echo "*** its dynamic dependency list that programs get resolved with at runtime." |
6578 fi | 7706 fi |
6579 fi | 7707 fi |
6580 ;; | 7708 ;; |
6581 *) | 7709 *) |
6582 newdeplibs="$newdeplibs $i" | 7710 func_append newdeplibs " $i" |
6583 ;; | 7711 ;; |
6584 esac | 7712 esac |
6585 done | 7713 done |
6586 else | 7714 else |
6587 # Error occurred in the first compile. Let's try to salvage | 7715 # Error occurred in the first compile. Let's try to salvage |
6595 if $LTCC $LTCFLAGS -o conftest conftest.c $i; then | 7723 if $LTCC $LTCFLAGS -o conftest conftest.c $i; then |
6596 ldd_output=`ldd conftest` | 7724 ldd_output=`ldd conftest` |
6597 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then | 7725 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then |
6598 case " $predeps $postdeps " in | 7726 case " $predeps $postdeps " in |
6599 *" $i "*) | 7727 *" $i "*) |
6600 newdeplibs="$newdeplibs $i" | 7728 func_append newdeplibs " $i" |
6601 i="" | 7729 i="" |
6602 ;; | 7730 ;; |
6603 esac | 7731 esac |
6604 fi | 7732 fi |
6605 if test -n "$i" ; then | 7733 if test -n "$i" ; then |
6606 libname=`eval "\\$ECHO \"$libname_spec\""` | 7734 libname=`eval "\\$ECHO \"$libname_spec\""` |
6607 deplib_matches=`eval "\\$ECHO \"$library_names_spec\""` | 7735 deplib_matches=`eval "\\$ECHO \"$library_names_spec\""` |
6608 set dummy $deplib_matches; shift | 7736 set dummy $deplib_matches; shift |
6609 deplib_match=$1 | 7737 deplib_match=$1 |
6610 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then | 7738 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then |
6611 newdeplibs="$newdeplibs $i" | 7739 func_append newdeplibs " $i" |
6612 else | 7740 else |
6613 droppeddeps=yes | 7741 droppeddeps=yes |
6614 $ECHO | 7742 echo |
6615 $ECHO "*** Warning: dynamic linker does not accept needed library $i." | 7743 $ECHO "*** Warning: dynamic linker does not accept needed library $i." |
6616 $ECHO "*** I have the capability to make that library automatically link in when" | 7744 echo "*** I have the capability to make that library automatically link in when" |
6617 $ECHO "*** you link to this library. But I can only do this if you have a" | 7745 echo "*** you link to this library. But I can only do this if you have a" |
6618 $ECHO "*** shared version of the library, which you do not appear to have" | 7746 echo "*** shared version of the library, which you do not appear to have" |
6619 $ECHO "*** because a test_compile did reveal that the linker did not use this one" | 7747 echo "*** because a test_compile did reveal that the linker did not use this one" |
6620 $ECHO "*** as a dynamic dependency that programs can get resolved with at runtime." | 7748 echo "*** as a dynamic dependency that programs can get resolved with at runtime." |
6621 fi | 7749 fi |
6622 fi | 7750 fi |
6623 else | 7751 else |
6624 droppeddeps=yes | 7752 droppeddeps=yes |
6625 $ECHO | 7753 echo |
6626 $ECHO "*** Warning! Library $i is needed by this library but I was not able to" | 7754 $ECHO "*** Warning! Library $i is needed by this library but I was not able to" |
6627 $ECHO "*** make it link in! You will probably need to install it or some" | 7755 echo "*** make it link in! You will probably need to install it or some" |
6628 $ECHO "*** library that it depends on before this library will be fully" | 7756 echo "*** library that it depends on before this library will be fully" |
6629 $ECHO "*** functional. Installing it before continuing would be even better." | 7757 echo "*** functional. Installing it before continuing would be even better." |
6630 fi | 7758 fi |
6631 ;; | 7759 ;; |
6632 *) | 7760 *) |
6633 newdeplibs="$newdeplibs $i" | 7761 func_append newdeplibs " $i" |
6634 ;; | 7762 ;; |
6635 esac | 7763 esac |
6636 done | 7764 done |
6637 fi | 7765 fi |
6638 ;; | 7766 ;; |
6645 func_stripname -l '' "$a_deplib" | 7773 func_stripname -l '' "$a_deplib" |
6646 name=$func_stripname_result | 7774 name=$func_stripname_result |
6647 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then | 7775 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then |
6648 case " $predeps $postdeps " in | 7776 case " $predeps $postdeps " in |
6649 *" $a_deplib "*) | 7777 *" $a_deplib "*) |
6650 newdeplibs="$newdeplibs $a_deplib" | 7778 func_append newdeplibs " $a_deplib" |
6651 a_deplib="" | 7779 a_deplib="" |
6652 ;; | 7780 ;; |
6653 esac | 7781 esac |
6654 fi | 7782 fi |
6655 if test -n "$a_deplib" ; then | 7783 if test -n "$a_deplib" ; then |
6656 libname=`eval "\\$ECHO \"$libname_spec\""` | 7784 libname=`eval "\\$ECHO \"$libname_spec\""` |
7785 if test -n "$file_magic_glob"; then | |
7786 libnameglob=`func_echo_all "$libname" | $SED -e $file_magic_glob` | |
7787 else | |
7788 libnameglob=$libname | |
7789 fi | |
7790 test "$want_nocaseglob" = yes && nocaseglob=`shopt -p nocaseglob` | |
6657 for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do | 7791 for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do |
6658 potential_libs=`ls $i/$libname[.-]* 2>/dev/null` | 7792 if test "$want_nocaseglob" = yes; then |
7793 shopt -s nocaseglob | |
7794 potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null` | |
7795 $nocaseglob | |
7796 else | |
7797 potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null` | |
7798 fi | |
6659 for potent_lib in $potential_libs; do | 7799 for potent_lib in $potential_libs; do |
6660 # Follow soft links. | 7800 # Follow soft links. |
6661 if ls -lLd "$potent_lib" 2>/dev/null | | 7801 if ls -lLd "$potent_lib" 2>/dev/null | |
6662 $GREP " -> " >/dev/null; then | 7802 $GREP " -> " >/dev/null; then |
6663 continue | 7803 continue |
6670 potlib="$potent_lib" | 7810 potlib="$potent_lib" |
6671 while test -h "$potlib" 2>/dev/null; do | 7811 while test -h "$potlib" 2>/dev/null; do |
6672 potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` | 7812 potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` |
6673 case $potliblink in | 7813 case $potliblink in |
6674 [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; | 7814 [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; |
6675 *) potlib=`$ECHO "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";; | 7815 *) potlib=`$ECHO "$potlib" | $SED 's,[^/]*$,,'`"$potliblink";; |
6676 esac | 7816 esac |
6677 done | 7817 done |
6678 if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | | 7818 if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | |
6679 $SED -e 10q | | 7819 $SED -e 10q | |
6680 $EGREP "$file_magic_regex" > /dev/null; then | 7820 $EGREP "$file_magic_regex" > /dev/null; then |
6681 newdeplibs="$newdeplibs $a_deplib" | 7821 func_append newdeplibs " $a_deplib" |
6682 a_deplib="" | 7822 a_deplib="" |
6683 break 2 | 7823 break 2 |
6684 fi | 7824 fi |
6685 done | 7825 done |
6686 done | 7826 done |
6687 fi | 7827 fi |
6688 if test -n "$a_deplib" ; then | 7828 if test -n "$a_deplib" ; then |
6689 droppeddeps=yes | 7829 droppeddeps=yes |
6690 $ECHO | 7830 echo |
6691 $ECHO "*** Warning: linker path does not have real file for library $a_deplib." | 7831 $ECHO "*** Warning: linker path does not have real file for library $a_deplib." |
6692 $ECHO "*** I have the capability to make that library automatically link in when" | 7832 echo "*** I have the capability to make that library automatically link in when" |
6693 $ECHO "*** you link to this library. But I can only do this if you have a" | 7833 echo "*** you link to this library. But I can only do this if you have a" |
6694 $ECHO "*** shared version of the library, which you do not appear to have" | 7834 echo "*** shared version of the library, which you do not appear to have" |
6695 $ECHO "*** because I did check the linker path looking for a file starting" | 7835 echo "*** because I did check the linker path looking for a file starting" |
6696 if test -z "$potlib" ; then | 7836 if test -z "$potlib" ; then |
6697 $ECHO "*** with $libname but no candidates were found. (...for file magic test)" | 7837 $ECHO "*** with $libname but no candidates were found. (...for file magic test)" |
6698 else | 7838 else |
6699 $ECHO "*** with $libname and none of the candidates passed a file format test" | 7839 $ECHO "*** with $libname and none of the candidates passed a file format test" |
6700 $ECHO "*** using a file magic. Last file checked: $potlib" | 7840 $ECHO "*** using a file magic. Last file checked: $potlib" |
6701 fi | 7841 fi |
6702 fi | 7842 fi |
6703 ;; | 7843 ;; |
6704 *) | 7844 *) |
6705 # Add a -L argument. | 7845 # Add a -L argument. |
6706 newdeplibs="$newdeplibs $a_deplib" | 7846 func_append newdeplibs " $a_deplib" |
6707 ;; | 7847 ;; |
6708 esac | 7848 esac |
6709 done # Gone through all deplibs. | 7849 done # Gone through all deplibs. |
6710 ;; | 7850 ;; |
6711 match_pattern*) | 7851 match_pattern*) |
6717 func_stripname -l '' "$a_deplib" | 7857 func_stripname -l '' "$a_deplib" |
6718 name=$func_stripname_result | 7858 name=$func_stripname_result |
6719 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then | 7859 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then |
6720 case " $predeps $postdeps " in | 7860 case " $predeps $postdeps " in |
6721 *" $a_deplib "*) | 7861 *" $a_deplib "*) |
6722 newdeplibs="$newdeplibs $a_deplib" | 7862 func_append newdeplibs " $a_deplib" |
6723 a_deplib="" | 7863 a_deplib="" |
6724 ;; | 7864 ;; |
6725 esac | 7865 esac |
6726 fi | 7866 fi |
6727 if test -n "$a_deplib" ; then | 7867 if test -n "$a_deplib" ; then |
6728 libname=`eval "\\$ECHO \"$libname_spec\""` | 7868 libname=`eval "\\$ECHO \"$libname_spec\""` |
6729 for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do | 7869 for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do |
6730 potential_libs=`ls $i/$libname[.-]* 2>/dev/null` | 7870 potential_libs=`ls $i/$libname[.-]* 2>/dev/null` |
6731 for potent_lib in $potential_libs; do | 7871 for potent_lib in $potential_libs; do |
6732 potlib="$potent_lib" # see symlink-check above in file_magic test | 7872 potlib="$potent_lib" # see symlink-check above in file_magic test |
6733 if eval "\$ECHO \"X$potent_lib\"" 2>/dev/null | $Xsed -e 10q | \ | 7873 if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \ |
6734 $EGREP "$match_pattern_regex" > /dev/null; then | 7874 $EGREP "$match_pattern_regex" > /dev/null; then |
6735 newdeplibs="$newdeplibs $a_deplib" | 7875 func_append newdeplibs " $a_deplib" |
6736 a_deplib="" | 7876 a_deplib="" |
6737 break 2 | 7877 break 2 |
6738 fi | 7878 fi |
6739 done | 7879 done |
6740 done | 7880 done |
6741 fi | 7881 fi |
6742 if test -n "$a_deplib" ; then | 7882 if test -n "$a_deplib" ; then |
6743 droppeddeps=yes | 7883 droppeddeps=yes |
6744 $ECHO | 7884 echo |
6745 $ECHO "*** Warning: linker path does not have real file for library $a_deplib." | 7885 $ECHO "*** Warning: linker path does not have real file for library $a_deplib." |
6746 $ECHO "*** I have the capability to make that library automatically link in when" | 7886 echo "*** I have the capability to make that library automatically link in when" |
6747 $ECHO "*** you link to this library. But I can only do this if you have a" | 7887 echo "*** you link to this library. But I can only do this if you have a" |
6748 $ECHO "*** shared version of the library, which you do not appear to have" | 7888 echo "*** shared version of the library, which you do not appear to have" |
6749 $ECHO "*** because I did check the linker path looking for a file starting" | 7889 echo "*** because I did check the linker path looking for a file starting" |
6750 if test -z "$potlib" ; then | 7890 if test -z "$potlib" ; then |
6751 $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)" | 7891 $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)" |
6752 else | 7892 else |
6753 $ECHO "*** with $libname and none of the candidates passed a file format test" | 7893 $ECHO "*** with $libname and none of the candidates passed a file format test" |
6754 $ECHO "*** using a regex pattern. Last file checked: $potlib" | 7894 $ECHO "*** using a regex pattern. Last file checked: $potlib" |
6755 fi | 7895 fi |
6756 fi | 7896 fi |
6757 ;; | 7897 ;; |
6758 *) | 7898 *) |
6759 # Add a -L argument. | 7899 # Add a -L argument. |
6760 newdeplibs="$newdeplibs $a_deplib" | 7900 func_append newdeplibs " $a_deplib" |
6761 ;; | 7901 ;; |
6762 esac | 7902 esac |
6763 done # Gone through all deplibs. | 7903 done # Gone through all deplibs. |
6764 ;; | 7904 ;; |
6765 none | unknown | *) | 7905 none | unknown | *) |
6766 newdeplibs="" | 7906 newdeplibs="" |
6767 tmp_deplibs=`$ECHO "X $deplibs" | $Xsed \ | 7907 tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'` |
6768 -e 's/ -lc$//' -e 's/ -[LR][^ ]*//g'` | |
6769 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then | 7908 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then |
6770 for i in $predeps $postdeps ; do | 7909 for i in $predeps $postdeps ; do |
6771 # can't use Xsed below, because $i might contain '/' | 7910 # can't use Xsed below, because $i might contain '/' |
6772 tmp_deplibs=`$ECHO "X $tmp_deplibs" | $Xsed -e "s,$i,,"` | 7911 tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s,$i,,"` |
6773 done | 7912 done |
6774 fi | 7913 fi |
6775 if $ECHO "X $tmp_deplibs" | $Xsed -e 's/[ ]//g' | | 7914 case $tmp_deplibs in |
6776 $GREP . >/dev/null; then | 7915 *[!\ \ ]*) |
6777 $ECHO | 7916 echo |
6778 if test "X$deplibs_check_method" = "Xnone"; then | 7917 if test "X$deplibs_check_method" = "Xnone"; then |
6779 $ECHO "*** Warning: inter-library dependencies are not supported in this platform." | 7918 echo "*** Warning: inter-library dependencies are not supported in this platform." |
6780 else | 7919 else |
6781 $ECHO "*** Warning: inter-library dependencies are not known to be supported." | 7920 echo "*** Warning: inter-library dependencies are not known to be supported." |
6782 fi | 7921 fi |
6783 $ECHO "*** All declared inter-library dependencies are being dropped." | 7922 echo "*** All declared inter-library dependencies are being dropped." |
6784 droppeddeps=yes | 7923 droppeddeps=yes |
6785 fi | 7924 ;; |
7925 esac | |
6786 ;; | 7926 ;; |
6787 esac | 7927 esac |
6788 versuffix=$versuffix_save | 7928 versuffix=$versuffix_save |
6789 major=$major_save | 7929 major=$major_save |
6790 release=$release_save | 7930 release=$release_save |
6792 name=$name_save | 7932 name=$name_save |
6793 | 7933 |
6794 case $host in | 7934 case $host in |
6795 *-*-rhapsody* | *-*-darwin1.[012]) | 7935 *-*-rhapsody* | *-*-darwin1.[012]) |
6796 # On Rhapsody replace the C library with the System framework | 7936 # On Rhapsody replace the C library with the System framework |
6797 newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's/ -lc / System.ltframework /'` | 7937 newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'` |
6798 ;; | 7938 ;; |
6799 esac | 7939 esac |
6800 | 7940 |
6801 if test "$droppeddeps" = yes; then | 7941 if test "$droppeddeps" = yes; then |
6802 if test "$module" = yes; then | 7942 if test "$module" = yes; then |
6803 $ECHO | 7943 echo |
6804 $ECHO "*** Warning: libtool could not satisfy all declared inter-library" | 7944 echo "*** Warning: libtool could not satisfy all declared inter-library" |
6805 $ECHO "*** dependencies of module $libname. Therefore, libtool will create" | 7945 $ECHO "*** dependencies of module $libname. Therefore, libtool will create" |
6806 $ECHO "*** a static module, that should work as long as the dlopening" | 7946 echo "*** a static module, that should work as long as the dlopening" |
6807 $ECHO "*** application is linked with the -dlopen flag." | 7947 echo "*** application is linked with the -dlopen flag." |
6808 if test -z "$global_symbol_pipe"; then | 7948 if test -z "$global_symbol_pipe"; then |
6809 $ECHO | 7949 echo |
6810 $ECHO "*** However, this would only work if libtool was able to extract symbol" | 7950 echo "*** However, this would only work if libtool was able to extract symbol" |
6811 $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could" | 7951 echo "*** lists from a program, using \`nm' or equivalent, but libtool could" |
6812 $ECHO "*** not find such a program. So, this module is probably useless." | 7952 echo "*** not find such a program. So, this module is probably useless." |
6813 $ECHO "*** \`nm' from GNU binutils and a full rebuild may help." | 7953 echo "*** \`nm' from GNU binutils and a full rebuild may help." |
6814 fi | 7954 fi |
6815 if test "$build_old_libs" = no; then | 7955 if test "$build_old_libs" = no; then |
6816 oldlibs="$output_objdir/$libname.$libext" | 7956 oldlibs="$output_objdir/$libname.$libext" |
6817 build_libtool_libs=module | 7957 build_libtool_libs=module |
6818 build_old_libs=yes | 7958 build_old_libs=yes |
6819 else | 7959 else |
6820 build_libtool_libs=no | 7960 build_libtool_libs=no |
6821 fi | 7961 fi |
6822 else | 7962 else |
6823 $ECHO "*** The inter-library dependencies that have been dropped here will be" | 7963 echo "*** The inter-library dependencies that have been dropped here will be" |
6824 $ECHO "*** automatically added whenever a program is linked with this library" | 7964 echo "*** automatically added whenever a program is linked with this library" |
6825 $ECHO "*** or is declared to -dlopen it." | 7965 echo "*** or is declared to -dlopen it." |
6826 | 7966 |
6827 if test "$allow_undefined" = no; then | 7967 if test "$allow_undefined" = no; then |
6828 $ECHO | 7968 echo |
6829 $ECHO "*** Since this library must not contain undefined symbols," | 7969 echo "*** Since this library must not contain undefined symbols," |
6830 $ECHO "*** because either the platform does not support them or" | 7970 echo "*** because either the platform does not support them or" |
6831 $ECHO "*** it was explicitly requested with -no-undefined," | 7971 echo "*** it was explicitly requested with -no-undefined," |
6832 $ECHO "*** libtool will only create a static version of it." | 7972 echo "*** libtool will only create a static version of it." |
6833 if test "$build_old_libs" = no; then | 7973 if test "$build_old_libs" = no; then |
6834 oldlibs="$output_objdir/$libname.$libext" | 7974 oldlibs="$output_objdir/$libname.$libext" |
6835 build_libtool_libs=module | 7975 build_libtool_libs=module |
6836 build_old_libs=yes | 7976 build_old_libs=yes |
6837 else | 7977 else |
6844 deplibs=$newdeplibs | 7984 deplibs=$newdeplibs |
6845 fi | 7985 fi |
6846 # Time to change all our "foo.ltframework" stuff back to "-framework foo" | 7986 # Time to change all our "foo.ltframework" stuff back to "-framework foo" |
6847 case $host in | 7987 case $host in |
6848 *-*-darwin*) | 7988 *-*-darwin*) |
6849 newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` | 7989 newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` |
6850 new_inherited_linker_flags=`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` | 7990 new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` |
6851 deplibs=`$ECHO "X $deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` | 7991 deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` |
6852 ;; | 7992 ;; |
6853 esac | 7993 esac |
6854 | 7994 |
6855 # move library search paths that coincide with paths to not yet | 7995 # move library search paths that coincide with paths to not yet |
6856 # installed libraries to the beginning of the library search list | 7996 # installed libraries to the beginning of the library search list |
6859 case " $new_libs " in | 7999 case " $new_libs " in |
6860 *" -L$path/$objdir "*) ;; | 8000 *" -L$path/$objdir "*) ;; |
6861 *) | 8001 *) |
6862 case " $deplibs " in | 8002 case " $deplibs " in |
6863 *" -L$path/$objdir "*) | 8003 *" -L$path/$objdir "*) |
6864 new_libs="$new_libs -L$path/$objdir" ;; | 8004 func_append new_libs " -L$path/$objdir" ;; |
6865 esac | 8005 esac |
6866 ;; | 8006 ;; |
6867 esac | 8007 esac |
6868 done | 8008 done |
6869 for deplib in $deplibs; do | 8009 for deplib in $deplibs; do |
6870 case $deplib in | 8010 case $deplib in |
6871 -L*) | 8011 -L*) |
6872 case " $new_libs " in | 8012 case " $new_libs " in |
6873 *" $deplib "*) ;; | 8013 *" $deplib "*) ;; |
6874 *) new_libs="$new_libs $deplib" ;; | 8014 *) func_append new_libs " $deplib" ;; |
6875 esac | 8015 esac |
6876 ;; | 8016 ;; |
6877 *) new_libs="$new_libs $deplib" ;; | 8017 *) func_append new_libs " $deplib" ;; |
6878 esac | 8018 esac |
6879 done | 8019 done |
6880 deplibs="$new_libs" | 8020 deplibs="$new_libs" |
6881 | 8021 |
6882 # All the library-specific variables (install_libdir is set above). | 8022 # All the library-specific variables (install_libdir is set above). |
6889 if test "$hardcode_into_libs" = yes; then | 8029 if test "$hardcode_into_libs" = yes; then |
6890 # Hardcode the library paths | 8030 # Hardcode the library paths |
6891 hardcode_libdirs= | 8031 hardcode_libdirs= |
6892 dep_rpath= | 8032 dep_rpath= |
6893 rpath="$finalize_rpath" | 8033 rpath="$finalize_rpath" |
6894 test "$mode" != relink && rpath="$compile_rpath$rpath" | 8034 test "$opt_mode" != relink && rpath="$compile_rpath$rpath" |
6895 for libdir in $rpath; do | 8035 for libdir in $rpath; do |
6896 if test -n "$hardcode_libdir_flag_spec"; then | 8036 if test -n "$hardcode_libdir_flag_spec"; then |
6897 if test -n "$hardcode_libdir_separator"; then | 8037 if test -n "$hardcode_libdir_separator"; then |
8038 func_replace_sysroot "$libdir" | |
8039 libdir=$func_replace_sysroot_result | |
6898 if test -z "$hardcode_libdirs"; then | 8040 if test -z "$hardcode_libdirs"; then |
6899 hardcode_libdirs="$libdir" | 8041 hardcode_libdirs="$libdir" |
6900 else | 8042 else |
6901 # Just accumulate the unique libdirs. | 8043 # Just accumulate the unique libdirs. |
6902 case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in | 8044 case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in |
6903 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) | 8045 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) |
6904 ;; | 8046 ;; |
6905 *) | 8047 *) |
6906 hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" | 8048 func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" |
6907 ;; | 8049 ;; |
6908 esac | 8050 esac |
6909 fi | 8051 fi |
6910 else | 8052 else |
6911 eval flag=\"$hardcode_libdir_flag_spec\" | 8053 eval flag=\"$hardcode_libdir_flag_spec\" |
6912 dep_rpath="$dep_rpath $flag" | 8054 func_append dep_rpath " $flag" |
6913 fi | 8055 fi |
6914 elif test -n "$runpath_var"; then | 8056 elif test -n "$runpath_var"; then |
6915 case "$perm_rpath " in | 8057 case "$perm_rpath " in |
6916 *" $libdir "*) ;; | 8058 *" $libdir "*) ;; |
6917 *) perm_rpath="$perm_rpath $libdir" ;; | 8059 *) func_apped perm_rpath " $libdir" ;; |
6918 esac | 8060 esac |
6919 fi | 8061 fi |
6920 done | 8062 done |
6921 # Substitute the hardcoded libdirs into the rpath. | 8063 # Substitute the hardcoded libdirs into the rpath. |
6922 if test -n "$hardcode_libdir_separator" && | 8064 if test -n "$hardcode_libdir_separator" && |
6930 fi | 8072 fi |
6931 if test -n "$runpath_var" && test -n "$perm_rpath"; then | 8073 if test -n "$runpath_var" && test -n "$perm_rpath"; then |
6932 # We should set the runpath_var. | 8074 # We should set the runpath_var. |
6933 rpath= | 8075 rpath= |
6934 for dir in $perm_rpath; do | 8076 for dir in $perm_rpath; do |
6935 rpath="$rpath$dir:" | 8077 func_append rpath "$dir:" |
6936 done | 8078 done |
6937 eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" | 8079 eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" |
6938 fi | 8080 fi |
6939 test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" | 8081 test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" |
6940 fi | 8082 fi |
6941 | 8083 |
6942 shlibpath="$finalize_shlibpath" | 8084 shlibpath="$finalize_shlibpath" |
6943 test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath" | 8085 test "$opt_mode" != relink && shlibpath="$compile_shlibpath$shlibpath" |
6944 if test -n "$shlibpath"; then | 8086 if test -n "$shlibpath"; then |
6945 eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" | 8087 eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" |
6946 fi | 8088 fi |
6947 | 8089 |
6948 # Get the real and link names of the library. | 8090 # Get the real and link names of the library. |
6964 | 8106 |
6965 lib="$output_objdir/$realname" | 8107 lib="$output_objdir/$realname" |
6966 linknames= | 8108 linknames= |
6967 for link | 8109 for link |
6968 do | 8110 do |
6969 linknames="$linknames $link" | 8111 func_append linknames " $link" |
6970 done | 8112 done |
6971 | 8113 |
6972 # Use standard objects if they are pic | 8114 # Use standard objects if they are pic |
6973 test -z "$pic_flag" && libobjs=`$ECHO "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` | 8115 test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP` |
6974 test "X$libobjs" = "X " && libobjs= | 8116 test "X$libobjs" = "X " && libobjs= |
6975 | 8117 |
6976 delfiles= | 8118 delfiles= |
6977 if test -n "$export_symbols" && test -n "$include_expsyms"; then | 8119 if test -n "$export_symbols" && test -n "$include_expsyms"; then |
6978 $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" | 8120 $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" |
6979 export_symbols="$output_objdir/$libname.uexp" | 8121 export_symbols="$output_objdir/$libname.uexp" |
6980 delfiles="$delfiles $export_symbols" | 8122 func_append delfiles " $export_symbols" |
6981 fi | 8123 fi |
6982 | 8124 |
6983 orig_export_symbols= | 8125 orig_export_symbols= |
6984 case $host_os in | 8126 case $host_os in |
6985 cygwin* | mingw* | cegcc*) | 8127 cygwin* | mingw* | cegcc*) |
7006 func_verbose "generating symbol list for \`$libname.la'" | 8148 func_verbose "generating symbol list for \`$libname.la'" |
7007 export_symbols="$output_objdir/$libname.exp" | 8149 export_symbols="$output_objdir/$libname.exp" |
7008 $opt_dry_run || $RM $export_symbols | 8150 $opt_dry_run || $RM $export_symbols |
7009 cmds=$export_symbols_cmds | 8151 cmds=$export_symbols_cmds |
7010 save_ifs="$IFS"; IFS='~' | 8152 save_ifs="$IFS"; IFS='~' |
7011 for cmd in $cmds; do | 8153 for cmd1 in $cmds; do |
7012 IFS="$save_ifs" | 8154 IFS="$save_ifs" |
7013 eval cmd=\"$cmd\" | 8155 # Take the normal branch if the nm_file_list_spec branch |
7014 func_len " $cmd" | 8156 # doesn't work or if tool conversion is not needed. |
7015 len=$func_len_result | 8157 case $nm_file_list_spec~$to_tool_file_cmd in |
7016 if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then | 8158 *~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*) |
8159 try_normal_branch=yes | |
8160 eval cmd=\"$cmd1\" | |
8161 func_len " $cmd" | |
8162 len=$func_len_result | |
8163 ;; | |
8164 *) | |
8165 try_normal_branch=no | |
8166 ;; | |
8167 esac | |
8168 if test "$try_normal_branch" = yes \ | |
8169 && { test "$len" -lt "$max_cmd_len" \ | |
8170 || test "$max_cmd_len" -le -1; } | |
8171 then | |
7017 func_show_eval "$cmd" 'exit $?' | 8172 func_show_eval "$cmd" 'exit $?' |
8173 skipped_export=false | |
8174 elif test -n "$nm_file_list_spec"; then | |
8175 func_basename "$output" | |
8176 output_la=$func_basename_result | |
8177 save_libobjs=$libobjs | |
8178 save_output=$output | |
8179 output=${output_objdir}/${output_la}.nm | |
8180 func_to_tool_file "$output" | |
8181 libobjs=$nm_file_list_spec$func_to_tool_file_result | |
8182 func_append delfiles " $output" | |
8183 func_verbose "creating $NM input file list: $output" | |
8184 for obj in $save_libobjs; do | |
8185 func_to_tool_file "$obj" | |
8186 $ECHO "$func_to_tool_file_result" | |
8187 done > "$output" | |
8188 eval cmd=\"$cmd1\" | |
8189 func_show_eval "$cmd" 'exit $?' | |
8190 output=$save_output | |
8191 libobjs=$save_libobjs | |
7018 skipped_export=false | 8192 skipped_export=false |
7019 else | 8193 else |
7020 # The command line is too long to execute in one step. | 8194 # The command line is too long to execute in one step. |
7021 func_verbose "using reloadable object file for export list..." | 8195 func_verbose "using reloadable object file for export list..." |
7022 skipped_export=: | 8196 skipped_export=: |
7034 fi | 8208 fi |
7035 | 8209 |
7036 if test -n "$export_symbols" && test -n "$include_expsyms"; then | 8210 if test -n "$export_symbols" && test -n "$include_expsyms"; then |
7037 tmp_export_symbols="$export_symbols" | 8211 tmp_export_symbols="$export_symbols" |
7038 test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" | 8212 test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" |
7039 $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"' | 8213 $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' |
7040 fi | 8214 fi |
7041 | 8215 |
7042 if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then | 8216 if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then |
7043 # The given exports_symbols file has to be filtered, so filter it. | 8217 # The given exports_symbols file has to be filtered, so filter it. |
7044 func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" | 8218 func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" |
7046 # 's' commands which not all seds can handle. GNU sed should be fine | 8220 # 's' commands which not all seds can handle. GNU sed should be fine |
7047 # though. Also, the filter scales superlinearly with the number of | 8221 # though. Also, the filter scales superlinearly with the number of |
7048 # global variables. join(1) would be nice here, but unfortunately | 8222 # global variables. join(1) would be nice here, but unfortunately |
7049 # isn't a blessed tool. | 8223 # isn't a blessed tool. |
7050 $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter | 8224 $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter |
7051 delfiles="$delfiles $export_symbols $output_objdir/$libname.filter" | 8225 func_append delfiles " $export_symbols $output_objdir/$libname.filter" |
7052 export_symbols=$output_objdir/$libname.def | 8226 export_symbols=$output_objdir/$libname.def |
7053 $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols | 8227 $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols |
7054 fi | 8228 fi |
7055 | 8229 |
7056 tmp_deplibs= | 8230 tmp_deplibs= |
7057 for test_deplib in $deplibs; do | 8231 for test_deplib in $deplibs; do |
7058 case " $convenience " in | 8232 case " $convenience " in |
7059 *" $test_deplib "*) ;; | 8233 *" $test_deplib "*) ;; |
7060 *) | 8234 *) |
7061 tmp_deplibs="$tmp_deplibs $test_deplib" | 8235 func_append tmp_deplibs " $test_deplib" |
7062 ;; | 8236 ;; |
7063 esac | 8237 esac |
7064 done | 8238 done |
7065 deplibs="$tmp_deplibs" | 8239 deplibs="$tmp_deplibs" |
7066 | 8240 |
7076 save_libobjs=$libobjs | 8250 save_libobjs=$libobjs |
7077 eval libobjs=\"\$libobjs $whole_archive_flag_spec\" | 8251 eval libobjs=\"\$libobjs $whole_archive_flag_spec\" |
7078 test "X$libobjs" = "X " && libobjs= | 8252 test "X$libobjs" = "X " && libobjs= |
7079 else | 8253 else |
7080 gentop="$output_objdir/${outputname}x" | 8254 gentop="$output_objdir/${outputname}x" |
7081 generated="$generated $gentop" | 8255 func_append generated " $gentop" |
7082 | 8256 |
7083 func_extract_archives $gentop $convenience | 8257 func_extract_archives $gentop $convenience |
7084 libobjs="$libobjs $func_extract_archives_result" | 8258 func_append libobjs " $func_extract_archives_result" |
7085 test "X$libobjs" = "X " && libobjs= | 8259 test "X$libobjs" = "X " && libobjs= |
7086 fi | 8260 fi |
7087 fi | 8261 fi |
7088 | 8262 |
7089 if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then | 8263 if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then |
7090 eval flag=\"$thread_safe_flag_spec\" | 8264 eval flag=\"$thread_safe_flag_spec\" |
7091 linker_flags="$linker_flags $flag" | 8265 func_append linker_flags " $flag" |
7092 fi | 8266 fi |
7093 | 8267 |
7094 # Make a backup of the uninstalled library when relinking | 8268 # Make a backup of the uninstalled library when relinking |
7095 if test "$mode" = relink; then | 8269 if test "$opt_mode" = relink; then |
7096 $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? | 8270 $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? |
7097 fi | 8271 fi |
7098 | 8272 |
7099 # Do each of the archive commands. | 8273 # Do each of the archive commands. |
7100 if test "$module" = yes && test -n "$module_cmds" ; then | 8274 if test "$module" = yes && test -n "$module_cmds" ; then |
7135 # the spec. | 8309 # the spec. |
7136 if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then | 8310 if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then |
7137 save_libobjs=$libobjs | 8311 save_libobjs=$libobjs |
7138 fi | 8312 fi |
7139 save_output=$output | 8313 save_output=$output |
7140 output_la=`$ECHO "X$output" | $Xsed -e "$basename"` | 8314 func_basename "$output" |
8315 output_la=$func_basename_result | |
7141 | 8316 |
7142 # Clear the reloadable object creation command queue and | 8317 # Clear the reloadable object creation command queue and |
7143 # initialize k to one. | 8318 # initialize k to one. |
7144 test_cmds= | 8319 test_cmds= |
7145 concat_cmds= | 8320 concat_cmds= |
7148 k=1 | 8323 k=1 |
7149 | 8324 |
7150 if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then | 8325 if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then |
7151 output=${output_objdir}/${output_la}.lnkscript | 8326 output=${output_objdir}/${output_la}.lnkscript |
7152 func_verbose "creating GNU ld script: $output" | 8327 func_verbose "creating GNU ld script: $output" |
7153 $ECHO 'INPUT (' > $output | 8328 echo 'INPUT (' > $output |
7154 for obj in $save_libobjs | 8329 for obj in $save_libobjs |
7155 do | 8330 do |
7156 $ECHO "$obj" >> $output | 8331 func_to_tool_file "$obj" |
8332 $ECHO "$func_to_tool_file_result" >> $output | |
7157 done | 8333 done |
7158 $ECHO ')' >> $output | 8334 echo ')' >> $output |
7159 delfiles="$delfiles $output" | 8335 func_append delfiles " $output" |
8336 func_to_tool_file "$output" | |
8337 output=$func_to_tool_file_result | |
7160 elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then | 8338 elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then |
7161 output=${output_objdir}/${output_la}.lnk | 8339 output=${output_objdir}/${output_la}.lnk |
7162 func_verbose "creating linker input file list: $output" | 8340 func_verbose "creating linker input file list: $output" |
7163 : > $output | 8341 : > $output |
7164 set x $save_libobjs | 8342 set x $save_libobjs |
7168 firstobj="$1 " | 8346 firstobj="$1 " |
7169 shift | 8347 shift |
7170 fi | 8348 fi |
7171 for obj | 8349 for obj |
7172 do | 8350 do |
7173 $ECHO "$obj" >> $output | 8351 func_to_tool_file "$obj" |
8352 $ECHO "$func_to_tool_file_result" >> $output | |
7174 done | 8353 done |
7175 delfiles="$delfiles $output" | 8354 func_append delfiles " $output" |
7176 output=$firstobj\"$file_list_spec$output\" | 8355 func_to_tool_file "$output" |
8356 output=$firstobj\"$file_list_spec$func_to_tool_file_result\" | |
7177 else | 8357 else |
7178 if test -n "$save_libobjs"; then | 8358 if test -n "$save_libobjs"; then |
7179 func_verbose "creating reloadable object files..." | 8359 func_verbose "creating reloadable object files..." |
7180 output=$output_objdir/$output_la-${k}.$objext | 8360 output=$output_objdir/$output_la-${k}.$objext |
7181 eval test_cmds=\"$reload_cmds\" | 8361 eval test_cmds=\"$reload_cmds\" |
7195 else | 8375 else |
7196 # The command $test_cmds is almost too long, add a | 8376 # The command $test_cmds is almost too long, add a |
7197 # command to the queue. | 8377 # command to the queue. |
7198 if test "$k" -eq 1 ; then | 8378 if test "$k" -eq 1 ; then |
7199 # The first file doesn't have a previous command to add. | 8379 # The first file doesn't have a previous command to add. |
7200 eval concat_cmds=\"$reload_cmds $objlist $last_robj\" | 8380 reload_objs=$objlist |
8381 eval concat_cmds=\"$reload_cmds\" | |
7201 else | 8382 else |
7202 # All subsequent reloadable object files will link in | 8383 # All subsequent reloadable object files will link in |
7203 # the last one created. | 8384 # the last one created. |
7204 eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj~\$RM $last_robj\" | 8385 reload_objs="$objlist $last_robj" |
8386 eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\" | |
7205 fi | 8387 fi |
7206 last_robj=$output_objdir/$output_la-${k}.$objext | 8388 last_robj=$output_objdir/$output_la-${k}.$objext |
7207 func_arith $k + 1 | 8389 func_arith $k + 1 |
7208 k=$func_arith_result | 8390 k=$func_arith_result |
7209 output=$output_objdir/$output_la-${k}.$objext | 8391 output=$output_objdir/$output_la-${k}.$objext |
7210 objlist=$obj | 8392 objlist=" $obj" |
7211 func_len " $last_robj" | 8393 func_len " $last_robj" |
7212 func_arith $len0 + $func_len_result | 8394 func_arith $len0 + $func_len_result |
7213 len=$func_arith_result | 8395 len=$func_arith_result |
7214 fi | 8396 fi |
7215 done | 8397 done |
7216 # Handle the remaining objects by creating one last | 8398 # Handle the remaining objects by creating one last |
7217 # reloadable object file. All subsequent reloadable object | 8399 # reloadable object file. All subsequent reloadable object |
7218 # files will link in the last one created. | 8400 # files will link in the last one created. |
7219 test -z "$concat_cmds" || concat_cmds=$concat_cmds~ | 8401 test -z "$concat_cmds" || concat_cmds=$concat_cmds~ |
7220 eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\" | 8402 reload_objs="$objlist $last_robj" |
8403 eval concat_cmds=\"\${concat_cmds}$reload_cmds\" | |
7221 if test -n "$last_robj"; then | 8404 if test -n "$last_robj"; then |
7222 eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\" | 8405 eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\" |
7223 fi | 8406 fi |
7224 delfiles="$delfiles $output" | 8407 func_append delfiles " $output" |
7225 | 8408 |
7226 else | 8409 else |
7227 output= | 8410 output= |
7228 fi | 8411 fi |
7229 | 8412 |
7253 } | 8436 } |
7254 $opt_dry_run || eval "$cmd" || { | 8437 $opt_dry_run || eval "$cmd" || { |
7255 lt_exit=$? | 8438 lt_exit=$? |
7256 | 8439 |
7257 # Restore the uninstalled library and exit | 8440 # Restore the uninstalled library and exit |
7258 if test "$mode" = relink; then | 8441 if test "$opt_mode" = relink; then |
7259 ( cd "$output_objdir" && \ | 8442 ( cd "$output_objdir" && \ |
7260 $RM "${realname}T" && \ | 8443 $RM "${realname}T" && \ |
7261 $MV "${realname}U" "$realname" ) | 8444 $MV "${realname}U" "$realname" ) |
7262 fi | 8445 fi |
7263 | 8446 |
7274 | 8457 |
7275 if ${skipped_export-false}; then | 8458 if ${skipped_export-false}; then |
7276 if test -n "$export_symbols" && test -n "$include_expsyms"; then | 8459 if test -n "$export_symbols" && test -n "$include_expsyms"; then |
7277 tmp_export_symbols="$export_symbols" | 8460 tmp_export_symbols="$export_symbols" |
7278 test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" | 8461 test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" |
7279 $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"' | 8462 $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' |
7280 fi | 8463 fi |
7281 | 8464 |
7282 if test -n "$orig_export_symbols"; then | 8465 if test -n "$orig_export_symbols"; then |
7283 # The given exports_symbols file has to be filtered, so filter it. | 8466 # The given exports_symbols file has to be filtered, so filter it. |
7284 func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" | 8467 func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" |
7286 # 's' commands which not all seds can handle. GNU sed should be fine | 8469 # 's' commands which not all seds can handle. GNU sed should be fine |
7287 # though. Also, the filter scales superlinearly with the number of | 8470 # though. Also, the filter scales superlinearly with the number of |
7288 # global variables. join(1) would be nice here, but unfortunately | 8471 # global variables. join(1) would be nice here, but unfortunately |
7289 # isn't a blessed tool. | 8472 # isn't a blessed tool. |
7290 $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter | 8473 $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter |
7291 delfiles="$delfiles $export_symbols $output_objdir/$libname.filter" | 8474 func_append delfiles " $export_symbols $output_objdir/$libname.filter" |
7292 export_symbols=$output_objdir/$libname.def | 8475 export_symbols=$output_objdir/$libname.def |
7293 $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols | 8476 $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols |
7294 fi | 8477 fi |
7295 fi | 8478 fi |
7296 | 8479 |
7327 fi | 8510 fi |
7328 | 8511 |
7329 # Add any objects from preloaded convenience libraries | 8512 # Add any objects from preloaded convenience libraries |
7330 if test -n "$dlprefiles"; then | 8513 if test -n "$dlprefiles"; then |
7331 gentop="$output_objdir/${outputname}x" | 8514 gentop="$output_objdir/${outputname}x" |
7332 generated="$generated $gentop" | 8515 func_append generated " $gentop" |
7333 | 8516 |
7334 func_extract_archives $gentop $dlprefiles | 8517 func_extract_archives $gentop $dlprefiles |
7335 libobjs="$libobjs $func_extract_archives_result" | 8518 func_append libobjs " $func_extract_archives_result" |
7336 test "X$libobjs" = "X " && libobjs= | 8519 test "X$libobjs" = "X " && libobjs= |
7337 fi | 8520 fi |
7338 | 8521 |
7339 save_ifs="$IFS"; IFS='~' | 8522 save_ifs="$IFS"; IFS='~' |
7340 for cmd in $cmds; do | 8523 for cmd in $cmds; do |
7346 } | 8529 } |
7347 $opt_dry_run || eval "$cmd" || { | 8530 $opt_dry_run || eval "$cmd" || { |
7348 lt_exit=$? | 8531 lt_exit=$? |
7349 | 8532 |
7350 # Restore the uninstalled library and exit | 8533 # Restore the uninstalled library and exit |
7351 if test "$mode" = relink; then | 8534 if test "$opt_mode" = relink; then |
7352 ( cd "$output_objdir" && \ | 8535 ( cd "$output_objdir" && \ |
7353 $RM "${realname}T" && \ | 8536 $RM "${realname}T" && \ |
7354 $MV "${realname}U" "$realname" ) | 8537 $MV "${realname}U" "$realname" ) |
7355 fi | 8538 fi |
7356 | 8539 |
7358 } | 8541 } |
7359 done | 8542 done |
7360 IFS="$save_ifs" | 8543 IFS="$save_ifs" |
7361 | 8544 |
7362 # Restore the uninstalled library and exit | 8545 # Restore the uninstalled library and exit |
7363 if test "$mode" = relink; then | 8546 if test "$opt_mode" = relink; then |
7364 $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? | 8547 $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? |
7365 | 8548 |
7366 if test -n "$convenience"; then | 8549 if test -n "$convenience"; then |
7367 if test -z "$whole_archive_flag_spec"; then | 8550 if test -z "$whole_archive_flag_spec"; then |
7368 func_show_eval '${RM}r "$gentop"' | 8551 func_show_eval '${RM}r "$gentop"' |
7439 wl= | 8622 wl= |
7440 | 8623 |
7441 if test -n "$convenience"; then | 8624 if test -n "$convenience"; then |
7442 if test -n "$whole_archive_flag_spec"; then | 8625 if test -n "$whole_archive_flag_spec"; then |
7443 eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" | 8626 eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" |
7444 reload_conv_objs=$reload_objs\ `$ECHO "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'` | 8627 reload_conv_objs=$reload_objs\ `$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'` |
7445 else | 8628 else |
7446 gentop="$output_objdir/${obj}x" | 8629 gentop="$output_objdir/${obj}x" |
7447 generated="$generated $gentop" | 8630 func_append generated " $gentop" |
7448 | 8631 |
7449 func_extract_archives $gentop $convenience | 8632 func_extract_archives $gentop $convenience |
7450 reload_conv_objs="$reload_objs $func_extract_archives_result" | 8633 reload_conv_objs="$reload_objs $func_extract_archives_result" |
7451 fi | 8634 fi |
7452 fi | 8635 fi |
7453 | 8636 |
8637 # If we're not building shared, we need to use non_pic_objs | |
8638 test "$build_libtool_libs" != yes && libobjs="$non_pic_objects" | |
8639 | |
7454 # Create the old-style object. | 8640 # Create the old-style object. |
7455 reload_objs="$objs$old_deplibs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test | 8641 reload_objs="$objs$old_deplibs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; /\.lib$/d; $lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test |
7456 | 8642 |
7457 output="$obj" | 8643 output="$obj" |
7458 func_execute_cmds "$reload_cmds" 'exit $?' | 8644 func_execute_cmds "$reload_cmds" 'exit $?' |
7459 | 8645 |
7460 # Exit if we aren't doing a library object file. | 8646 # Exit if we aren't doing a library object file. |
7510 func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support." | 8696 func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support." |
7511 | 8697 |
7512 case $host in | 8698 case $host in |
7513 *-*-rhapsody* | *-*-darwin1.[012]) | 8699 *-*-rhapsody* | *-*-darwin1.[012]) |
7514 # On Rhapsody replace the C library is the System framework | 8700 # On Rhapsody replace the C library is the System framework |
7515 compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'` | 8701 compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'` |
7516 finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'` | 8702 finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'` |
7517 ;; | 8703 ;; |
7518 esac | 8704 esac |
7519 | 8705 |
7520 case $host in | 8706 case $host in |
7521 *-*-darwin*) | 8707 *-*-darwin*) |
7522 # Don't allow lazy linking, it breaks C++ global constructors | 8708 # Don't allow lazy linking, it breaks C++ global constructors |
7523 # But is supposedly fixed on 10.4 or later (yay!). | 8709 # But is supposedly fixed on 10.4 or later (yay!). |
7524 if test "$tagname" = CXX ; then | 8710 if test "$tagname" = CXX ; then |
7525 case ${MACOSX_DEPLOYMENT_TARGET-10.0} in | 8711 case ${MACOSX_DEPLOYMENT_TARGET-10.0} in |
7526 10.[0123]) | 8712 10.[0123]) |
7527 compile_command="$compile_command ${wl}-bind_at_load" | 8713 func_append compile_command " ${wl}-bind_at_load" |
7528 finalize_command="$finalize_command ${wl}-bind_at_load" | 8714 func_append finalize_command " ${wl}-bind_at_load" |
7529 ;; | 8715 ;; |
7530 esac | 8716 esac |
7531 fi | 8717 fi |
7532 # Time to change all our "foo.ltframework" stuff back to "-framework foo" | 8718 # Time to change all our "foo.ltframework" stuff back to "-framework foo" |
7533 compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` | 8719 compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` |
7534 finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` | 8720 finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` |
7535 ;; | 8721 ;; |
7536 esac | 8722 esac |
7537 | 8723 |
7538 | 8724 |
7539 # move library search paths that coincide with paths to not yet | 8725 # move library search paths that coincide with paths to not yet |
7543 case " $new_libs " in | 8729 case " $new_libs " in |
7544 *" -L$path/$objdir "*) ;; | 8730 *" -L$path/$objdir "*) ;; |
7545 *) | 8731 *) |
7546 case " $compile_deplibs " in | 8732 case " $compile_deplibs " in |
7547 *" -L$path/$objdir "*) | 8733 *" -L$path/$objdir "*) |
7548 new_libs="$new_libs -L$path/$objdir" ;; | 8734 func_append new_libs " -L$path/$objdir" ;; |
7549 esac | 8735 esac |
7550 ;; | 8736 ;; |
7551 esac | 8737 esac |
7552 done | 8738 done |
7553 for deplib in $compile_deplibs; do | 8739 for deplib in $compile_deplibs; do |
7554 case $deplib in | 8740 case $deplib in |
7555 -L*) | 8741 -L*) |
7556 case " $new_libs " in | 8742 case " $new_libs " in |
7557 *" $deplib "*) ;; | 8743 *" $deplib "*) ;; |
7558 *) new_libs="$new_libs $deplib" ;; | 8744 *) func_append new_libs " $deplib" ;; |
7559 esac | 8745 esac |
7560 ;; | 8746 ;; |
7561 *) new_libs="$new_libs $deplib" ;; | 8747 *) func_append new_libs " $deplib" ;; |
7562 esac | 8748 esac |
7563 done | 8749 done |
7564 compile_deplibs="$new_libs" | 8750 compile_deplibs="$new_libs" |
7565 | 8751 |
7566 | 8752 |
7567 compile_command="$compile_command $compile_deplibs" | 8753 func_append compile_command " $compile_deplibs" |
7568 finalize_command="$finalize_command $finalize_deplibs" | 8754 func_append finalize_command " $finalize_deplibs" |
7569 | 8755 |
7570 if test -n "$rpath$xrpath"; then | 8756 if test -n "$rpath$xrpath"; then |
7571 # If the user specified any rpath flags, then add them. | 8757 # If the user specified any rpath flags, then add them. |
7572 for libdir in $rpath $xrpath; do | 8758 for libdir in $rpath $xrpath; do |
7573 # This is the magic to use -rpath. | 8759 # This is the magic to use -rpath. |
7574 case "$finalize_rpath " in | 8760 case "$finalize_rpath " in |
7575 *" $libdir "*) ;; | 8761 *" $libdir "*) ;; |
7576 *) finalize_rpath="$finalize_rpath $libdir" ;; | 8762 *) func_append finalize_rpath " $libdir" ;; |
7577 esac | 8763 esac |
7578 done | 8764 done |
7579 fi | 8765 fi |
7580 | 8766 |
7581 # Now hardcode the library paths | 8767 # Now hardcode the library paths |
7590 # Just accumulate the unique libdirs. | 8776 # Just accumulate the unique libdirs. |
7591 case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in | 8777 case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in |
7592 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) | 8778 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) |
7593 ;; | 8779 ;; |
7594 *) | 8780 *) |
7595 hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" | 8781 func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" |
7596 ;; | 8782 ;; |
7597 esac | 8783 esac |
7598 fi | 8784 fi |
7599 else | 8785 else |
7600 eval flag=\"$hardcode_libdir_flag_spec\" | 8786 eval flag=\"$hardcode_libdir_flag_spec\" |
7601 rpath="$rpath $flag" | 8787 func_append rpath " $flag" |
7602 fi | 8788 fi |
7603 elif test -n "$runpath_var"; then | 8789 elif test -n "$runpath_var"; then |
7604 case "$perm_rpath " in | 8790 case "$perm_rpath " in |
7605 *" $libdir "*) ;; | 8791 *" $libdir "*) ;; |
7606 *) perm_rpath="$perm_rpath $libdir" ;; | 8792 *) func_append perm_rpath " $libdir" ;; |
7607 esac | 8793 esac |
7608 fi | 8794 fi |
7609 case $host in | 8795 case $host in |
7610 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) | 8796 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) |
7611 testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'` | 8797 testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'` |
7612 case :$dllsearchpath: in | 8798 case :$dllsearchpath: in |
7613 *":$libdir:"*) ;; | 8799 *":$libdir:"*) ;; |
7614 ::) dllsearchpath=$libdir;; | 8800 ::) dllsearchpath=$libdir;; |
7615 *) dllsearchpath="$dllsearchpath:$libdir";; | 8801 *) func_append dllsearchpath ":$libdir";; |
7616 esac | 8802 esac |
7617 case :$dllsearchpath: in | 8803 case :$dllsearchpath: in |
7618 *":$testbindir:"*) ;; | 8804 *":$testbindir:"*) ;; |
7619 ::) dllsearchpath=$testbindir;; | 8805 ::) dllsearchpath=$testbindir;; |
7620 *) dllsearchpath="$dllsearchpath:$testbindir";; | 8806 *) func_append dllsearchpath ":$testbindir";; |
7621 esac | 8807 esac |
7622 ;; | 8808 ;; |
7623 esac | 8809 esac |
7624 done | 8810 done |
7625 # Substitute the hardcoded libdirs into the rpath. | 8811 # Substitute the hardcoded libdirs into the rpath. |
7641 # Just accumulate the unique libdirs. | 8827 # Just accumulate the unique libdirs. |
7642 case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in | 8828 case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in |
7643 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) | 8829 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) |
7644 ;; | 8830 ;; |
7645 *) | 8831 *) |
7646 hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" | 8832 func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" |
7647 ;; | 8833 ;; |
7648 esac | 8834 esac |
7649 fi | 8835 fi |
7650 else | 8836 else |
7651 eval flag=\"$hardcode_libdir_flag_spec\" | 8837 eval flag=\"$hardcode_libdir_flag_spec\" |
7652 rpath="$rpath $flag" | 8838 func_append rpath " $flag" |
7653 fi | 8839 fi |
7654 elif test -n "$runpath_var"; then | 8840 elif test -n "$runpath_var"; then |
7655 case "$finalize_perm_rpath " in | 8841 case "$finalize_perm_rpath " in |
7656 *" $libdir "*) ;; | 8842 *" $libdir "*) ;; |
7657 *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;; | 8843 *) func_append finalize_perm_rpath " $libdir" ;; |
7658 esac | 8844 esac |
7659 fi | 8845 fi |
7660 done | 8846 done |
7661 # Substitute the hardcoded libdirs into the rpath. | 8847 # Substitute the hardcoded libdirs into the rpath. |
7662 if test -n "$hardcode_libdir_separator" && | 8848 if test -n "$hardcode_libdir_separator" && |
7666 fi | 8852 fi |
7667 finalize_rpath="$rpath" | 8853 finalize_rpath="$rpath" |
7668 | 8854 |
7669 if test -n "$libobjs" && test "$build_old_libs" = yes; then | 8855 if test -n "$libobjs" && test "$build_old_libs" = yes; then |
7670 # Transform all the library objects into standard objects. | 8856 # Transform all the library objects into standard objects. |
7671 compile_command=`$ECHO "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` | 8857 compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP` |
7672 finalize_command=`$ECHO "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` | 8858 finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP` |
7673 fi | 8859 fi |
7674 | 8860 |
7675 func_generate_dlsyms "$outputname" "@PROGRAM@" "no" | 8861 func_generate_dlsyms "$outputname" "@PROGRAM@" "no" |
7676 | 8862 |
7677 # template prelinking step | 8863 # template prelinking step |
7679 func_execute_cmds "$prelink_cmds" 'exit $?' | 8865 func_execute_cmds "$prelink_cmds" 'exit $?' |
7680 fi | 8866 fi |
7681 | 8867 |
7682 wrappers_required=yes | 8868 wrappers_required=yes |
7683 case $host in | 8869 case $host in |
8870 *cegcc* | *mingw32ce*) | |
8871 # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway. | |
8872 wrappers_required=no | |
8873 ;; | |
7684 *cygwin* | *mingw* ) | 8874 *cygwin* | *mingw* ) |
7685 if test "$build_libtool_libs" != yes; then | 8875 if test "$build_libtool_libs" != yes; then |
7686 wrappers_required=no | 8876 wrappers_required=no |
7687 fi | 8877 fi |
7688 ;; | |
7689 *cegcc) | |
7690 # Disable wrappers for cegcc, we are cross compiling anyway. | |
7691 wrappers_required=no | |
7692 ;; | 8878 ;; |
7693 *) | 8879 *) |
7694 if test "$need_relink" = no || test "$build_libtool_libs" != yes; then | 8880 if test "$need_relink" = no || test "$build_libtool_libs" != yes; then |
7695 wrappers_required=no | 8881 wrappers_required=no |
7696 fi | 8882 fi |
7697 ;; | 8883 ;; |
7698 esac | 8884 esac |
7699 if test "$wrappers_required" = no; then | 8885 if test "$wrappers_required" = no; then |
7700 # Replace the output file specification. | 8886 # Replace the output file specification. |
7701 compile_command=`$ECHO "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` | 8887 compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'` |
7702 link_command="$compile_command$compile_rpath" | 8888 link_command="$compile_command$compile_rpath" |
7703 | 8889 |
7704 # We have no uninstalled library dependencies, so finalize right now. | 8890 # We have no uninstalled library dependencies, so finalize right now. |
7705 exit_status=0 | 8891 exit_status=0 |
7706 func_show_eval "$link_command" 'exit_status=$?' | 8892 func_show_eval "$link_command" 'exit_status=$?' |
8893 | |
8894 if test -n "$postlink_cmds"; then | |
8895 func_to_tool_file "$output" | |
8896 postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` | |
8897 func_execute_cmds "$postlink_cmds" 'exit $?' | |
8898 fi | |
7707 | 8899 |
7708 # Delete the generated files. | 8900 # Delete the generated files. |
7709 if test -f "$output_objdir/${outputname}S.${objext}"; then | 8901 if test -f "$output_objdir/${outputname}S.${objext}"; then |
7710 func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"' | 8902 func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"' |
7711 fi | 8903 fi |
7725 if test -n "$runpath_var"; then | 8917 if test -n "$runpath_var"; then |
7726 if test -n "$perm_rpath"; then | 8918 if test -n "$perm_rpath"; then |
7727 # We should set the runpath_var. | 8919 # We should set the runpath_var. |
7728 rpath= | 8920 rpath= |
7729 for dir in $perm_rpath; do | 8921 for dir in $perm_rpath; do |
7730 rpath="$rpath$dir:" | 8922 func_append rpath "$dir:" |
7731 done | 8923 done |
7732 compile_var="$runpath_var=\"$rpath\$$runpath_var\" " | 8924 compile_var="$runpath_var=\"$rpath\$$runpath_var\" " |
7733 fi | 8925 fi |
7734 if test -n "$finalize_perm_rpath"; then | 8926 if test -n "$finalize_perm_rpath"; then |
7735 # We should set the runpath_var. | 8927 # We should set the runpath_var. |
7736 rpath= | 8928 rpath= |
7737 for dir in $finalize_perm_rpath; do | 8929 for dir in $finalize_perm_rpath; do |
7738 rpath="$rpath$dir:" | 8930 func_append rpath "$dir:" |
7739 done | 8931 done |
7740 finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " | 8932 finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " |
7741 fi | 8933 fi |
7742 fi | 8934 fi |
7743 | 8935 |
7744 if test "$no_install" = yes; then | 8936 if test "$no_install" = yes; then |
7745 # We don't need to create a wrapper script. | 8937 # We don't need to create a wrapper script. |
7746 link_command="$compile_var$compile_command$compile_rpath" | 8938 link_command="$compile_var$compile_command$compile_rpath" |
7747 # Replace the output file specification. | 8939 # Replace the output file specification. |
7748 link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` | 8940 link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'` |
7749 # Delete the old output file. | 8941 # Delete the old output file. |
7750 $opt_dry_run || $RM $output | 8942 $opt_dry_run || $RM $output |
7751 # Link the executable and exit | 8943 # Link the executable and exit |
7752 func_show_eval "$link_command" 'exit $?' | 8944 func_show_eval "$link_command" 'exit $?' |
8945 | |
8946 if test -n "$postlink_cmds"; then | |
8947 func_to_tool_file "$output" | |
8948 postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` | |
8949 func_execute_cmds "$postlink_cmds" 'exit $?' | |
8950 fi | |
8951 | |
7753 exit $EXIT_SUCCESS | 8952 exit $EXIT_SUCCESS |
7754 fi | 8953 fi |
7755 | 8954 |
7756 if test "$hardcode_action" = relink; then | 8955 if test "$hardcode_action" = relink; then |
7757 # Fast installation is not supported | 8956 # Fast installation is not supported |
7762 func_warning "\`$output' will be relinked during installation" | 8961 func_warning "\`$output' will be relinked during installation" |
7763 else | 8962 else |
7764 if test "$fast_install" != no; then | 8963 if test "$fast_install" != no; then |
7765 link_command="$finalize_var$compile_command$finalize_rpath" | 8964 link_command="$finalize_var$compile_command$finalize_rpath" |
7766 if test "$fast_install" = yes; then | 8965 if test "$fast_install" = yes; then |
7767 relink_command=`$ECHO "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'` | 8966 relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'` |
7768 else | 8967 else |
7769 # fast_install is set to needless | 8968 # fast_install is set to needless |
7770 relink_command= | 8969 relink_command= |
7771 fi | 8970 fi |
7772 else | 8971 else |
7774 relink_command="$finalize_var$finalize_command$finalize_rpath" | 8973 relink_command="$finalize_var$finalize_command$finalize_rpath" |
7775 fi | 8974 fi |
7776 fi | 8975 fi |
7777 | 8976 |
7778 # Replace the output file specification. | 8977 # Replace the output file specification. |
7779 link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` | 8978 link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` |
7780 | 8979 |
7781 # Delete the old output files. | 8980 # Delete the old output files. |
7782 $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname | 8981 $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname |
7783 | 8982 |
7784 func_show_eval "$link_command" 'exit $?' | 8983 func_show_eval "$link_command" 'exit $?' |
8984 | |
8985 if test -n "$postlink_cmds"; then | |
8986 func_to_tool_file "$output_objdir/$outputname" | |
8987 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'` | |
8988 func_execute_cmds "$postlink_cmds" 'exit $?' | |
8989 fi | |
7785 | 8990 |
7786 # Now create the wrapper script. | 8991 # Now create the wrapper script. |
7787 func_verbose "creating $output" | 8992 func_verbose "creating $output" |
7788 | 8993 |
7789 # Quote the relink command for shipping. | 8994 # Quote the relink command for shipping. |
7798 func_quote_for_eval "$var_value" | 9003 func_quote_for_eval "$var_value" |
7799 relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" | 9004 relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" |
7800 fi | 9005 fi |
7801 done | 9006 done |
7802 relink_command="(cd `pwd`; $relink_command)" | 9007 relink_command="(cd `pwd`; $relink_command)" |
7803 relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"` | 9008 relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` |
7804 fi | |
7805 | |
7806 # Quote $ECHO for shipping. | |
7807 if test "X$ECHO" = "X$SHELL $progpath --fallback-echo"; then | |
7808 case $progpath in | |
7809 [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";; | |
7810 *) qecho="$SHELL `pwd`/$progpath --fallback-echo";; | |
7811 esac | |
7812 qecho=`$ECHO "X$qecho" | $Xsed -e "$sed_quote_subst"` | |
7813 else | |
7814 qecho=`$ECHO "X$ECHO" | $Xsed -e "$sed_quote_subst"` | |
7815 fi | 9009 fi |
7816 | 9010 |
7817 # Only actually do things if not in dry run mode. | 9011 # Only actually do things if not in dry run mode. |
7818 $opt_dry_run || { | 9012 $opt_dry_run || { |
7819 # win32 will think the script is a binary if it has | 9013 # win32 will think the script is a binary if it has |
7889 oldobjs="$libobjs_save" | 9083 oldobjs="$libobjs_save" |
7890 build_libtool_libs=no | 9084 build_libtool_libs=no |
7891 else | 9085 else |
7892 oldobjs="$old_deplibs $non_pic_objects" | 9086 oldobjs="$old_deplibs $non_pic_objects" |
7893 if test "$preload" = yes && test -f "$symfileobj"; then | 9087 if test "$preload" = yes && test -f "$symfileobj"; then |
7894 oldobjs="$oldobjs $symfileobj" | 9088 func_append oldobjs " $symfileobj" |
7895 fi | 9089 fi |
7896 fi | 9090 fi |
7897 addlibs="$old_convenience" | 9091 addlibs="$old_convenience" |
7898 fi | 9092 fi |
7899 | 9093 |
7900 if test -n "$addlibs"; then | 9094 if test -n "$addlibs"; then |
7901 gentop="$output_objdir/${outputname}x" | 9095 gentop="$output_objdir/${outputname}x" |
7902 generated="$generated $gentop" | 9096 func_append generated " $gentop" |
7903 | 9097 |
7904 func_extract_archives $gentop $addlibs | 9098 func_extract_archives $gentop $addlibs |
7905 oldobjs="$oldobjs $func_extract_archives_result" | 9099 func_append oldobjs " $func_extract_archives_result" |
7906 fi | 9100 fi |
7907 | 9101 |
7908 # Do each command in the archive commands. | 9102 # Do each command in the archive commands. |
7909 if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then | 9103 if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then |
7910 cmds=$old_archive_from_new_cmds | 9104 cmds=$old_archive_from_new_cmds |
7911 else | 9105 else |
7912 | 9106 |
7913 # Add any objects from preloaded convenience libraries | 9107 # Add any objects from preloaded convenience libraries |
7914 if test -n "$dlprefiles"; then | 9108 if test -n "$dlprefiles"; then |
7915 gentop="$output_objdir/${outputname}x" | 9109 gentop="$output_objdir/${outputname}x" |
7916 generated="$generated $gentop" | 9110 func_append generated " $gentop" |
7917 | 9111 |
7918 func_extract_archives $gentop $dlprefiles | 9112 func_extract_archives $gentop $dlprefiles |
7919 oldobjs="$oldobjs $func_extract_archives_result" | 9113 func_append oldobjs " $func_extract_archives_result" |
7920 fi | 9114 fi |
7921 | 9115 |
7922 # POSIX demands no paths to be encoded in archives. We have | 9116 # POSIX demands no paths to be encoded in archives. We have |
7923 # to avoid creating archives with duplicate basenames if we | 9117 # to avoid creating archives with duplicate basenames if we |
7924 # might have to extract them afterwards, e.g., when creating a | 9118 # might have to extract them afterwards, e.g., when creating a |
7930 func_basename "$obj" | 9124 func_basename "$obj" |
7931 $ECHO "$func_basename_result" | 9125 $ECHO "$func_basename_result" |
7932 done | sort | sort -uc >/dev/null 2>&1); then | 9126 done | sort | sort -uc >/dev/null 2>&1); then |
7933 : | 9127 : |
7934 else | 9128 else |
7935 $ECHO "copying selected object files to avoid basename conflicts..." | 9129 echo "copying selected object files to avoid basename conflicts..." |
7936 gentop="$output_objdir/${outputname}x" | 9130 gentop="$output_objdir/${outputname}x" |
7937 generated="$generated $gentop" | 9131 func_append generated " $gentop" |
7938 func_mkdir_p "$gentop" | 9132 func_mkdir_p "$gentop" |
7939 save_oldobjs=$oldobjs | 9133 save_oldobjs=$oldobjs |
7940 oldobjs= | 9134 oldobjs= |
7941 counter=1 | 9135 counter=1 |
7942 for obj in $save_oldobjs | 9136 for obj in $save_oldobjs |
7956 *[\ /]"$newobj "*) ;; | 9150 *[\ /]"$newobj "*) ;; |
7957 *) if test ! -f "$gentop/$newobj"; then break; fi ;; | 9151 *) if test ! -f "$gentop/$newobj"; then break; fi ;; |
7958 esac | 9152 esac |
7959 done | 9153 done |
7960 func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" | 9154 func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" |
7961 oldobjs="$oldobjs $gentop/$newobj" | 9155 func_append oldobjs " $gentop/$newobj" |
7962 ;; | 9156 ;; |
7963 *) oldobjs="$oldobjs $obj" ;; | 9157 *) func_append oldobjs " $obj" ;; |
7964 esac | 9158 esac |
7965 done | 9159 done |
7966 fi | 9160 fi |
7967 eval cmds=\"$old_archive_cmds\" | 9161 eval cmds=\"$old_archive_cmds\" |
7968 | 9162 |
7969 func_len " $cmds" | 9163 func_len " $cmds" |
7970 len=$func_len_result | 9164 len=$func_len_result |
7971 if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then | 9165 if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then |
9166 cmds=$old_archive_cmds | |
9167 elif test -n "$archiver_list_spec"; then | |
9168 func_verbose "using command file archive linking..." | |
9169 for obj in $oldobjs | |
9170 do | |
9171 func_to_tool_file "$obj" | |
9172 $ECHO "$func_to_tool_file_result" | |
9173 done > $output_objdir/$libname.libcmd | |
9174 func_to_tool_file "$output_objdir/$libname.libcmd" | |
9175 oldobjs=" $archiver_list_spec$func_to_tool_file_result" | |
7972 cmds=$old_archive_cmds | 9176 cmds=$old_archive_cmds |
7973 else | 9177 else |
7974 # the command line is too long to link in one step, link in parts | 9178 # the command line is too long to link in one step, link in parts |
7975 func_verbose "using piecewise archive linking..." | 9179 func_verbose "using piecewise archive linking..." |
7976 save_RANLIB=$RANLIB | 9180 save_RANLIB=$RANLIB |
8041 relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" | 9245 relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" |
8042 fi | 9246 fi |
8043 done | 9247 done |
8044 # Quote the link command for shipping. | 9248 # Quote the link command for shipping. |
8045 relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" | 9249 relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" |
8046 relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"` | 9250 relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` |
8047 if test "$hardcode_automatic" = yes ; then | 9251 if test "$hardcode_automatic" = yes ; then |
8048 relink_command= | 9252 relink_command= |
8049 fi | 9253 fi |
8050 | 9254 |
8051 # Only create the output if not a dry run. | 9255 # Only create the output if not a dry run. |
8064 func_basename "$deplib" | 9268 func_basename "$deplib" |
8065 name="$func_basename_result" | 9269 name="$func_basename_result" |
8066 eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` | 9270 eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` |
8067 test -z "$libdir" && \ | 9271 test -z "$libdir" && \ |
8068 func_fatal_error "\`$deplib' is not a valid libtool archive" | 9272 func_fatal_error "\`$deplib' is not a valid libtool archive" |
8069 newdependency_libs="$newdependency_libs $libdir/$name" | 9273 func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name" |
8070 ;; | 9274 ;; |
8071 *) newdependency_libs="$newdependency_libs $deplib" ;; | 9275 -L*) |
9276 func_stripname -L '' "$deplib" | |
9277 func_replace_sysroot "$func_stripname_result" | |
9278 func_append newdependency_libs " -L$func_replace_sysroot_result" | |
9279 ;; | |
9280 -R*) | |
9281 func_stripname -R '' "$deplib" | |
9282 func_replace_sysroot "$func_stripname_result" | |
9283 func_append newdependency_libs " -R$func_replace_sysroot_result" | |
9284 ;; | |
9285 *) func_append newdependency_libs " $deplib" ;; | |
8072 esac | 9286 esac |
8073 done | 9287 done |
8074 dependency_libs="$newdependency_libs" | 9288 dependency_libs="$newdependency_libs" |
8075 newdlfiles= | 9289 newdlfiles= |
8076 | 9290 |
8080 func_basename "$lib" | 9294 func_basename "$lib" |
8081 name="$func_basename_result" | 9295 name="$func_basename_result" |
8082 eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` | 9296 eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` |
8083 test -z "$libdir" && \ | 9297 test -z "$libdir" && \ |
8084 func_fatal_error "\`$lib' is not a valid libtool archive" | 9298 func_fatal_error "\`$lib' is not a valid libtool archive" |
8085 newdlfiles="$newdlfiles $libdir/$name" | 9299 func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name" |
8086 ;; | 9300 ;; |
8087 *) newdlfiles="$newdlfiles $lib" ;; | 9301 *) func_append newdlfiles " $lib" ;; |
8088 esac | 9302 esac |
8089 done | 9303 done |
8090 dlfiles="$newdlfiles" | 9304 dlfiles="$newdlfiles" |
8091 newdlprefiles= | 9305 newdlprefiles= |
8092 for lib in $dlprefiles; do | 9306 for lib in $dlprefiles; do |
8099 func_basename "$lib" | 9313 func_basename "$lib" |
8100 name="$func_basename_result" | 9314 name="$func_basename_result" |
8101 eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` | 9315 eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` |
8102 test -z "$libdir" && \ | 9316 test -z "$libdir" && \ |
8103 func_fatal_error "\`$lib' is not a valid libtool archive" | 9317 func_fatal_error "\`$lib' is not a valid libtool archive" |
8104 newdlprefiles="$newdlprefiles $libdir/$name" | 9318 func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name" |
8105 ;; | 9319 ;; |
8106 esac | 9320 esac |
8107 done | 9321 done |
8108 dlprefiles="$newdlprefiles" | 9322 dlprefiles="$newdlprefiles" |
8109 else | 9323 else |
8111 for lib in $dlfiles; do | 9325 for lib in $dlfiles; do |
8112 case $lib in | 9326 case $lib in |
8113 [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; | 9327 [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; |
8114 *) abs=`pwd`"/$lib" ;; | 9328 *) abs=`pwd`"/$lib" ;; |
8115 esac | 9329 esac |
8116 newdlfiles="$newdlfiles $abs" | 9330 func_append newdlfiles " $abs" |
8117 done | 9331 done |
8118 dlfiles="$newdlfiles" | 9332 dlfiles="$newdlfiles" |
8119 newdlprefiles= | 9333 newdlprefiles= |
8120 for lib in $dlprefiles; do | 9334 for lib in $dlprefiles; do |
8121 case $lib in | 9335 case $lib in |
8122 [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; | 9336 [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; |
8123 *) abs=`pwd`"/$lib" ;; | 9337 *) abs=`pwd`"/$lib" ;; |
8124 esac | 9338 esac |
8125 newdlprefiles="$newdlprefiles $abs" | 9339 func_append newdlprefiles " $abs" |
8126 done | 9340 done |
8127 dlprefiles="$newdlprefiles" | 9341 dlprefiles="$newdlprefiles" |
8128 fi | 9342 fi |
8129 $RM $output | 9343 $RM $output |
8130 # place dlname in correct position for cygwin | 9344 # place dlname in correct position for cygwin |
9345 # In fact, it would be nice if we could use this code for all target | |
9346 # systems that can't hard-code library paths into their executables | |
9347 # and that have no shared library path variable independent of PATH, | |
9348 # but it turns out we can't easily determine that from inspecting | |
9349 # libtool variables, so we have to hard-code the OSs to which it | |
9350 # applies here; at the moment, that means platforms that use the PE | |
9351 # object format with DLL files. See the long comment at the top of | |
9352 # tests/bindir.at for full details. | |
8131 tdlname=$dlname | 9353 tdlname=$dlname |
8132 case $host,$output,$installed,$module,$dlname in | 9354 case $host,$output,$installed,$module,$dlname in |
8133 *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;; | 9355 *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) |
9356 # If a -bindir argument was supplied, place the dll there. | |
9357 if test "x$bindir" != x ; | |
9358 then | |
9359 func_relative_path "$install_libdir" "$bindir" | |
9360 tdlname=$func_relative_path_result$dlname | |
9361 else | |
9362 # Otherwise fall back on heuristic. | |
9363 tdlname=../bin/$dlname | |
9364 fi | |
9365 ;; | |
8134 esac | 9366 esac |
8135 $ECHO > $output "\ | 9367 $ECHO > $output "\ |
8136 # $outputname - a libtool library file | 9368 # $outputname - a libtool library file |
8137 # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION | 9369 # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION |
8138 # | 9370 # |
8187 ;; | 9419 ;; |
8188 esac | 9420 esac |
8189 exit $EXIT_SUCCESS | 9421 exit $EXIT_SUCCESS |
8190 } | 9422 } |
8191 | 9423 |
8192 { test "$mode" = link || test "$mode" = relink; } && | 9424 { test "$opt_mode" = link || test "$opt_mode" = relink; } && |
8193 func_mode_link ${1+"$@"} | 9425 func_mode_link ${1+"$@"} |
8194 | 9426 |
8195 | 9427 |
8196 # func_mode_uninstall arg... | 9428 # func_mode_uninstall arg... |
8197 func_mode_uninstall () | 9429 func_mode_uninstall () |
8207 libtool_install_magic="$magic" | 9439 libtool_install_magic="$magic" |
8208 | 9440 |
8209 for arg | 9441 for arg |
8210 do | 9442 do |
8211 case $arg in | 9443 case $arg in |
8212 -f) RM="$RM $arg"; rmforce=yes ;; | 9444 -f) func_append RM " $arg"; rmforce=yes ;; |
8213 -*) RM="$RM $arg" ;; | 9445 -*) func_append RM " $arg" ;; |
8214 *) files="$files $arg" ;; | 9446 *) func_append files " $arg" ;; |
8215 esac | 9447 esac |
8216 done | 9448 done |
8217 | 9449 |
8218 test -z "$RM" && \ | 9450 test -z "$RM" && \ |
8219 func_fatal_help "you must specify an RM program" | 9451 func_fatal_help "you must specify an RM program" |
8220 | 9452 |
8221 rmdirs= | 9453 rmdirs= |
8222 | 9454 |
8223 origobjdir="$objdir" | |
8224 for file in $files; do | 9455 for file in $files; do |
8225 func_dirname "$file" "" "." | 9456 func_dirname "$file" "" "." |
8226 dir="$func_dirname_result" | 9457 dir="$func_dirname_result" |
8227 if test "X$dir" = X.; then | 9458 if test "X$dir" = X.; then |
8228 objdir="$origobjdir" | 9459 odir="$objdir" |
8229 else | 9460 else |
8230 objdir="$dir/$origobjdir" | 9461 odir="$dir/$objdir" |
8231 fi | 9462 fi |
8232 func_basename "$file" | 9463 func_basename "$file" |
8233 name="$func_basename_result" | 9464 name="$func_basename_result" |
8234 test "$mode" = uninstall && objdir="$dir" | 9465 test "$opt_mode" = uninstall && odir="$dir" |
8235 | 9466 |
8236 # Remember objdir for removal later, being careful to avoid duplicates | 9467 # Remember odir for removal later, being careful to avoid duplicates |
8237 if test "$mode" = clean; then | 9468 if test "$opt_mode" = clean; then |
8238 case " $rmdirs " in | 9469 case " $rmdirs " in |
8239 *" $objdir "*) ;; | 9470 *" $odir "*) ;; |
8240 *) rmdirs="$rmdirs $objdir" ;; | 9471 *) func_append rmdirs " $odir" ;; |
8241 esac | 9472 esac |
8242 fi | 9473 fi |
8243 | 9474 |
8244 # Don't error if the file doesn't exist and rm -f was used. | 9475 # Don't error if the file doesn't exist and rm -f was used. |
8245 if { test -L "$file"; } >/dev/null 2>&1 || | 9476 if { test -L "$file"; } >/dev/null 2>&1 || |
8261 if func_lalib_p "$file"; then | 9492 if func_lalib_p "$file"; then |
8262 func_source $dir/$name | 9493 func_source $dir/$name |
8263 | 9494 |
8264 # Delete the libtool libraries and symlinks. | 9495 # Delete the libtool libraries and symlinks. |
8265 for n in $library_names; do | 9496 for n in $library_names; do |
8266 rmfiles="$rmfiles $objdir/$n" | 9497 func_append rmfiles " $odir/$n" |
8267 done | 9498 done |
8268 test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library" | 9499 test -n "$old_library" && func_append rmfiles " $odir/$old_library" |
8269 | 9500 |
8270 case "$mode" in | 9501 case "$opt_mode" in |
8271 clean) | 9502 clean) |
8272 case " $library_names " in | 9503 case " $library_names " in |
8273 # " " in the beginning catches empty $dlname | |
8274 *" $dlname "*) ;; | 9504 *" $dlname "*) ;; |
8275 *) rmfiles="$rmfiles $objdir/$dlname" ;; | 9505 *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;; |
8276 esac | 9506 esac |
8277 test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" | 9507 test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i" |
8278 ;; | 9508 ;; |
8279 uninstall) | 9509 uninstall) |
8280 if test -n "$library_names"; then | 9510 if test -n "$library_names"; then |
8281 # Do each command in the postuninstall commands. | 9511 # Do each command in the postuninstall commands. |
8282 func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' | 9512 func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' |
8300 func_source $dir/$name | 9530 func_source $dir/$name |
8301 | 9531 |
8302 # Add PIC object to the list of files to remove. | 9532 # Add PIC object to the list of files to remove. |
8303 if test -n "$pic_object" && | 9533 if test -n "$pic_object" && |
8304 test "$pic_object" != none; then | 9534 test "$pic_object" != none; then |
8305 rmfiles="$rmfiles $dir/$pic_object" | 9535 func_append rmfiles " $dir/$pic_object" |
8306 fi | 9536 fi |
8307 | 9537 |
8308 # Add non-PIC object to the list of files to remove. | 9538 # Add non-PIC object to the list of files to remove. |
8309 if test -n "$non_pic_object" && | 9539 if test -n "$non_pic_object" && |
8310 test "$non_pic_object" != none; then | 9540 test "$non_pic_object" != none; then |
8311 rmfiles="$rmfiles $dir/$non_pic_object" | 9541 func_append rmfiles " $dir/$non_pic_object" |
8312 fi | 9542 fi |
8313 fi | 9543 fi |
8314 ;; | 9544 ;; |
8315 | 9545 |
8316 *) | 9546 *) |
8317 if test "$mode" = clean ; then | 9547 if test "$opt_mode" = clean ; then |
8318 noexename=$name | 9548 noexename=$name |
8319 case $file in | 9549 case $file in |
8320 *.exe) | 9550 *.exe) |
8321 func_stripname '' '.exe' "$file" | 9551 func_stripname '' '.exe' "$file" |
8322 file=$func_stripname_result | 9552 file=$func_stripname_result |
8323 func_stripname '' '.exe' "$name" | 9553 func_stripname '' '.exe' "$name" |
8324 noexename=$func_stripname_result | 9554 noexename=$func_stripname_result |
8325 # $file with .exe has already been added to rmfiles, | 9555 # $file with .exe has already been added to rmfiles, |
8326 # add $file without .exe | 9556 # add $file without .exe |
8327 rmfiles="$rmfiles $file" | 9557 func_append rmfiles " $file" |
8328 ;; | 9558 ;; |
8329 esac | 9559 esac |
8330 # Do a test to see if this is a libtool program. | 9560 # Do a test to see if this is a libtool program. |
8331 if func_ltwrapper_p "$file"; then | 9561 if func_ltwrapper_p "$file"; then |
8332 if func_ltwrapper_executable_p "$file"; then | 9562 if func_ltwrapper_executable_p "$file"; then |
8333 func_ltwrapper_scriptname "$file" | 9563 func_ltwrapper_scriptname "$file" |
8334 relink_command= | 9564 relink_command= |
8335 func_source $func_ltwrapper_scriptname_result | 9565 func_source $func_ltwrapper_scriptname_result |
8336 rmfiles="$rmfiles $func_ltwrapper_scriptname_result" | 9566 func_append rmfiles " $func_ltwrapper_scriptname_result" |
8337 else | 9567 else |
8338 relink_command= | 9568 relink_command= |
8339 func_source $dir/$noexename | 9569 func_source $dir/$noexename |
8340 fi | 9570 fi |
8341 | 9571 |
8342 # note $name still contains .exe if it was in $file originally | 9572 # note $name still contains .exe if it was in $file originally |
8343 # as does the version of $file that was added into $rmfiles | 9573 # as does the version of $file that was added into $rmfiles |
8344 rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}" | 9574 func_append rmfiles " $odir/$name $odir/${name}S.${objext}" |
8345 if test "$fast_install" = yes && test -n "$relink_command"; then | 9575 if test "$fast_install" = yes && test -n "$relink_command"; then |
8346 rmfiles="$rmfiles $objdir/lt-$name" | 9576 func_append rmfiles " $odir/lt-$name" |
8347 fi | 9577 fi |
8348 if test "X$noexename" != "X$name" ; then | 9578 if test "X$noexename" != "X$name" ; then |
8349 rmfiles="$rmfiles $objdir/lt-${noexename}.c" | 9579 func_append rmfiles " $odir/lt-${noexename}.c" |
8350 fi | 9580 fi |
8351 fi | 9581 fi |
8352 fi | 9582 fi |
8353 ;; | 9583 ;; |
8354 esac | 9584 esac |
8355 func_show_eval "$RM $rmfiles" 'exit_status=1' | 9585 func_show_eval "$RM $rmfiles" 'exit_status=1' |
8356 done | 9586 done |
8357 objdir="$origobjdir" | |
8358 | 9587 |
8359 # Try to remove the ${objdir}s in the directories where we deleted files | 9588 # Try to remove the ${objdir}s in the directories where we deleted files |
8360 for dir in $rmdirs; do | 9589 for dir in $rmdirs; do |
8361 if test -d "$dir"; then | 9590 if test -d "$dir"; then |
8362 func_show_eval "rmdir $dir >/dev/null 2>&1" | 9591 func_show_eval "rmdir $dir >/dev/null 2>&1" |
8364 done | 9593 done |
8365 | 9594 |
8366 exit $exit_status | 9595 exit $exit_status |
8367 } | 9596 } |
8368 | 9597 |
8369 { test "$mode" = uninstall || test "$mode" = clean; } && | 9598 { test "$opt_mode" = uninstall || test "$opt_mode" = clean; } && |
8370 func_mode_uninstall ${1+"$@"} | 9599 func_mode_uninstall ${1+"$@"} |
8371 | 9600 |
8372 test -z "$mode" && { | 9601 test -z "$opt_mode" && { |
8373 help="$generic_help" | 9602 help="$generic_help" |
8374 func_fatal_help "you must specify a MODE" | 9603 func_fatal_help "you must specify a MODE" |
8375 } | 9604 } |
8376 | 9605 |
8377 test -z "$exec_cmd" && \ | 9606 test -z "$exec_cmd" && \ |
8378 func_fatal_help "invalid operation mode \`$mode'" | 9607 func_fatal_help "invalid operation mode \`$opt_mode'" |
8379 | 9608 |
8380 if test -n "$exec_cmd"; then | 9609 if test -n "$exec_cmd"; then |
8381 eval exec "$exec_cmd" | 9610 eval exec "$exec_cmd" |
8382 exit $EXIT_FAILURE | 9611 exit $EXIT_FAILURE |
8383 fi | 9612 fi |