Mercurial > urweb
comparison ltmain.sh @ 1826:6a621a625b04
New release
author | Adam Chlipala <adam@chlipala.net> |
---|---|
date | Tue, 25 Sep 2012 08:16:58 -0400 |
parents | 40557fb08e98 |
children |
comparison
equal
deleted
inserted
replaced
1825:52c291b05738 | 1826:6a621a625b04 |
---|---|
1 | 1 # Generated from ltmain.m4sh. |
2 # libtool (GNU libtool) 2.4.2 | 2 |
3 # ltmain.sh (GNU libtool) 2.2.6b | |
3 # Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996 | 4 # Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996 |
4 | 5 |
5 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, | 6 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, 2007 2008 Free Software Foundation, Inc. |
6 # 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc. | |
7 # This is free software; see the source for copying conditions. There is NO | 7 # This is free software; see the source for copying conditions. There is NO |
8 # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 8 # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
9 | 9 |
10 # GNU Libtool is free software; you can redistribute it and/or modify | 10 # GNU Libtool is free software; you can redistribute it and/or modify |
11 # it under the terms of the GNU General Public License as published by | 11 # it under the terms of the GNU General Public License as published by |
30 | 30 |
31 # Usage: $progname [OPTION]... [MODE-ARG]... | 31 # Usage: $progname [OPTION]... [MODE-ARG]... |
32 # | 32 # |
33 # Provide generalized library-building support services. | 33 # Provide generalized library-building support services. |
34 # | 34 # |
35 # --config show all configuration variables | 35 # --config show all configuration variables |
36 # --debug enable verbose shell tracing | 36 # --debug enable verbose shell tracing |
37 # -n, --dry-run display commands without modifying any files | 37 # -n, --dry-run display commands without modifying any files |
38 # --features display basic configuration information and exit | 38 # --features display basic configuration information and exit |
39 # --mode=MODE use operation mode MODE | 39 # --mode=MODE use operation mode MODE |
40 # --preserve-dup-deps don't remove duplicate dependency libraries | 40 # --preserve-dup-deps don't remove duplicate dependency libraries |
41 # --quiet, --silent don't print informational messages | 41 # --quiet, --silent don't print informational messages |
42 # --no-quiet, --no-silent | 42 # --tag=TAG use configuration variables from tag TAG |
43 # print informational messages (default) | 43 # -v, --verbose print informational messages (default) |
44 # --no-warn don't display warning messages | 44 # --version print version information |
45 # --tag=TAG use configuration variables from tag TAG | 45 # -h, --help print short or long help message |
46 # -v, --verbose print more informational messages than default | |
47 # --no-verbose don't print the extra informational messages | |
48 # --version print version information | |
49 # -h, --help, --help-all print short, long, or detailed help message | |
50 # | 46 # |
51 # MODE must be one of the following: | 47 # MODE must be one of the following: |
52 # | 48 # |
53 # clean remove files from the build directory | 49 # clean remove files from the build directory |
54 # compile compile a source file into a libtool object | 50 # compile compile a source file into a libtool object |
55 # execute automatically set library path, then run a program | 51 # execute automatically set library path, then run a program |
56 # finish complete the installation of libtool libraries | 52 # finish complete the installation of libtool libraries |
57 # install install libraries or executables | 53 # install install libraries or executables |
58 # link create a library or an executable | 54 # link create a library or an executable |
59 # uninstall remove libraries from an installed directory | 55 # uninstall remove libraries from an installed directory |
60 # | 56 # |
61 # MODE-ARGS vary depending on the MODE. When passed as first option, | 57 # MODE-ARGS vary depending on the MODE. |
62 # `--mode=MODE' may be abbreviated as `MODE' or a unique abbreviation of that. | |
63 # Try `$progname --help --mode=MODE' for a more detailed description of MODE. | 58 # Try `$progname --help --mode=MODE' for a more detailed description of MODE. |
64 # | 59 # |
65 # When reporting a bug, please describe a test case to reproduce it and | 60 # When reporting a bug, please describe a test case to reproduce it and |
66 # include the following information: | 61 # include the following information: |
67 # | 62 # |
68 # host-triplet: $host | 63 # host-triplet: $host |
69 # shell: $SHELL | 64 # shell: $SHELL |
70 # compiler: $LTCC | 65 # compiler: $LTCC |
71 # compiler flags: $LTCFLAGS | 66 # compiler flags: $LTCFLAGS |
72 # linker: $LD (gnu? $with_gnu_ld) | 67 # linker: $LD (gnu? $with_gnu_ld) |
73 # $progname: (GNU libtool) 2.4.2 Debian-2.4.2-1.1 | 68 # $progname: (GNU libtool) 2.2.6b Debian-2.2.6b-2 |
74 # automake: $automake_version | 69 # automake: $automake_version |
75 # autoconf: $autoconf_version | 70 # autoconf: $autoconf_version |
76 # | 71 # |
77 # Report bugs to <bug-libtool@gnu.org>. | 72 # Report bugs to <bug-libtool@gnu.org>. |
78 # GNU libtool home page: <http://www.gnu.org/software/libtool/>. | 73 |
79 # General help using GNU software: <http://www.gnu.org/gethelp/>. | 74 PROGRAM=ltmain.sh |
80 | |
81 PROGRAM=libtool | |
82 PACKAGE=libtool | 75 PACKAGE=libtool |
83 VERSION="2.4.2 Debian-2.4.2-1.1" | 76 VERSION="2.2.6b Debian-2.2.6b-2" |
84 TIMESTAMP="" | 77 TIMESTAMP="" |
85 package_revision=1.3337 | 78 package_revision=1.3017 |
86 | 79 |
87 # Be Bourne compatible | 80 # Be Bourne compatible |
88 if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then | 81 if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then |
89 emulate sh | 82 emulate sh |
90 NULLCMD=: | 83 NULLCMD=: |
96 case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac | 89 case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac |
97 fi | 90 fi |
98 BIN_SH=xpg4; export BIN_SH # for Tru64 | 91 BIN_SH=xpg4; export BIN_SH # for Tru64 |
99 DUALCASE=1; export DUALCASE # for MKS sh | 92 DUALCASE=1; export DUALCASE # for MKS sh |
100 | 93 |
101 # A function that is used when there is no print builtin or printf. | |
102 func_fallback_echo () | |
103 { | |
104 eval 'cat <<_LTECHO_EOF | |
105 $1 | |
106 _LTECHO_EOF' | |
107 } | |
108 | |
109 # NLS nuisances: We save the old values to restore during execute mode. | 94 # NLS nuisances: We save the old values to restore during execute mode. |
95 # Only set LANG and LC_ALL to C if already set. | |
96 # These must not be set unconditionally because not all systems understand | |
97 # e.g. LANG=C (notably SCO). | |
110 lt_user_locale= | 98 lt_user_locale= |
111 lt_safe_locale= | 99 lt_safe_locale= |
112 for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES | 100 for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES |
113 do | 101 do |
114 eval "if test \"\${$lt_var+set}\" = set; then | 102 eval "if test \"\${$lt_var+set}\" = set; then |
117 export $lt_var | 105 export $lt_var |
118 lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\" | 106 lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\" |
119 lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\" | 107 lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\" |
120 fi" | 108 fi" |
121 done | 109 done |
122 LC_ALL=C | |
123 LANGUAGE=C | |
124 export LANGUAGE LC_ALL | |
125 | 110 |
126 $lt_unset CDPATH | 111 $lt_unset CDPATH |
127 | 112 |
128 | 113 |
129 # Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh | |
130 # is ksh but when the shell is invoked as "sh" and the current value of | |
131 # the _XPG environment variable is not equal to 1 (one), the special | |
132 # positional parameter $0, within a function call, is the name of the | |
133 # function. | |
134 progpath="$0" | |
135 | 114 |
136 | 115 |
137 | 116 |
138 : ${CP="cp -f"} | 117 : ${CP="cp -f"} |
139 test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'} | 118 : ${ECHO="echo"} |
119 : ${EGREP="/bin/grep -E"} | |
120 : ${FGREP="/bin/grep -F"} | |
121 : ${GREP="/bin/grep"} | |
122 : ${LN_S="ln -s"} | |
140 : ${MAKE="make"} | 123 : ${MAKE="make"} |
141 : ${MKDIR="mkdir"} | 124 : ${MKDIR="mkdir"} |
142 : ${MV="mv -f"} | 125 : ${MV="mv -f"} |
143 : ${RM="rm -f"} | 126 : ${RM="rm -f"} |
127 : ${SED="/bin/sed"} | |
144 : ${SHELL="${CONFIG_SHELL-/bin/sh}"} | 128 : ${SHELL="${CONFIG_SHELL-/bin/sh}"} |
145 : ${Xsed="$SED -e 1s/^X//"} | 129 : ${Xsed="$SED -e 1s/^X//"} |
146 | 130 |
147 # Global variables: | 131 # Global variables: |
148 EXIT_SUCCESS=0 | 132 EXIT_SUCCESS=0 |
157 ' | 141 ' |
158 IFS=" $lt_nl" | 142 IFS=" $lt_nl" |
159 | 143 |
160 dirname="s,/[^/]*$,," | 144 dirname="s,/[^/]*$,," |
161 basename="s,^.*/,," | 145 basename="s,^.*/,," |
162 | |
163 # func_dirname file append nondir_replacement | |
164 # Compute the dirname of FILE. If nonempty, add APPEND to the result, | |
165 # otherwise set result to NONDIR_REPLACEMENT. | |
166 func_dirname () | |
167 { | |
168 func_dirname_result=`$ECHO "${1}" | $SED "$dirname"` | |
169 if test "X$func_dirname_result" = "X${1}"; then | |
170 func_dirname_result="${3}" | |
171 else | |
172 func_dirname_result="$func_dirname_result${2}" | |
173 fi | |
174 } # func_dirname may be replaced by extended shell implementation | |
175 | |
176 | |
177 # func_basename file | |
178 func_basename () | |
179 { | |
180 func_basename_result=`$ECHO "${1}" | $SED "$basename"` | |
181 } # func_basename may be replaced by extended shell implementation | |
182 | |
183 | 146 |
184 # func_dirname_and_basename file append nondir_replacement | 147 # func_dirname_and_basename file append nondir_replacement |
185 # perform func_basename and func_dirname in a single function | 148 # perform func_basename and func_dirname in a single function |
186 # call: | 149 # call: |
187 # dirname: Compute the dirname of FILE. If nonempty, | 150 # dirname: Compute the dirname of FILE. If nonempty, |
193 # Implementation must be kept synchronized with func_dirname | 156 # Implementation must be kept synchronized with func_dirname |
194 # and func_basename. For efficiency, we do not delegate to | 157 # and func_basename. For efficiency, we do not delegate to |
195 # those functions but instead duplicate the functionality here. | 158 # those functions but instead duplicate the functionality here. |
196 func_dirname_and_basename () | 159 func_dirname_and_basename () |
197 { | 160 { |
198 # Extract subdirectory from the argument. | 161 # Extract subdirectory from the argument. |
199 func_dirname_result=`$ECHO "${1}" | $SED -e "$dirname"` | 162 func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"` |
200 if test "X$func_dirname_result" = "X${1}"; then | 163 if test "X$func_dirname_result" = "X${1}"; then |
201 func_dirname_result="${3}" | 164 func_dirname_result="${3}" |
202 else | 165 else |
203 func_dirname_result="$func_dirname_result${2}" | 166 func_dirname_result="$func_dirname_result${2}" |
204 fi | 167 fi |
205 func_basename_result=`$ECHO "${1}" | $SED -e "$basename"` | 168 func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"` |
206 } # func_dirname_and_basename may be replaced by extended shell implementation | |
207 | |
208 | |
209 # func_stripname prefix suffix name | |
210 # strip PREFIX and SUFFIX off of NAME. | |
211 # PREFIX and SUFFIX must not contain globbing or regex special | |
212 # characters, hashes, percent signs, but SUFFIX may contain a leading | |
213 # dot (in which case that matches only a dot). | |
214 # func_strip_suffix prefix name | |
215 func_stripname () | |
216 { | |
217 case ${2} in | |
218 .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; | |
219 *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; | |
220 esac | |
221 } # func_stripname may be replaced by extended shell implementation | |
222 | |
223 | |
224 # These SED scripts presuppose an absolute path with a trailing slash. | |
225 pathcar='s,^/\([^/]*\).*$,\1,' | |
226 pathcdr='s,^/[^/]*,,' | |
227 removedotparts=':dotsl | |
228 s@/\./@/@g | |
229 t dotsl | |
230 s,/\.$,/,' | |
231 collapseslashes='s@/\{1,\}@/@g' | |
232 finalslash='s,/*$,/,' | |
233 | |
234 # func_normal_abspath PATH | |
235 # Remove doubled-up and trailing slashes, "." path components, | |
236 # and cancel out any ".." path components in PATH after making | |
237 # it an absolute path. | |
238 # value returned in "$func_normal_abspath_result" | |
239 func_normal_abspath () | |
240 { | |
241 # Start from root dir and reassemble the path. | |
242 func_normal_abspath_result= | |
243 func_normal_abspath_tpath=$1 | |
244 func_normal_abspath_altnamespace= | |
245 case $func_normal_abspath_tpath in | |
246 "") | |
247 # Empty path, that just means $cwd. | |
248 func_stripname '' '/' "`pwd`" | |
249 func_normal_abspath_result=$func_stripname_result | |
250 return | |
251 ;; | |
252 # The next three entries are used to spot a run of precisely | |
253 # two leading slashes without using negated character classes; | |
254 # we take advantage of case's first-match behaviour. | |
255 ///*) | |
256 # Unusual form of absolute path, do nothing. | |
257 ;; | |
258 //*) | |
259 # Not necessarily an ordinary path; POSIX reserves leading '//' | |
260 # and for example Cygwin uses it to access remote file shares | |
261 # over CIFS/SMB, so we conserve a leading double slash if found. | |
262 func_normal_abspath_altnamespace=/ | |
263 ;; | |
264 /*) | |
265 # Absolute path, do nothing. | |
266 ;; | |
267 *) | |
268 # Relative path, prepend $cwd. | |
269 func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath | |
270 ;; | |
271 esac | |
272 # Cancel out all the simple stuff to save iterations. We also want | |
273 # the path to end with a slash for ease of parsing, so make sure | |
274 # there is one (and only one) here. | |
275 func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ | |
276 -e "$removedotparts" -e "$collapseslashes" -e "$finalslash"` | |
277 while :; do | |
278 # Processed it all yet? | |
279 if test "$func_normal_abspath_tpath" = / ; then | |
280 # If we ascended to the root using ".." the result may be empty now. | |
281 if test -z "$func_normal_abspath_result" ; then | |
282 func_normal_abspath_result=/ | |
283 fi | |
284 break | |
285 fi | |
286 func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \ | |
287 -e "$pathcar"` | |
288 func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ | |
289 -e "$pathcdr"` | |
290 # Figure out what to do with it | |
291 case $func_normal_abspath_tcomponent in | |
292 "") | |
293 # Trailing empty path component, ignore it. | |
294 ;; | |
295 ..) | |
296 # Parent dir; strip last assembled component from result. | |
297 func_dirname "$func_normal_abspath_result" | |
298 func_normal_abspath_result=$func_dirname_result | |
299 ;; | |
300 *) | |
301 # Actual path component, append it. | |
302 func_normal_abspath_result=$func_normal_abspath_result/$func_normal_abspath_tcomponent | |
303 ;; | |
304 esac | |
305 done | |
306 # Restore leading double-slash if one was found on entry. | |
307 func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result | |
308 } | 169 } |
309 | 170 |
310 # func_relative_path SRCDIR DSTDIR | 171 # Generated shell functions inserted here. |
311 # generates a relative path from SRCDIR to DSTDIR, with a trailing | 172 |
312 # slash if non-empty, suitable for immediately appending a filename | 173 # Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh |
313 # without needing to append a separator. | 174 # is ksh but when the shell is invoked as "sh" and the current value of |
314 # value returned in "$func_relative_path_result" | 175 # the _XPG environment variable is not equal to 1 (one), the special |
315 func_relative_path () | 176 # positional parameter $0, within a function call, is the name of the |
316 { | 177 # function. |
317 func_relative_path_result= | 178 progpath="$0" |
318 func_normal_abspath "$1" | |
319 func_relative_path_tlibdir=$func_normal_abspath_result | |
320 func_normal_abspath "$2" | |
321 func_relative_path_tbindir=$func_normal_abspath_result | |
322 | |
323 # Ascend the tree starting from libdir | |
324 while :; do | |
325 # check if we have found a prefix of bindir | |
326 case $func_relative_path_tbindir in | |
327 $func_relative_path_tlibdir) | |
328 # found an exact match | |
329 func_relative_path_tcancelled= | |
330 break | |
331 ;; | |
332 $func_relative_path_tlibdir*) | |
333 # found a matching prefix | |
334 func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir" | |
335 func_relative_path_tcancelled=$func_stripname_result | |
336 if test -z "$func_relative_path_result"; then | |
337 func_relative_path_result=. | |
338 fi | |
339 break | |
340 ;; | |
341 *) | |
342 func_dirname $func_relative_path_tlibdir | |
343 func_relative_path_tlibdir=${func_dirname_result} | |
344 if test "x$func_relative_path_tlibdir" = x ; then | |
345 # Have to descend all the way to the root! | |
346 func_relative_path_result=../$func_relative_path_result | |
347 func_relative_path_tcancelled=$func_relative_path_tbindir | |
348 break | |
349 fi | |
350 func_relative_path_result=../$func_relative_path_result | |
351 ;; | |
352 esac | |
353 done | |
354 | |
355 # Now calculate path; take care to avoid doubling-up slashes. | |
356 func_stripname '' '/' "$func_relative_path_result" | |
357 func_relative_path_result=$func_stripname_result | |
358 func_stripname '/' '/' "$func_relative_path_tcancelled" | |
359 if test "x$func_stripname_result" != x ; then | |
360 func_relative_path_result=${func_relative_path_result}/${func_stripname_result} | |
361 fi | |
362 | |
363 # Normalisation. If bindir is libdir, return empty string, | |
364 # else relative path ending with a slash; either way, target | |
365 # file name can be directly appended. | |
366 if test ! -z "$func_relative_path_result"; then | |
367 func_stripname './' '' "$func_relative_path_result/" | |
368 func_relative_path_result=$func_stripname_result | |
369 fi | |
370 } | |
371 | 179 |
372 # The name of this program: | 180 # The name of this program: |
181 # In the unlikely event $progname began with a '-', it would play havoc with | |
182 # func_echo (imagine progname=-n), so we prepend ./ in that case: | |
373 func_dirname_and_basename "$progpath" | 183 func_dirname_and_basename "$progpath" |
374 progname=$func_basename_result | 184 progname=$func_basename_result |
185 case $progname in | |
186 -*) progname=./$progname ;; | |
187 esac | |
375 | 188 |
376 # Make sure we have an absolute path for reexecution: | 189 # Make sure we have an absolute path for reexecution: |
377 case $progpath in | 190 case $progpath in |
378 [\\/]*|[A-Za-z]:\\*) ;; | 191 [\\/]*|[A-Za-z]:\\*) ;; |
379 *[\\/]*) | 192 *[\\/]*) |
381 progdir=`cd "$progdir" && pwd` | 194 progdir=`cd "$progdir" && pwd` |
382 progpath="$progdir/$progname" | 195 progpath="$progdir/$progname" |
383 ;; | 196 ;; |
384 *) | 197 *) |
385 save_IFS="$IFS" | 198 save_IFS="$IFS" |
386 IFS=${PATH_SEPARATOR-:} | 199 IFS=: |
387 for progdir in $PATH; do | 200 for progdir in $PATH; do |
388 IFS="$save_IFS" | 201 IFS="$save_IFS" |
389 test -x "$progdir/$progname" && break | 202 test -x "$progdir/$progname" && break |
390 done | 203 done |
391 IFS="$save_IFS" | 204 IFS="$save_IFS" |
399 Xsed="${SED}"' -e 1s/^X//' | 212 Xsed="${SED}"' -e 1s/^X//' |
400 sed_quote_subst='s/\([`"$\\]\)/\\\1/g' | 213 sed_quote_subst='s/\([`"$\\]\)/\\\1/g' |
401 | 214 |
402 # Same as above, but do not quote variable references. | 215 # Same as above, but do not quote variable references. |
403 double_quote_subst='s/\(["`\\]\)/\\\1/g' | 216 double_quote_subst='s/\(["`\\]\)/\\\1/g' |
404 | |
405 # Sed substitution that turns a string into a regex matching for the | |
406 # string literally. | |
407 sed_make_literal_regex='s,[].[^$\\*\/],\\&,g' | |
408 | |
409 # Sed substitution that converts a w32 file name or path | |
410 # which contains forward slashes, into one that contains | |
411 # (escaped) backslashes. A very naive implementation. | |
412 lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' | |
413 | 217 |
414 # Re-`\' parameter expansions in output of double_quote_subst that were | 218 # Re-`\' parameter expansions in output of double_quote_subst that were |
415 # `\'-ed in input to the same. If an odd number of `\' preceded a '$' | 219 # `\'-ed in input to the same. If an odd number of `\' preceded a '$' |
416 # in input to double_quote_subst, that '$' was protected from expansion. | 220 # in input to double_quote_subst, that '$' was protected from expansion. |
417 # Since each input `\' is now two `\'s, look for any number of runs of | 221 # Since each input `\' is now two `\'s, look for any number of runs of |
437 # func_echo arg... | 241 # func_echo arg... |
438 # Echo program name prefixed message, along with the current mode | 242 # Echo program name prefixed message, along with the current mode |
439 # name if it has been set yet. | 243 # name if it has been set yet. |
440 func_echo () | 244 func_echo () |
441 { | 245 { |
442 $ECHO "$progname: ${opt_mode+$opt_mode: }$*" | 246 $ECHO "$progname${mode+: }$mode: $*" |
443 } | 247 } |
444 | 248 |
445 # func_verbose arg... | 249 # func_verbose arg... |
446 # Echo program name prefixed message in verbose mode only. | 250 # Echo program name prefixed message in verbose mode only. |
447 func_verbose () | 251 func_verbose () |
452 # fails when set -e is in force, so we need another command to | 256 # fails when set -e is in force, so we need another command to |
453 # work around that: | 257 # work around that: |
454 : | 258 : |
455 } | 259 } |
456 | 260 |
457 # func_echo_all arg... | |
458 # Invoke $ECHO with all args, space-separated. | |
459 func_echo_all () | |
460 { | |
461 $ECHO "$*" | |
462 } | |
463 | |
464 # func_error arg... | 261 # func_error arg... |
465 # Echo program name prefixed message to standard error. | 262 # Echo program name prefixed message to standard error. |
466 func_error () | 263 func_error () |
467 { | 264 { |
468 $ECHO "$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2 | 265 $ECHO "$progname${mode+: }$mode: "${1+"$@"} 1>&2 |
469 } | 266 } |
470 | 267 |
471 # func_warning arg... | 268 # func_warning arg... |
472 # Echo program name prefixed warning message to standard error. | 269 # Echo program name prefixed warning message to standard error. |
473 func_warning () | 270 func_warning () |
474 { | 271 { |
475 $opt_warning && $ECHO "$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2 | 272 $opt_warning && $ECHO "$progname${mode+: }$mode: warning: "${1+"$@"} 1>&2 |
476 | 273 |
477 # bash bug again: | 274 # bash bug again: |
478 : | 275 : |
479 } | 276 } |
480 | 277 |
527 | 324 |
528 # If the last portion added has no slash in it, the list is done | 325 # If the last portion added has no slash in it, the list is done |
529 case $my_directory_path in */*) ;; *) break ;; esac | 326 case $my_directory_path in */*) ;; *) break ;; esac |
530 | 327 |
531 # ...otherwise throw away the child directory and loop | 328 # ...otherwise throw away the child directory and loop |
532 my_directory_path=`$ECHO "$my_directory_path" | $SED -e "$dirname"` | 329 my_directory_path=`$ECHO "X$my_directory_path" | $Xsed -e "$dirname"` |
533 done | 330 done |
534 my_dir_list=`$ECHO "$my_dir_list" | $SED 's,:*$,,'` | 331 my_dir_list=`$ECHO "X$my_dir_list" | $Xsed -e 's,:*$,,'` |
535 | 332 |
536 save_mkdir_p_IFS="$IFS"; IFS=':' | 333 save_mkdir_p_IFS="$IFS"; IFS=':' |
537 for my_dir in $my_dir_list; do | 334 for my_dir in $my_dir_list; do |
538 IFS="$save_mkdir_p_IFS" | 335 IFS="$save_mkdir_p_IFS" |
539 # mkdir can fail with a `File exist' error if two processes | 336 # mkdir can fail with a `File exist' error if two processes |
579 # If we're not in dry-run mode, bomb out on failure | 376 # If we're not in dry-run mode, bomb out on failure |
580 test -d "$my_tmpdir" || \ | 377 test -d "$my_tmpdir" || \ |
581 func_fatal_error "cannot create temporary directory \`$my_tmpdir'" | 378 func_fatal_error "cannot create temporary directory \`$my_tmpdir'" |
582 fi | 379 fi |
583 | 380 |
584 $ECHO "$my_tmpdir" | 381 $ECHO "X$my_tmpdir" | $Xsed |
585 } | 382 } |
586 | 383 |
587 | 384 |
588 # func_quote_for_eval arg | 385 # func_quote_for_eval arg |
589 # Aesthetically quote ARG to be evaled later. | 386 # Aesthetically quote ARG to be evaled later. |
593 # which are still active within double quotes backslashified. | 390 # which are still active within double quotes backslashified. |
594 func_quote_for_eval () | 391 func_quote_for_eval () |
595 { | 392 { |
596 case $1 in | 393 case $1 in |
597 *[\\\`\"\$]*) | 394 *[\\\`\"\$]*) |
598 func_quote_for_eval_unquoted_result=`$ECHO "$1" | $SED "$sed_quote_subst"` ;; | 395 func_quote_for_eval_unquoted_result=`$ECHO "X$1" | $Xsed -e "$sed_quote_subst"` ;; |
599 *) | 396 *) |
600 func_quote_for_eval_unquoted_result="$1" ;; | 397 func_quote_for_eval_unquoted_result="$1" ;; |
601 esac | 398 esac |
602 | 399 |
603 case $func_quote_for_eval_unquoted_result in | 400 case $func_quote_for_eval_unquoted_result in |
620 # but do not quote variable references. | 417 # but do not quote variable references. |
621 func_quote_for_expand () | 418 func_quote_for_expand () |
622 { | 419 { |
623 case $1 in | 420 case $1 in |
624 *[\\\`\"]*) | 421 *[\\\`\"]*) |
625 my_arg=`$ECHO "$1" | $SED \ | 422 my_arg=`$ECHO "X$1" | $Xsed \ |
626 -e "$double_quote_subst" -e "$sed_double_backslash"` ;; | 423 -e "$double_quote_subst" -e "$sed_double_backslash"` ;; |
627 *) | 424 *) |
628 my_arg="$1" ;; | 425 my_arg="$1" ;; |
629 esac | 426 esac |
630 | 427 |
689 eval "(exit $my_status); $my_fail_exp" | 486 eval "(exit $my_status); $my_fail_exp" |
690 fi | 487 fi |
691 fi | 488 fi |
692 } | 489 } |
693 | 490 |
694 # func_tr_sh | 491 |
695 # Turn $1 into a string suitable for a shell variable name. | 492 |
696 # Result is stored in $func_tr_sh_result. All characters | |
697 # not in the set a-zA-Z0-9_ are replaced with '_'. Further, | |
698 # if $1 begins with a digit, a '_' is prepended as well. | |
699 func_tr_sh () | |
700 { | |
701 case $1 in | |
702 [0-9]* | *[!a-zA-Z0-9_]*) | |
703 func_tr_sh_result=`$ECHO "$1" | $SED 's/^\([0-9]\)/_\1/; s/[^a-zA-Z0-9_]/_/g'` | |
704 ;; | |
705 * ) | |
706 func_tr_sh_result=$1 | |
707 ;; | |
708 esac | |
709 } | |
710 | 493 |
711 | 494 |
712 # func_version | 495 # func_version |
713 # Echo version message to standard output and exit. | 496 # Echo version message to standard output and exit. |
714 func_version () | 497 func_version () |
715 { | 498 { |
716 $opt_debug | 499 $SED -n '/^# '$PROGRAM' (GNU /,/# warranty; / { |
717 | |
718 $SED -n '/(C)/!b go | |
719 :more | |
720 /\./!{ | |
721 N | |
722 s/\n# / / | |
723 b more | |
724 } | |
725 :go | |
726 /^# '$PROGRAM' (GNU /,/# warranty; / { | |
727 s/^# // | 500 s/^# // |
728 s/^# *$// | 501 s/^# *$// |
729 s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/ | 502 s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/ |
730 p | 503 p |
731 }' < "$progpath" | 504 }' < "$progpath" |
734 | 507 |
735 # func_usage | 508 # func_usage |
736 # Echo short help message to standard output and exit. | 509 # Echo short help message to standard output and exit. |
737 func_usage () | 510 func_usage () |
738 { | 511 { |
739 $opt_debug | 512 $SED -n '/^# Usage:/,/# -h/ { |
740 | |
741 $SED -n '/^# Usage:/,/^# *.*--help/ { | |
742 s/^# // | 513 s/^# // |
743 s/^# *$// | 514 s/^# *$// |
744 s/\$progname/'$progname'/ | 515 s/\$progname/'$progname'/ |
745 p | 516 p |
746 }' < "$progpath" | 517 }' < "$progpath" |
747 echo | 518 $ECHO |
748 $ECHO "run \`$progname --help | more' for full usage" | 519 $ECHO "run \`$progname --help | more' for full usage" |
749 exit $? | 520 exit $? |
750 } | 521 } |
751 | 522 |
752 # func_help [NOEXIT] | 523 # func_help |
753 # Echo long help message to standard output and exit, | 524 # Echo long help message to standard output and exit. |
754 # unless 'noexit' is passed as argument. | |
755 func_help () | 525 func_help () |
756 { | 526 { |
757 $opt_debug | |
758 | |
759 $SED -n '/^# Usage:/,/# Report bugs to/ { | 527 $SED -n '/^# Usage:/,/# Report bugs to/ { |
760 :print | |
761 s/^# // | 528 s/^# // |
762 s/^# *$// | 529 s/^# *$// |
763 s*\$progname*'$progname'* | 530 s*\$progname*'$progname'* |
764 s*\$host*'"$host"'* | 531 s*\$host*'"$host"'* |
765 s*\$SHELL*'"$SHELL"'* | 532 s*\$SHELL*'"$SHELL"'* |
766 s*\$LTCC*'"$LTCC"'* | 533 s*\$LTCC*'"$LTCC"'* |
767 s*\$LTCFLAGS*'"$LTCFLAGS"'* | 534 s*\$LTCFLAGS*'"$LTCFLAGS"'* |
768 s*\$LD*'"$LD"'* | 535 s*\$LD*'"$LD"'* |
769 s/\$with_gnu_ld/'"$with_gnu_ld"'/ | 536 s/\$with_gnu_ld/'"$with_gnu_ld"'/ |
770 s/\$automake_version/'"`(${AUTOMAKE-automake} --version) 2>/dev/null |$SED 1q`"'/ | 537 s/\$automake_version/'"`(automake --version) 2>/dev/null |$SED 1q`"'/ |
771 s/\$autoconf_version/'"`(${AUTOCONF-autoconf} --version) 2>/dev/null |$SED 1q`"'/ | 538 s/\$autoconf_version/'"`(autoconf --version) 2>/dev/null |$SED 1q`"'/ |
772 p | 539 p |
773 d | 540 }' < "$progpath" |
774 } | 541 exit $? |
775 /^# .* home page:/b print | |
776 /^# General help using/b print | |
777 ' < "$progpath" | |
778 ret=$? | |
779 if test -z "$1"; then | |
780 exit $ret | |
781 fi | |
782 } | 542 } |
783 | 543 |
784 # func_missing_arg argname | 544 # func_missing_arg argname |
785 # Echo program name prefixed message to standard error and set global | 545 # Echo program name prefixed message to standard error and set global |
786 # exit_cmd. | 546 # exit_cmd. |
787 func_missing_arg () | 547 func_missing_arg () |
788 { | 548 { |
789 $opt_debug | 549 func_error "missing argument for $1" |
790 | |
791 func_error "missing argument for $1." | |
792 exit_cmd=exit | 550 exit_cmd=exit |
793 } | 551 } |
794 | 552 |
795 | |
796 # func_split_short_opt shortopt | |
797 # Set func_split_short_opt_name and func_split_short_opt_arg shell | |
798 # variables after splitting SHORTOPT after the 2nd character. | |
799 func_split_short_opt () | |
800 { | |
801 my_sed_short_opt='1s/^\(..\).*$/\1/;q' | |
802 my_sed_short_rest='1s/^..\(.*\)$/\1/;q' | |
803 | |
804 func_split_short_opt_name=`$ECHO "$1" | $SED "$my_sed_short_opt"` | |
805 func_split_short_opt_arg=`$ECHO "$1" | $SED "$my_sed_short_rest"` | |
806 } # func_split_short_opt may be replaced by extended shell implementation | |
807 | |
808 | |
809 # func_split_long_opt longopt | |
810 # Set func_split_long_opt_name and func_split_long_opt_arg shell | |
811 # variables after splitting LONGOPT at the `=' sign. | |
812 func_split_long_opt () | |
813 { | |
814 my_sed_long_opt='1s/^\(--[^=]*\)=.*/\1/;q' | |
815 my_sed_long_arg='1s/^--[^=]*=//' | |
816 | |
817 func_split_long_opt_name=`$ECHO "$1" | $SED "$my_sed_long_opt"` | |
818 func_split_long_opt_arg=`$ECHO "$1" | $SED "$my_sed_long_arg"` | |
819 } # func_split_long_opt may be replaced by extended shell implementation | |
820 | |
821 exit_cmd=: | 553 exit_cmd=: |
822 | 554 |
823 | 555 |
824 | 556 |
825 | 557 |
558 | |
559 # Check that we have a working $ECHO. | |
560 if test "X$1" = X--no-reexec; then | |
561 # Discard the --no-reexec flag, and continue. | |
562 shift | |
563 elif test "X$1" = X--fallback-echo; then | |
564 # Avoid inline document here, it may be left over | |
565 : | |
566 elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t'; then | |
567 # Yippee, $ECHO works! | |
568 : | |
569 else | |
570 # Restart under the correct shell, and then maybe $ECHO will work. | |
571 exec $SHELL "$progpath" --no-reexec ${1+"$@"} | |
572 fi | |
573 | |
574 if test "X$1" = X--fallback-echo; then | |
575 # used as fallback echo | |
576 shift | |
577 cat <<EOF | |
578 $* | |
579 EOF | |
580 exit $EXIT_SUCCESS | |
581 fi | |
826 | 582 |
827 magic="%%%MAGIC variable%%%" | 583 magic="%%%MAGIC variable%%%" |
828 magic_exe="%%%MAGIC EXE variable%%%" | 584 magic_exe="%%%MAGIC EXE variable%%%" |
829 | 585 |
830 # Global variables. | 586 # Global variables. |
587 # $mode is unset | |
831 nonopt= | 588 nonopt= |
589 execute_dlfiles= | |
832 preserve_args= | 590 preserve_args= |
833 lo2o="s/\\.lo\$/.${objext}/" | 591 lo2o="s/\\.lo\$/.${objext}/" |
834 o2lo="s/\\.${objext}\$/.lo/" | 592 o2lo="s/\\.${objext}\$/.lo/" |
835 extracted_archives= | 593 extracted_archives= |
836 extracted_serial=0 | 594 extracted_serial=0 |
837 | 595 |
596 opt_dry_run=false | |
597 opt_duplicate_deps=false | |
598 opt_silent=false | |
599 opt_debug=: | |
600 | |
838 # If this variable is set in any of the actions, the command in it | 601 # If this variable is set in any of the actions, the command in it |
839 # will be execed at the end. This prevents here-documents from being | 602 # will be execed at the end. This prevents here-documents from being |
840 # left over by shells. | 603 # left over by shells. |
841 exec_cmd= | 604 exec_cmd= |
842 | |
843 # func_append var value | |
844 # Append VALUE to the end of shell variable VAR. | |
845 func_append () | |
846 { | |
847 eval "${1}=\$${1}\${2}" | |
848 } # func_append may be replaced by extended shell implementation | |
849 | |
850 # func_append_quoted var value | |
851 # Quote VALUE and append to the end of shell variable VAR, separated | |
852 # by a space. | |
853 func_append_quoted () | |
854 { | |
855 func_quote_for_eval "${2}" | |
856 eval "${1}=\$${1}\\ \$func_quote_for_eval_result" | |
857 } # func_append_quoted may be replaced by extended shell implementation | |
858 | |
859 | |
860 # func_arith arithmetic-term... | |
861 func_arith () | |
862 { | |
863 func_arith_result=`expr "${@}"` | |
864 } # func_arith may be replaced by extended shell implementation | |
865 | |
866 | |
867 # func_len string | |
868 # STRING may not start with a hyphen. | |
869 func_len () | |
870 { | |
871 func_len_result=`expr "${1}" : ".*" 2>/dev/null || echo $max_cmd_len` | |
872 } # func_len may be replaced by extended shell implementation | |
873 | |
874 | |
875 # func_lo2o object | |
876 func_lo2o () | |
877 { | |
878 func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"` | |
879 } # func_lo2o may be replaced by extended shell implementation | |
880 | |
881 | |
882 # func_xform libobj-or-source | |
883 func_xform () | |
884 { | |
885 func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'` | |
886 } # func_xform may be replaced by extended shell implementation | |
887 | |
888 | 605 |
889 # func_fatal_configuration arg... | 606 # func_fatal_configuration arg... |
890 # Echo program name prefixed message to standard error, followed by | 607 # Echo program name prefixed message to standard error, followed by |
891 # a configuration failure hint, and exit. | 608 # a configuration failure hint, and exit. |
892 func_fatal_configuration () | 609 func_fatal_configuration () |
917 | 634 |
918 # func_features | 635 # func_features |
919 # Display the features supported by this script. | 636 # Display the features supported by this script. |
920 func_features () | 637 func_features () |
921 { | 638 { |
922 echo "host: $host" | 639 $ECHO "host: $host" |
923 if test "$build_libtool_libs" = yes; then | 640 if test "$build_libtool_libs" = yes; then |
924 echo "enable shared libraries" | 641 $ECHO "enable shared libraries" |
925 else | 642 else |
926 echo "disable shared libraries" | 643 $ECHO "disable shared libraries" |
927 fi | 644 fi |
928 if test "$build_old_libs" = yes; then | 645 if test "$build_old_libs" = yes; then |
929 echo "enable static libraries" | 646 $ECHO "enable static libraries" |
930 else | 647 else |
931 echo "disable static libraries" | 648 $ECHO "disable static libraries" |
932 fi | 649 fi |
933 | 650 |
934 exit $? | 651 exit $? |
935 } | 652 } |
936 | 653 |
971 else | 688 else |
972 func_error "ignoring unknown tag $tagname" | 689 func_error "ignoring unknown tag $tagname" |
973 fi | 690 fi |
974 ;; | 691 ;; |
975 esac | 692 esac |
693 } | |
694 | |
695 # Parse options once, thoroughly. This comes as soon as possible in | |
696 # the script to make things like `libtool --version' happen quickly. | |
697 { | |
698 | |
699 # Shorthand for --mode=foo, only valid as the first argument | |
700 case $1 in | |
701 clean|clea|cle|cl) | |
702 shift; set dummy --mode clean ${1+"$@"}; shift | |
703 ;; | |
704 compile|compil|compi|comp|com|co|c) | |
705 shift; set dummy --mode compile ${1+"$@"}; shift | |
706 ;; | |
707 execute|execut|execu|exec|exe|ex|e) | |
708 shift; set dummy --mode execute ${1+"$@"}; shift | |
709 ;; | |
710 finish|finis|fini|fin|fi|f) | |
711 shift; set dummy --mode finish ${1+"$@"}; shift | |
712 ;; | |
713 install|instal|insta|inst|ins|in|i) | |
714 shift; set dummy --mode install ${1+"$@"}; shift | |
715 ;; | |
716 link|lin|li|l) | |
717 shift; set dummy --mode link ${1+"$@"}; shift | |
718 ;; | |
719 uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) | |
720 shift; set dummy --mode uninstall ${1+"$@"}; shift | |
721 ;; | |
722 esac | |
723 | |
724 # Parse non-mode specific arguments: | |
725 while test "$#" -gt 0; do | |
726 opt="$1" | |
727 shift | |
728 | |
729 case $opt in | |
730 --config) func_config ;; | |
731 | |
732 --debug) preserve_args="$preserve_args $opt" | |
733 func_echo "enabling shell trace mode" | |
734 opt_debug='set -x' | |
735 $opt_debug | |
736 ;; | |
737 | |
738 -dlopen) test "$#" -eq 0 && func_missing_arg "$opt" && break | |
739 execute_dlfiles="$execute_dlfiles $1" | |
740 shift | |
741 ;; | |
742 | |
743 --dry-run | -n) opt_dry_run=: ;; | |
744 --features) func_features ;; | |
745 --finish) mode="finish" ;; | |
746 | |
747 --mode) test "$#" -eq 0 && func_missing_arg "$opt" && break | |
748 case $1 in | |
749 # Valid mode arguments: | |
750 clean) ;; | |
751 compile) ;; | |
752 execute) ;; | |
753 finish) ;; | |
754 install) ;; | |
755 link) ;; | |
756 relink) ;; | |
757 uninstall) ;; | |
758 | |
759 # Catch anything else as an error | |
760 *) func_error "invalid argument for $opt" | |
761 exit_cmd=exit | |
762 break | |
763 ;; | |
764 esac | |
765 | |
766 mode="$1" | |
767 shift | |
768 ;; | |
769 | |
770 --preserve-dup-deps) | |
771 opt_duplicate_deps=: ;; | |
772 | |
773 --quiet|--silent) preserve_args="$preserve_args $opt" | |
774 opt_silent=: | |
775 ;; | |
776 | |
777 --verbose| -v) preserve_args="$preserve_args $opt" | |
778 opt_silent=false | |
779 ;; | |
780 | |
781 --tag) test "$#" -eq 0 && func_missing_arg "$opt" && break | |
782 preserve_args="$preserve_args $opt $1" | |
783 func_enable_tag "$1" # tagname is set here | |
784 shift | |
785 ;; | |
786 | |
787 # Separate optargs to long options: | |
788 -dlopen=*|--mode=*|--tag=*) | |
789 func_opt_split "$opt" | |
790 set dummy "$func_opt_split_opt" "$func_opt_split_arg" ${1+"$@"} | |
791 shift | |
792 ;; | |
793 | |
794 -\?|-h) func_usage ;; | |
795 --help) opt_help=: ;; | |
796 --version) func_version ;; | |
797 | |
798 -*) func_fatal_help "unrecognized option \`$opt'" ;; | |
799 | |
800 *) nonopt="$opt" | |
801 break | |
802 ;; | |
803 esac | |
804 done | |
805 | |
806 | |
807 case $host in | |
808 *cygwin* | *mingw* | *pw32* | *cegcc*) | |
809 # don't eliminate duplications in $postdeps and $predeps | |
810 opt_duplicate_compiler_generated_deps=: | |
811 ;; | |
812 *) | |
813 opt_duplicate_compiler_generated_deps=$opt_duplicate_deps | |
814 ;; | |
815 esac | |
816 | |
817 # Having warned about all mis-specified options, bail out if | |
818 # anything was wrong. | |
819 $exit_cmd $EXIT_FAILURE | |
976 } | 820 } |
977 | 821 |
978 # func_check_version_match | 822 # func_check_version_match |
979 # Ensure that we are using m4 macros, and libtool script from the same | 823 # Ensure that we are using m4 macros, and libtool script from the same |
980 # release of libtool. | 824 # release of libtool. |
1009 exit $EXIT_MISMATCH | 853 exit $EXIT_MISMATCH |
1010 fi | 854 fi |
1011 } | 855 } |
1012 | 856 |
1013 | 857 |
1014 # Shorthand for --mode=foo, only valid as the first argument | |
1015 case $1 in | |
1016 clean|clea|cle|cl) | |
1017 shift; set dummy --mode clean ${1+"$@"}; shift | |
1018 ;; | |
1019 compile|compil|compi|comp|com|co|c) | |
1020 shift; set dummy --mode compile ${1+"$@"}; shift | |
1021 ;; | |
1022 execute|execut|execu|exec|exe|ex|e) | |
1023 shift; set dummy --mode execute ${1+"$@"}; shift | |
1024 ;; | |
1025 finish|finis|fini|fin|fi|f) | |
1026 shift; set dummy --mode finish ${1+"$@"}; shift | |
1027 ;; | |
1028 install|instal|insta|inst|ins|in|i) | |
1029 shift; set dummy --mode install ${1+"$@"}; shift | |
1030 ;; | |
1031 link|lin|li|l) | |
1032 shift; set dummy --mode link ${1+"$@"}; shift | |
1033 ;; | |
1034 uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) | |
1035 shift; set dummy --mode uninstall ${1+"$@"}; shift | |
1036 ;; | |
1037 esac | |
1038 | |
1039 | |
1040 | |
1041 # Option defaults: | |
1042 opt_debug=: | |
1043 opt_dry_run=false | |
1044 opt_config=false | |
1045 opt_preserve_dup_deps=false | |
1046 opt_features=false | |
1047 opt_finish=false | |
1048 opt_help=false | |
1049 opt_help_all=false | |
1050 opt_silent=: | |
1051 opt_warning=: | |
1052 opt_verbose=: | |
1053 opt_silent=false | |
1054 opt_verbose=false | |
1055 | |
1056 | |
1057 # Parse options once, thoroughly. This comes as soon as possible in the | |
1058 # script to make things like `--version' happen as quickly as we can. | |
1059 { | |
1060 # this just eases exit handling | |
1061 while test $# -gt 0; do | |
1062 opt="$1" | |
1063 shift | |
1064 case $opt in | |
1065 --debug|-x) opt_debug='set -x' | |
1066 func_echo "enabling shell trace mode" | |
1067 $opt_debug | |
1068 ;; | |
1069 --dry-run|--dryrun|-n) | |
1070 opt_dry_run=: | |
1071 ;; | |
1072 --config) | |
1073 opt_config=: | |
1074 func_config | |
1075 ;; | |
1076 --dlopen|-dlopen) | |
1077 optarg="$1" | |
1078 opt_dlopen="${opt_dlopen+$opt_dlopen | |
1079 }$optarg" | |
1080 shift | |
1081 ;; | |
1082 --preserve-dup-deps) | |
1083 opt_preserve_dup_deps=: | |
1084 ;; | |
1085 --features) | |
1086 opt_features=: | |
1087 func_features | |
1088 ;; | |
1089 --finish) | |
1090 opt_finish=: | |
1091 set dummy --mode finish ${1+"$@"}; shift | |
1092 ;; | |
1093 --help) | |
1094 opt_help=: | |
1095 ;; | |
1096 --help-all) | |
1097 opt_help_all=: | |
1098 opt_help=': help-all' | |
1099 ;; | |
1100 --mode) | |
1101 test $# = 0 && func_missing_arg $opt && break | |
1102 optarg="$1" | |
1103 opt_mode="$optarg" | |
1104 case $optarg in | |
1105 # Valid mode arguments: | |
1106 clean|compile|execute|finish|install|link|relink|uninstall) ;; | |
1107 | |
1108 # Catch anything else as an error | |
1109 *) func_error "invalid argument for $opt" | |
1110 exit_cmd=exit | |
1111 break | |
1112 ;; | |
1113 esac | |
1114 shift | |
1115 ;; | |
1116 --no-silent|--no-quiet) | |
1117 opt_silent=false | |
1118 func_append preserve_args " $opt" | |
1119 ;; | |
1120 --no-warning|--no-warn) | |
1121 opt_warning=false | |
1122 func_append preserve_args " $opt" | |
1123 ;; | |
1124 --no-verbose) | |
1125 opt_verbose=false | |
1126 func_append preserve_args " $opt" | |
1127 ;; | |
1128 --silent|--quiet) | |
1129 opt_silent=: | |
1130 func_append preserve_args " $opt" | |
1131 opt_verbose=false | |
1132 ;; | |
1133 --verbose|-v) | |
1134 opt_verbose=: | |
1135 func_append preserve_args " $opt" | |
1136 opt_silent=false | |
1137 ;; | |
1138 --tag) | |
1139 test $# = 0 && func_missing_arg $opt && break | |
1140 optarg="$1" | |
1141 opt_tag="$optarg" | |
1142 func_append preserve_args " $opt $optarg" | |
1143 func_enable_tag "$optarg" | |
1144 shift | |
1145 ;; | |
1146 | |
1147 -\?|-h) func_usage ;; | |
1148 --help) func_help ;; | |
1149 --version) func_version ;; | |
1150 | |
1151 # Separate optargs to long options: | |
1152 --*=*) | |
1153 func_split_long_opt "$opt" | |
1154 set dummy "$func_split_long_opt_name" "$func_split_long_opt_arg" ${1+"$@"} | |
1155 shift | |
1156 ;; | |
1157 | |
1158 # Separate non-argument short options: | |
1159 -\?*|-h*|-n*|-v*) | |
1160 func_split_short_opt "$opt" | |
1161 set dummy "$func_split_short_opt_name" "-$func_split_short_opt_arg" ${1+"$@"} | |
1162 shift | |
1163 ;; | |
1164 | |
1165 --) break ;; | |
1166 -*) func_fatal_help "unrecognized option \`$opt'" ;; | |
1167 *) set dummy "$opt" ${1+"$@"}; shift; break ;; | |
1168 esac | |
1169 done | |
1170 | |
1171 # Validate options: | |
1172 | |
1173 # save first non-option argument | |
1174 if test "$#" -gt 0; then | |
1175 nonopt="$opt" | |
1176 shift | |
1177 fi | |
1178 | |
1179 # preserve --debug | |
1180 test "$opt_debug" = : || func_append preserve_args " --debug" | |
1181 | |
1182 case $host in | |
1183 *cygwin* | *mingw* | *pw32* | *cegcc*) | |
1184 # don't eliminate duplications in $postdeps and $predeps | |
1185 opt_duplicate_compiler_generated_deps=: | |
1186 ;; | |
1187 *) | |
1188 opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps | |
1189 ;; | |
1190 esac | |
1191 | |
1192 $opt_help || { | |
1193 # Sanity checks first: | |
1194 func_check_version_match | |
1195 | |
1196 if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then | |
1197 func_fatal_configuration "not configured to build any kind of library" | |
1198 fi | |
1199 | |
1200 # Darwin sucks | |
1201 eval std_shrext=\"$shrext_cmds\" | |
1202 | |
1203 # Only execute mode is allowed to have -dlopen flags. | |
1204 if test -n "$opt_dlopen" && test "$opt_mode" != execute; then | |
1205 func_error "unrecognized option \`-dlopen'" | |
1206 $ECHO "$help" 1>&2 | |
1207 exit $EXIT_FAILURE | |
1208 fi | |
1209 | |
1210 # Change the help message to a mode-specific one. | |
1211 generic_help="$help" | |
1212 help="Try \`$progname --help --mode=$opt_mode' for more information." | |
1213 } | |
1214 | |
1215 | |
1216 # Bail if the options were screwed | |
1217 $exit_cmd $EXIT_FAILURE | |
1218 } | |
1219 | |
1220 | |
1221 | |
1222 | |
1223 ## ----------- ## | 858 ## ----------- ## |
1224 ## Main. ## | 859 ## Main. ## |
1225 ## ----------- ## | 860 ## ----------- ## |
861 | |
862 $opt_help || { | |
863 # Sanity checks first: | |
864 func_check_version_match | |
865 | |
866 if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then | |
867 func_fatal_configuration "not configured to build any kind of library" | |
868 fi | |
869 | |
870 test -z "$mode" && func_fatal_error "error: you must specify a MODE." | |
871 | |
872 | |
873 # Darwin sucks | |
874 eval std_shrext=\"$shrext_cmds\" | |
875 | |
876 | |
877 # Only execute mode is allowed to have -dlopen flags. | |
878 if test -n "$execute_dlfiles" && test "$mode" != execute; then | |
879 func_error "unrecognized option \`-dlopen'" | |
880 $ECHO "$help" 1>&2 | |
881 exit $EXIT_FAILURE | |
882 fi | |
883 | |
884 # Change the help message to a mode-specific one. | |
885 generic_help="$help" | |
886 help="Try \`$progname --help --mode=$mode' for more information." | |
887 } | |
888 | |
1226 | 889 |
1227 # func_lalib_p file | 890 # func_lalib_p file |
1228 # True iff FILE is a libtool `.la' library or `.lo' object file. | 891 # True iff FILE is a libtool `.la' library or `.lo' object file. |
1229 # This function is only a basic sanity check; it will hardly flush out | 892 # This function is only a basic sanity check; it will hardly flush out |
1230 # determined imposters. | 893 # determined imposters. |
1285 # Assumes file is an ltwrapper_executable | 948 # Assumes file is an ltwrapper_executable |
1286 # uses $file to determine the appropriate filename for a | 949 # uses $file to determine the appropriate filename for a |
1287 # temporary ltwrapper_script. | 950 # temporary ltwrapper_script. |
1288 func_ltwrapper_scriptname () | 951 func_ltwrapper_scriptname () |
1289 { | 952 { |
1290 func_dirname_and_basename "$1" "" "." | 953 func_ltwrapper_scriptname_result="" |
1291 func_stripname '' '.exe' "$func_basename_result" | 954 if func_ltwrapper_executable_p "$1"; then |
1292 func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper" | 955 func_dirname_and_basename "$1" "" "." |
956 func_stripname '' '.exe' "$func_basename_result" | |
957 func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper" | |
958 fi | |
1293 } | 959 } |
1294 | 960 |
1295 # func_ltwrapper_p file | 961 # func_ltwrapper_p file |
1296 # True iff FILE is a libtool wrapper script or wrapper executable | 962 # True iff FILE is a libtool wrapper script or wrapper executable |
1297 # This function is only a basic sanity check; it will hardly flush out | 963 # This function is only a basic sanity check; it will hardly flush out |
1333 *) . "./$1" ;; | 999 *) . "./$1" ;; |
1334 esac | 1000 esac |
1335 } | 1001 } |
1336 | 1002 |
1337 | 1003 |
1338 # func_resolve_sysroot PATH | |
1339 # Replace a leading = in PATH with a sysroot. Store the result into | |
1340 # func_resolve_sysroot_result | |
1341 func_resolve_sysroot () | |
1342 { | |
1343 func_resolve_sysroot_result=$1 | |
1344 case $func_resolve_sysroot_result in | |
1345 =*) | |
1346 func_stripname '=' '' "$func_resolve_sysroot_result" | |
1347 func_resolve_sysroot_result=$lt_sysroot$func_stripname_result | |
1348 ;; | |
1349 esac | |
1350 } | |
1351 | |
1352 # func_replace_sysroot PATH | |
1353 # If PATH begins with the sysroot, replace it with = and | |
1354 # store the result into func_replace_sysroot_result. | |
1355 func_replace_sysroot () | |
1356 { | |
1357 case "$lt_sysroot:$1" in | |
1358 ?*:"$lt_sysroot"*) | |
1359 func_stripname "$lt_sysroot" '' "$1" | |
1360 func_replace_sysroot_result="=$func_stripname_result" | |
1361 ;; | |
1362 *) | |
1363 # Including no sysroot. | |
1364 func_replace_sysroot_result=$1 | |
1365 ;; | |
1366 esac | |
1367 } | |
1368 | |
1369 # func_infer_tag arg | 1004 # func_infer_tag arg |
1370 # Infer tagged configuration to use if any are available and | 1005 # Infer tagged configuration to use if any are available and |
1371 # if one wasn't chosen via the "--tag" command line option. | 1006 # if one wasn't chosen via the "--tag" command line option. |
1372 # Only attempt this if the compiler in the base compile | 1007 # Only attempt this if the compiler in the base compile |
1373 # command doesn't match the default compiler. | 1008 # command doesn't match the default compiler. |
1376 { | 1011 { |
1377 $opt_debug | 1012 $opt_debug |
1378 if test -n "$available_tags" && test -z "$tagname"; then | 1013 if test -n "$available_tags" && test -z "$tagname"; then |
1379 CC_quoted= | 1014 CC_quoted= |
1380 for arg in $CC; do | 1015 for arg in $CC; do |
1381 func_append_quoted CC_quoted "$arg" | 1016 func_quote_for_eval "$arg" |
1017 CC_quoted="$CC_quoted $func_quote_for_eval_result" | |
1382 done | 1018 done |
1383 CC_expanded=`func_echo_all $CC` | |
1384 CC_quoted_expanded=`func_echo_all $CC_quoted` | |
1385 case $@ in | 1019 case $@ in |
1386 # Blanks in the command may have been stripped by the calling shell, | 1020 # Blanks in the command may have been stripped by the calling shell, |
1387 # but not from the CC environment variable when configure was run. | 1021 # but not from the CC environment variable when configure was run. |
1388 " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ | 1022 " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) ;; |
1389 " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;; | |
1390 # Blanks at the start of $base_compile will cause this to fail | 1023 # Blanks at the start of $base_compile will cause this to fail |
1391 # if we don't check for them as well. | 1024 # if we don't check for them as well. |
1392 *) | 1025 *) |
1393 for z in $available_tags; do | 1026 for z in $available_tags; do |
1394 if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then | 1027 if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then |
1395 # Evaluate the configuration. | 1028 # Evaluate the configuration. |
1396 eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" | 1029 eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" |
1397 CC_quoted= | 1030 CC_quoted= |
1398 for arg in $CC; do | 1031 for arg in $CC; do |
1399 # Double-quote args containing other shell metacharacters. | 1032 # Double-quote args containing other shell metacharacters. |
1400 func_append_quoted CC_quoted "$arg" | 1033 func_quote_for_eval "$arg" |
1034 CC_quoted="$CC_quoted $func_quote_for_eval_result" | |
1401 done | 1035 done |
1402 CC_expanded=`func_echo_all $CC` | |
1403 CC_quoted_expanded=`func_echo_all $CC_quoted` | |
1404 case "$@ " in | 1036 case "$@ " in |
1405 " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ | 1037 " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) |
1406 " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) | |
1407 # The compiler in the base compile command matches | 1038 # The compiler in the base compile command matches |
1408 # the one in the tagged configuration. | 1039 # the one in the tagged configuration. |
1409 # Assume this is the tagged configuration we want. | 1040 # Assume this is the tagged configuration we want. |
1410 tagname=$z | 1041 tagname=$z |
1411 break | 1042 break |
1464 EOF | 1095 EOF |
1465 $MV "${write_libobj}T" "${write_libobj}" | 1096 $MV "${write_libobj}T" "${write_libobj}" |
1466 } | 1097 } |
1467 } | 1098 } |
1468 | 1099 |
1469 | |
1470 ################################################## | |
1471 # FILE NAME AND PATH CONVERSION HELPER FUNCTIONS # | |
1472 ################################################## | |
1473 | |
1474 # func_convert_core_file_wine_to_w32 ARG | |
1475 # Helper function used by file name conversion functions when $build is *nix, | |
1476 # and $host is mingw, cygwin, or some other w32 environment. Relies on a | |
1477 # correctly configured wine environment available, with the winepath program | |
1478 # in $build's $PATH. | |
1479 # | |
1480 # ARG is the $build file name to be converted to w32 format. | |
1481 # Result is available in $func_convert_core_file_wine_to_w32_result, and will | |
1482 # be empty on error (or when ARG is empty) | |
1483 func_convert_core_file_wine_to_w32 () | |
1484 { | |
1485 $opt_debug | |
1486 func_convert_core_file_wine_to_w32_result="$1" | |
1487 if test -n "$1"; then | |
1488 # Unfortunately, winepath does not exit with a non-zero error code, so we | |
1489 # are forced to check the contents of stdout. On the other hand, if the | |
1490 # command is not found, the shell will set an exit code of 127 and print | |
1491 # *an error message* to stdout. So we must check for both error code of | |
1492 # zero AND non-empty stdout, which explains the odd construction: | |
1493 func_convert_core_file_wine_to_w32_tmp=`winepath -w "$1" 2>/dev/null` | |
1494 if test "$?" -eq 0 && test -n "${func_convert_core_file_wine_to_w32_tmp}"; then | |
1495 func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" | | |
1496 $SED -e "$lt_sed_naive_backslashify"` | |
1497 else | |
1498 func_convert_core_file_wine_to_w32_result= | |
1499 fi | |
1500 fi | |
1501 } | |
1502 # end: func_convert_core_file_wine_to_w32 | |
1503 | |
1504 | |
1505 # func_convert_core_path_wine_to_w32 ARG | |
1506 # Helper function used by path conversion functions when $build is *nix, and | |
1507 # $host is mingw, cygwin, or some other w32 environment. Relies on a correctly | |
1508 # configured wine environment available, with the winepath program in $build's | |
1509 # $PATH. Assumes ARG has no leading or trailing path separator characters. | |
1510 # | |
1511 # ARG is path to be converted from $build format to win32. | |
1512 # Result is available in $func_convert_core_path_wine_to_w32_result. | |
1513 # Unconvertible file (directory) names in ARG are skipped; if no directory names | |
1514 # are convertible, then the result may be empty. | |
1515 func_convert_core_path_wine_to_w32 () | |
1516 { | |
1517 $opt_debug | |
1518 # unfortunately, winepath doesn't convert paths, only file names | |
1519 func_convert_core_path_wine_to_w32_result="" | |
1520 if test -n "$1"; then | |
1521 oldIFS=$IFS | |
1522 IFS=: | |
1523 for func_convert_core_path_wine_to_w32_f in $1; do | |
1524 IFS=$oldIFS | |
1525 func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f" | |
1526 if test -n "$func_convert_core_file_wine_to_w32_result" ; then | |
1527 if test -z "$func_convert_core_path_wine_to_w32_result"; then | |
1528 func_convert_core_path_wine_to_w32_result="$func_convert_core_file_wine_to_w32_result" | |
1529 else | |
1530 func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result" | |
1531 fi | |
1532 fi | |
1533 done | |
1534 IFS=$oldIFS | |
1535 fi | |
1536 } | |
1537 # end: func_convert_core_path_wine_to_w32 | |
1538 | |
1539 | |
1540 # func_cygpath ARGS... | |
1541 # Wrapper around calling the cygpath program via LT_CYGPATH. This is used when | |
1542 # when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2) | |
1543 # $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or | |
1544 # (2), returns the Cygwin file name or path in func_cygpath_result (input | |
1545 # file name or path is assumed to be in w32 format, as previously converted | |
1546 # from $build's *nix or MSYS format). In case (3), returns the w32 file name | |
1547 # or path in func_cygpath_result (input file name or path is assumed to be in | |
1548 # Cygwin format). Returns an empty string on error. | |
1549 # | |
1550 # ARGS are passed to cygpath, with the last one being the file name or path to | |
1551 # be converted. | |
1552 # | |
1553 # Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH | |
1554 # environment variable; do not put it in $PATH. | |
1555 func_cygpath () | |
1556 { | |
1557 $opt_debug | |
1558 if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then | |
1559 func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null` | |
1560 if test "$?" -ne 0; then | |
1561 # on failure, ensure result is empty | |
1562 func_cygpath_result= | |
1563 fi | |
1564 else | |
1565 func_cygpath_result= | |
1566 func_error "LT_CYGPATH is empty or specifies non-existent file: \`$LT_CYGPATH'" | |
1567 fi | |
1568 } | |
1569 #end: func_cygpath | |
1570 | |
1571 | |
1572 # func_convert_core_msys_to_w32 ARG | |
1573 # Convert file name or path ARG from MSYS format to w32 format. Return | |
1574 # result in func_convert_core_msys_to_w32_result. | |
1575 func_convert_core_msys_to_w32 () | |
1576 { | |
1577 $opt_debug | |
1578 # awkward: cmd appends spaces to result | |
1579 func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null | | |
1580 $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"` | |
1581 } | |
1582 #end: func_convert_core_msys_to_w32 | |
1583 | |
1584 | |
1585 # func_convert_file_check ARG1 ARG2 | |
1586 # Verify that ARG1 (a file name in $build format) was converted to $host | |
1587 # format in ARG2. Otherwise, emit an error message, but continue (resetting | |
1588 # func_to_host_file_result to ARG1). | |
1589 func_convert_file_check () | |
1590 { | |
1591 $opt_debug | |
1592 if test -z "$2" && test -n "$1" ; then | |
1593 func_error "Could not determine host file name corresponding to" | |
1594 func_error " \`$1'" | |
1595 func_error "Continuing, but uninstalled executables may not work." | |
1596 # Fallback: | |
1597 func_to_host_file_result="$1" | |
1598 fi | |
1599 } | |
1600 # end func_convert_file_check | |
1601 | |
1602 | |
1603 # func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH | |
1604 # Verify that FROM_PATH (a path in $build format) was converted to $host | |
1605 # format in TO_PATH. Otherwise, emit an error message, but continue, resetting | |
1606 # func_to_host_file_result to a simplistic fallback value (see below). | |
1607 func_convert_path_check () | |
1608 { | |
1609 $opt_debug | |
1610 if test -z "$4" && test -n "$3"; then | |
1611 func_error "Could not determine the host path corresponding to" | |
1612 func_error " \`$3'" | |
1613 func_error "Continuing, but uninstalled executables may not work." | |
1614 # Fallback. This is a deliberately simplistic "conversion" and | |
1615 # should not be "improved". See libtool.info. | |
1616 if test "x$1" != "x$2"; then | |
1617 lt_replace_pathsep_chars="s|$1|$2|g" | |
1618 func_to_host_path_result=`echo "$3" | | |
1619 $SED -e "$lt_replace_pathsep_chars"` | |
1620 else | |
1621 func_to_host_path_result="$3" | |
1622 fi | |
1623 fi | |
1624 } | |
1625 # end func_convert_path_check | |
1626 | |
1627 | |
1628 # func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG | |
1629 # Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT | |
1630 # and appending REPL if ORIG matches BACKPAT. | |
1631 func_convert_path_front_back_pathsep () | |
1632 { | |
1633 $opt_debug | |
1634 case $4 in | |
1635 $1 ) func_to_host_path_result="$3$func_to_host_path_result" | |
1636 ;; | |
1637 esac | |
1638 case $4 in | |
1639 $2 ) func_append func_to_host_path_result "$3" | |
1640 ;; | |
1641 esac | |
1642 } | |
1643 # end func_convert_path_front_back_pathsep | |
1644 | |
1645 | |
1646 ################################################## | |
1647 # $build to $host FILE NAME CONVERSION FUNCTIONS # | |
1648 ################################################## | |
1649 # invoked via `$to_host_file_cmd ARG' | |
1650 # | |
1651 # In each case, ARG is the path to be converted from $build to $host format. | |
1652 # Result will be available in $func_to_host_file_result. | |
1653 | |
1654 | |
1655 # func_to_host_file ARG | |
1656 # Converts the file name ARG from $build format to $host format. Return result | |
1657 # in func_to_host_file_result. | |
1658 func_to_host_file () | |
1659 { | |
1660 $opt_debug | |
1661 $to_host_file_cmd "$1" | |
1662 } | |
1663 # end func_to_host_file | |
1664 | |
1665 | |
1666 # func_to_tool_file ARG LAZY | |
1667 # converts the file name ARG from $build format to toolchain format. Return | |
1668 # result in func_to_tool_file_result. If the conversion in use is listed | |
1669 # in (the comma separated) LAZY, no conversion takes place. | |
1670 func_to_tool_file () | |
1671 { | |
1672 $opt_debug | |
1673 case ,$2, in | |
1674 *,"$to_tool_file_cmd",*) | |
1675 func_to_tool_file_result=$1 | |
1676 ;; | |
1677 *) | |
1678 $to_tool_file_cmd "$1" | |
1679 func_to_tool_file_result=$func_to_host_file_result | |
1680 ;; | |
1681 esac | |
1682 } | |
1683 # end func_to_tool_file | |
1684 | |
1685 | |
1686 # func_convert_file_noop ARG | |
1687 # Copy ARG to func_to_host_file_result. | |
1688 func_convert_file_noop () | |
1689 { | |
1690 func_to_host_file_result="$1" | |
1691 } | |
1692 # end func_convert_file_noop | |
1693 | |
1694 | |
1695 # func_convert_file_msys_to_w32 ARG | |
1696 # Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic | |
1697 # conversion to w32 is not available inside the cwrapper. Returns result in | |
1698 # func_to_host_file_result. | |
1699 func_convert_file_msys_to_w32 () | |
1700 { | |
1701 $opt_debug | |
1702 func_to_host_file_result="$1" | |
1703 if test -n "$1"; then | |
1704 func_convert_core_msys_to_w32 "$1" | |
1705 func_to_host_file_result="$func_convert_core_msys_to_w32_result" | |
1706 fi | |
1707 func_convert_file_check "$1" "$func_to_host_file_result" | |
1708 } | |
1709 # end func_convert_file_msys_to_w32 | |
1710 | |
1711 | |
1712 # func_convert_file_cygwin_to_w32 ARG | |
1713 # Convert file name ARG from Cygwin to w32 format. Returns result in | |
1714 # func_to_host_file_result. | |
1715 func_convert_file_cygwin_to_w32 () | |
1716 { | |
1717 $opt_debug | |
1718 func_to_host_file_result="$1" | |
1719 if test -n "$1"; then | |
1720 # because $build is cygwin, we call "the" cygpath in $PATH; no need to use | |
1721 # LT_CYGPATH in this case. | |
1722 func_to_host_file_result=`cygpath -m "$1"` | |
1723 fi | |
1724 func_convert_file_check "$1" "$func_to_host_file_result" | |
1725 } | |
1726 # end func_convert_file_cygwin_to_w32 | |
1727 | |
1728 | |
1729 # func_convert_file_nix_to_w32 ARG | |
1730 # Convert file name ARG from *nix to w32 format. Requires a wine environment | |
1731 # and a working winepath. Returns result in func_to_host_file_result. | |
1732 func_convert_file_nix_to_w32 () | |
1733 { | |
1734 $opt_debug | |
1735 func_to_host_file_result="$1" | |
1736 if test -n "$1"; then | |
1737 func_convert_core_file_wine_to_w32 "$1" | |
1738 func_to_host_file_result="$func_convert_core_file_wine_to_w32_result" | |
1739 fi | |
1740 func_convert_file_check "$1" "$func_to_host_file_result" | |
1741 } | |
1742 # end func_convert_file_nix_to_w32 | |
1743 | |
1744 | |
1745 # func_convert_file_msys_to_cygwin ARG | |
1746 # Convert file name ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. | |
1747 # Returns result in func_to_host_file_result. | |
1748 func_convert_file_msys_to_cygwin () | |
1749 { | |
1750 $opt_debug | |
1751 func_to_host_file_result="$1" | |
1752 if test -n "$1"; then | |
1753 func_convert_core_msys_to_w32 "$1" | |
1754 func_cygpath -u "$func_convert_core_msys_to_w32_result" | |
1755 func_to_host_file_result="$func_cygpath_result" | |
1756 fi | |
1757 func_convert_file_check "$1" "$func_to_host_file_result" | |
1758 } | |
1759 # end func_convert_file_msys_to_cygwin | |
1760 | |
1761 | |
1762 # func_convert_file_nix_to_cygwin ARG | |
1763 # Convert file name ARG from *nix to Cygwin format. Requires Cygwin installed | |
1764 # in a wine environment, working winepath, and LT_CYGPATH set. Returns result | |
1765 # in func_to_host_file_result. | |
1766 func_convert_file_nix_to_cygwin () | |
1767 { | |
1768 $opt_debug | |
1769 func_to_host_file_result="$1" | |
1770 if test -n "$1"; then | |
1771 # convert from *nix to w32, then use cygpath to convert from w32 to cygwin. | |
1772 func_convert_core_file_wine_to_w32 "$1" | |
1773 func_cygpath -u "$func_convert_core_file_wine_to_w32_result" | |
1774 func_to_host_file_result="$func_cygpath_result" | |
1775 fi | |
1776 func_convert_file_check "$1" "$func_to_host_file_result" | |
1777 } | |
1778 # end func_convert_file_nix_to_cygwin | |
1779 | |
1780 | |
1781 ############################################# | |
1782 # $build to $host PATH CONVERSION FUNCTIONS # | |
1783 ############################################# | |
1784 # invoked via `$to_host_path_cmd ARG' | |
1785 # | |
1786 # In each case, ARG is the path to be converted from $build to $host format. | |
1787 # The result will be available in $func_to_host_path_result. | |
1788 # | |
1789 # Path separators are also converted from $build format to $host format. If | |
1790 # ARG begins or ends with a path separator character, it is preserved (but | |
1791 # converted to $host format) on output. | |
1792 # | |
1793 # All path conversion functions are named using the following convention: | |
1794 # file name conversion function : func_convert_file_X_to_Y () | |
1795 # path conversion function : func_convert_path_X_to_Y () | |
1796 # where, for any given $build/$host combination the 'X_to_Y' value is the | |
1797 # same. If conversion functions are added for new $build/$host combinations, | |
1798 # the two new functions must follow this pattern, or func_init_to_host_path_cmd | |
1799 # will break. | |
1800 | |
1801 | |
1802 # func_init_to_host_path_cmd | |
1803 # Ensures that function "pointer" variable $to_host_path_cmd is set to the | |
1804 # appropriate value, based on the value of $to_host_file_cmd. | |
1805 to_host_path_cmd= | |
1806 func_init_to_host_path_cmd () | |
1807 { | |
1808 $opt_debug | |
1809 if test -z "$to_host_path_cmd"; then | |
1810 func_stripname 'func_convert_file_' '' "$to_host_file_cmd" | |
1811 to_host_path_cmd="func_convert_path_${func_stripname_result}" | |
1812 fi | |
1813 } | |
1814 | |
1815 | |
1816 # func_to_host_path ARG | |
1817 # Converts the path ARG from $build format to $host format. Return result | |
1818 # in func_to_host_path_result. | |
1819 func_to_host_path () | |
1820 { | |
1821 $opt_debug | |
1822 func_init_to_host_path_cmd | |
1823 $to_host_path_cmd "$1" | |
1824 } | |
1825 # end func_to_host_path | |
1826 | |
1827 | |
1828 # func_convert_path_noop ARG | |
1829 # Copy ARG to func_to_host_path_result. | |
1830 func_convert_path_noop () | |
1831 { | |
1832 func_to_host_path_result="$1" | |
1833 } | |
1834 # end func_convert_path_noop | |
1835 | |
1836 | |
1837 # func_convert_path_msys_to_w32 ARG | |
1838 # Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic | |
1839 # conversion to w32 is not available inside the cwrapper. Returns result in | |
1840 # func_to_host_path_result. | |
1841 func_convert_path_msys_to_w32 () | |
1842 { | |
1843 $opt_debug | |
1844 func_to_host_path_result="$1" | |
1845 if test -n "$1"; then | |
1846 # Remove leading and trailing path separator characters from ARG. MSYS | |
1847 # behavior is inconsistent here; cygpath turns them into '.;' and ';.'; | |
1848 # and winepath ignores them completely. | |
1849 func_stripname : : "$1" | |
1850 func_to_host_path_tmp1=$func_stripname_result | |
1851 func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" | |
1852 func_to_host_path_result="$func_convert_core_msys_to_w32_result" | |
1853 func_convert_path_check : ";" \ | |
1854 "$func_to_host_path_tmp1" "$func_to_host_path_result" | |
1855 func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" | |
1856 fi | |
1857 } | |
1858 # end func_convert_path_msys_to_w32 | |
1859 | |
1860 | |
1861 # func_convert_path_cygwin_to_w32 ARG | |
1862 # Convert path ARG from Cygwin to w32 format. Returns result in | |
1863 # func_to_host_file_result. | |
1864 func_convert_path_cygwin_to_w32 () | |
1865 { | |
1866 $opt_debug | |
1867 func_to_host_path_result="$1" | |
1868 if test -n "$1"; then | |
1869 # See func_convert_path_msys_to_w32: | |
1870 func_stripname : : "$1" | |
1871 func_to_host_path_tmp1=$func_stripname_result | |
1872 func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"` | |
1873 func_convert_path_check : ";" \ | |
1874 "$func_to_host_path_tmp1" "$func_to_host_path_result" | |
1875 func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" | |
1876 fi | |
1877 } | |
1878 # end func_convert_path_cygwin_to_w32 | |
1879 | |
1880 | |
1881 # func_convert_path_nix_to_w32 ARG | |
1882 # Convert path ARG from *nix to w32 format. Requires a wine environment and | |
1883 # a working winepath. Returns result in func_to_host_file_result. | |
1884 func_convert_path_nix_to_w32 () | |
1885 { | |
1886 $opt_debug | |
1887 func_to_host_path_result="$1" | |
1888 if test -n "$1"; then | |
1889 # See func_convert_path_msys_to_w32: | |
1890 func_stripname : : "$1" | |
1891 func_to_host_path_tmp1=$func_stripname_result | |
1892 func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" | |
1893 func_to_host_path_result="$func_convert_core_path_wine_to_w32_result" | |
1894 func_convert_path_check : ";" \ | |
1895 "$func_to_host_path_tmp1" "$func_to_host_path_result" | |
1896 func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" | |
1897 fi | |
1898 } | |
1899 # end func_convert_path_nix_to_w32 | |
1900 | |
1901 | |
1902 # func_convert_path_msys_to_cygwin ARG | |
1903 # Convert path ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. | |
1904 # Returns result in func_to_host_file_result. | |
1905 func_convert_path_msys_to_cygwin () | |
1906 { | |
1907 $opt_debug | |
1908 func_to_host_path_result="$1" | |
1909 if test -n "$1"; then | |
1910 # See func_convert_path_msys_to_w32: | |
1911 func_stripname : : "$1" | |
1912 func_to_host_path_tmp1=$func_stripname_result | |
1913 func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" | |
1914 func_cygpath -u -p "$func_convert_core_msys_to_w32_result" | |
1915 func_to_host_path_result="$func_cygpath_result" | |
1916 func_convert_path_check : : \ | |
1917 "$func_to_host_path_tmp1" "$func_to_host_path_result" | |
1918 func_convert_path_front_back_pathsep ":*" "*:" : "$1" | |
1919 fi | |
1920 } | |
1921 # end func_convert_path_msys_to_cygwin | |
1922 | |
1923 | |
1924 # func_convert_path_nix_to_cygwin ARG | |
1925 # Convert path ARG from *nix to Cygwin format. Requires Cygwin installed in a | |
1926 # a wine environment, working winepath, and LT_CYGPATH set. Returns result in | |
1927 # func_to_host_file_result. | |
1928 func_convert_path_nix_to_cygwin () | |
1929 { | |
1930 $opt_debug | |
1931 func_to_host_path_result="$1" | |
1932 if test -n "$1"; then | |
1933 # Remove leading and trailing path separator characters from | |
1934 # ARG. msys behavior is inconsistent here, cygpath turns them | |
1935 # into '.;' and ';.', and winepath ignores them completely. | |
1936 func_stripname : : "$1" | |
1937 func_to_host_path_tmp1=$func_stripname_result | |
1938 func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" | |
1939 func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result" | |
1940 func_to_host_path_result="$func_cygpath_result" | |
1941 func_convert_path_check : : \ | |
1942 "$func_to_host_path_tmp1" "$func_to_host_path_result" | |
1943 func_convert_path_front_back_pathsep ":*" "*:" : "$1" | |
1944 fi | |
1945 } | |
1946 # end func_convert_path_nix_to_cygwin | |
1947 | |
1948 | |
1949 # func_mode_compile arg... | 1100 # func_mode_compile arg... |
1950 func_mode_compile () | 1101 func_mode_compile () |
1951 { | 1102 { |
1952 $opt_debug | 1103 $opt_debug |
1953 # Get the compilation command and the source file. | 1104 # Get the compilation command and the source file. |
1984 arg_mode=target | 1135 arg_mode=target |
1985 continue | 1136 continue |
1986 ;; | 1137 ;; |
1987 | 1138 |
1988 -pie | -fpie | -fPIE) | 1139 -pie | -fpie | -fPIE) |
1989 func_append pie_flag " $arg" | 1140 pie_flag="$pie_flag $arg" |
1990 continue | 1141 continue |
1991 ;; | 1142 ;; |
1992 | 1143 |
1993 -shared | -static | -prefer-pic | -prefer-non-pic) | 1144 -shared | -static | -prefer-pic | -prefer-non-pic) |
1994 func_append later " $arg" | 1145 later="$later $arg" |
1995 continue | 1146 continue |
1996 ;; | 1147 ;; |
1997 | 1148 |
1998 -no-suppress) | 1149 -no-suppress) |
1999 suppress_opt=no | 1150 suppress_opt=no |
2010 args=$func_stripname_result | 1161 args=$func_stripname_result |
2011 lastarg= | 1162 lastarg= |
2012 save_ifs="$IFS"; IFS=',' | 1163 save_ifs="$IFS"; IFS=',' |
2013 for arg in $args; do | 1164 for arg in $args; do |
2014 IFS="$save_ifs" | 1165 IFS="$save_ifs" |
2015 func_append_quoted lastarg "$arg" | 1166 func_quote_for_eval "$arg" |
1167 lastarg="$lastarg $func_quote_for_eval_result" | |
2016 done | 1168 done |
2017 IFS="$save_ifs" | 1169 IFS="$save_ifs" |
2018 func_stripname ' ' '' "$lastarg" | 1170 func_stripname ' ' '' "$lastarg" |
2019 lastarg=$func_stripname_result | 1171 lastarg=$func_stripname_result |
2020 | 1172 |
2021 # Add the arguments to base_compile. | 1173 # Add the arguments to base_compile. |
2022 func_append base_compile " $lastarg" | 1174 base_compile="$base_compile $lastarg" |
2023 continue | 1175 continue |
2024 ;; | 1176 ;; |
2025 | 1177 |
2026 *) | 1178 *) |
2027 # Accept the current argument as the source file. | 1179 # Accept the current argument as the source file. |
2033 esac # case $arg | 1185 esac # case $arg |
2034 ;; | 1186 ;; |
2035 esac # case $arg_mode | 1187 esac # case $arg_mode |
2036 | 1188 |
2037 # Aesthetically quote the previous argument. | 1189 # Aesthetically quote the previous argument. |
2038 func_append_quoted base_compile "$lastarg" | 1190 func_quote_for_eval "$lastarg" |
1191 base_compile="$base_compile $func_quote_for_eval_result" | |
2039 done # for arg | 1192 done # for arg |
2040 | 1193 |
2041 case $arg_mode in | 1194 case $arg_mode in |
2042 arg) | 1195 arg) |
2043 func_fatal_error "you must specify an argument for -Xcompile" | 1196 func_fatal_error "you must specify an argument for -Xcompile" |
2058 # If the user specifies -o file.o, it is replaced with file.lo | 1211 # If the user specifies -o file.o, it is replaced with file.lo |
2059 case $libobj in | 1212 case $libobj in |
2060 *.[cCFSifmso] | \ | 1213 *.[cCFSifmso] | \ |
2061 *.ada | *.adb | *.ads | *.asm | \ | 1214 *.ada | *.adb | *.ads | *.asm | \ |
2062 *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \ | 1215 *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \ |
2063 *.[fF][09]? | *.for | *.java | *.go | *.obj | *.sx | *.cu | *.cup) | 1216 *.[fF][09]? | *.for | *.java | *.obj | *.sx) |
2064 func_xform "$libobj" | 1217 func_xform "$libobj" |
2065 libobj=$func_xform_result | 1218 libobj=$func_xform_result |
2066 ;; | 1219 ;; |
2067 esac | 1220 esac |
2068 | 1221 |
2133 fi | 1286 fi |
2134 | 1287 |
2135 # Calculate the filename of the output object if compiler does | 1288 # Calculate the filename of the output object if compiler does |
2136 # not support -o with -c | 1289 # not support -o with -c |
2137 if test "$compiler_c_o" = no; then | 1290 if test "$compiler_c_o" = no; then |
2138 output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.${objext} | 1291 output_obj=`$ECHO "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext} |
2139 lockfile="$output_obj.lock" | 1292 lockfile="$output_obj.lock" |
2140 else | 1293 else |
2141 output_obj= | 1294 output_obj= |
2142 need_locks=no | 1295 need_locks=no |
2143 lockfile= | 1296 lockfile= |
2164 compiler." | 1317 compiler." |
2165 | 1318 |
2166 $opt_dry_run || $RM $removelist | 1319 $opt_dry_run || $RM $removelist |
2167 exit $EXIT_FAILURE | 1320 exit $EXIT_FAILURE |
2168 fi | 1321 fi |
2169 func_append removelist " $output_obj" | 1322 removelist="$removelist $output_obj" |
2170 $ECHO "$srcfile" > "$lockfile" | 1323 $ECHO "$srcfile" > "$lockfile" |
2171 fi | 1324 fi |
2172 | 1325 |
2173 $opt_dry_run || $RM $removelist | 1326 $opt_dry_run || $RM $removelist |
2174 func_append removelist " $lockfile" | 1327 removelist="$removelist $lockfile" |
2175 trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 | 1328 trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 |
2176 | 1329 |
2177 func_to_tool_file "$srcfile" func_convert_file_msys_to_w32 | 1330 if test -n "$fix_srcfile_path"; then |
2178 srcfile=$func_to_tool_file_result | 1331 eval srcfile=\"$fix_srcfile_path\" |
1332 fi | |
2179 func_quote_for_eval "$srcfile" | 1333 func_quote_for_eval "$srcfile" |
2180 qsrcfile=$func_quote_for_eval_result | 1334 qsrcfile=$func_quote_for_eval_result |
2181 | 1335 |
2182 # Only build a PIC object if we are building libtool libraries. | 1336 # Only build a PIC object if we are building libtool libraries. |
2183 if test "$build_libtool_libs" = yes; then | 1337 if test "$build_libtool_libs" = yes; then |
2193 | 1347 |
2194 func_mkdir_p "$xdir$objdir" | 1348 func_mkdir_p "$xdir$objdir" |
2195 | 1349 |
2196 if test -z "$output_obj"; then | 1350 if test -z "$output_obj"; then |
2197 # Place PIC objects in $objdir | 1351 # Place PIC objects in $objdir |
2198 func_append command " -o $lobj" | 1352 command="$command -o $lobj" |
2199 fi | 1353 fi |
2200 | 1354 |
2201 func_show_eval_locale "$command" \ | 1355 func_show_eval_locale "$command" \ |
2202 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE' | 1356 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE' |
2203 | 1357 |
2240 command="$base_compile $qsrcfile$pie_flag" | 1394 command="$base_compile $qsrcfile$pie_flag" |
2241 else | 1395 else |
2242 command="$base_compile $qsrcfile $pic_flag" | 1396 command="$base_compile $qsrcfile $pic_flag" |
2243 fi | 1397 fi |
2244 if test "$compiler_c_o" = yes; then | 1398 if test "$compiler_c_o" = yes; then |
2245 func_append command " -o $obj" | 1399 command="$command -o $obj" |
2246 fi | 1400 fi |
2247 | 1401 |
2248 # Suppress compiler output if we already did a PIC compilation. | 1402 # Suppress compiler output if we already did a PIC compilation. |
2249 func_append command "$suppress_output" | 1403 command="$command$suppress_output" |
2250 func_show_eval_locale "$command" \ | 1404 func_show_eval_locale "$command" \ |
2251 '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' | 1405 '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' |
2252 | 1406 |
2253 if test "$need_locks" = warn && | 1407 if test "$need_locks" = warn && |
2254 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then | 1408 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then |
2289 | 1443 |
2290 exit $EXIT_SUCCESS | 1444 exit $EXIT_SUCCESS |
2291 } | 1445 } |
2292 | 1446 |
2293 $opt_help || { | 1447 $opt_help || { |
2294 test "$opt_mode" = compile && func_mode_compile ${1+"$@"} | 1448 test "$mode" = compile && func_mode_compile ${1+"$@"} |
2295 } | 1449 } |
2296 | 1450 |
2297 func_mode_help () | 1451 func_mode_help () |
2298 { | 1452 { |
2299 # We need to display help for each of the modes. | 1453 # We need to display help for each of the modes. |
2300 case $opt_mode in | 1454 case $mode in |
2301 "") | 1455 "") |
2302 # Generic help is extracted from the usage comments | 1456 # Generic help is extracted from the usage comments |
2303 # at the start of this file. | 1457 # at the start of this file. |
2304 func_help | 1458 func_help |
2305 ;; | 1459 ;; |
2326 | 1480 |
2327 This mode accepts the following additional options: | 1481 This mode accepts the following additional options: |
2328 | 1482 |
2329 -o OUTPUT-FILE set the output file name to OUTPUT-FILE | 1483 -o OUTPUT-FILE set the output file name to OUTPUT-FILE |
2330 -no-suppress do not suppress compiler output for multiple passes | 1484 -no-suppress do not suppress compiler output for multiple passes |
2331 -prefer-pic try to build PIC objects only | 1485 -prefer-pic try to building PIC objects only |
2332 -prefer-non-pic try to build non-PIC objects only | 1486 -prefer-non-pic try to building non-PIC objects only |
2333 -shared do not build a \`.o' file suitable for static linking | 1487 -shared do not build a \`.o' file suitable for static linking |
2334 -static only build a \`.o' file suitable for static linking | 1488 -static only build a \`.o' file suitable for static linking |
2335 -Wc,FLAG pass FLAG directly to the compiler | |
2336 | 1489 |
2337 COMPILE-COMMAND is a command to be used in creating a \`standard' object file | 1490 COMPILE-COMMAND is a command to be used in creating a \`standard' object file |
2338 from the given SOURCEFILE. | 1491 from the given SOURCEFILE. |
2339 | 1492 |
2340 The output file name is determined by removing the directory component from | 1493 The output file name is determined by removing the directory component from |
2383 INSTALL-COMMAND is the installation command. The first component should be | 1536 INSTALL-COMMAND is the installation command. The first component should be |
2384 either the \`install' or \`cp' program. | 1537 either the \`install' or \`cp' program. |
2385 | 1538 |
2386 The following components of INSTALL-COMMAND are treated specially: | 1539 The following components of INSTALL-COMMAND are treated specially: |
2387 | 1540 |
2388 -inst-prefix-dir PREFIX-DIR Use PREFIX-DIR as a staging area for installation | 1541 -inst-prefix PREFIX-DIR Use PREFIX-DIR as a staging area for installation |
2389 | 1542 |
2390 The rest of the components are interpreted as arguments to that command (only | 1543 The rest of the components are interpreted as arguments to that command (only |
2391 BSD-compatible install options are recognized)." | 1544 BSD-compatible install options are recognized)." |
2392 ;; | 1545 ;; |
2393 | 1546 |
2403 | 1556 |
2404 The following components of LINK-COMMAND are treated specially: | 1557 The following components of LINK-COMMAND are treated specially: |
2405 | 1558 |
2406 -all-static do not do any dynamic linking at all | 1559 -all-static do not do any dynamic linking at all |
2407 -avoid-version do not add a version suffix if possible | 1560 -avoid-version do not add a version suffix if possible |
2408 -bindir BINDIR specify path to binaries directory (for systems where | |
2409 libraries must be found in the PATH setting at runtime) | |
2410 -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime | 1561 -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime |
2411 -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols | 1562 -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols |
2412 -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) | 1563 -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) |
2413 -export-symbols SYMFILE | 1564 -export-symbols SYMFILE |
2414 try to export only the symbols listed in SYMFILE | 1565 try to export only the symbols listed in SYMFILE |
2433 -static-libtool-libs | 1584 -static-libtool-libs |
2434 do not do any dynamic linking of libtool libraries | 1585 do not do any dynamic linking of libtool libraries |
2435 -version-info CURRENT[:REVISION[:AGE]] | 1586 -version-info CURRENT[:REVISION[:AGE]] |
2436 specify library version info [each variable defaults to 0] | 1587 specify library version info [each variable defaults to 0] |
2437 -weak LIBNAME declare that the target provides the LIBNAME interface | 1588 -weak LIBNAME declare that the target provides the LIBNAME interface |
2438 -Wc,FLAG | |
2439 -Xcompiler FLAG pass linker-specific FLAG directly to the compiler | |
2440 -Wl,FLAG | |
2441 -Xlinker FLAG pass linker-specific FLAG directly to the linker | |
2442 -XCClinker FLAG pass link-specific FLAG to the compiler driver (CC) | |
2443 | 1589 |
2444 All other options (arguments beginning with \`-') are ignored. | 1590 All other options (arguments beginning with \`-') are ignored. |
2445 | 1591 |
2446 Every other argument is treated as a filename. Files ending in \`.la' are | 1592 Every other argument is treated as a filename. Files ending in \`.la' are |
2447 treated as uninstalled libtool libraries, other files are standard or library | 1593 treated as uninstalled libtool libraries, other files are standard or library |
2471 If FILE is a libtool library, all the files associated with it are deleted. | 1617 If FILE is a libtool library, all the files associated with it are deleted. |
2472 Otherwise, only FILE itself is deleted using RM." | 1618 Otherwise, only FILE itself is deleted using RM." |
2473 ;; | 1619 ;; |
2474 | 1620 |
2475 *) | 1621 *) |
2476 func_fatal_help "invalid operation mode \`$opt_mode'" | 1622 func_fatal_help "invalid operation mode \`$mode'" |
2477 ;; | 1623 ;; |
2478 esac | 1624 esac |
2479 | 1625 |
2480 echo | 1626 $ECHO |
2481 $ECHO "Try \`$progname --help' for more information about other modes." | 1627 $ECHO "Try \`$progname --help' for more information about other modes." |
1628 | |
1629 exit $? | |
2482 } | 1630 } |
2483 | 1631 |
2484 # Now that we've collected a possible --mode arg, show help if necessary | 1632 # Now that we've collected a possible --mode arg, show help if necessary |
2485 if $opt_help; then | 1633 $opt_help && func_mode_help |
2486 if test "$opt_help" = :; then | |
2487 func_mode_help | |
2488 else | |
2489 { | |
2490 func_help noexit | |
2491 for opt_mode in compile link execute install finish uninstall clean; do | |
2492 func_mode_help | |
2493 done | |
2494 } | sed -n '1p; 2,$s/^Usage:/ or: /p' | |
2495 { | |
2496 func_help noexit | |
2497 for opt_mode in compile link execute install finish uninstall clean; do | |
2498 echo | |
2499 func_mode_help | |
2500 done | |
2501 } | | |
2502 sed '1d | |
2503 /^When reporting/,/^Report/{ | |
2504 H | |
2505 d | |
2506 } | |
2507 $x | |
2508 /information about other modes/d | |
2509 /more detailed .*MODE/d | |
2510 s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/' | |
2511 fi | |
2512 exit $? | |
2513 fi | |
2514 | 1634 |
2515 | 1635 |
2516 # func_mode_execute arg... | 1636 # func_mode_execute arg... |
2517 func_mode_execute () | 1637 func_mode_execute () |
2518 { | 1638 { |
2521 cmd="$nonopt" | 1641 cmd="$nonopt" |
2522 test -z "$cmd" && \ | 1642 test -z "$cmd" && \ |
2523 func_fatal_help "you must specify a COMMAND" | 1643 func_fatal_help "you must specify a COMMAND" |
2524 | 1644 |
2525 # Handle -dlopen flags immediately. | 1645 # Handle -dlopen flags immediately. |
2526 for file in $opt_dlopen; do | 1646 for file in $execute_dlfiles; do |
2527 test -f "$file" \ | 1647 test -f "$file" \ |
2528 || func_fatal_help "\`$file' is not a file" | 1648 || func_fatal_help "\`$file' is not a file" |
2529 | 1649 |
2530 dir= | 1650 dir= |
2531 case $file in | 1651 case $file in |
2532 *.la) | 1652 *.la) |
2533 func_resolve_sysroot "$file" | |
2534 file=$func_resolve_sysroot_result | |
2535 | |
2536 # Check to see that this really is a libtool archive. | 1653 # Check to see that this really is a libtool archive. |
2537 func_lalib_unsafe_p "$file" \ | 1654 func_lalib_unsafe_p "$file" \ |
2538 || func_fatal_help "\`$lib' is not a valid libtool archive" | 1655 || func_fatal_help "\`$lib' is not a valid libtool archive" |
2539 | 1656 |
2540 # Read the libtool library. | 1657 # Read the libtool library. |
2552 | 1669 |
2553 func_dirname "$file" "" "." | 1670 func_dirname "$file" "" "." |
2554 dir="$func_dirname_result" | 1671 dir="$func_dirname_result" |
2555 | 1672 |
2556 if test -f "$dir/$objdir/$dlname"; then | 1673 if test -f "$dir/$objdir/$dlname"; then |
2557 func_append dir "/$objdir" | 1674 dir="$dir/$objdir" |
2558 else | 1675 else |
2559 if test ! -f "$dir/$dlname"; then | 1676 if test ! -f "$dir/$dlname"; then |
2560 func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" | 1677 func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" |
2561 fi | 1678 fi |
2562 fi | 1679 fi |
2593 # Check if any of the arguments is a wrapper script. | 1710 # Check if any of the arguments is a wrapper script. |
2594 args= | 1711 args= |
2595 for file | 1712 for file |
2596 do | 1713 do |
2597 case $file in | 1714 case $file in |
2598 -* | *.la | *.lo ) ;; | 1715 -*) ;; |
2599 *) | 1716 *) |
2600 # Do a test to see if this is really a libtool program. | 1717 # Do a test to see if this is really a libtool program. |
2601 if func_ltwrapper_script_p "$file"; then | 1718 if func_ltwrapper_script_p "$file"; then |
2602 func_source "$file" | 1719 func_source "$file" |
2603 # Transform arg to wrapped name. | 1720 # Transform arg to wrapped name. |
2609 file="$progdir/$program" | 1726 file="$progdir/$program" |
2610 fi | 1727 fi |
2611 ;; | 1728 ;; |
2612 esac | 1729 esac |
2613 # Quote arguments (to preserve shell metacharacters). | 1730 # Quote arguments (to preserve shell metacharacters). |
2614 func_append_quoted args "$file" | 1731 func_quote_for_eval "$file" |
1732 args="$args $func_quote_for_eval_result" | |
2615 done | 1733 done |
2616 | 1734 |
2617 if test "X$opt_dry_run" = Xfalse; then | 1735 if test "X$opt_dry_run" = Xfalse; then |
2618 if test -n "$shlibpath_var"; then | 1736 if test -n "$shlibpath_var"; then |
2619 # Export the shlibpath_var. | 1737 # Export the shlibpath_var. |
2634 exec_cmd="\$cmd$args" | 1752 exec_cmd="\$cmd$args" |
2635 else | 1753 else |
2636 # Display what would be done. | 1754 # Display what would be done. |
2637 if test -n "$shlibpath_var"; then | 1755 if test -n "$shlibpath_var"; then |
2638 eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\"" | 1756 eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\"" |
2639 echo "export $shlibpath_var" | 1757 $ECHO "export $shlibpath_var" |
2640 fi | 1758 fi |
2641 $ECHO "$cmd$args" | 1759 $ECHO "$cmd$args" |
2642 exit $EXIT_SUCCESS | 1760 exit $EXIT_SUCCESS |
2643 fi | 1761 fi |
2644 } | 1762 } |
2645 | 1763 |
2646 test "$opt_mode" = execute && func_mode_execute ${1+"$@"} | 1764 test "$mode" = execute && func_mode_execute ${1+"$@"} |
2647 | 1765 |
2648 | 1766 |
2649 # func_mode_finish arg... | 1767 # func_mode_finish arg... |
2650 func_mode_finish () | 1768 func_mode_finish () |
2651 { | 1769 { |
2652 $opt_debug | 1770 $opt_debug |
2653 libs= | 1771 libdirs="$nonopt" |
2654 libdirs= | |
2655 admincmds= | 1772 admincmds= |
2656 | 1773 |
2657 for opt in "$nonopt" ${1+"$@"} | |
2658 do | |
2659 if test -d "$opt"; then | |
2660 func_append libdirs " $opt" | |
2661 | |
2662 elif test -f "$opt"; then | |
2663 if func_lalib_unsafe_p "$opt"; then | |
2664 func_append libs " $opt" | |
2665 else | |
2666 func_warning "\`$opt' is not a valid libtool archive" | |
2667 fi | |
2668 | |
2669 else | |
2670 func_fatal_error "invalid argument \`$opt'" | |
2671 fi | |
2672 done | |
2673 | |
2674 if test -n "$libs"; then | |
2675 if test -n "$lt_sysroot"; then | |
2676 sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"` | |
2677 sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;" | |
2678 else | |
2679 sysroot_cmd= | |
2680 fi | |
2681 | |
2682 # Remove sysroot references | |
2683 if $opt_dry_run; then | |
2684 for lib in $libs; do | |
2685 echo "removing references to $lt_sysroot and \`=' prefixes from $lib" | |
2686 done | |
2687 else | |
2688 tmpdir=`func_mktempdir` | |
2689 for lib in $libs; do | |
2690 sed -e "${sysroot_cmd} s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \ | |
2691 > $tmpdir/tmp-la | |
2692 mv -f $tmpdir/tmp-la $lib | |
2693 done | |
2694 ${RM}r "$tmpdir" | |
2695 fi | |
2696 fi | |
2697 | |
2698 if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then | 1774 if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then |
1775 for dir | |
1776 do | |
1777 libdirs="$libdirs $dir" | |
1778 done | |
1779 | |
2699 for libdir in $libdirs; do | 1780 for libdir in $libdirs; do |
2700 if test -n "$finish_cmds"; then | 1781 if test -n "$finish_cmds"; then |
2701 # Do each command in the finish commands. | 1782 # Do each command in the finish commands. |
2702 func_execute_cmds "$finish_cmds" 'admincmds="$admincmds | 1783 func_execute_cmds "$finish_cmds" 'admincmds="$admincmds |
2703 '"$cmd"'"' | 1784 '"$cmd"'"' |
2704 fi | 1785 fi |
2705 if test -n "$finish_eval"; then | 1786 if test -n "$finish_eval"; then |
2706 # Do the single finish_eval. | 1787 # Do the single finish_eval. |
2707 eval cmds=\"$finish_eval\" | 1788 eval cmds=\"$finish_eval\" |
2708 $opt_dry_run || eval "$cmds" || func_append admincmds " | 1789 $opt_dry_run || eval "$cmds" || admincmds="$admincmds |
2709 $cmds" | 1790 $cmds" |
2710 fi | 1791 fi |
2711 done | 1792 done |
2712 fi | 1793 fi |
2713 | 1794 |
2714 # Exit here if they wanted silent mode. | 1795 # Exit here if they wanted silent mode. |
2715 $opt_silent && exit $EXIT_SUCCESS | 1796 $opt_silent && exit $EXIT_SUCCESS |
2716 | 1797 |
2717 if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then | 1798 $ECHO "X----------------------------------------------------------------------" | $Xsed |
2718 echo "----------------------------------------------------------------------" | 1799 $ECHO "Libraries have been installed in:" |
2719 echo "Libraries have been installed in:" | 1800 for libdir in $libdirs; do |
2720 for libdir in $libdirs; do | 1801 $ECHO " $libdir" |
2721 $ECHO " $libdir" | 1802 done |
2722 done | 1803 $ECHO |
2723 echo | 1804 $ECHO "If you ever happen to want to link against installed libraries" |
2724 echo "If you ever happen to want to link against installed libraries" | 1805 $ECHO "in a given directory, LIBDIR, you must either use libtool, and" |
2725 echo "in a given directory, LIBDIR, you must either use libtool, and" | 1806 $ECHO "specify the full pathname of the library, or use the \`-LLIBDIR'" |
2726 echo "specify the full pathname of the library, or use the \`-LLIBDIR'" | 1807 $ECHO "flag during linking and do at least one of the following:" |
2727 echo "flag during linking and do at least one of the following:" | 1808 if test -n "$shlibpath_var"; then |
2728 if test -n "$shlibpath_var"; then | 1809 $ECHO " - add LIBDIR to the \`$shlibpath_var' environment variable" |
2729 echo " - add LIBDIR to the \`$shlibpath_var' environment variable" | 1810 $ECHO " during execution" |
2730 echo " during execution" | |
2731 fi | |
2732 if test -n "$runpath_var"; then | |
2733 echo " - add LIBDIR to the \`$runpath_var' environment variable" | |
2734 echo " during linking" | |
2735 fi | |
2736 if test -n "$hardcode_libdir_flag_spec"; then | |
2737 libdir=LIBDIR | |
2738 eval flag=\"$hardcode_libdir_flag_spec\" | |
2739 | |
2740 $ECHO " - use the \`$flag' linker flag" | |
2741 fi | |
2742 if test -n "$admincmds"; then | |
2743 $ECHO " - have your system administrator run these commands:$admincmds" | |
2744 fi | |
2745 if test -f /etc/ld.so.conf; then | |
2746 echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" | |
2747 fi | |
2748 echo | |
2749 | |
2750 echo "See any operating system documentation about shared libraries for" | |
2751 case $host in | |
2752 solaris2.[6789]|solaris2.1[0-9]) | |
2753 echo "more information, such as the ld(1), crle(1) and ld.so(8) manual" | |
2754 echo "pages." | |
2755 ;; | |
2756 *) | |
2757 echo "more information, such as the ld(1) and ld.so(8) manual pages." | |
2758 ;; | |
2759 esac | |
2760 echo "----------------------------------------------------------------------" | |
2761 fi | 1811 fi |
1812 if test -n "$runpath_var"; then | |
1813 $ECHO " - add LIBDIR to the \`$runpath_var' environment variable" | |
1814 $ECHO " during linking" | |
1815 fi | |
1816 if test -n "$hardcode_libdir_flag_spec"; then | |
1817 libdir=LIBDIR | |
1818 eval flag=\"$hardcode_libdir_flag_spec\" | |
1819 | |
1820 $ECHO " - use the \`$flag' linker flag" | |
1821 fi | |
1822 if test -n "$admincmds"; then | |
1823 $ECHO " - have your system administrator run these commands:$admincmds" | |
1824 fi | |
1825 if test -f /etc/ld.so.conf; then | |
1826 $ECHO " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" | |
1827 fi | |
1828 $ECHO | |
1829 | |
1830 $ECHO "See any operating system documentation about shared libraries for" | |
1831 case $host in | |
1832 solaris2.[6789]|solaris2.1[0-9]) | |
1833 $ECHO "more information, such as the ld(1), crle(1) and ld.so(8) manual" | |
1834 $ECHO "pages." | |
1835 ;; | |
1836 *) | |
1837 $ECHO "more information, such as the ld(1) and ld.so(8) manual pages." | |
1838 ;; | |
1839 esac | |
1840 $ECHO "X----------------------------------------------------------------------" | $Xsed | |
2762 exit $EXIT_SUCCESS | 1841 exit $EXIT_SUCCESS |
2763 } | 1842 } |
2764 | 1843 |
2765 test "$opt_mode" = finish && func_mode_finish ${1+"$@"} | 1844 test "$mode" = finish && func_mode_finish ${1+"$@"} |
2766 | 1845 |
2767 | 1846 |
2768 # func_mode_install arg... | 1847 # func_mode_install arg... |
2769 func_mode_install () | 1848 func_mode_install () |
2770 { | 1849 { |
2771 $opt_debug | 1850 $opt_debug |
2772 # There may be an optional sh(1) argument at the beginning of | 1851 # There may be an optional sh(1) argument at the beginning of |
2773 # install_prog (especially on Windows NT). | 1852 # install_prog (especially on Windows NT). |
2774 if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || | 1853 if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || |
2775 # Allow the use of GNU shtool's install command. | 1854 # Allow the use of GNU shtool's install command. |
2776 case $nonopt in *shtool*) :;; *) false;; esac; then | 1855 $ECHO "X$nonopt" | $GREP shtool >/dev/null; then |
2777 # Aesthetically quote it. | 1856 # Aesthetically quote it. |
2778 func_quote_for_eval "$nonopt" | 1857 func_quote_for_eval "$nonopt" |
2779 install_prog="$func_quote_for_eval_result " | 1858 install_prog="$func_quote_for_eval_result " |
2780 arg=$1 | 1859 arg=$1 |
2781 shift | 1860 shift |
2785 fi | 1864 fi |
2786 | 1865 |
2787 # The real first argument should be the name of the installation program. | 1866 # The real first argument should be the name of the installation program. |
2788 # Aesthetically quote it. | 1867 # Aesthetically quote it. |
2789 func_quote_for_eval "$arg" | 1868 func_quote_for_eval "$arg" |
2790 func_append install_prog "$func_quote_for_eval_result" | 1869 install_prog="$install_prog$func_quote_for_eval_result" |
2791 install_shared_prog=$install_prog | |
2792 case " $install_prog " in | |
2793 *[\\\ /]cp\ *) install_cp=: ;; | |
2794 *) install_cp=false ;; | |
2795 esac | |
2796 | 1870 |
2797 # We need to accept at least all the BSD install flags. | 1871 # We need to accept at least all the BSD install flags. |
2798 dest= | 1872 dest= |
2799 files= | 1873 files= |
2800 opts= | 1874 opts= |
2801 prev= | 1875 prev= |
2802 install_type= | 1876 install_type= |
2803 isdir=no | 1877 isdir=no |
2804 stripme= | 1878 stripme= |
2805 no_mode=: | |
2806 for arg | 1879 for arg |
2807 do | 1880 do |
2808 arg2= | |
2809 if test -n "$dest"; then | 1881 if test -n "$dest"; then |
2810 func_append files " $dest" | 1882 files="$files $dest" |
2811 dest=$arg | 1883 dest=$arg |
2812 continue | 1884 continue |
2813 fi | 1885 fi |
2814 | 1886 |
2815 case $arg in | 1887 case $arg in |
2816 -d) isdir=yes ;; | 1888 -d) isdir=yes ;; |
2817 -f) | 1889 -f) |
2818 if $install_cp; then :; else | 1890 case " $install_prog " in |
2819 prev=$arg | 1891 *[\\\ /]cp\ *) ;; |
2820 fi | 1892 *) prev=$arg ;; |
1893 esac | |
2821 ;; | 1894 ;; |
2822 -g | -m | -o) | 1895 -g | -m | -o) |
2823 prev=$arg | 1896 prev=$arg |
2824 ;; | 1897 ;; |
2825 -s) | 1898 -s) |
2829 -*) | 1902 -*) |
2830 ;; | 1903 ;; |
2831 *) | 1904 *) |
2832 # If the previous option needed an argument, then skip it. | 1905 # If the previous option needed an argument, then skip it. |
2833 if test -n "$prev"; then | 1906 if test -n "$prev"; then |
2834 if test "x$prev" = x-m && test -n "$install_override_mode"; then | |
2835 arg2=$install_override_mode | |
2836 no_mode=false | |
2837 fi | |
2838 prev= | 1907 prev= |
2839 else | 1908 else |
2840 dest=$arg | 1909 dest=$arg |
2841 continue | 1910 continue |
2842 fi | 1911 fi |
2843 ;; | 1912 ;; |
2844 esac | 1913 esac |
2845 | 1914 |
2846 # Aesthetically quote the argument. | 1915 # Aesthetically quote the argument. |
2847 func_quote_for_eval "$arg" | 1916 func_quote_for_eval "$arg" |
2848 func_append install_prog " $func_quote_for_eval_result" | 1917 install_prog="$install_prog $func_quote_for_eval_result" |
2849 if test -n "$arg2"; then | |
2850 func_quote_for_eval "$arg2" | |
2851 fi | |
2852 func_append install_shared_prog " $func_quote_for_eval_result" | |
2853 done | 1918 done |
2854 | 1919 |
2855 test -z "$install_prog" && \ | 1920 test -z "$install_prog" && \ |
2856 func_fatal_help "you must specify an install program" | 1921 func_fatal_help "you must specify an install program" |
2857 | 1922 |
2858 test -n "$prev" && \ | 1923 test -n "$prev" && \ |
2859 func_fatal_help "the \`$prev' option requires an argument" | 1924 func_fatal_help "the \`$prev' option requires an argument" |
2860 | |
2861 if test -n "$install_override_mode" && $no_mode; then | |
2862 if $install_cp; then :; else | |
2863 func_quote_for_eval "$install_override_mode" | |
2864 func_append install_shared_prog " -m $func_quote_for_eval_result" | |
2865 fi | |
2866 fi | |
2867 | 1925 |
2868 if test -z "$files"; then | 1926 if test -z "$files"; then |
2869 if test -z "$dest"; then | 1927 if test -z "$dest"; then |
2870 func_fatal_help "no file or destination specified" | 1928 func_fatal_help "no file or destination specified" |
2871 else | 1929 else |
2917 | 1975 |
2918 # Do each installation. | 1976 # Do each installation. |
2919 case $file in | 1977 case $file in |
2920 *.$libext) | 1978 *.$libext) |
2921 # Do the static libraries later. | 1979 # Do the static libraries later. |
2922 func_append staticlibs " $file" | 1980 staticlibs="$staticlibs $file" |
2923 ;; | 1981 ;; |
2924 | 1982 |
2925 *.la) | 1983 *.la) |
2926 func_resolve_sysroot "$file" | |
2927 file=$func_resolve_sysroot_result | |
2928 | |
2929 # Check to see that this really is a libtool archive. | 1984 # Check to see that this really is a libtool archive. |
2930 func_lalib_unsafe_p "$file" \ | 1985 func_lalib_unsafe_p "$file" \ |
2931 || func_fatal_help "\`$file' is not a valid libtool archive" | 1986 || func_fatal_help "\`$file' is not a valid libtool archive" |
2932 | 1987 |
2933 library_names= | 1988 library_names= |
2937 | 1992 |
2938 # Add the libdir to current_libdirs if it is the destination. | 1993 # Add the libdir to current_libdirs if it is the destination. |
2939 if test "X$destdir" = "X$libdir"; then | 1994 if test "X$destdir" = "X$libdir"; then |
2940 case "$current_libdirs " in | 1995 case "$current_libdirs " in |
2941 *" $libdir "*) ;; | 1996 *" $libdir "*) ;; |
2942 *) func_append current_libdirs " $libdir" ;; | 1997 *) current_libdirs="$current_libdirs $libdir" ;; |
2943 esac | 1998 esac |
2944 else | 1999 else |
2945 # Note the libdir as a future libdir. | 2000 # Note the libdir as a future libdir. |
2946 case "$future_libdirs " in | 2001 case "$future_libdirs " in |
2947 *" $libdir "*) ;; | 2002 *" $libdir "*) ;; |
2948 *) func_append future_libdirs " $libdir" ;; | 2003 *) future_libdirs="$future_libdirs $libdir" ;; |
2949 esac | 2004 esac |
2950 fi | 2005 fi |
2951 | 2006 |
2952 func_dirname "$file" "/" "" | 2007 func_dirname "$file" "/" "" |
2953 dir="$func_dirname_result" | 2008 dir="$func_dirname_result" |
2954 func_append dir "$objdir" | 2009 dir="$dir$objdir" |
2955 | 2010 |
2956 if test -n "$relink_command"; then | 2011 if test -n "$relink_command"; then |
2957 # Determine the prefix the user has applied to our future dir. | 2012 # Determine the prefix the user has applied to our future dir. |
2958 inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"` | 2013 inst_prefix_dir=`$ECHO "X$destdir" | $Xsed -e "s%$libdir\$%%"` |
2959 | 2014 |
2960 # Don't allow the user to place us outside of our expected | 2015 # Don't allow the user to place us outside of our expected |
2961 # location b/c this prevents finding dependent libraries that | 2016 # location b/c this prevents finding dependent libraries that |
2962 # are installed to the same prefix. | 2017 # are installed to the same prefix. |
2963 # At present, this check doesn't affect windows .dll's that | 2018 # At present, this check doesn't affect windows .dll's that |
2966 test "$inst_prefix_dir" = "$destdir" && \ | 2021 test "$inst_prefix_dir" = "$destdir" && \ |
2967 func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir" | 2022 func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir" |
2968 | 2023 |
2969 if test -n "$inst_prefix_dir"; then | 2024 if test -n "$inst_prefix_dir"; then |
2970 # Stick the inst_prefix_dir data into the link command. | 2025 # Stick the inst_prefix_dir data into the link command. |
2971 relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` | 2026 relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` |
2972 else | 2027 else |
2973 relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"` | 2028 relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%%"` |
2974 fi | 2029 fi |
2975 | 2030 |
2976 func_warning "relinking \`$file'" | 2031 func_warning "relinking \`$file'" |
2977 func_show_eval "$relink_command" \ | 2032 func_show_eval "$relink_command" \ |
2978 'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"' | 2033 'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"' |
2986 | 2041 |
2987 srcname="$realname" | 2042 srcname="$realname" |
2988 test -n "$relink_command" && srcname="$realname"T | 2043 test -n "$relink_command" && srcname="$realname"T |
2989 | 2044 |
2990 # Install the shared library and build the symlinks. | 2045 # Install the shared library and build the symlinks. |
2991 func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \ | 2046 func_show_eval "$install_prog $dir/$srcname $destdir/$realname" \ |
2992 'exit $?' | 2047 'exit $?' |
2993 tstripme="$stripme" | 2048 tstripme="$stripme" |
2994 case $host_os in | 2049 case $host_os in |
2995 cygwin* | mingw* | pw32* | cegcc*) | 2050 cygwin* | mingw* | pw32* | cegcc*) |
2996 case $realname in | 2051 case $realname in |
3026 name="$func_basename_result" | 2081 name="$func_basename_result" |
3027 instname="$dir/$name"i | 2082 instname="$dir/$name"i |
3028 func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' | 2083 func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' |
3029 | 2084 |
3030 # Maybe install the static library, too. | 2085 # Maybe install the static library, too. |
3031 test -n "$old_library" && func_append staticlibs " $dir/$old_library" | 2086 test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library" |
3032 ;; | 2087 ;; |
3033 | 2088 |
3034 *.lo) | 2089 *.lo) |
3035 # Install (i.e. copy) a libtool object. | 2090 # Install (i.e. copy) a libtool object. |
3036 | 2091 |
3126 # Check to see that each library is installed. | 2181 # Check to see that each library is installed. |
3127 libdir= | 2182 libdir= |
3128 if test -f "$lib"; then | 2183 if test -f "$lib"; then |
3129 func_source "$lib" | 2184 func_source "$lib" |
3130 fi | 2185 fi |
3131 libfile="$libdir/"`$ECHO "$lib" | $SED 's%^.*/%%g'` ### testsuite: skip nested quoting test | 2186 libfile="$libdir/"`$ECHO "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test |
3132 if test -n "$libdir" && test ! -f "$libfile"; then | 2187 if test -n "$libdir" && test ! -f "$libfile"; then |
3133 func_warning "\`$lib' has not been installed in \`$libdir'" | 2188 func_warning "\`$lib' has not been installed in \`$libdir'" |
3134 finalize=no | 2189 finalize=no |
3135 fi | 2190 fi |
3136 done | 2191 done |
3145 tmpdir=`func_mktempdir` | 2200 tmpdir=`func_mktempdir` |
3146 func_basename "$file$stripped_ext" | 2201 func_basename "$file$stripped_ext" |
3147 file="$func_basename_result" | 2202 file="$func_basename_result" |
3148 outputname="$tmpdir/$file" | 2203 outputname="$tmpdir/$file" |
3149 # Replace the output file specification. | 2204 # Replace the output file specification. |
3150 relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'` | 2205 relink_command=`$ECHO "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'` |
3151 | 2206 |
3152 $opt_silent || { | 2207 $opt_silent || { |
3153 func_quote_for_expand "$relink_command" | 2208 func_quote_for_expand "$relink_command" |
3154 eval "func_echo $func_quote_for_expand_result" | 2209 eval "func_echo $func_quote_for_expand_result" |
3155 } | 2210 } |
3164 func_warning "cannot relink \`$file'" | 2219 func_warning "cannot relink \`$file'" |
3165 fi | 2220 fi |
3166 } | 2221 } |
3167 else | 2222 else |
3168 # Install the binary that we compiled earlier. | 2223 # Install the binary that we compiled earlier. |
3169 file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"` | 2224 file=`$ECHO "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"` |
3170 fi | 2225 fi |
3171 fi | 2226 fi |
3172 | 2227 |
3173 # remove .exe since cygwin /usr/bin/install will append another | 2228 # remove .exe since cygwin /usr/bin/install will append another |
3174 # one anyway | 2229 # one anyway |
3200 func_basename "$file" | 2255 func_basename "$file" |
3201 name="$func_basename_result" | 2256 name="$func_basename_result" |
3202 | 2257 |
3203 # Set up the ranlib parameters. | 2258 # Set up the ranlib parameters. |
3204 oldlib="$destdir/$name" | 2259 oldlib="$destdir/$name" |
3205 func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 | |
3206 tool_oldlib=$func_to_tool_file_result | |
3207 | 2260 |
3208 func_show_eval "$install_prog \$file \$oldlib" 'exit $?' | 2261 func_show_eval "$install_prog \$file \$oldlib" 'exit $?' |
3209 | 2262 |
3210 if test -n "$stripme" && test -n "$old_striplib"; then | 2263 if test -n "$stripme" && test -n "$old_striplib"; then |
3211 func_show_eval "$old_striplib $tool_oldlib" 'exit $?' | 2264 func_show_eval "$old_striplib $oldlib" 'exit $?' |
3212 fi | 2265 fi |
3213 | 2266 |
3214 # Do each command in the postinstall commands. | 2267 # Do each command in the postinstall commands. |
3215 func_execute_cmds "$old_postinstall_cmds" 'exit $?' | 2268 func_execute_cmds "$old_postinstall_cmds" 'exit $?' |
3216 done | 2269 done |
3225 else | 2278 else |
3226 exit $EXIT_SUCCESS | 2279 exit $EXIT_SUCCESS |
3227 fi | 2280 fi |
3228 } | 2281 } |
3229 | 2282 |
3230 test "$opt_mode" = install && func_mode_install ${1+"$@"} | 2283 test "$mode" = install && func_mode_install ${1+"$@"} |
3231 | 2284 |
3232 | 2285 |
3233 # func_generate_dlsyms outputname originator pic_p | 2286 # func_generate_dlsyms outputname originator pic_p |
3234 # Extract symbols from dlprefiles and create ${outputname}S.o with | 2287 # Extract symbols from dlprefiles and create ${outputname}S.o with |
3235 # a dlpreopen symbol table. | 2288 # a dlpreopen symbol table. |
3268 | 2321 |
3269 #ifdef __cplusplus | 2322 #ifdef __cplusplus |
3270 extern \"C\" { | 2323 extern \"C\" { |
3271 #endif | 2324 #endif |
3272 | 2325 |
3273 #if defined(__GNUC__) && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4)) | |
3274 #pragma GCC diagnostic ignored \"-Wstrict-prototypes\" | |
3275 #endif | |
3276 | |
3277 /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ | |
3278 #if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) | |
3279 /* DATA imports from DLLs on WIN32 con't be const, because runtime | |
3280 relocations are performed -- see ld's documentation on pseudo-relocs. */ | |
3281 # define LT_DLSYM_CONST | |
3282 #elif defined(__osf__) | |
3283 /* This system does not cope well with relocations in const data. */ | |
3284 # define LT_DLSYM_CONST | |
3285 #else | |
3286 # define LT_DLSYM_CONST const | |
3287 #endif | |
3288 | |
3289 /* External symbol declarations for the compiler. */\ | 2326 /* External symbol declarations for the compiler. */\ |
3290 " | 2327 " |
3291 | 2328 |
3292 if test "$dlself" = yes; then | 2329 if test "$dlself" = yes; then |
3293 func_verbose "generating symbol list for \`$output'" | 2330 func_verbose "generating symbol list for \`$output'" |
3294 | 2331 |
3295 $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist" | 2332 $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist" |
3296 | 2333 |
3297 # Add our own program objects to the symbol list. | 2334 # Add our own program objects to the symbol list. |
3298 progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP` | 2335 progfiles=`$ECHO "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` |
3299 for progfile in $progfiles; do | 2336 for progfile in $progfiles; do |
3300 func_to_tool_file "$progfile" func_convert_file_msys_to_w32 | 2337 func_verbose "extracting global C symbols from \`$progfile'" |
3301 func_verbose "extracting global C symbols from \`$func_to_tool_file_result'" | 2338 $opt_dry_run || eval "$NM $progfile | $global_symbol_pipe >> '$nlist'" |
3302 $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'" | |
3303 done | 2339 done |
3304 | 2340 |
3305 if test -n "$exclude_expsyms"; then | 2341 if test -n "$exclude_expsyms"; then |
3306 $opt_dry_run || { | 2342 $opt_dry_run || { |
3307 eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' | 2343 eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' |
3333 $opt_dry_run || { | 2369 $opt_dry_run || { |
3334 eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' | 2370 eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' |
3335 eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' | 2371 eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' |
3336 eval '$MV "$nlist"T "$nlist"' | 2372 eval '$MV "$nlist"T "$nlist"' |
3337 case $host in | 2373 case $host in |
3338 *cygwin* | *mingw* | *cegcc* ) | 2374 *cygwin | *mingw* | *cegcc* ) |
3339 eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' | 2375 eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' |
3340 eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' | 2376 eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' |
3341 ;; | 2377 ;; |
3342 esac | 2378 esac |
3343 } | 2379 } |
3346 | 2382 |
3347 for dlprefile in $dlprefiles; do | 2383 for dlprefile in $dlprefiles; do |
3348 func_verbose "extracting global C symbols from \`$dlprefile'" | 2384 func_verbose "extracting global C symbols from \`$dlprefile'" |
3349 func_basename "$dlprefile" | 2385 func_basename "$dlprefile" |
3350 name="$func_basename_result" | 2386 name="$func_basename_result" |
3351 case $host in | 2387 $opt_dry_run || { |
3352 *cygwin* | *mingw* | *cegcc* ) | 2388 eval '$ECHO ": $name " >> "$nlist"' |
3353 # if an import library, we need to obtain dlname | 2389 eval "$NM $dlprefile 2>/dev/null | $global_symbol_pipe >> '$nlist'" |
3354 if func_win32_import_lib_p "$dlprefile"; then | 2390 } |
3355 func_tr_sh "$dlprefile" | |
3356 eval "curr_lafile=\$libfile_$func_tr_sh_result" | |
3357 dlprefile_dlbasename="" | |
3358 if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then | |
3359 # Use subshell, to avoid clobbering current variable values | |
3360 dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"` | |
3361 if test -n "$dlprefile_dlname" ; then | |
3362 func_basename "$dlprefile_dlname" | |
3363 dlprefile_dlbasename="$func_basename_result" | |
3364 else | |
3365 # no lafile. user explicitly requested -dlpreopen <import library>. | |
3366 $sharedlib_from_linklib_cmd "$dlprefile" | |
3367 dlprefile_dlbasename=$sharedlib_from_linklib_result | |
3368 fi | |
3369 fi | |
3370 $opt_dry_run || { | |
3371 if test -n "$dlprefile_dlbasename" ; then | |
3372 eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"' | |
3373 else | |
3374 func_warning "Could not compute DLL name from $name" | |
3375 eval '$ECHO ": $name " >> "$nlist"' | |
3376 fi | |
3377 func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 | |
3378 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe | | |
3379 $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'" | |
3380 } | |
3381 else # not an import lib | |
3382 $opt_dry_run || { | |
3383 eval '$ECHO ": $name " >> "$nlist"' | |
3384 func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 | |
3385 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" | |
3386 } | |
3387 fi | |
3388 ;; | |
3389 *) | |
3390 $opt_dry_run || { | |
3391 eval '$ECHO ": $name " >> "$nlist"' | |
3392 func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 | |
3393 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" | |
3394 } | |
3395 ;; | |
3396 esac | |
3397 done | 2391 done |
3398 | 2392 |
3399 $opt_dry_run || { | 2393 $opt_dry_run || { |
3400 # Make sure we have at least an empty file. | 2394 # Make sure we have at least an empty file. |
3401 test -f "$nlist" || : > "$nlist" | 2395 test -f "$nlist" || : > "$nlist" |
3419 fi | 2413 fi |
3420 | 2414 |
3421 if test -f "$nlist"S; then | 2415 if test -f "$nlist"S; then |
3422 eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"' | 2416 eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"' |
3423 else | 2417 else |
3424 echo '/* NONE */' >> "$output_objdir/$my_dlsyms" | 2418 $ECHO '/* NONE */' >> "$output_objdir/$my_dlsyms" |
3425 fi | 2419 fi |
3426 | 2420 |
3427 echo >> "$output_objdir/$my_dlsyms" "\ | 2421 $ECHO >> "$output_objdir/$my_dlsyms" "\ |
3428 | 2422 |
3429 /* The mapping between symbol names and symbols. */ | 2423 /* The mapping between symbol names and symbols. */ |
3430 typedef struct { | 2424 typedef struct { |
3431 const char *name; | 2425 const char *name; |
3432 void *address; | 2426 void *address; |
3433 } lt_dlsymlist; | 2427 } lt_dlsymlist; |
3434 extern LT_DLSYM_CONST lt_dlsymlist | 2428 " |
2429 case $host in | |
2430 *cygwin* | *mingw* | *cegcc* ) | |
2431 $ECHO >> "$output_objdir/$my_dlsyms" "\ | |
2432 /* DATA imports from DLLs on WIN32 con't be const, because | |
2433 runtime relocations are performed -- see ld's documentation | |
2434 on pseudo-relocs. */" | |
2435 lt_dlsym_const= ;; | |
2436 *osf5*) | |
2437 echo >> "$output_objdir/$my_dlsyms" "\ | |
2438 /* This system does not cope well with relocations in const data */" | |
2439 lt_dlsym_const= ;; | |
2440 *) | |
2441 lt_dlsym_const=const ;; | |
2442 esac | |
2443 | |
2444 $ECHO >> "$output_objdir/$my_dlsyms" "\ | |
2445 extern $lt_dlsym_const lt_dlsymlist | |
3435 lt_${my_prefix}_LTX_preloaded_symbols[]; | 2446 lt_${my_prefix}_LTX_preloaded_symbols[]; |
3436 LT_DLSYM_CONST lt_dlsymlist | 2447 $lt_dlsym_const lt_dlsymlist |
3437 lt_${my_prefix}_LTX_preloaded_symbols[] = | 2448 lt_${my_prefix}_LTX_preloaded_symbols[] = |
3438 {\ | 2449 {\ |
3439 { \"$my_originator\", (void *) 0 }," | 2450 { \"$my_originator\", (void *) 0 }," |
3440 | 2451 |
3441 case $need_lib_prefix in | 2452 case $need_lib_prefix in |
3444 ;; | 2455 ;; |
3445 *) | 2456 *) |
3446 eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms" | 2457 eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms" |
3447 ;; | 2458 ;; |
3448 esac | 2459 esac |
3449 echo >> "$output_objdir/$my_dlsyms" "\ | 2460 $ECHO >> "$output_objdir/$my_dlsyms" "\ |
3450 {0, (void *) 0} | 2461 {0, (void *) 0} |
3451 }; | 2462 }; |
3452 | 2463 |
3453 /* This works around a problem in FreeBSD linker */ | 2464 /* This works around a problem in FreeBSD linker */ |
3454 #ifdef FREEBSD_WORKAROUND | 2465 #ifdef FREEBSD_WORKAROUND |
3471 # compiling the symbol table file with pic_flag works around | 2482 # compiling the symbol table file with pic_flag works around |
3472 # a FreeBSD bug that causes programs to crash when -lm is | 2483 # a FreeBSD bug that causes programs to crash when -lm is |
3473 # linked before any other PIC object. But we must not use | 2484 # linked before any other PIC object. But we must not use |
3474 # pic_flag when linking with -static. The problem exists in | 2485 # pic_flag when linking with -static. The problem exists in |
3475 # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. | 2486 # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. |
3476 *-*-freebsd2.*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) | 2487 *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) |
3477 pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;; | 2488 pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;; |
3478 *-*-hpux*) | 2489 *-*-hpux*) |
3479 pic_flag_for_symtable=" $pic_flag" ;; | 2490 pic_flag_for_symtable=" $pic_flag" ;; |
3480 *) | 2491 *) |
3481 if test "X$my_pic_p" != Xno; then | 2492 if test "X$my_pic_p" != Xno; then |
3487 esac | 2498 esac |
3488 symtab_cflags= | 2499 symtab_cflags= |
3489 for arg in $LTCFLAGS; do | 2500 for arg in $LTCFLAGS; do |
3490 case $arg in | 2501 case $arg in |
3491 -pie | -fpie | -fPIE) ;; | 2502 -pie | -fpie | -fPIE) ;; |
3492 *) func_append symtab_cflags " $arg" ;; | 2503 *) symtab_cflags="$symtab_cflags $arg" ;; |
3493 esac | 2504 esac |
3494 done | 2505 done |
3495 | 2506 |
3496 # Now compile the dynamic symbol file. | 2507 # Now compile the dynamic symbol file. |
3497 func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?' | 2508 func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?' |
3502 # Transform the symbol file into the correct name. | 2513 # Transform the symbol file into the correct name. |
3503 symfileobj="$output_objdir/${my_outputname}S.$objext" | 2514 symfileobj="$output_objdir/${my_outputname}S.$objext" |
3504 case $host in | 2515 case $host in |
3505 *cygwin* | *mingw* | *cegcc* ) | 2516 *cygwin* | *mingw* | *cegcc* ) |
3506 if test -f "$output_objdir/$my_outputname.def"; then | 2517 if test -f "$output_objdir/$my_outputname.def"; then |
3507 compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` | 2518 compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` |
3508 finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` | 2519 finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` |
3509 else | 2520 else |
3510 compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` | 2521 compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` |
3511 finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` | 2522 finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` |
3512 fi | 2523 fi |
3513 ;; | 2524 ;; |
3514 *) | 2525 *) |
3515 compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` | 2526 compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` |
3516 finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` | 2527 finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` |
3517 ;; | 2528 ;; |
3518 esac | 2529 esac |
3519 ;; | 2530 ;; |
3520 *) | 2531 *) |
3521 func_fatal_error "unknown suffix for \`$my_dlsyms'" | 2532 func_fatal_error "unknown suffix for \`$my_dlsyms'" |
3525 # We keep going just in case the user didn't refer to | 2536 # We keep going just in case the user didn't refer to |
3526 # lt_preloaded_symbols. The linker will fail if global_symbol_pipe | 2537 # lt_preloaded_symbols. The linker will fail if global_symbol_pipe |
3527 # really was required. | 2538 # really was required. |
3528 | 2539 |
3529 # Nullify the symbol file. | 2540 # Nullify the symbol file. |
3530 compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"` | 2541 compile_command=`$ECHO "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"` |
3531 finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"` | 2542 finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"` |
3532 fi | 2543 fi |
3533 } | 2544 } |
3534 | 2545 |
3535 # func_win32_libid arg | 2546 # func_win32_libid arg |
3536 # return the library type of file 'arg' | 2547 # return the library type of file 'arg' |
3537 # | 2548 # |
3538 # Need a lot of goo to handle *both* DLLs and import libs | 2549 # Need a lot of goo to handle *both* DLLs and import libs |
3539 # Has to be a shell function in order to 'eat' the argument | 2550 # Has to be a shell function in order to 'eat' the argument |
3540 # that is supplied when $file_magic_command is called. | 2551 # that is supplied when $file_magic_command is called. |
3541 # Despite the name, also deal with 64 bit binaries. | |
3542 func_win32_libid () | 2552 func_win32_libid () |
3543 { | 2553 { |
3544 $opt_debug | 2554 $opt_debug |
3545 win32_libid_type="unknown" | 2555 win32_libid_type="unknown" |
3546 win32_fileres=`file -L $1 2>/dev/null` | 2556 win32_fileres=`file -L $1 2>/dev/null` |
3547 case $win32_fileres in | 2557 case $win32_fileres in |
3548 *ar\ archive\ import\ library*) # definitely import | 2558 *ar\ archive\ import\ library*) # definitely import |
3549 win32_libid_type="x86 archive import" | 2559 win32_libid_type="x86 archive import" |
3550 ;; | 2560 ;; |
3551 *ar\ archive*) # could be an import, or static | 2561 *ar\ archive*) # could be an import, or static |
3552 # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD. | |
3553 if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | | 2562 if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | |
3554 $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then | 2563 $EGREP 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then |
3555 func_to_tool_file "$1" func_convert_file_msys_to_w32 | 2564 win32_nmres=`eval $NM -f posix -A $1 | |
3556 win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" | | |
3557 $SED -n -e ' | 2565 $SED -n -e ' |
3558 1,100{ | 2566 1,100{ |
3559 / I /{ | 2567 / I /{ |
3560 s,.*,import, | 2568 s,.*,import, |
3561 p | 2569 p |
3580 ;; | 2588 ;; |
3581 esac | 2589 esac |
3582 $ECHO "$win32_libid_type" | 2590 $ECHO "$win32_libid_type" |
3583 } | 2591 } |
3584 | 2592 |
3585 # func_cygming_dll_for_implib ARG | |
3586 # | |
3587 # Platform-specific function to extract the | |
3588 # name of the DLL associated with the specified | |
3589 # import library ARG. | |
3590 # Invoked by eval'ing the libtool variable | |
3591 # $sharedlib_from_linklib_cmd | |
3592 # Result is available in the variable | |
3593 # $sharedlib_from_linklib_result | |
3594 func_cygming_dll_for_implib () | |
3595 { | |
3596 $opt_debug | |
3597 sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"` | |
3598 } | |
3599 | |
3600 # func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs | |
3601 # | |
3602 # The is the core of a fallback implementation of a | |
3603 # platform-specific function to extract the name of the | |
3604 # DLL associated with the specified import library LIBNAME. | |
3605 # | |
3606 # SECTION_NAME is either .idata$6 or .idata$7, depending | |
3607 # on the platform and compiler that created the implib. | |
3608 # | |
3609 # Echos the name of the DLL associated with the | |
3610 # specified import library. | |
3611 func_cygming_dll_for_implib_fallback_core () | |
3612 { | |
3613 $opt_debug | |
3614 match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"` | |
3615 $OBJDUMP -s --section "$1" "$2" 2>/dev/null | | |
3616 $SED '/^Contents of section '"$match_literal"':/{ | |
3617 # Place marker at beginning of archive member dllname section | |
3618 s/.*/====MARK====/ | |
3619 p | |
3620 d | |
3621 } | |
3622 # These lines can sometimes be longer than 43 characters, but | |
3623 # are always uninteresting | |
3624 /:[ ]*file format pe[i]\{,1\}-/d | |
3625 /^In archive [^:]*:/d | |
3626 # Ensure marker is printed | |
3627 /^====MARK====/p | |
3628 # Remove all lines with less than 43 characters | |
3629 /^.\{43\}/!d | |
3630 # From remaining lines, remove first 43 characters | |
3631 s/^.\{43\}//' | | |
3632 $SED -n ' | |
3633 # Join marker and all lines until next marker into a single line | |
3634 /^====MARK====/ b para | |
3635 H | |
3636 $ b para | |
3637 b | |
3638 :para | |
3639 x | |
3640 s/\n//g | |
3641 # Remove the marker | |
3642 s/^====MARK====// | |
3643 # Remove trailing dots and whitespace | |
3644 s/[\. \t]*$// | |
3645 # Print | |
3646 /./p' | | |
3647 # we now have a list, one entry per line, of the stringified | |
3648 # contents of the appropriate section of all members of the | |
3649 # archive which possess that section. Heuristic: eliminate | |
3650 # all those which have a first or second character that is | |
3651 # a '.' (that is, objdump's representation of an unprintable | |
3652 # character.) This should work for all archives with less than | |
3653 # 0x302f exports -- but will fail for DLLs whose name actually | |
3654 # begins with a literal '.' or a single character followed by | |
3655 # a '.'. | |
3656 # | |
3657 # Of those that remain, print the first one. | |
3658 $SED -e '/^\./d;/^.\./d;q' | |
3659 } | |
3660 | |
3661 # func_cygming_gnu_implib_p ARG | |
3662 # This predicate returns with zero status (TRUE) if | |
3663 # ARG is a GNU/binutils-style import library. Returns | |
3664 # with nonzero status (FALSE) otherwise. | |
3665 func_cygming_gnu_implib_p () | |
3666 { | |
3667 $opt_debug | |
3668 func_to_tool_file "$1" func_convert_file_msys_to_w32 | |
3669 func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'` | |
3670 test -n "$func_cygming_gnu_implib_tmp" | |
3671 } | |
3672 | |
3673 # func_cygming_ms_implib_p ARG | |
3674 # This predicate returns with zero status (TRUE) if | |
3675 # ARG is an MS-style import library. Returns | |
3676 # with nonzero status (FALSE) otherwise. | |
3677 func_cygming_ms_implib_p () | |
3678 { | |
3679 $opt_debug | |
3680 func_to_tool_file "$1" func_convert_file_msys_to_w32 | |
3681 func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'` | |
3682 test -n "$func_cygming_ms_implib_tmp" | |
3683 } | |
3684 | |
3685 # func_cygming_dll_for_implib_fallback ARG | |
3686 # Platform-specific function to extract the | |
3687 # name of the DLL associated with the specified | |
3688 # import library ARG. | |
3689 # | |
3690 # This fallback implementation is for use when $DLLTOOL | |
3691 # does not support the --identify-strict option. | |
3692 # Invoked by eval'ing the libtool variable | |
3693 # $sharedlib_from_linklib_cmd | |
3694 # Result is available in the variable | |
3695 # $sharedlib_from_linklib_result | |
3696 func_cygming_dll_for_implib_fallback () | |
3697 { | |
3698 $opt_debug | |
3699 if func_cygming_gnu_implib_p "$1" ; then | |
3700 # binutils import library | |
3701 sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"` | |
3702 elif func_cygming_ms_implib_p "$1" ; then | |
3703 # ms-generated import library | |
3704 sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"` | |
3705 else | |
3706 # unknown | |
3707 sharedlib_from_linklib_result="" | |
3708 fi | |
3709 } | |
3710 | 2593 |
3711 | 2594 |
3712 # func_extract_an_archive dir oldlib | 2595 # func_extract_an_archive dir oldlib |
3713 func_extract_an_archive () | 2596 func_extract_an_archive () |
3714 { | 2597 { |
3715 $opt_debug | 2598 $opt_debug |
3716 f_ex_an_ar_dir="$1"; shift | 2599 f_ex_an_ar_dir="$1"; shift |
3717 f_ex_an_ar_oldlib="$1" | 2600 f_ex_an_ar_oldlib="$1" |
3718 if test "$lock_old_archive_extraction" = yes; then | 2601 func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" 'exit $?' |
3719 lockfile=$f_ex_an_ar_oldlib.lock | |
3720 until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do | |
3721 func_echo "Waiting for $lockfile to be removed" | |
3722 sleep 2 | |
3723 done | |
3724 fi | |
3725 func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \ | |
3726 'stat=$?; rm -f "$lockfile"; exit $stat' | |
3727 if test "$lock_old_archive_extraction" = yes; then | |
3728 $opt_dry_run || rm -f "$lockfile" | |
3729 fi | |
3730 if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then | 2602 if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then |
3731 : | 2603 : |
3732 else | 2604 else |
3733 func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" | 2605 func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" |
3734 fi | 2606 fi |
3795 ## Okay now we've a bunch of thin objects, gotta fatten them up :) | 2667 ## Okay now we've a bunch of thin objects, gotta fatten them up :) |
3796 darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u` | 2668 darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u` |
3797 darwin_file= | 2669 darwin_file= |
3798 darwin_files= | 2670 darwin_files= |
3799 for darwin_file in $darwin_filelist; do | 2671 for darwin_file in $darwin_filelist; do |
3800 darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP` | 2672 darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP` |
3801 $LIPO -create -output "$darwin_file" $darwin_files | 2673 $LIPO -create -output "$darwin_file" $darwin_files |
3802 done # $darwin_filelist | 2674 done # $darwin_filelist |
3803 $RM -rf unfat-$$ | 2675 $RM -rf unfat-$$ |
3804 cd "$darwin_orig_dir" | 2676 cd "$darwin_orig_dir" |
3805 else | 2677 else |
3810 ;; | 2682 ;; |
3811 *) | 2683 *) |
3812 func_extract_an_archive "$my_xdir" "$my_xabs" | 2684 func_extract_an_archive "$my_xdir" "$my_xabs" |
3813 ;; | 2685 ;; |
3814 esac | 2686 esac |
3815 my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP` | 2687 my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` |
3816 done | 2688 done |
3817 | 2689 |
3818 func_extract_archives_result="$my_oldobjs" | 2690 func_extract_archives_result="$my_oldobjs" |
3819 } | 2691 } |
2692 | |
2693 | |
2694 | |
2695 # func_emit_wrapper_part1 [arg=no] | |
2696 # | |
2697 # Emit the first part of a libtool wrapper script on stdout. | |
2698 # For more information, see the description associated with | |
2699 # func_emit_wrapper(), below. | |
2700 func_emit_wrapper_part1 () | |
2701 { | |
2702 func_emit_wrapper_part1_arg1=no | |
2703 if test -n "$1" ; then | |
2704 func_emit_wrapper_part1_arg1=$1 | |
2705 fi | |
2706 | |
2707 $ECHO "\ | |
2708 #! $SHELL | |
2709 | |
2710 # $output - temporary wrapper script for $objdir/$outputname | |
2711 # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION | |
2712 # | |
2713 # The $output program cannot be directly executed until all the libtool | |
2714 # libraries that it depends on are installed. | |
2715 # | |
2716 # This wrapper script should never be moved out of the build directory. | |
2717 # If it is, it will not operate correctly. | |
2718 | |
2719 # Sed substitution that helps us do robust quoting. It backslashifies | |
2720 # metacharacters that are still active within double-quoted strings. | |
2721 Xsed='${SED} -e 1s/^X//' | |
2722 sed_quote_subst='$sed_quote_subst' | |
2723 | |
2724 # Be Bourne compatible | |
2725 if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then | |
2726 emulate sh | |
2727 NULLCMD=: | |
2728 # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which | |
2729 # is contrary to our usage. Disable this feature. | |
2730 alias -g '\${1+\"\$@\"}'='\"\$@\"' | |
2731 setopt NO_GLOB_SUBST | |
2732 else | |
2733 case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac | |
2734 fi | |
2735 BIN_SH=xpg4; export BIN_SH # for Tru64 | |
2736 DUALCASE=1; export DUALCASE # for MKS sh | |
2737 | |
2738 # The HP-UX ksh and POSIX shell print the target directory to stdout | |
2739 # if CDPATH is set. | |
2740 (unset CDPATH) >/dev/null 2>&1 && unset CDPATH | |
2741 | |
2742 relink_command=\"$relink_command\" | |
2743 | |
2744 # This environment variable determines our operation mode. | |
2745 if test \"\$libtool_install_magic\" = \"$magic\"; then | |
2746 # install mode needs the following variables: | |
2747 generated_by_libtool_version='$macro_version' | |
2748 notinst_deplibs='$notinst_deplibs' | |
2749 else | |
2750 # When we are sourced in execute mode, \$file and \$ECHO are already set. | |
2751 if test \"\$libtool_execute_magic\" != \"$magic\"; then | |
2752 ECHO=\"$qecho\" | |
2753 file=\"\$0\" | |
2754 # Make sure echo works. | |
2755 if test \"X\$1\" = X--no-reexec; then | |
2756 # Discard the --no-reexec flag, and continue. | |
2757 shift | |
2758 elif test \"X\`{ \$ECHO '\t'; } 2>/dev/null\`\" = 'X\t'; then | |
2759 # Yippee, \$ECHO works! | |
2760 : | |
2761 else | |
2762 # Restart under the correct shell, and then maybe \$ECHO will work. | |
2763 exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"} | |
2764 fi | |
2765 fi\ | |
2766 " | |
2767 $ECHO "\ | |
2768 | |
2769 # Find the directory that this script lives in. | |
2770 thisdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\` | |
2771 test \"x\$thisdir\" = \"x\$file\" && thisdir=. | |
2772 | |
2773 # Follow symbolic links until we get to the real thisdir. | |
2774 file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\` | |
2775 while test -n \"\$file\"; do | |
2776 destdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\` | |
2777 | |
2778 # If there was a directory component, then change thisdir. | |
2779 if test \"x\$destdir\" != \"x\$file\"; then | |
2780 case \"\$destdir\" in | |
2781 [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; | |
2782 *) thisdir=\"\$thisdir/\$destdir\" ;; | |
2783 esac | |
2784 fi | |
2785 | |
2786 file=\`\$ECHO \"X\$file\" | \$Xsed -e 's%^.*/%%'\` | |
2787 file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\` | |
2788 done | |
2789 " | |
2790 } | |
2791 # end: func_emit_wrapper_part1 | |
2792 | |
2793 # func_emit_wrapper_part2 [arg=no] | |
2794 # | |
2795 # Emit the second part of a libtool wrapper script on stdout. | |
2796 # For more information, see the description associated with | |
2797 # func_emit_wrapper(), below. | |
2798 func_emit_wrapper_part2 () | |
2799 { | |
2800 func_emit_wrapper_part2_arg1=no | |
2801 if test -n "$1" ; then | |
2802 func_emit_wrapper_part2_arg1=$1 | |
2803 fi | |
2804 | |
2805 $ECHO "\ | |
2806 | |
2807 # Usually 'no', except on cygwin/mingw when embedded into | |
2808 # the cwrapper. | |
2809 WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_part2_arg1 | |
2810 if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then | |
2811 # special case for '.' | |
2812 if test \"\$thisdir\" = \".\"; then | |
2813 thisdir=\`pwd\` | |
2814 fi | |
2815 # remove .libs from thisdir | |
2816 case \"\$thisdir\" in | |
2817 *[\\\\/]$objdir ) thisdir=\`\$ECHO \"X\$thisdir\" | \$Xsed -e 's%[\\\\/][^\\\\/]*$%%'\` ;; | |
2818 $objdir ) thisdir=. ;; | |
2819 esac | |
2820 fi | |
2821 | |
2822 # Try to get the absolute directory name. | |
2823 absdir=\`cd \"\$thisdir\" && pwd\` | |
2824 test -n \"\$absdir\" && thisdir=\"\$absdir\" | |
2825 " | |
2826 | |
2827 if test "$fast_install" = yes; then | |
2828 $ECHO "\ | |
2829 program=lt-'$outputname'$exeext | |
2830 progdir=\"\$thisdir/$objdir\" | |
2831 | |
2832 if test ! -f \"\$progdir/\$program\" || | |
2833 { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ | |
2834 test \"X\$file\" != \"X\$progdir/\$program\"; }; then | |
2835 | |
2836 file=\"\$\$-\$program\" | |
2837 | |
2838 if test ! -d \"\$progdir\"; then | |
2839 $MKDIR \"\$progdir\" | |
2840 else | |
2841 $RM \"\$progdir/\$file\" | |
2842 fi" | |
2843 | |
2844 $ECHO "\ | |
2845 | |
2846 # relink executable if necessary | |
2847 if test -n \"\$relink_command\"; then | |
2848 if relink_command_output=\`eval \$relink_command 2>&1\`; then : | |
2849 else | |
2850 $ECHO \"\$relink_command_output\" >&2 | |
2851 $RM \"\$progdir/\$file\" | |
2852 exit 1 | |
2853 fi | |
2854 fi | |
2855 | |
2856 $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || | |
2857 { $RM \"\$progdir/\$program\"; | |
2858 $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; } | |
2859 $RM \"\$progdir/\$file\" | |
2860 fi" | |
2861 else | |
2862 $ECHO "\ | |
2863 program='$outputname' | |
2864 progdir=\"\$thisdir/$objdir\" | |
2865 " | |
2866 fi | |
2867 | |
2868 $ECHO "\ | |
2869 | |
2870 if test -f \"\$progdir/\$program\"; then" | |
2871 | |
2872 # Export our shlibpath_var if we have one. | |
2873 if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then | |
2874 $ECHO "\ | |
2875 # Add our own library path to $shlibpath_var | |
2876 $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" | |
2877 | |
2878 # Some systems cannot cope with colon-terminated $shlibpath_var | |
2879 # The second colon is a workaround for a bug in BeOS R4 sed | |
2880 $shlibpath_var=\`\$ECHO \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\` | |
2881 | |
2882 export $shlibpath_var | |
2883 " | |
2884 fi | |
2885 | |
2886 # fixup the dll searchpath if we need to. | |
2887 if test -n "$dllsearchpath"; then | |
2888 $ECHO "\ | |
2889 # Add the dll search path components to the executable PATH | |
2890 PATH=$dllsearchpath:\$PATH | |
2891 " | |
2892 fi | |
2893 | |
2894 $ECHO "\ | |
2895 if test \"\$libtool_execute_magic\" != \"$magic\"; then | |
2896 # Run the actual program with our arguments. | |
2897 " | |
2898 case $host in | |
2899 # Backslashes separate directories on plain windows | |
2900 *-*-mingw | *-*-os2* | *-cegcc*) | |
2901 $ECHO "\ | |
2902 exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} | |
2903 " | |
2904 ;; | |
2905 | |
2906 *) | |
2907 $ECHO "\ | |
2908 exec \"\$progdir/\$program\" \${1+\"\$@\"} | |
2909 " | |
2910 ;; | |
2911 esac | |
2912 $ECHO "\ | |
2913 \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 | |
2914 exit 1 | |
2915 fi | |
2916 else | |
2917 # The program doesn't exist. | |
2918 \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 | |
2919 \$ECHO \"This script is just a wrapper for \$program.\" 1>&2 | |
2920 $ECHO \"See the $PACKAGE documentation for more information.\" 1>&2 | |
2921 exit 1 | |
2922 fi | |
2923 fi\ | |
2924 " | |
2925 } | |
2926 # end: func_emit_wrapper_part2 | |
3820 | 2927 |
3821 | 2928 |
3822 # func_emit_wrapper [arg=no] | 2929 # func_emit_wrapper [arg=no] |
3823 # | 2930 # |
3824 # Emit a libtool wrapper script on stdout. | 2931 # Emit a libtool wrapper script on stdout. |
3833 # will assume that the directory in which it is stored is | 2940 # will assume that the directory in which it is stored is |
3834 # the $objdir directory. This is a cygwin/mingw-specific | 2941 # the $objdir directory. This is a cygwin/mingw-specific |
3835 # behavior. | 2942 # behavior. |
3836 func_emit_wrapper () | 2943 func_emit_wrapper () |
3837 { | 2944 { |
3838 func_emit_wrapper_arg1=${1-no} | 2945 func_emit_wrapper_arg1=no |
3839 | 2946 if test -n "$1" ; then |
3840 $ECHO "\ | 2947 func_emit_wrapper_arg1=$1 |
3841 #! $SHELL | 2948 fi |
3842 | 2949 |
3843 # $output - temporary wrapper script for $objdir/$outputname | 2950 # split this up so that func_emit_cwrapperexe_src |
3844 # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION | 2951 # can call each part independently. |
2952 func_emit_wrapper_part1 "${func_emit_wrapper_arg1}" | |
2953 func_emit_wrapper_part2 "${func_emit_wrapper_arg1}" | |
2954 } | |
2955 | |
2956 | |
2957 # func_to_host_path arg | |
3845 # | 2958 # |
3846 # The $output program cannot be directly executed until all the libtool | 2959 # Convert paths to host format when used with build tools. |
3847 # libraries that it depends on are installed. | 2960 # Intended for use with "native" mingw (where libtool itself |
2961 # is running under the msys shell), or in the following cross- | |
2962 # build environments: | |
2963 # $build $host | |
2964 # mingw (msys) mingw [e.g. native] | |
2965 # cygwin mingw | |
2966 # *nix + wine mingw | |
2967 # where wine is equipped with the `winepath' executable. | |
2968 # In the native mingw case, the (msys) shell automatically | |
2969 # converts paths for any non-msys applications it launches, | |
2970 # but that facility isn't available from inside the cwrapper. | |
2971 # Similar accommodations are necessary for $host mingw and | |
2972 # $build cygwin. Calling this function does no harm for other | |
2973 # $host/$build combinations not listed above. | |
3848 # | 2974 # |
3849 # This wrapper script should never be moved out of the build directory. | 2975 # ARG is the path (on $build) that should be converted to |
3850 # If it is, it will not operate correctly. | 2976 # the proper representation for $host. The result is stored |
3851 | 2977 # in $func_to_host_path_result. |
3852 # Sed substitution that helps us do robust quoting. It backslashifies | 2978 func_to_host_path () |
3853 # metacharacters that are still active within double-quoted strings. | |
3854 sed_quote_subst='$sed_quote_subst' | |
3855 | |
3856 # Be Bourne compatible | |
3857 if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then | |
3858 emulate sh | |
3859 NULLCMD=: | |
3860 # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which | |
3861 # is contrary to our usage. Disable this feature. | |
3862 alias -g '\${1+\"\$@\"}'='\"\$@\"' | |
3863 setopt NO_GLOB_SUBST | |
3864 else | |
3865 case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac | |
3866 fi | |
3867 BIN_SH=xpg4; export BIN_SH # for Tru64 | |
3868 DUALCASE=1; export DUALCASE # for MKS sh | |
3869 | |
3870 # The HP-UX ksh and POSIX shell print the target directory to stdout | |
3871 # if CDPATH is set. | |
3872 (unset CDPATH) >/dev/null 2>&1 && unset CDPATH | |
3873 | |
3874 relink_command=\"$relink_command\" | |
3875 | |
3876 # This environment variable determines our operation mode. | |
3877 if test \"\$libtool_install_magic\" = \"$magic\"; then | |
3878 # install mode needs the following variables: | |
3879 generated_by_libtool_version='$macro_version' | |
3880 notinst_deplibs='$notinst_deplibs' | |
3881 else | |
3882 # When we are sourced in execute mode, \$file and \$ECHO are already set. | |
3883 if test \"\$libtool_execute_magic\" != \"$magic\"; then | |
3884 file=\"\$0\"" | |
3885 | |
3886 qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"` | |
3887 $ECHO "\ | |
3888 | |
3889 # A function that is used when there is no print builtin or printf. | |
3890 func_fallback_echo () | |
3891 { | 2979 { |
3892 eval 'cat <<_LTECHO_EOF | 2980 func_to_host_path_result="$1" |
3893 \$1 | 2981 if test -n "$1" ; then |
3894 _LTECHO_EOF' | 2982 case $host in |
3895 } | 2983 *mingw* ) |
3896 ECHO=\"$qECHO\" | 2984 lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' |
3897 fi | 2985 case $build in |
3898 | 2986 *mingw* ) # actually, msys |
3899 # Very basic option parsing. These options are (a) specific to | 2987 # awkward: cmd appends spaces to result |
3900 # the libtool wrapper, (b) are identical between the wrapper | 2988 lt_sed_strip_trailing_spaces="s/[ ]*\$//" |
3901 # /script/ and the wrapper /executable/ which is used only on | 2989 func_to_host_path_tmp1=`( cmd //c echo "$1" |\ |
3902 # windows platforms, and (c) all begin with the string "--lt-" | 2990 $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""` |
3903 # (application programs are unlikely to have options which match | 2991 func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ |
3904 # this pattern). | 2992 $SED -e "$lt_sed_naive_backslashify"` |
3905 # | 2993 ;; |
3906 # There are only two supported options: --lt-debug and | 2994 *cygwin* ) |
3907 # --lt-dump-script. There is, deliberately, no --lt-help. | 2995 func_to_host_path_tmp1=`cygpath -w "$1"` |
3908 # | 2996 func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ |
3909 # The first argument to this parsing function should be the | 2997 $SED -e "$lt_sed_naive_backslashify"` |
3910 # script's $0 value, followed by "$@". | 2998 ;; |
3911 lt_option_debug= | 2999 * ) |
3912 func_parse_lt_options () | 3000 # Unfortunately, winepath does not exit with a non-zero |
3913 { | 3001 # error code, so we are forced to check the contents of |
3914 lt_script_arg0=\$0 | 3002 # stdout. On the other hand, if the command is not |
3915 shift | 3003 # found, the shell will set an exit code of 127 and print |
3916 for lt_opt | 3004 # *an error message* to stdout. So we must check for both |
3917 do | 3005 # error code of zero AND non-empty stdout, which explains |
3918 case \"\$lt_opt\" in | 3006 # the odd construction: |
3919 --lt-debug) lt_option_debug=1 ;; | 3007 func_to_host_path_tmp1=`winepath -w "$1" 2>/dev/null` |
3920 --lt-dump-script) | 3008 if test "$?" -eq 0 && test -n "${func_to_host_path_tmp1}"; then |
3921 lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\` | 3009 func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ |
3922 test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=. | 3010 $SED -e "$lt_sed_naive_backslashify"` |
3923 lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\` | 3011 else |
3924 cat \"\$lt_dump_D/\$lt_dump_F\" | 3012 # Allow warning below. |
3925 exit 0 | 3013 func_to_host_path_result="" |
3926 ;; | 3014 fi |
3927 --lt-*) | 3015 ;; |
3928 \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2 | 3016 esac |
3929 exit 1 | 3017 if test -z "$func_to_host_path_result" ; then |
3930 ;; | 3018 func_error "Could not determine host path corresponding to" |
3019 func_error " '$1'" | |
3020 func_error "Continuing, but uninstalled executables may not work." | |
3021 # Fallback: | |
3022 func_to_host_path_result="$1" | |
3023 fi | |
3024 ;; | |
3931 esac | 3025 esac |
3932 done | |
3933 | |
3934 # Print the debug banner immediately: | |
3935 if test -n \"\$lt_option_debug\"; then | |
3936 echo \"${outputname}:${output}:\${LINENO}: libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\" 1>&2 | |
3937 fi | 3026 fi |
3938 } | 3027 } |
3939 | 3028 # end: func_to_host_path |
3940 # Used when --lt-debug. Prints its arguments to stdout | 3029 |
3941 # (redirection is the responsibility of the caller) | 3030 # func_to_host_pathlist arg |
3942 func_lt_dump_args () | 3031 # |
3032 # Convert pathlists to host format when used with build tools. | |
3033 # See func_to_host_path(), above. This function supports the | |
3034 # following $build/$host combinations (but does no harm for | |
3035 # combinations not listed here): | |
3036 # $build $host | |
3037 # mingw (msys) mingw [e.g. native] | |
3038 # cygwin mingw | |
3039 # *nix + wine mingw | |
3040 # | |
3041 # Path separators are also converted from $build format to | |
3042 # $host format. If ARG begins or ends with a path separator | |
3043 # character, it is preserved (but converted to $host format) | |
3044 # on output. | |
3045 # | |
3046 # ARG is a pathlist (on $build) that should be converted to | |
3047 # the proper representation on $host. The result is stored | |
3048 # in $func_to_host_pathlist_result. | |
3049 func_to_host_pathlist () | |
3943 { | 3050 { |
3944 lt_dump_args_N=1; | 3051 func_to_host_pathlist_result="$1" |
3945 for lt_arg | 3052 if test -n "$1" ; then |
3946 do | 3053 case $host in |
3947 \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[\$lt_dump_args_N]: \$lt_arg\" | 3054 *mingw* ) |
3948 lt_dump_args_N=\`expr \$lt_dump_args_N + 1\` | 3055 lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' |
3949 done | 3056 # Remove leading and trailing path separator characters from |
3950 } | 3057 # ARG. msys behavior is inconsistent here, cygpath turns them |
3951 | 3058 # into '.;' and ';.', and winepath ignores them completely. |
3952 # Core function for launching the target application | 3059 func_to_host_pathlist_tmp2="$1" |
3953 func_exec_program_core () | 3060 # Once set for this call, this variable should not be |
3954 { | 3061 # reassigned. It is used in tha fallback case. |
3955 " | 3062 func_to_host_pathlist_tmp1=`echo "$func_to_host_pathlist_tmp2" |\ |
3956 case $host in | 3063 $SED -e 's|^:*||' -e 's|:*$||'` |
3957 # Backslashes separate directories on plain windows | 3064 case $build in |
3958 *-*-mingw | *-*-os2* | *-cegcc*) | 3065 *mingw* ) # Actually, msys. |
3959 $ECHO "\ | 3066 # Awkward: cmd appends spaces to result. |
3960 if test -n \"\$lt_option_debug\"; then | 3067 lt_sed_strip_trailing_spaces="s/[ ]*\$//" |
3961 \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir\\\\\$program\" 1>&2 | 3068 func_to_host_pathlist_tmp2=`( cmd //c echo "$func_to_host_pathlist_tmp1" |\ |
3962 func_lt_dump_args \${1+\"\$@\"} 1>&2 | 3069 $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""` |
3963 fi | 3070 func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\ |
3964 exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} | 3071 $SED -e "$lt_sed_naive_backslashify"` |
3965 " | 3072 ;; |
3966 ;; | 3073 *cygwin* ) |
3967 | 3074 func_to_host_pathlist_tmp2=`cygpath -w -p "$func_to_host_pathlist_tmp1"` |
3968 *) | 3075 func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\ |
3969 $ECHO "\ | 3076 $SED -e "$lt_sed_naive_backslashify"` |
3970 if test -n \"\$lt_option_debug\"; then | 3077 ;; |
3971 \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir/\$program\" 1>&2 | 3078 * ) |
3972 func_lt_dump_args \${1+\"\$@\"} 1>&2 | 3079 # unfortunately, winepath doesn't convert pathlists |
3973 fi | 3080 func_to_host_pathlist_result="" |
3974 exec \"\$progdir/\$program\" \${1+\"\$@\"} | 3081 func_to_host_pathlist_oldIFS=$IFS |
3975 " | 3082 IFS=: |
3976 ;; | 3083 for func_to_host_pathlist_f in $func_to_host_pathlist_tmp1 ; do |
3977 esac | 3084 IFS=$func_to_host_pathlist_oldIFS |
3978 $ECHO "\ | 3085 if test -n "$func_to_host_pathlist_f" ; then |
3979 \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 | 3086 func_to_host_path "$func_to_host_pathlist_f" |
3980 exit 1 | 3087 if test -n "$func_to_host_path_result" ; then |
3981 } | 3088 if test -z "$func_to_host_pathlist_result" ; then |
3982 | 3089 func_to_host_pathlist_result="$func_to_host_path_result" |
3983 # A function to encapsulate launching the target application | 3090 else |
3984 # Strips options in the --lt-* namespace from \$@ and | 3091 func_to_host_pathlist_result="$func_to_host_pathlist_result;$func_to_host_path_result" |
3985 # launches target application with the remaining arguments. | 3092 fi |
3986 func_exec_program () | 3093 fi |
3987 { | 3094 fi |
3988 case \" \$* \" in | 3095 IFS=: |
3989 *\\ --lt-*) | 3096 done |
3990 for lt_wr_arg | 3097 IFS=$func_to_host_pathlist_oldIFS |
3991 do | 3098 ;; |
3992 case \$lt_wr_arg in | 3099 esac |
3993 --lt-*) ;; | 3100 if test -z "$func_to_host_pathlist_result" ; then |
3994 *) set x \"\$@\" \"\$lt_wr_arg\"; shift;; | 3101 func_error "Could not determine the host path(s) corresponding to" |
3995 esac | 3102 func_error " '$1'" |
3996 shift | 3103 func_error "Continuing, but uninstalled executables may not work." |
3997 done ;; | 3104 # Fallback. This may break if $1 contains DOS-style drive |
3998 esac | 3105 # specifications. The fix is not to complicate the expression |
3999 func_exec_program_core \${1+\"\$@\"} | 3106 # below, but for the user to provide a working wine installation |
4000 } | 3107 # with winepath so that path translation in the cross-to-mingw |
4001 | 3108 # case works properly. |
4002 # Parse options | 3109 lt_replace_pathsep_nix_to_dos="s|:|;|g" |
4003 func_parse_lt_options \"\$0\" \${1+\"\$@\"} | 3110 func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp1" |\ |
4004 | 3111 $SED -e "$lt_replace_pathsep_nix_to_dos"` |
4005 # Find the directory that this script lives in. | 3112 fi |
4006 thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\` | 3113 # Now, add the leading and trailing path separators back |
4007 test \"x\$thisdir\" = \"x\$file\" && thisdir=. | 3114 case "$1" in |
4008 | 3115 :* ) func_to_host_pathlist_result=";$func_to_host_pathlist_result" |
4009 # Follow symbolic links until we get to the real thisdir. | 3116 ;; |
4010 file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\` | 3117 esac |
4011 while test -n \"\$file\"; do | 3118 case "$1" in |
4012 destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\` | 3119 *: ) func_to_host_pathlist_result="$func_to_host_pathlist_result;" |
4013 | 3120 ;; |
4014 # If there was a directory component, then change thisdir. | 3121 esac |
4015 if test \"x\$destdir\" != \"x\$file\"; then | 3122 ;; |
4016 case \"\$destdir\" in | |
4017 [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; | |
4018 *) thisdir=\"\$thisdir/\$destdir\" ;; | |
4019 esac | |
4020 fi | |
4021 | |
4022 file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\` | |
4023 file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\` | |
4024 done | |
4025 | |
4026 # Usually 'no', except on cygwin/mingw when embedded into | |
4027 # the cwrapper. | |
4028 WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1 | |
4029 if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then | |
4030 # special case for '.' | |
4031 if test \"\$thisdir\" = \".\"; then | |
4032 thisdir=\`pwd\` | |
4033 fi | |
4034 # remove .libs from thisdir | |
4035 case \"\$thisdir\" in | |
4036 *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;; | |
4037 $objdir ) thisdir=. ;; | |
4038 esac | 3123 esac |
4039 fi | 3124 fi |
4040 | |
4041 # Try to get the absolute directory name. | |
4042 absdir=\`cd \"\$thisdir\" && pwd\` | |
4043 test -n \"\$absdir\" && thisdir=\"\$absdir\" | |
4044 " | |
4045 | |
4046 if test "$fast_install" = yes; then | |
4047 $ECHO "\ | |
4048 program=lt-'$outputname'$exeext | |
4049 progdir=\"\$thisdir/$objdir\" | |
4050 | |
4051 if test ! -f \"\$progdir/\$program\" || | |
4052 { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ | |
4053 test \"X\$file\" != \"X\$progdir/\$program\"; }; then | |
4054 | |
4055 file=\"\$\$-\$program\" | |
4056 | |
4057 if test ! -d \"\$progdir\"; then | |
4058 $MKDIR \"\$progdir\" | |
4059 else | |
4060 $RM \"\$progdir/\$file\" | |
4061 fi" | |
4062 | |
4063 $ECHO "\ | |
4064 | |
4065 # relink executable if necessary | |
4066 if test -n \"\$relink_command\"; then | |
4067 if relink_command_output=\`eval \$relink_command 2>&1\`; then : | |
4068 else | |
4069 $ECHO \"\$relink_command_output\" >&2 | |
4070 $RM \"\$progdir/\$file\" | |
4071 exit 1 | |
4072 fi | |
4073 fi | |
4074 | |
4075 $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || | |
4076 { $RM \"\$progdir/\$program\"; | |
4077 $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; } | |
4078 $RM \"\$progdir/\$file\" | |
4079 fi" | |
4080 else | |
4081 $ECHO "\ | |
4082 program='$outputname' | |
4083 progdir=\"\$thisdir/$objdir\" | |
4084 " | |
4085 fi | |
4086 | |
4087 $ECHO "\ | |
4088 | |
4089 if test -f \"\$progdir/\$program\"; then" | |
4090 | |
4091 # fixup the dll searchpath if we need to. | |
4092 # | |
4093 # Fix the DLL searchpath if we need to. Do this before prepending | |
4094 # to shlibpath, because on Windows, both are PATH and uninstalled | |
4095 # libraries must come first. | |
4096 if test -n "$dllsearchpath"; then | |
4097 $ECHO "\ | |
4098 # Add the dll search path components to the executable PATH | |
4099 PATH=$dllsearchpath:\$PATH | |
4100 " | |
4101 fi | |
4102 | |
4103 # Export our shlibpath_var if we have one. | |
4104 if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then | |
4105 $ECHO "\ | |
4106 # Add our own library path to $shlibpath_var | |
4107 $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" | |
4108 | |
4109 # Some systems cannot cope with colon-terminated $shlibpath_var | |
4110 # The second colon is a workaround for a bug in BeOS R4 sed | |
4111 $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\` | |
4112 | |
4113 export $shlibpath_var | |
4114 " | |
4115 fi | |
4116 | |
4117 $ECHO "\ | |
4118 if test \"\$libtool_execute_magic\" != \"$magic\"; then | |
4119 # Run the actual program with our arguments. | |
4120 func_exec_program \${1+\"\$@\"} | |
4121 fi | |
4122 else | |
4123 # The program doesn't exist. | |
4124 \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 | |
4125 \$ECHO \"This script is just a wrapper for \$program.\" 1>&2 | |
4126 \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2 | |
4127 exit 1 | |
4128 fi | |
4129 fi\ | |
4130 " | |
4131 } | 3125 } |
4132 | 3126 # end: func_to_host_pathlist |
4133 | 3127 |
4134 # func_emit_cwrapperexe_src | 3128 # func_emit_cwrapperexe_src |
4135 # emit the source code for a wrapper executable on stdout | 3129 # emit the source code for a wrapper executable on stdout |
4136 # Must ONLY be called from within func_mode_link because | 3130 # Must ONLY be called from within func_mode_link because |
4137 # it depends on a number of variable set therein. | 3131 # it depends on a number of variable set therein. |
4145 The $output program cannot be directly executed until all the libtool | 3139 The $output program cannot be directly executed until all the libtool |
4146 libraries that it depends on are installed. | 3140 libraries that it depends on are installed. |
4147 | 3141 |
4148 This wrapper executable should never be moved out of the build directory. | 3142 This wrapper executable should never be moved out of the build directory. |
4149 If it is, it will not operate correctly. | 3143 If it is, it will not operate correctly. |
3144 | |
3145 Currently, it simply execs the wrapper *script* "$SHELL $output", | |
3146 but could eventually absorb all of the scripts functionality and | |
3147 exec $objdir/$outputname directly. | |
4150 */ | 3148 */ |
4151 EOF | 3149 EOF |
4152 cat <<"EOF" | 3150 cat <<"EOF" |
4153 #ifdef _MSC_VER | |
4154 # define _CRT_SECURE_NO_DEPRECATE 1 | |
4155 #endif | |
4156 #include <stdio.h> | 3151 #include <stdio.h> |
4157 #include <stdlib.h> | 3152 #include <stdlib.h> |
4158 #ifdef _MSC_VER | 3153 #ifdef _MSC_VER |
4159 # include <direct.h> | 3154 # include <direct.h> |
4160 # include <process.h> | 3155 # include <process.h> |
4161 # include <io.h> | 3156 # include <io.h> |
3157 # define setmode _setmode | |
4162 #else | 3158 #else |
4163 # include <unistd.h> | 3159 # include <unistd.h> |
4164 # include <stdint.h> | 3160 # include <stdint.h> |
4165 # ifdef __CYGWIN__ | 3161 # ifdef __CYGWIN__ |
4166 # include <io.h> | 3162 # include <io.h> |
3163 # define HAVE_SETENV | |
3164 # ifdef __STRICT_ANSI__ | |
3165 char *realpath (const char *, char *); | |
3166 int putenv (char *); | |
3167 int setenv (const char *, const char *, int); | |
3168 # endif | |
4167 # endif | 3169 # endif |
4168 #endif | 3170 #endif |
4169 #include <malloc.h> | 3171 #include <malloc.h> |
4170 #include <stdarg.h> | 3172 #include <stdarg.h> |
4171 #include <assert.h> | 3173 #include <assert.h> |
4173 #include <ctype.h> | 3175 #include <ctype.h> |
4174 #include <errno.h> | 3176 #include <errno.h> |
4175 #include <fcntl.h> | 3177 #include <fcntl.h> |
4176 #include <sys/stat.h> | 3178 #include <sys/stat.h> |
4177 | 3179 |
4178 /* declarations of non-ANSI functions */ | |
4179 #if defined(__MINGW32__) | |
4180 # ifdef __STRICT_ANSI__ | |
4181 int _putenv (const char *); | |
4182 # endif | |
4183 #elif defined(__CYGWIN__) | |
4184 # ifdef __STRICT_ANSI__ | |
4185 char *realpath (const char *, char *); | |
4186 int putenv (char *); | |
4187 int setenv (const char *, const char *, int); | |
4188 # endif | |
4189 /* #elif defined (other platforms) ... */ | |
4190 #endif | |
4191 | |
4192 /* portability defines, excluding path handling macros */ | |
4193 #if defined(_MSC_VER) | |
4194 # define setmode _setmode | |
4195 # define stat _stat | |
4196 # define chmod _chmod | |
4197 # define getcwd _getcwd | |
4198 # define putenv _putenv | |
4199 # define S_IXUSR _S_IEXEC | |
4200 # ifndef _INTPTR_T_DEFINED | |
4201 # define _INTPTR_T_DEFINED | |
4202 # define intptr_t int | |
4203 # endif | |
4204 #elif defined(__MINGW32__) | |
4205 # define setmode _setmode | |
4206 # define stat _stat | |
4207 # define chmod _chmod | |
4208 # define getcwd _getcwd | |
4209 # define putenv _putenv | |
4210 #elif defined(__CYGWIN__) | |
4211 # define HAVE_SETENV | |
4212 # define FOPEN_WB "wb" | |
4213 /* #elif defined (other platforms) ... */ | |
4214 #endif | |
4215 | |
4216 #if defined(PATH_MAX) | 3180 #if defined(PATH_MAX) |
4217 # define LT_PATHMAX PATH_MAX | 3181 # define LT_PATHMAX PATH_MAX |
4218 #elif defined(MAXPATHLEN) | 3182 #elif defined(MAXPATHLEN) |
4219 # define LT_PATHMAX MAXPATHLEN | 3183 # define LT_PATHMAX MAXPATHLEN |
4220 #else | 3184 #else |
4226 #endif | 3190 #endif |
4227 #ifndef S_IXGRP | 3191 #ifndef S_IXGRP |
4228 # define S_IXGRP 0 | 3192 # define S_IXGRP 0 |
4229 #endif | 3193 #endif |
4230 | 3194 |
4231 /* path handling portability macros */ | 3195 #ifdef _MSC_VER |
3196 # define S_IXUSR _S_IEXEC | |
3197 # define stat _stat | |
3198 # ifndef _INTPTR_T_DEFINED | |
3199 # define intptr_t int | |
3200 # endif | |
3201 #endif | |
3202 | |
4232 #ifndef DIR_SEPARATOR | 3203 #ifndef DIR_SEPARATOR |
4233 # define DIR_SEPARATOR '/' | 3204 # define DIR_SEPARATOR '/' |
4234 # define PATH_SEPARATOR ':' | 3205 # define PATH_SEPARATOR ':' |
4235 #endif | 3206 #endif |
4236 | 3207 |
4257 # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) | 3228 # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) |
4258 #else /* PATH_SEPARATOR_2 */ | 3229 #else /* PATH_SEPARATOR_2 */ |
4259 # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) | 3230 # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) |
4260 #endif /* PATH_SEPARATOR_2 */ | 3231 #endif /* PATH_SEPARATOR_2 */ |
4261 | 3232 |
3233 #ifdef __CYGWIN__ | |
3234 # define FOPEN_WB "wb" | |
3235 #endif | |
3236 | |
4262 #ifndef FOPEN_WB | 3237 #ifndef FOPEN_WB |
4263 # define FOPEN_WB "w" | 3238 # define FOPEN_WB "w" |
4264 #endif | 3239 #endif |
4265 #ifndef _O_BINARY | 3240 #ifndef _O_BINARY |
4266 # define _O_BINARY 0 | 3241 # define _O_BINARY 0 |
4269 #define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) | 3244 #define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) |
4270 #define XFREE(stale) do { \ | 3245 #define XFREE(stale) do { \ |
4271 if (stale) { free ((void *) stale); stale = 0; } \ | 3246 if (stale) { free ((void *) stale); stale = 0; } \ |
4272 } while (0) | 3247 } while (0) |
4273 | 3248 |
4274 #if defined(LT_DEBUGWRAPPER) | 3249 #undef LTWRAPPER_DEBUGPRINTF |
4275 static int lt_debug = 1; | 3250 #if defined DEBUGWRAPPER |
3251 # define LTWRAPPER_DEBUGPRINTF(args) ltwrapper_debugprintf args | |
3252 static void | |
3253 ltwrapper_debugprintf (const char *fmt, ...) | |
3254 { | |
3255 va_list args; | |
3256 va_start (args, fmt); | |
3257 (void) vfprintf (stderr, fmt, args); | |
3258 va_end (args); | |
3259 } | |
4276 #else | 3260 #else |
4277 static int lt_debug = 0; | 3261 # define LTWRAPPER_DEBUGPRINTF(args) |
4278 #endif | 3262 #endif |
4279 | 3263 |
4280 const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */ | 3264 const char *program_name = NULL; |
4281 | 3265 |
4282 void *xmalloc (size_t num); | 3266 void *xmalloc (size_t num); |
4283 char *xstrdup (const char *string); | 3267 char *xstrdup (const char *string); |
4284 const char *base_name (const char *name); | 3268 const char *base_name (const char *name); |
4285 char *find_executable (const char *wrapper); | 3269 char *find_executable (const char *wrapper); |
4286 char *chase_symlinks (const char *pathspec); | 3270 char *chase_symlinks (const char *pathspec); |
4287 int make_executable (const char *path); | 3271 int make_executable (const char *path); |
4288 int check_executable (const char *path); | 3272 int check_executable (const char *path); |
4289 char *strendzap (char *str, const char *pat); | 3273 char *strendzap (char *str, const char *pat); |
4290 void lt_debugprintf (const char *file, int line, const char *fmt, ...); | 3274 void lt_fatal (const char *message, ...); |
4291 void lt_fatal (const char *file, int line, const char *message, ...); | |
4292 static const char *nonnull (const char *s); | |
4293 static const char *nonempty (const char *s); | |
4294 void lt_setenv (const char *name, const char *value); | 3275 void lt_setenv (const char *name, const char *value); |
4295 char *lt_extend_str (const char *orig_value, const char *add, int to_end); | 3276 char *lt_extend_str (const char *orig_value, const char *add, int to_end); |
3277 void lt_opt_process_env_set (const char *arg); | |
3278 void lt_opt_process_env_prepend (const char *arg); | |
3279 void lt_opt_process_env_append (const char *arg); | |
3280 int lt_split_name_value (const char *arg, char** name, char** value); | |
4296 void lt_update_exe_path (const char *name, const char *value); | 3281 void lt_update_exe_path (const char *name, const char *value); |
4297 void lt_update_lib_path (const char *name, const char *value); | 3282 void lt_update_lib_path (const char *name, const char *value); |
4298 char **prepare_spawn (char **argv); | 3283 |
4299 void lt_dump_script (FILE *f); | 3284 static const char *script_text_part1 = |
4300 EOF | 3285 EOF |
4301 | 3286 |
3287 func_emit_wrapper_part1 yes | | |
3288 $SED -e 's/\([\\"]\)/\\\1/g' \ | |
3289 -e 's/^/ "/' -e 's/$/\\n"/' | |
3290 echo ";" | |
4302 cat <<EOF | 3291 cat <<EOF |
4303 volatile const char * MAGIC_EXE = "$magic_exe"; | 3292 |
3293 static const char *script_text_part2 = | |
3294 EOF | |
3295 func_emit_wrapper_part2 yes | | |
3296 $SED -e 's/\([\\"]\)/\\\1/g' \ | |
3297 -e 's/^/ "/' -e 's/$/\\n"/' | |
3298 echo ";" | |
3299 | |
3300 cat <<EOF | |
3301 const char * MAGIC_EXE = "$magic_exe"; | |
4304 const char * LIB_PATH_VARNAME = "$shlibpath_var"; | 3302 const char * LIB_PATH_VARNAME = "$shlibpath_var"; |
4305 EOF | 3303 EOF |
4306 | 3304 |
4307 if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then | 3305 if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then |
4308 func_to_host_path "$temp_rpath" | 3306 func_to_host_pathlist "$temp_rpath" |
4309 cat <<EOF | 3307 cat <<EOF |
4310 const char * LIB_PATH_VALUE = "$func_to_host_path_result"; | 3308 const char * LIB_PATH_VALUE = "$func_to_host_pathlist_result"; |
4311 EOF | 3309 EOF |
4312 else | 3310 else |
4313 cat <<"EOF" | 3311 cat <<"EOF" |
4314 const char * LIB_PATH_VALUE = ""; | 3312 const char * LIB_PATH_VALUE = ""; |
4315 EOF | 3313 EOF |
4316 fi | 3314 fi |
4317 | 3315 |
4318 if test -n "$dllsearchpath"; then | 3316 if test -n "$dllsearchpath"; then |
4319 func_to_host_path "$dllsearchpath:" | 3317 func_to_host_pathlist "$dllsearchpath:" |
4320 cat <<EOF | 3318 cat <<EOF |
4321 const char * EXE_PATH_VARNAME = "PATH"; | 3319 const char * EXE_PATH_VARNAME = "PATH"; |
4322 const char * EXE_PATH_VALUE = "$func_to_host_path_result"; | 3320 const char * EXE_PATH_VALUE = "$func_to_host_pathlist_result"; |
4323 EOF | 3321 EOF |
4324 else | 3322 else |
4325 cat <<"EOF" | 3323 cat <<"EOF" |
4326 const char * EXE_PATH_VARNAME = ""; | 3324 const char * EXE_PATH_VARNAME = ""; |
4327 const char * EXE_PATH_VALUE = ""; | 3325 const char * EXE_PATH_VALUE = ""; |
4340 | 3338 |
4341 | 3339 |
4342 cat <<"EOF" | 3340 cat <<"EOF" |
4343 | 3341 |
4344 #define LTWRAPPER_OPTION_PREFIX "--lt-" | 3342 #define LTWRAPPER_OPTION_PREFIX "--lt-" |
4345 | 3343 #define LTWRAPPER_OPTION_PREFIX_LENGTH 5 |
3344 | |
3345 static const size_t opt_prefix_len = LTWRAPPER_OPTION_PREFIX_LENGTH; | |
4346 static const char *ltwrapper_option_prefix = LTWRAPPER_OPTION_PREFIX; | 3346 static const char *ltwrapper_option_prefix = LTWRAPPER_OPTION_PREFIX; |
3347 | |
4347 static const char *dumpscript_opt = LTWRAPPER_OPTION_PREFIX "dump-script"; | 3348 static const char *dumpscript_opt = LTWRAPPER_OPTION_PREFIX "dump-script"; |
4348 static const char *debug_opt = LTWRAPPER_OPTION_PREFIX "debug"; | 3349 |
3350 static const size_t env_set_opt_len = LTWRAPPER_OPTION_PREFIX_LENGTH + 7; | |
3351 static const char *env_set_opt = LTWRAPPER_OPTION_PREFIX "env-set"; | |
3352 /* argument is putenv-style "foo=bar", value of foo is set to bar */ | |
3353 | |
3354 static const size_t env_prepend_opt_len = LTWRAPPER_OPTION_PREFIX_LENGTH + 11; | |
3355 static const char *env_prepend_opt = LTWRAPPER_OPTION_PREFIX "env-prepend"; | |
3356 /* argument is putenv-style "foo=bar", new value of foo is bar${foo} */ | |
3357 | |
3358 static const size_t env_append_opt_len = LTWRAPPER_OPTION_PREFIX_LENGTH + 10; | |
3359 static const char *env_append_opt = LTWRAPPER_OPTION_PREFIX "env-append"; | |
3360 /* argument is putenv-style "foo=bar", new value of foo is ${foo}bar */ | |
4349 | 3361 |
4350 int | 3362 int |
4351 main (int argc, char *argv[]) | 3363 main (int argc, char *argv[]) |
4352 { | 3364 { |
4353 char **newargz; | 3365 char **newargz; |
4360 intptr_t rval = 127; | 3372 intptr_t rval = 127; |
4361 | 3373 |
4362 int i; | 3374 int i; |
4363 | 3375 |
4364 program_name = (char *) xstrdup (base_name (argv[0])); | 3376 program_name = (char *) xstrdup (base_name (argv[0])); |
4365 newargz = XMALLOC (char *, argc + 1); | 3377 LTWRAPPER_DEBUGPRINTF (("(main) argv[0] : %s\n", argv[0])); |
4366 | 3378 LTWRAPPER_DEBUGPRINTF (("(main) program_name : %s\n", program_name)); |
4367 /* very simple arg parsing; don't want to rely on getopt | 3379 |
4368 * also, copy all non cwrapper options to newargz, except | 3380 /* very simple arg parsing; don't want to rely on getopt */ |
4369 * argz[0], which is handled differently | |
4370 */ | |
4371 newargc=0; | |
4372 for (i = 1; i < argc; i++) | 3381 for (i = 1; i < argc; i++) |
4373 { | 3382 { |
4374 if (strcmp (argv[i], dumpscript_opt) == 0) | 3383 if (strcmp (argv[i], dumpscript_opt) == 0) |
4375 { | 3384 { |
4376 EOF | 3385 EOF |
4380 echo " setmode(1,_O_BINARY);" | 3389 echo " setmode(1,_O_BINARY);" |
4381 ;; | 3390 ;; |
4382 esac | 3391 esac |
4383 | 3392 |
4384 cat <<"EOF" | 3393 cat <<"EOF" |
4385 lt_dump_script (stdout); | 3394 printf ("%s", script_text_part1); |
3395 printf ("%s", script_text_part2); | |
4386 return 0; | 3396 return 0; |
4387 } | 3397 } |
4388 if (strcmp (argv[i], debug_opt) == 0) | |
4389 { | |
4390 lt_debug = 1; | |
4391 continue; | |
4392 } | |
4393 if (strcmp (argv[i], ltwrapper_option_prefix) == 0) | |
4394 { | |
4395 /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX | |
4396 namespace, but it is not one of the ones we know about and | |
4397 have already dealt with, above (inluding dump-script), then | |
4398 report an error. Otherwise, targets might begin to believe | |
4399 they are allowed to use options in the LTWRAPPER_OPTION_PREFIX | |
4400 namespace. The first time any user complains about this, we'll | |
4401 need to make LTWRAPPER_OPTION_PREFIX a configure-time option | |
4402 or a configure.ac-settable value. | |
4403 */ | |
4404 lt_fatal (__FILE__, __LINE__, | |
4405 "unrecognized %s option: '%s'", | |
4406 ltwrapper_option_prefix, argv[i]); | |
4407 } | |
4408 /* otherwise ... */ | |
4409 newargz[++newargc] = xstrdup (argv[i]); | |
4410 } | 3398 } |
4411 newargz[++newargc] = NULL; | 3399 |
4412 | 3400 newargz = XMALLOC (char *, argc + 1); |
4413 EOF | |
4414 cat <<EOF | |
4415 /* The GNU banner must be the first non-error debug message */ | |
4416 lt_debugprintf (__FILE__, __LINE__, "libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\n"); | |
4417 EOF | |
4418 cat <<"EOF" | |
4419 lt_debugprintf (__FILE__, __LINE__, "(main) argv[0]: %s\n", argv[0]); | |
4420 lt_debugprintf (__FILE__, __LINE__, "(main) program_name: %s\n", program_name); | |
4421 | |
4422 tmp_pathspec = find_executable (argv[0]); | 3401 tmp_pathspec = find_executable (argv[0]); |
4423 if (tmp_pathspec == NULL) | 3402 if (tmp_pathspec == NULL) |
4424 lt_fatal (__FILE__, __LINE__, "couldn't find %s", argv[0]); | 3403 lt_fatal ("Couldn't find %s", argv[0]); |
4425 lt_debugprintf (__FILE__, __LINE__, | 3404 LTWRAPPER_DEBUGPRINTF (("(main) found exe (before symlink chase) at : %s\n", |
4426 "(main) found exe (before symlink chase) at: %s\n", | 3405 tmp_pathspec)); |
4427 tmp_pathspec); | |
4428 | 3406 |
4429 actual_cwrapper_path = chase_symlinks (tmp_pathspec); | 3407 actual_cwrapper_path = chase_symlinks (tmp_pathspec); |
4430 lt_debugprintf (__FILE__, __LINE__, | 3408 LTWRAPPER_DEBUGPRINTF (("(main) found exe (after symlink chase) at : %s\n", |
4431 "(main) found exe (after symlink chase) at: %s\n", | 3409 actual_cwrapper_path)); |
4432 actual_cwrapper_path); | |
4433 XFREE (tmp_pathspec); | 3410 XFREE (tmp_pathspec); |
4434 | 3411 |
4435 actual_cwrapper_name = xstrdup (base_name (actual_cwrapper_path)); | 3412 actual_cwrapper_name = xstrdup( base_name (actual_cwrapper_path)); |
4436 strendzap (actual_cwrapper_path, actual_cwrapper_name); | 3413 strendzap (actual_cwrapper_path, actual_cwrapper_name); |
4437 | 3414 |
4438 /* wrapper name transforms */ | 3415 /* wrapper name transforms */ |
4439 strendzap (actual_cwrapper_name, ".exe"); | 3416 strendzap (actual_cwrapper_name, ".exe"); |
4440 tmp_pathspec = lt_extend_str (actual_cwrapper_name, ".exe", 1); | 3417 tmp_pathspec = lt_extend_str (actual_cwrapper_name, ".exe", 1); |
4448 tmp_pathspec = lt_extend_str (target_name, ".exe", 1); | 3425 tmp_pathspec = lt_extend_str (target_name, ".exe", 1); |
4449 XFREE (target_name); | 3426 XFREE (target_name); |
4450 target_name = tmp_pathspec; | 3427 target_name = tmp_pathspec; |
4451 tmp_pathspec = 0; | 3428 tmp_pathspec = 0; |
4452 | 3429 |
4453 lt_debugprintf (__FILE__, __LINE__, | 3430 LTWRAPPER_DEBUGPRINTF (("(main) libtool target name: %s\n", |
4454 "(main) libtool target name: %s\n", | 3431 target_name)); |
4455 target_name); | |
4456 EOF | 3432 EOF |
4457 | 3433 |
4458 cat <<EOF | 3434 cat <<EOF |
4459 newargz[0] = | 3435 newargz[0] = |
4460 XMALLOC (char, (strlen (actual_cwrapper_path) + | 3436 XMALLOC (char, (strlen (actual_cwrapper_path) + |
4500 XFREE (actual_cwrapper_path); | 3476 XFREE (actual_cwrapper_path); |
4501 XFREE (actual_cwrapper_name); | 3477 XFREE (actual_cwrapper_name); |
4502 | 3478 |
4503 lt_setenv ("BIN_SH", "xpg4"); /* for Tru64 */ | 3479 lt_setenv ("BIN_SH", "xpg4"); /* for Tru64 */ |
4504 lt_setenv ("DUALCASE", "1"); /* for MSK sh */ | 3480 lt_setenv ("DUALCASE", "1"); /* for MSK sh */ |
4505 /* Update the DLL searchpath. EXE_PATH_VALUE ($dllsearchpath) must | 3481 lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE); |
4506 be prepended before (that is, appear after) LIB_PATH_VALUE ($temp_rpath) | |
4507 because on Windows, both *_VARNAMEs are PATH but uninstalled | |
4508 libraries must come first. */ | |
4509 lt_update_exe_path (EXE_PATH_VARNAME, EXE_PATH_VALUE); | 3482 lt_update_exe_path (EXE_PATH_VARNAME, EXE_PATH_VALUE); |
4510 lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE); | 3483 |
4511 | 3484 newargc=0; |
4512 lt_debugprintf (__FILE__, __LINE__, "(main) lt_argv_zero: %s\n", | 3485 for (i = 1; i < argc; i++) |
4513 nonnull (lt_argv_zero)); | 3486 { |
3487 if (strncmp (argv[i], env_set_opt, env_set_opt_len) == 0) | |
3488 { | |
3489 if (argv[i][env_set_opt_len] == '=') | |
3490 { | |
3491 const char *p = argv[i] + env_set_opt_len + 1; | |
3492 lt_opt_process_env_set (p); | |
3493 } | |
3494 else if (argv[i][env_set_opt_len] == '\0' && i + 1 < argc) | |
3495 { | |
3496 lt_opt_process_env_set (argv[++i]); /* don't copy */ | |
3497 } | |
3498 else | |
3499 lt_fatal ("%s missing required argument", env_set_opt); | |
3500 continue; | |
3501 } | |
3502 if (strncmp (argv[i], env_prepend_opt, env_prepend_opt_len) == 0) | |
3503 { | |
3504 if (argv[i][env_prepend_opt_len] == '=') | |
3505 { | |
3506 const char *p = argv[i] + env_prepend_opt_len + 1; | |
3507 lt_opt_process_env_prepend (p); | |
3508 } | |
3509 else if (argv[i][env_prepend_opt_len] == '\0' && i + 1 < argc) | |
3510 { | |
3511 lt_opt_process_env_prepend (argv[++i]); /* don't copy */ | |
3512 } | |
3513 else | |
3514 lt_fatal ("%s missing required argument", env_prepend_opt); | |
3515 continue; | |
3516 } | |
3517 if (strncmp (argv[i], env_append_opt, env_append_opt_len) == 0) | |
3518 { | |
3519 if (argv[i][env_append_opt_len] == '=') | |
3520 { | |
3521 const char *p = argv[i] + env_append_opt_len + 1; | |
3522 lt_opt_process_env_append (p); | |
3523 } | |
3524 else if (argv[i][env_append_opt_len] == '\0' && i + 1 < argc) | |
3525 { | |
3526 lt_opt_process_env_append (argv[++i]); /* don't copy */ | |
3527 } | |
3528 else | |
3529 lt_fatal ("%s missing required argument", env_append_opt); | |
3530 continue; | |
3531 } | |
3532 if (strncmp (argv[i], ltwrapper_option_prefix, opt_prefix_len) == 0) | |
3533 { | |
3534 /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX | |
3535 namespace, but it is not one of the ones we know about and | |
3536 have already dealt with, above (inluding dump-script), then | |
3537 report an error. Otherwise, targets might begin to believe | |
3538 they are allowed to use options in the LTWRAPPER_OPTION_PREFIX | |
3539 namespace. The first time any user complains about this, we'll | |
3540 need to make LTWRAPPER_OPTION_PREFIX a configure-time option | |
3541 or a configure.ac-settable value. | |
3542 */ | |
3543 lt_fatal ("Unrecognized option in %s namespace: '%s'", | |
3544 ltwrapper_option_prefix, argv[i]); | |
3545 } | |
3546 /* otherwise ... */ | |
3547 newargz[++newargc] = xstrdup (argv[i]); | |
3548 } | |
3549 newargz[++newargc] = NULL; | |
3550 | |
3551 LTWRAPPER_DEBUGPRINTF (("(main) lt_argv_zero : %s\n", (lt_argv_zero ? lt_argv_zero : "<NULL>"))); | |
4514 for (i = 0; i < newargc; i++) | 3552 for (i = 0; i < newargc; i++) |
4515 { | 3553 { |
4516 lt_debugprintf (__FILE__, __LINE__, "(main) newargz[%d]: %s\n", | 3554 LTWRAPPER_DEBUGPRINTF (("(main) newargz[%d] : %s\n", i, (newargz[i] ? newargz[i] : "<NULL>"))); |
4517 i, nonnull (newargz[i])); | |
4518 } | 3555 } |
4519 | 3556 |
4520 EOF | 3557 EOF |
4521 | 3558 |
4522 case $host_os in | 3559 case $host_os in |
4523 mingw*) | 3560 mingw*) |
4524 cat <<"EOF" | 3561 cat <<"EOF" |
4525 /* execv doesn't actually work on mingw as expected on unix */ | 3562 /* execv doesn't actually work on mingw as expected on unix */ |
4526 newargz = prepare_spawn (newargz); | |
4527 rval = _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz); | 3563 rval = _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz); |
4528 if (rval == -1) | 3564 if (rval == -1) |
4529 { | 3565 { |
4530 /* failed to start process */ | 3566 /* failed to start process */ |
4531 lt_debugprintf (__FILE__, __LINE__, | 3567 LTWRAPPER_DEBUGPRINTF (("(main) failed to launch target \"%s\": errno = %d\n", lt_argv_zero, errno)); |
4532 "(main) failed to launch target \"%s\": %s\n", | |
4533 lt_argv_zero, nonnull (strerror (errno))); | |
4534 return 127; | 3568 return 127; |
4535 } | 3569 } |
4536 return rval; | 3570 return rval; |
4537 EOF | 3571 EOF |
4538 ;; | 3572 ;; |
4550 void * | 3584 void * |
4551 xmalloc (size_t num) | 3585 xmalloc (size_t num) |
4552 { | 3586 { |
4553 void *p = (void *) malloc (num); | 3587 void *p = (void *) malloc (num); |
4554 if (!p) | 3588 if (!p) |
4555 lt_fatal (__FILE__, __LINE__, "memory exhausted"); | 3589 lt_fatal ("Memory exhausted"); |
4556 | 3590 |
4557 return p; | 3591 return p; |
4558 } | 3592 } |
4559 | 3593 |
4560 char * | 3594 char * |
4584 int | 3618 int |
4585 check_executable (const char *path) | 3619 check_executable (const char *path) |
4586 { | 3620 { |
4587 struct stat st; | 3621 struct stat st; |
4588 | 3622 |
4589 lt_debugprintf (__FILE__, __LINE__, "(check_executable): %s\n", | 3623 LTWRAPPER_DEBUGPRINTF (("(check_executable) : %s\n", |
4590 nonempty (path)); | 3624 path ? (*path ? path : "EMPTY!") : "NULL!")); |
4591 if ((!path) || (!*path)) | 3625 if ((!path) || (!*path)) |
4592 return 0; | 3626 return 0; |
4593 | 3627 |
4594 if ((stat (path, &st) >= 0) | 3628 if ((stat (path, &st) >= 0) |
4595 && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH))) | 3629 && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH))) |
4602 make_executable (const char *path) | 3636 make_executable (const char *path) |
4603 { | 3637 { |
4604 int rval = 0; | 3638 int rval = 0; |
4605 struct stat st; | 3639 struct stat st; |
4606 | 3640 |
4607 lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n", | 3641 LTWRAPPER_DEBUGPRINTF (("(make_executable) : %s\n", |
4608 nonempty (path)); | 3642 path ? (*path ? path : "EMPTY!") : "NULL!")); |
4609 if ((!path) || (!*path)) | 3643 if ((!path) || (!*path)) |
4610 return 0; | 3644 return 0; |
4611 | 3645 |
4612 if (stat (path, &st) >= 0) | 3646 if (stat (path, &st) >= 0) |
4613 { | 3647 { |
4629 /* static buffer for getcwd */ | 3663 /* static buffer for getcwd */ |
4630 char tmp[LT_PATHMAX + 1]; | 3664 char tmp[LT_PATHMAX + 1]; |
4631 int tmp_len; | 3665 int tmp_len; |
4632 char *concat_name; | 3666 char *concat_name; |
4633 | 3667 |
4634 lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n", | 3668 LTWRAPPER_DEBUGPRINTF (("(find_executable) : %s\n", |
4635 nonempty (wrapper)); | 3669 wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!")); |
4636 | 3670 |
4637 if ((wrapper == NULL) || (*wrapper == '\0')) | 3671 if ((wrapper == NULL) || (*wrapper == '\0')) |
4638 return NULL; | 3672 return NULL; |
4639 | 3673 |
4640 /* Absolute path? */ | 3674 /* Absolute path? */ |
4683 p_next = (*q == '\0' ? q : q + 1); | 3717 p_next = (*q == '\0' ? q : q + 1); |
4684 if (p_len == 0) | 3718 if (p_len == 0) |
4685 { | 3719 { |
4686 /* empty path: current directory */ | 3720 /* empty path: current directory */ |
4687 if (getcwd (tmp, LT_PATHMAX) == NULL) | 3721 if (getcwd (tmp, LT_PATHMAX) == NULL) |
4688 lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", | 3722 lt_fatal ("getcwd failed"); |
4689 nonnull (strerror (errno))); | |
4690 tmp_len = strlen (tmp); | 3723 tmp_len = strlen (tmp); |
4691 concat_name = | 3724 concat_name = |
4692 XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); | 3725 XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); |
4693 memcpy (concat_name, tmp, tmp_len); | 3726 memcpy (concat_name, tmp, tmp_len); |
4694 concat_name[tmp_len] = '/'; | 3727 concat_name[tmp_len] = '/'; |
4709 } | 3742 } |
4710 /* not found in PATH; assume curdir */ | 3743 /* not found in PATH; assume curdir */ |
4711 } | 3744 } |
4712 /* Relative path | not found in path: prepend cwd */ | 3745 /* Relative path | not found in path: prepend cwd */ |
4713 if (getcwd (tmp, LT_PATHMAX) == NULL) | 3746 if (getcwd (tmp, LT_PATHMAX) == NULL) |
4714 lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", | 3747 lt_fatal ("getcwd failed"); |
4715 nonnull (strerror (errno))); | |
4716 tmp_len = strlen (tmp); | 3748 tmp_len = strlen (tmp); |
4717 concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); | 3749 concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); |
4718 memcpy (concat_name, tmp, tmp_len); | 3750 memcpy (concat_name, tmp, tmp_len); |
4719 concat_name[tmp_len] = '/'; | 3751 concat_name[tmp_len] = '/'; |
4720 strcpy (concat_name + tmp_len + 1, wrapper); | 3752 strcpy (concat_name + tmp_len + 1, wrapper); |
4736 char *tmp_pathspec = xstrdup (pathspec); | 3768 char *tmp_pathspec = xstrdup (pathspec); |
4737 char *p; | 3769 char *p; |
4738 int has_symlinks = 0; | 3770 int has_symlinks = 0; |
4739 while (strlen (tmp_pathspec) && !has_symlinks) | 3771 while (strlen (tmp_pathspec) && !has_symlinks) |
4740 { | 3772 { |
4741 lt_debugprintf (__FILE__, __LINE__, | 3773 LTWRAPPER_DEBUGPRINTF (("checking path component for symlinks: %s\n", |
4742 "checking path component for symlinks: %s\n", | 3774 tmp_pathspec)); |
4743 tmp_pathspec); | |
4744 if (lstat (tmp_pathspec, &s) == 0) | 3775 if (lstat (tmp_pathspec, &s) == 0) |
4745 { | 3776 { |
4746 if (S_ISLNK (s.st_mode) != 0) | 3777 if (S_ISLNK (s.st_mode) != 0) |
4747 { | 3778 { |
4748 has_symlinks = 1; | 3779 has_symlinks = 1; |
4760 } | 3791 } |
4761 *p = '\0'; | 3792 *p = '\0'; |
4762 } | 3793 } |
4763 else | 3794 else |
4764 { | 3795 { |
4765 lt_fatal (__FILE__, __LINE__, | 3796 char *errstr = strerror (errno); |
4766 "error accessing file \"%s\": %s", | 3797 lt_fatal ("Error accessing file %s (%s)", tmp_pathspec, errstr); |
4767 tmp_pathspec, nonnull (strerror (errno))); | |
4768 } | 3798 } |
4769 } | 3799 } |
4770 XFREE (tmp_pathspec); | 3800 XFREE (tmp_pathspec); |
4771 | 3801 |
4772 if (!has_symlinks) | 3802 if (!has_symlinks) |
4775 } | 3805 } |
4776 | 3806 |
4777 tmp_pathspec = realpath (pathspec, buf); | 3807 tmp_pathspec = realpath (pathspec, buf); |
4778 if (tmp_pathspec == 0) | 3808 if (tmp_pathspec == 0) |
4779 { | 3809 { |
4780 lt_fatal (__FILE__, __LINE__, | 3810 lt_fatal ("Could not follow symlinks for %s", pathspec); |
4781 "could not follow symlinks for %s", pathspec); | |
4782 } | 3811 } |
4783 return xstrdup (tmp_pathspec); | 3812 return xstrdup (tmp_pathspec); |
4784 #endif | 3813 #endif |
4785 } | 3814 } |
4786 | 3815 |
4802 *str = '\0'; | 3831 *str = '\0'; |
4803 } | 3832 } |
4804 return str; | 3833 return str; |
4805 } | 3834 } |
4806 | 3835 |
4807 void | |
4808 lt_debugprintf (const char *file, int line, const char *fmt, ...) | |
4809 { | |
4810 va_list args; | |
4811 if (lt_debug) | |
4812 { | |
4813 (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line); | |
4814 va_start (args, fmt); | |
4815 (void) vfprintf (stderr, fmt, args); | |
4816 va_end (args); | |
4817 } | |
4818 } | |
4819 | |
4820 static void | 3836 static void |
4821 lt_error_core (int exit_status, const char *file, | 3837 lt_error_core (int exit_status, const char *mode, |
4822 int line, const char *mode, | |
4823 const char *message, va_list ap) | 3838 const char *message, va_list ap) |
4824 { | 3839 { |
4825 fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode); | 3840 fprintf (stderr, "%s: %s: ", program_name, mode); |
4826 vfprintf (stderr, message, ap); | 3841 vfprintf (stderr, message, ap); |
4827 fprintf (stderr, ".\n"); | 3842 fprintf (stderr, ".\n"); |
4828 | 3843 |
4829 if (exit_status >= 0) | 3844 if (exit_status >= 0) |
4830 exit (exit_status); | 3845 exit (exit_status); |
4831 } | 3846 } |
4832 | 3847 |
4833 void | 3848 void |
4834 lt_fatal (const char *file, int line, const char *message, ...) | 3849 lt_fatal (const char *message, ...) |
4835 { | 3850 { |
4836 va_list ap; | 3851 va_list ap; |
4837 va_start (ap, message); | 3852 va_start (ap, message); |
4838 lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap); | 3853 lt_error_core (EXIT_FAILURE, "FATAL", message, ap); |
4839 va_end (ap); | 3854 va_end (ap); |
4840 } | |
4841 | |
4842 static const char * | |
4843 nonnull (const char *s) | |
4844 { | |
4845 return s ? s : "(null)"; | |
4846 } | |
4847 | |
4848 static const char * | |
4849 nonempty (const char *s) | |
4850 { | |
4851 return (s && !*s) ? "(empty)" : nonnull (s); | |
4852 } | 3855 } |
4853 | 3856 |
4854 void | 3857 void |
4855 lt_setenv (const char *name, const char *value) | 3858 lt_setenv (const char *name, const char *value) |
4856 { | 3859 { |
4857 lt_debugprintf (__FILE__, __LINE__, | 3860 LTWRAPPER_DEBUGPRINTF (("(lt_setenv) setting '%s' to '%s'\n", |
4858 "(lt_setenv) setting '%s' to '%s'\n", | 3861 (name ? name : "<NULL>"), |
4859 nonnull (name), nonnull (value)); | 3862 (value ? value : "<NULL>"))); |
4860 { | 3863 { |
4861 #ifdef HAVE_SETENV | 3864 #ifdef HAVE_SETENV |
4862 /* always make a copy, for consistency with !HAVE_SETENV */ | 3865 /* always make a copy, for consistency with !HAVE_SETENV */ |
4863 char *str = xstrdup (value); | 3866 char *str = xstrdup (value); |
4864 setenv (name, str, 1); | 3867 setenv (name, str, 1); |
4899 new_value = xstrdup (add); | 3902 new_value = xstrdup (add); |
4900 } | 3903 } |
4901 return new_value; | 3904 return new_value; |
4902 } | 3905 } |
4903 | 3906 |
3907 int | |
3908 lt_split_name_value (const char *arg, char** name, char** value) | |
3909 { | |
3910 const char *p; | |
3911 int len; | |
3912 if (!arg || !*arg) | |
3913 return 1; | |
3914 | |
3915 p = strchr (arg, (int)'='); | |
3916 | |
3917 if (!p) | |
3918 return 1; | |
3919 | |
3920 *value = xstrdup (++p); | |
3921 | |
3922 len = strlen (arg) - strlen (*value); | |
3923 *name = XMALLOC (char, len); | |
3924 strncpy (*name, arg, len-1); | |
3925 (*name)[len - 1] = '\0'; | |
3926 | |
3927 return 0; | |
3928 } | |
3929 | |
3930 void | |
3931 lt_opt_process_env_set (const char *arg) | |
3932 { | |
3933 char *name = NULL; | |
3934 char *value = NULL; | |
3935 | |
3936 if (lt_split_name_value (arg, &name, &value) != 0) | |
3937 { | |
3938 XFREE (name); | |
3939 XFREE (value); | |
3940 lt_fatal ("bad argument for %s: '%s'", env_set_opt, arg); | |
3941 } | |
3942 | |
3943 lt_setenv (name, value); | |
3944 XFREE (name); | |
3945 XFREE (value); | |
3946 } | |
3947 | |
3948 void | |
3949 lt_opt_process_env_prepend (const char *arg) | |
3950 { | |
3951 char *name = NULL; | |
3952 char *value = NULL; | |
3953 char *new_value = NULL; | |
3954 | |
3955 if (lt_split_name_value (arg, &name, &value) != 0) | |
3956 { | |
3957 XFREE (name); | |
3958 XFREE (value); | |
3959 lt_fatal ("bad argument for %s: '%s'", env_prepend_opt, arg); | |
3960 } | |
3961 | |
3962 new_value = lt_extend_str (getenv (name), value, 0); | |
3963 lt_setenv (name, new_value); | |
3964 XFREE (new_value); | |
3965 XFREE (name); | |
3966 XFREE (value); | |
3967 } | |
3968 | |
3969 void | |
3970 lt_opt_process_env_append (const char *arg) | |
3971 { | |
3972 char *name = NULL; | |
3973 char *value = NULL; | |
3974 char *new_value = NULL; | |
3975 | |
3976 if (lt_split_name_value (arg, &name, &value) != 0) | |
3977 { | |
3978 XFREE (name); | |
3979 XFREE (value); | |
3980 lt_fatal ("bad argument for %s: '%s'", env_append_opt, arg); | |
3981 } | |
3982 | |
3983 new_value = lt_extend_str (getenv (name), value, 1); | |
3984 lt_setenv (name, new_value); | |
3985 XFREE (new_value); | |
3986 XFREE (name); | |
3987 XFREE (value); | |
3988 } | |
3989 | |
4904 void | 3990 void |
4905 lt_update_exe_path (const char *name, const char *value) | 3991 lt_update_exe_path (const char *name, const char *value) |
4906 { | 3992 { |
4907 lt_debugprintf (__FILE__, __LINE__, | 3993 LTWRAPPER_DEBUGPRINTF (("(lt_update_exe_path) modifying '%s' by prepending '%s'\n", |
4908 "(lt_update_exe_path) modifying '%s' by prepending '%s'\n", | 3994 (name ? name : "<NULL>"), |
4909 nonnull (name), nonnull (value)); | 3995 (value ? value : "<NULL>"))); |
4910 | 3996 |
4911 if (name && *name && value && *value) | 3997 if (name && *name && value && *value) |
4912 { | 3998 { |
4913 char *new_value = lt_extend_str (getenv (name), value, 0); | 3999 char *new_value = lt_extend_str (getenv (name), value, 0); |
4914 /* some systems can't cope with a ':'-terminated path #' */ | 4000 /* some systems can't cope with a ':'-terminated path #' */ |
4923 } | 4009 } |
4924 | 4010 |
4925 void | 4011 void |
4926 lt_update_lib_path (const char *name, const char *value) | 4012 lt_update_lib_path (const char *name, const char *value) |
4927 { | 4013 { |
4928 lt_debugprintf (__FILE__, __LINE__, | 4014 LTWRAPPER_DEBUGPRINTF (("(lt_update_lib_path) modifying '%s' by prepending '%s'\n", |
4929 "(lt_update_lib_path) modifying '%s' by prepending '%s'\n", | 4015 (name ? name : "<NULL>"), |
4930 nonnull (name), nonnull (value)); | 4016 (value ? value : "<NULL>"))); |
4931 | 4017 |
4932 if (name && *name && value && *value) | 4018 if (name && *name && value && *value) |
4933 { | 4019 { |
4934 char *new_value = lt_extend_str (getenv (name), value, 0); | 4020 char *new_value = lt_extend_str (getenv (name), value, 0); |
4935 lt_setenv (name, new_value); | 4021 lt_setenv (name, new_value); |
4936 XFREE (new_value); | 4022 XFREE (new_value); |
4937 } | 4023 } |
4938 } | 4024 } |
4939 | 4025 |
4940 EOF | 4026 |
4941 case $host_os in | |
4942 mingw*) | |
4943 cat <<"EOF" | |
4944 | |
4945 /* Prepares an argument vector before calling spawn(). | |
4946 Note that spawn() does not by itself call the command interpreter | |
4947 (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") : | |
4948 ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); | |
4949 GetVersionEx(&v); | |
4950 v.dwPlatformId == VER_PLATFORM_WIN32_NT; | |
4951 }) ? "cmd.exe" : "command.com"). | |
4952 Instead it simply concatenates the arguments, separated by ' ', and calls | |
4953 CreateProcess(). We must quote the arguments since Win32 CreateProcess() | |
4954 interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a | |
4955 special way: | |
4956 - Space and tab are interpreted as delimiters. They are not treated as | |
4957 delimiters if they are surrounded by double quotes: "...". | |
4958 - Unescaped double quotes are removed from the input. Their only effect is | |
4959 that within double quotes, space and tab are treated like normal | |
4960 characters. | |
4961 - Backslashes not followed by double quotes are not special. | |
4962 - But 2*n+1 backslashes followed by a double quote become | |
4963 n backslashes followed by a double quote (n >= 0): | |
4964 \" -> " | |
4965 \\\" -> \" | |
4966 \\\\\" -> \\" | |
4967 */ | |
4968 #define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" | |
4969 #define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" | |
4970 char ** | |
4971 prepare_spawn (char **argv) | |
4972 { | |
4973 size_t argc; | |
4974 char **new_argv; | |
4975 size_t i; | |
4976 | |
4977 /* Count number of arguments. */ | |
4978 for (argc = 0; argv[argc] != NULL; argc++) | |
4979 ; | |
4980 | |
4981 /* Allocate new argument vector. */ | |
4982 new_argv = XMALLOC (char *, argc + 1); | |
4983 | |
4984 /* Put quoted arguments into the new argument vector. */ | |
4985 for (i = 0; i < argc; i++) | |
4986 { | |
4987 const char *string = argv[i]; | |
4988 | |
4989 if (string[0] == '\0') | |
4990 new_argv[i] = xstrdup ("\"\""); | |
4991 else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL) | |
4992 { | |
4993 int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL); | |
4994 size_t length; | |
4995 unsigned int backslashes; | |
4996 const char *s; | |
4997 char *quoted_string; | |
4998 char *p; | |
4999 | |
5000 length = 0; | |
5001 backslashes = 0; | |
5002 if (quote_around) | |
5003 length++; | |
5004 for (s = string; *s != '\0'; s++) | |
5005 { | |
5006 char c = *s; | |
5007 if (c == '"') | |
5008 length += backslashes + 1; | |
5009 length++; | |
5010 if (c == '\\') | |
5011 backslashes++; | |
5012 else | |
5013 backslashes = 0; | |
5014 } | |
5015 if (quote_around) | |
5016 length += backslashes + 1; | |
5017 | |
5018 quoted_string = XMALLOC (char, length + 1); | |
5019 | |
5020 p = quoted_string; | |
5021 backslashes = 0; | |
5022 if (quote_around) | |
5023 *p++ = '"'; | |
5024 for (s = string; *s != '\0'; s++) | |
5025 { | |
5026 char c = *s; | |
5027 if (c == '"') | |
5028 { | |
5029 unsigned int j; | |
5030 for (j = backslashes + 1; j > 0; j--) | |
5031 *p++ = '\\'; | |
5032 } | |
5033 *p++ = c; | |
5034 if (c == '\\') | |
5035 backslashes++; | |
5036 else | |
5037 backslashes = 0; | |
5038 } | |
5039 if (quote_around) | |
5040 { | |
5041 unsigned int j; | |
5042 for (j = backslashes; j > 0; j--) | |
5043 *p++ = '\\'; | |
5044 *p++ = '"'; | |
5045 } | |
5046 *p = '\0'; | |
5047 | |
5048 new_argv[i] = quoted_string; | |
5049 } | |
5050 else | |
5051 new_argv[i] = (char *) string; | |
5052 } | |
5053 new_argv[argc] = NULL; | |
5054 | |
5055 return new_argv; | |
5056 } | |
5057 EOF | |
5058 ;; | |
5059 esac | |
5060 | |
5061 cat <<"EOF" | |
5062 void lt_dump_script (FILE* f) | |
5063 { | |
5064 EOF | |
5065 func_emit_wrapper yes | | |
5066 $SED -n -e ' | |
5067 s/^\(.\{79\}\)\(..*\)/\1\ | |
5068 \2/ | |
5069 h | |
5070 s/\([\\"]\)/\\\1/g | |
5071 s/$/\\n/ | |
5072 s/\([^\n]*\).*/ fputs ("\1", f);/p | |
5073 g | |
5074 D' | |
5075 cat <<"EOF" | |
5076 } | |
5077 EOF | 4027 EOF |
5078 } | 4028 } |
5079 # end: func_emit_cwrapperexe_src | 4029 # end: func_emit_cwrapperexe_src |
5080 | |
5081 # func_win32_import_lib_p ARG | |
5082 # True if ARG is an import lib, as indicated by $file_magic_cmd | |
5083 func_win32_import_lib_p () | |
5084 { | |
5085 $opt_debug | |
5086 case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in | |
5087 *import*) : ;; | |
5088 *) false ;; | |
5089 esac | |
5090 } | |
5091 | 4030 |
5092 # func_mode_link arg... | 4031 # func_mode_link arg... |
5093 func_mode_link () | 4032 func_mode_link () |
5094 { | 4033 { |
5095 $opt_debug | 4034 $opt_debug |
5131 lib_search_path=`pwd` | 4070 lib_search_path=`pwd` |
5132 inst_prefix_dir= | 4071 inst_prefix_dir= |
5133 new_inherited_linker_flags= | 4072 new_inherited_linker_flags= |
5134 | 4073 |
5135 avoid_version=no | 4074 avoid_version=no |
5136 bindir= | |
5137 dlfiles= | 4075 dlfiles= |
5138 dlprefiles= | 4076 dlprefiles= |
5139 dlself=no | 4077 dlself=no |
5140 export_dynamic=no | 4078 export_dynamic=no |
5141 export_symbols= | 4079 export_symbols= |
5224 func_append finalize_command " @OUTPUT@" | 4162 func_append finalize_command " @OUTPUT@" |
5225 ;; | 4163 ;; |
5226 esac | 4164 esac |
5227 | 4165 |
5228 case $prev in | 4166 case $prev in |
5229 bindir) | |
5230 bindir="$arg" | |
5231 prev= | |
5232 continue | |
5233 ;; | |
5234 dlfiles|dlprefiles) | 4167 dlfiles|dlprefiles) |
5235 if test "$preload" = no; then | 4168 if test "$preload" = no; then |
5236 # Add the symbol object into the linking commands. | 4169 # Add the symbol object into the linking commands. |
5237 func_append compile_command " @SYMFILE@" | 4170 func_append compile_command " @SYMFILE@" |
5238 func_append finalize_command " @SYMFILE@" | 4171 func_append finalize_command " @SYMFILE@" |
5260 prev= | 4193 prev= |
5261 continue | 4194 continue |
5262 ;; | 4195 ;; |
5263 *) | 4196 *) |
5264 if test "$prev" = dlfiles; then | 4197 if test "$prev" = dlfiles; then |
5265 func_append dlfiles " $arg" | 4198 dlfiles="$dlfiles $arg" |
5266 else | 4199 else |
5267 func_append dlprefiles " $arg" | 4200 dlprefiles="$dlprefiles $arg" |
5268 fi | 4201 fi |
5269 prev= | 4202 prev= |
5270 continue | 4203 continue |
5271 ;; | 4204 ;; |
5272 esac | 4205 esac |
5286 framework) | 4219 framework) |
5287 case $host in | 4220 case $host in |
5288 *-*-darwin*) | 4221 *-*-darwin*) |
5289 case "$deplibs " in | 4222 case "$deplibs " in |
5290 *" $qarg.ltframework "*) ;; | 4223 *" $qarg.ltframework "*) ;; |
5291 *) func_append deplibs " $qarg.ltframework" # this is fixed later | 4224 *) deplibs="$deplibs $qarg.ltframework" # this is fixed later |
5292 ;; | 4225 ;; |
5293 esac | 4226 esac |
5294 ;; | 4227 ;; |
5295 esac | 4228 esac |
5296 prev= | 4229 prev= |
5305 if test -f "$arg"; then | 4238 if test -f "$arg"; then |
5306 save_arg=$arg | 4239 save_arg=$arg |
5307 moreargs= | 4240 moreargs= |
5308 for fil in `cat "$save_arg"` | 4241 for fil in `cat "$save_arg"` |
5309 do | 4242 do |
5310 # func_append moreargs " $fil" | 4243 # moreargs="$moreargs $fil" |
5311 arg=$fil | 4244 arg=$fil |
5312 # A libtool-controlled object. | 4245 # A libtool-controlled object. |
5313 | 4246 |
5314 # Check to see that this really is a libtool object. | 4247 # Check to see that this really is a libtool object. |
5315 if func_lalib_unsafe_p "$arg"; then | 4248 if func_lalib_unsafe_p "$arg"; then |
5334 # Prepend the subdirectory the object is found in. | 4267 # Prepend the subdirectory the object is found in. |
5335 pic_object="$xdir$pic_object" | 4268 pic_object="$xdir$pic_object" |
5336 | 4269 |
5337 if test "$prev" = dlfiles; then | 4270 if test "$prev" = dlfiles; then |
5338 if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then | 4271 if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then |
5339 func_append dlfiles " $pic_object" | 4272 dlfiles="$dlfiles $pic_object" |
5340 prev= | 4273 prev= |
5341 continue | 4274 continue |
5342 else | 4275 else |
5343 # If libtool objects are unsupported, then we need to preload. | 4276 # If libtool objects are unsupported, then we need to preload. |
5344 prev=dlprefiles | 4277 prev=dlprefiles |
5346 fi | 4279 fi |
5347 | 4280 |
5348 # CHECK ME: I think I busted this. -Ossama | 4281 # CHECK ME: I think I busted this. -Ossama |
5349 if test "$prev" = dlprefiles; then | 4282 if test "$prev" = dlprefiles; then |
5350 # Preload the old-style object. | 4283 # Preload the old-style object. |
5351 func_append dlprefiles " $pic_object" | 4284 dlprefiles="$dlprefiles $pic_object" |
5352 prev= | 4285 prev= |
5353 fi | 4286 fi |
5354 | 4287 |
5355 # A PIC object. | 4288 # A PIC object. |
5356 func_append libobjs " $pic_object" | 4289 func_append libobjs " $pic_object" |
5416 ;; | 4349 ;; |
5417 esac | 4350 esac |
5418 if test "$prev" = rpath; then | 4351 if test "$prev" = rpath; then |
5419 case "$rpath " in | 4352 case "$rpath " in |
5420 *" $arg "*) ;; | 4353 *" $arg "*) ;; |
5421 *) func_append rpath " $arg" ;; | 4354 *) rpath="$rpath $arg" ;; |
5422 esac | 4355 esac |
5423 else | 4356 else |
5424 case "$xrpath " in | 4357 case "$xrpath " in |
5425 *" $arg "*) ;; | 4358 *" $arg "*) ;; |
5426 *) func_append xrpath " $arg" ;; | 4359 *) xrpath="$xrpath $arg" ;; |
5427 esac | 4360 esac |
5428 fi | 4361 fi |
5429 prev= | 4362 prev= |
5430 continue | 4363 continue |
5431 ;; | 4364 ;; |
5433 shrext_cmds="$arg" | 4366 shrext_cmds="$arg" |
5434 prev= | 4367 prev= |
5435 continue | 4368 continue |
5436 ;; | 4369 ;; |
5437 weak) | 4370 weak) |
5438 func_append weak_libs " $arg" | 4371 weak_libs="$weak_libs $arg" |
5439 prev= | 4372 prev= |
5440 continue | 4373 continue |
5441 ;; | 4374 ;; |
5442 xcclinker) | 4375 xcclinker) |
5443 func_append linker_flags " $qarg" | 4376 linker_flags="$linker_flags $qarg" |
5444 func_append compiler_flags " $qarg" | 4377 compiler_flags="$compiler_flags $qarg" |
5445 prev= | 4378 prev= |
5446 func_append compile_command " $qarg" | 4379 func_append compile_command " $qarg" |
5447 func_append finalize_command " $qarg" | 4380 func_append finalize_command " $qarg" |
5448 continue | 4381 continue |
5449 ;; | 4382 ;; |
5450 xcompiler) | 4383 xcompiler) |
5451 func_append compiler_flags " $qarg" | 4384 compiler_flags="$compiler_flags $qarg" |
5452 prev= | 4385 prev= |
5453 func_append compile_command " $qarg" | 4386 func_append compile_command " $qarg" |
5454 func_append finalize_command " $qarg" | 4387 func_append finalize_command " $qarg" |
5455 continue | 4388 continue |
5456 ;; | 4389 ;; |
5457 xlinker) | 4390 xlinker) |
5458 func_append linker_flags " $qarg" | 4391 linker_flags="$linker_flags $qarg" |
5459 func_append compiler_flags " $wl$qarg" | 4392 compiler_flags="$compiler_flags $wl$qarg" |
5460 prev= | 4393 prev= |
5461 func_append compile_command " $wl$qarg" | 4394 func_append compile_command " $wl$qarg" |
5462 func_append finalize_command " $wl$qarg" | 4395 func_append finalize_command " $wl$qarg" |
5463 continue | 4396 continue |
5464 ;; | 4397 ;; |
5490 -avoid-version) | 4423 -avoid-version) |
5491 avoid_version=yes | 4424 avoid_version=yes |
5492 continue | 4425 continue |
5493 ;; | 4426 ;; |
5494 | 4427 |
5495 -bindir) | |
5496 prev=bindir | |
5497 continue | |
5498 ;; | |
5499 | |
5500 -dlopen) | 4428 -dlopen) |
5501 prev=dlfiles | 4429 prev=dlfiles |
5502 continue | 4430 continue |
5503 ;; | 4431 ;; |
5504 | 4432 |
5545 esac | 4473 esac |
5546 continue | 4474 continue |
5547 ;; | 4475 ;; |
5548 | 4476 |
5549 -L*) | 4477 -L*) |
5550 func_stripname "-L" '' "$arg" | 4478 func_stripname '-L' '' "$arg" |
5551 if test -z "$func_stripname_result"; then | 4479 dir=$func_stripname_result |
4480 if test -z "$dir"; then | |
5552 if test "$#" -gt 0; then | 4481 if test "$#" -gt 0; then |
5553 func_fatal_error "require no space between \`-L' and \`$1'" | 4482 func_fatal_error "require no space between \`-L' and \`$1'" |
5554 else | 4483 else |
5555 func_fatal_error "need path for \`-L' option" | 4484 func_fatal_error "need path for \`-L' option" |
5556 fi | 4485 fi |
5557 fi | 4486 fi |
5558 func_resolve_sysroot "$func_stripname_result" | |
5559 dir=$func_resolve_sysroot_result | |
5560 # We need an absolute path. | 4487 # We need an absolute path. |
5561 case $dir in | 4488 case $dir in |
5562 [\\/]* | [A-Za-z]:[\\/]*) ;; | 4489 [\\/]* | [A-Za-z]:[\\/]*) ;; |
5563 *) | 4490 *) |
5564 absdir=`cd "$dir" && pwd` | 4491 absdir=`cd "$dir" && pwd` |
5566 func_fatal_error "cannot determine absolute directory name of \`$dir'" | 4493 func_fatal_error "cannot determine absolute directory name of \`$dir'" |
5567 dir="$absdir" | 4494 dir="$absdir" |
5568 ;; | 4495 ;; |
5569 esac | 4496 esac |
5570 case "$deplibs " in | 4497 case "$deplibs " in |
5571 *" -L$dir "* | *" $arg "*) | 4498 *" -L$dir "*) ;; |
5572 # Will only happen for absolute or sysroot arguments | |
5573 ;; | |
5574 *) | 4499 *) |
5575 # Preserve sysroot, but never include relative directories | 4500 deplibs="$deplibs -L$dir" |
5576 case $dir in | 4501 lib_search_path="$lib_search_path $dir" |
5577 [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;; | |
5578 *) func_append deplibs " -L$dir" ;; | |
5579 esac | |
5580 func_append lib_search_path " $dir" | |
5581 ;; | 4502 ;; |
5582 esac | 4503 esac |
5583 case $host in | 4504 case $host in |
5584 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) | 4505 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) |
5585 testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'` | 4506 testbindir=`$ECHO "X$dir" | $Xsed -e 's*/lib$*/bin*'` |
5586 case :$dllsearchpath: in | 4507 case :$dllsearchpath: in |
5587 *":$dir:"*) ;; | 4508 *":$dir:"*) ;; |
5588 ::) dllsearchpath=$dir;; | 4509 ::) dllsearchpath=$dir;; |
5589 *) func_append dllsearchpath ":$dir";; | 4510 *) dllsearchpath="$dllsearchpath:$dir";; |
5590 esac | 4511 esac |
5591 case :$dllsearchpath: in | 4512 case :$dllsearchpath: in |
5592 *":$testbindir:"*) ;; | 4513 *":$testbindir:"*) ;; |
5593 ::) dllsearchpath=$testbindir;; | 4514 ::) dllsearchpath=$testbindir;; |
5594 *) func_append dllsearchpath ":$testbindir";; | 4515 *) dllsearchpath="$dllsearchpath:$testbindir";; |
5595 esac | 4516 esac |
5596 ;; | 4517 ;; |
5597 esac | 4518 esac |
5598 continue | 4519 continue |
5599 ;; | 4520 ;; |
5600 | 4521 |
5601 -l*) | 4522 -l*) |
5602 if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then | 4523 if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then |
5603 case $host in | 4524 case $host in |
5604 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*) | 4525 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc*) |
5605 # These systems don't actually have a C or math library (as such) | 4526 # These systems don't actually have a C or math library (as such) |
5606 continue | 4527 continue |
5607 ;; | 4528 ;; |
5608 *-*-os2*) | 4529 *-*-os2*) |
5609 # These systems don't actually have a C library (as such) | 4530 # These systems don't actually have a C library (as such) |
5613 # Do not include libc due to us having libc/libc_r. | 4534 # Do not include libc due to us having libc/libc_r. |
5614 test "X$arg" = "X-lc" && continue | 4535 test "X$arg" = "X-lc" && continue |
5615 ;; | 4536 ;; |
5616 *-*-rhapsody* | *-*-darwin1.[012]) | 4537 *-*-rhapsody* | *-*-darwin1.[012]) |
5617 # Rhapsody C and math libraries are in the System framework | 4538 # Rhapsody C and math libraries are in the System framework |
5618 func_append deplibs " System.ltframework" | 4539 deplibs="$deplibs System.ltframework" |
5619 continue | 4540 continue |
5620 ;; | 4541 ;; |
5621 *-*-sco3.2v5* | *-*-sco5v6*) | 4542 *-*-sco3.2v5* | *-*-sco5v6*) |
5622 # Causes problems with __ctype | 4543 # Causes problems with __ctype |
5623 test "X$arg" = "X-lc" && continue | 4544 test "X$arg" = "X-lc" && continue |
5633 # Do not include libc_r directly, use -pthread flag. | 4554 # Do not include libc_r directly, use -pthread flag. |
5634 continue | 4555 continue |
5635 ;; | 4556 ;; |
5636 esac | 4557 esac |
5637 fi | 4558 fi |
5638 func_append deplibs " $arg" | 4559 deplibs="$deplibs $arg" |
5639 continue | 4560 continue |
5640 ;; | 4561 ;; |
5641 | 4562 |
5642 -module) | 4563 -module) |
5643 module=yes | 4564 module=yes |
5645 ;; | 4566 ;; |
5646 | 4567 |
5647 # Tru64 UNIX uses -model [arg] to determine the layout of C++ | 4568 # Tru64 UNIX uses -model [arg] to determine the layout of C++ |
5648 # classes, name mangling, and exception handling. | 4569 # classes, name mangling, and exception handling. |
5649 # Darwin uses the -arch flag to determine output architecture. | 4570 # Darwin uses the -arch flag to determine output architecture. |
5650 -model|-arch|-isysroot|--sysroot) | 4571 -model|-arch|-isysroot) |
5651 func_append compiler_flags " $arg" | 4572 compiler_flags="$compiler_flags $arg" |
5652 func_append compile_command " $arg" | 4573 func_append compile_command " $arg" |
5653 func_append finalize_command " $arg" | 4574 func_append finalize_command " $arg" |
5654 prev=xcompiler | 4575 prev=xcompiler |
5655 continue | 4576 continue |
5656 ;; | 4577 ;; |
5657 | 4578 |
5658 -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ | 4579 -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) |
5659 |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) | 4580 compiler_flags="$compiler_flags $arg" |
5660 func_append compiler_flags " $arg" | |
5661 func_append compile_command " $arg" | 4581 func_append compile_command " $arg" |
5662 func_append finalize_command " $arg" | 4582 func_append finalize_command " $arg" |
5663 case "$new_inherited_linker_flags " in | 4583 case "$new_inherited_linker_flags " in |
5664 *" $arg "*) ;; | 4584 *" $arg "*) ;; |
5665 * ) func_append new_inherited_linker_flags " $arg" ;; | 4585 * ) new_inherited_linker_flags="$new_inherited_linker_flags $arg" ;; |
5666 esac | 4586 esac |
5667 continue | 4587 continue |
5668 ;; | 4588 ;; |
5669 | 4589 |
5670 -multi_module) | 4590 -multi_module) |
5727 func_stripname '-R' '' "$arg" | 4647 func_stripname '-R' '' "$arg" |
5728 dir=$func_stripname_result | 4648 dir=$func_stripname_result |
5729 # We need an absolute path. | 4649 # We need an absolute path. |
5730 case $dir in | 4650 case $dir in |
5731 [\\/]* | [A-Za-z]:[\\/]*) ;; | 4651 [\\/]* | [A-Za-z]:[\\/]*) ;; |
5732 =*) | |
5733 func_stripname '=' '' "$dir" | |
5734 dir=$lt_sysroot$func_stripname_result | |
5735 ;; | |
5736 *) | 4652 *) |
5737 func_fatal_error "only absolute run-paths are allowed" | 4653 func_fatal_error "only absolute run-paths are allowed" |
5738 ;; | 4654 ;; |
5739 esac | 4655 esac |
5740 case "$xrpath " in | 4656 case "$xrpath " in |
5741 *" $dir "*) ;; | 4657 *" $dir "*) ;; |
5742 *) func_append xrpath " $dir" ;; | 4658 *) xrpath="$xrpath $dir" ;; |
5743 esac | 4659 esac |
5744 continue | 4660 continue |
5745 ;; | 4661 ;; |
5746 | 4662 |
5747 -shared) | 4663 -shared) |
5790 arg= | 4706 arg= |
5791 save_ifs="$IFS"; IFS=',' | 4707 save_ifs="$IFS"; IFS=',' |
5792 for flag in $args; do | 4708 for flag in $args; do |
5793 IFS="$save_ifs" | 4709 IFS="$save_ifs" |
5794 func_quote_for_eval "$flag" | 4710 func_quote_for_eval "$flag" |
5795 func_append arg " $func_quote_for_eval_result" | 4711 arg="$arg $wl$func_quote_for_eval_result" |
5796 func_append compiler_flags " $func_quote_for_eval_result" | 4712 compiler_flags="$compiler_flags $func_quote_for_eval_result" |
5797 done | 4713 done |
5798 IFS="$save_ifs" | 4714 IFS="$save_ifs" |
5799 func_stripname ' ' '' "$arg" | 4715 func_stripname ' ' '' "$arg" |
5800 arg=$func_stripname_result | 4716 arg=$func_stripname_result |
5801 ;; | 4717 ;; |
5806 arg= | 4722 arg= |
5807 save_ifs="$IFS"; IFS=',' | 4723 save_ifs="$IFS"; IFS=',' |
5808 for flag in $args; do | 4724 for flag in $args; do |
5809 IFS="$save_ifs" | 4725 IFS="$save_ifs" |
5810 func_quote_for_eval "$flag" | 4726 func_quote_for_eval "$flag" |
5811 func_append arg " $wl$func_quote_for_eval_result" | 4727 arg="$arg $wl$func_quote_for_eval_result" |
5812 func_append compiler_flags " $wl$func_quote_for_eval_result" | 4728 compiler_flags="$compiler_flags $wl$func_quote_for_eval_result" |
5813 func_append linker_flags " $func_quote_for_eval_result" | 4729 linker_flags="$linker_flags $func_quote_for_eval_result" |
5814 done | 4730 done |
5815 IFS="$save_ifs" | 4731 IFS="$save_ifs" |
5816 func_stripname ' ' '' "$arg" | 4732 func_stripname ' ' '' "$arg" |
5817 arg=$func_stripname_result | 4733 arg=$func_stripname_result |
5818 ;; | 4734 ;; |
5836 -msg_*) | 4752 -msg_*) |
5837 func_quote_for_eval "$arg" | 4753 func_quote_for_eval "$arg" |
5838 arg="$func_quote_for_eval_result" | 4754 arg="$func_quote_for_eval_result" |
5839 ;; | 4755 ;; |
5840 | 4756 |
5841 # Flags to be passed through unchanged, with rationale: | 4757 # -64, -mips[0-9] enable 64-bit mode on the SGI compiler |
5842 # -64, -mips[0-9] enable 64-bit mode for the SGI compiler | 4758 # -r[0-9][0-9]* specifies the processor on the SGI compiler |
5843 # -r[0-9][0-9]* specify processor for the SGI compiler | 4759 # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler |
5844 # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler | 4760 # +DA*, +DD* enable 64-bit mode on the HP compiler |
5845 # +DA*, +DD* enable 64-bit mode for the HP compiler | 4761 # -q* pass through compiler args for the IBM compiler |
5846 # -q* compiler args for the IBM compiler | 4762 # -m*, -t[45]*, -txscale* pass through architecture-specific |
5847 # -m*, -t[45]*, -txscale* architecture-specific flags for GCC | 4763 # compiler args for GCC |
5848 # -F/path path to uninstalled frameworks, gcc on darwin | 4764 # -F/path gives path to uninstalled frameworks, gcc on darwin |
5849 # -p, -pg, --coverage, -fprofile-* profiling flags for GCC | 4765 # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC |
5850 # @file GCC response files | 4766 # @file GCC response files |
5851 # -tp=* Portland pgcc target processor selection | |
5852 # --sysroot=* for sysroot support | |
5853 # -O*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization | |
5854 -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ | 4767 -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ |
5855 -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \ | 4768 -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*) |
5856 -O*|-flto*|-fwhopr*|-fuse-linker-plugin) | |
5857 func_quote_for_eval "$arg" | 4769 func_quote_for_eval "$arg" |
5858 arg="$func_quote_for_eval_result" | 4770 arg="$func_quote_for_eval_result" |
5859 func_append compile_command " $arg" | 4771 func_append compile_command " $arg" |
5860 func_append finalize_command " $arg" | 4772 func_append finalize_command " $arg" |
5861 func_append compiler_flags " $arg" | 4773 compiler_flags="$compiler_flags $arg" |
5862 continue | 4774 continue |
5863 ;; | 4775 ;; |
5864 | 4776 |
5865 # Some other compiler flag. | 4777 # Some other compiler flag. |
5866 -* | +*) | 4778 -* | +*) |
5868 arg="$func_quote_for_eval_result" | 4780 arg="$func_quote_for_eval_result" |
5869 ;; | 4781 ;; |
5870 | 4782 |
5871 *.$objext) | 4783 *.$objext) |
5872 # A standard object. | 4784 # A standard object. |
5873 func_append objs " $arg" | 4785 objs="$objs $arg" |
5874 ;; | 4786 ;; |
5875 | 4787 |
5876 *.lo) | 4788 *.lo) |
5877 # A libtool-controlled object. | 4789 # A libtool-controlled object. |
5878 | 4790 |
5899 # Prepend the subdirectory the object is found in. | 4811 # Prepend the subdirectory the object is found in. |
5900 pic_object="$xdir$pic_object" | 4812 pic_object="$xdir$pic_object" |
5901 | 4813 |
5902 if test "$prev" = dlfiles; then | 4814 if test "$prev" = dlfiles; then |
5903 if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then | 4815 if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then |
5904 func_append dlfiles " $pic_object" | 4816 dlfiles="$dlfiles $pic_object" |
5905 prev= | 4817 prev= |
5906 continue | 4818 continue |
5907 else | 4819 else |
5908 # If libtool objects are unsupported, then we need to preload. | 4820 # If libtool objects are unsupported, then we need to preload. |
5909 prev=dlprefiles | 4821 prev=dlprefiles |
5911 fi | 4823 fi |
5912 | 4824 |
5913 # CHECK ME: I think I busted this. -Ossama | 4825 # CHECK ME: I think I busted this. -Ossama |
5914 if test "$prev" = dlprefiles; then | 4826 if test "$prev" = dlprefiles; then |
5915 # Preload the old-style object. | 4827 # Preload the old-style object. |
5916 func_append dlprefiles " $pic_object" | 4828 dlprefiles="$dlprefiles $pic_object" |
5917 prev= | 4829 prev= |
5918 fi | 4830 fi |
5919 | 4831 |
5920 # A PIC object. | 4832 # A PIC object. |
5921 func_append libobjs " $pic_object" | 4833 func_append libobjs " $pic_object" |
5956 fi | 4868 fi |
5957 ;; | 4869 ;; |
5958 | 4870 |
5959 *.$libext) | 4871 *.$libext) |
5960 # An archive. | 4872 # An archive. |
5961 func_append deplibs " $arg" | 4873 deplibs="$deplibs $arg" |
5962 func_append old_deplibs " $arg" | 4874 old_deplibs="$old_deplibs $arg" |
5963 continue | 4875 continue |
5964 ;; | 4876 ;; |
5965 | 4877 |
5966 *.la) | 4878 *.la) |
5967 # A libtool-controlled library. | 4879 # A libtool-controlled library. |
5968 | 4880 |
5969 func_resolve_sysroot "$arg" | |
5970 if test "$prev" = dlfiles; then | 4881 if test "$prev" = dlfiles; then |
5971 # This library was specified with -dlopen. | 4882 # This library was specified with -dlopen. |
5972 func_append dlfiles " $func_resolve_sysroot_result" | 4883 dlfiles="$dlfiles $arg" |
5973 prev= | 4884 prev= |
5974 elif test "$prev" = dlprefiles; then | 4885 elif test "$prev" = dlprefiles; then |
5975 # The library was specified with -dlpreopen. | 4886 # The library was specified with -dlpreopen. |
5976 func_append dlprefiles " $func_resolve_sysroot_result" | 4887 dlprefiles="$dlprefiles $arg" |
5977 prev= | 4888 prev= |
5978 else | 4889 else |
5979 func_append deplibs " $func_resolve_sysroot_result" | 4890 deplibs="$deplibs $arg" |
5980 fi | 4891 fi |
5981 continue | 4892 continue |
5982 ;; | 4893 ;; |
5983 | 4894 |
5984 # Some other compiler argument. | 4895 # Some other compiler argument. |
6012 outputname="$func_basename_result" | 4923 outputname="$func_basename_result" |
6013 libobjs_save="$libobjs" | 4924 libobjs_save="$libobjs" |
6014 | 4925 |
6015 if test -n "$shlibpath_var"; then | 4926 if test -n "$shlibpath_var"; then |
6016 # get the directories listed in $shlibpath_var | 4927 # get the directories listed in $shlibpath_var |
6017 eval shlib_search_path=\`\$ECHO \"\${$shlibpath_var}\" \| \$SED \'s/:/ /g\'\` | 4928 eval shlib_search_path=\`\$ECHO \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\` |
6018 else | 4929 else |
6019 shlib_search_path= | 4930 shlib_search_path= |
6020 fi | 4931 fi |
6021 eval sys_lib_search_path=\"$sys_lib_search_path_spec\" | 4932 eval sys_lib_search_path=\"$sys_lib_search_path_spec\" |
6022 eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" | 4933 eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" |
6023 | 4934 |
6024 func_dirname "$output" "/" "" | 4935 func_dirname "$output" "/" "" |
6025 output_objdir="$func_dirname_result$objdir" | 4936 output_objdir="$func_dirname_result$objdir" |
6026 func_to_tool_file "$output_objdir/" | |
6027 tool_output_objdir=$func_to_tool_file_result | |
6028 # Create the object directory. | 4937 # Create the object directory. |
6029 func_mkdir_p "$output_objdir" | 4938 func_mkdir_p "$output_objdir" |
6030 | 4939 |
6031 # Determine the type of output | 4940 # Determine the type of output |
6032 case $output in | 4941 case $output in |
6043 | 4952 |
6044 libs= | 4953 libs= |
6045 # Find all interdependent deplibs by searching for libraries | 4954 # Find all interdependent deplibs by searching for libraries |
6046 # that are linked more than once (e.g. -la -lb -la) | 4955 # that are linked more than once (e.g. -la -lb -la) |
6047 for deplib in $deplibs; do | 4956 for deplib in $deplibs; do |
6048 if $opt_preserve_dup_deps ; then | 4957 if $opt_duplicate_deps ; then |
6049 case "$libs " in | 4958 case "$libs " in |
6050 *" $deplib "*) func_append specialdeplibs " $deplib" ;; | 4959 *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; |
6051 esac | 4960 esac |
6052 fi | 4961 fi |
6053 func_append libs " $deplib" | 4962 libs="$libs $deplib" |
6054 done | 4963 done |
6055 | 4964 |
6056 if test "$linkmode" = lib; then | 4965 if test "$linkmode" = lib; then |
6057 libs="$predeps $libs $compiler_lib_search_path $postdeps" | 4966 libs="$predeps $libs $compiler_lib_search_path $postdeps" |
6058 | 4967 |
6061 # not to be eliminated). | 4970 # not to be eliminated). |
6062 pre_post_deps= | 4971 pre_post_deps= |
6063 if $opt_duplicate_compiler_generated_deps; then | 4972 if $opt_duplicate_compiler_generated_deps; then |
6064 for pre_post_dep in $predeps $postdeps; do | 4973 for pre_post_dep in $predeps $postdeps; do |
6065 case "$pre_post_deps " in | 4974 case "$pre_post_deps " in |
6066 *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;; | 4975 *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;; |
6067 esac | 4976 esac |
6068 func_append pre_post_deps " $pre_post_dep" | 4977 pre_post_deps="$pre_post_deps $pre_post_dep" |
6069 done | 4978 done |
6070 fi | 4979 fi |
6071 pre_post_deps= | 4980 pre_post_deps= |
6072 fi | 4981 fi |
6073 | 4982 |
6133 if test "$linkmode,$pass" = "lib,dlpreopen"; then | 5042 if test "$linkmode,$pass" = "lib,dlpreopen"; then |
6134 # Collect and forward deplibs of preopened libtool libs | 5043 # Collect and forward deplibs of preopened libtool libs |
6135 for lib in $dlprefiles; do | 5044 for lib in $dlprefiles; do |
6136 # Ignore non-libtool-libs | 5045 # Ignore non-libtool-libs |
6137 dependency_libs= | 5046 dependency_libs= |
6138 func_resolve_sysroot "$lib" | |
6139 case $lib in | 5047 case $lib in |
6140 *.la) func_source "$func_resolve_sysroot_result" ;; | 5048 *.la) func_source "$lib" ;; |
6141 esac | 5049 esac |
6142 | 5050 |
6143 # Collect preopened libtool deplibs, except any this library | 5051 # Collect preopened libtool deplibs, except any this library |
6144 # has declared as weak libs | 5052 # has declared as weak libs |
6145 for deplib in $dependency_libs; do | 5053 for deplib in $dependency_libs; do |
6146 func_basename "$deplib" | 5054 deplib_base=`$ECHO "X$deplib" | $Xsed -e "$basename"` |
6147 deplib_base=$func_basename_result | |
6148 case " $weak_libs " in | 5055 case " $weak_libs " in |
6149 *" $deplib_base "*) ;; | 5056 *" $deplib_base "*) ;; |
6150 *) func_append deplibs " $deplib" ;; | 5057 *) deplibs="$deplibs $deplib" ;; |
6151 esac | 5058 esac |
6152 done | 5059 done |
6153 done | 5060 done |
6154 libs="$dlprefiles" | 5061 libs="$dlprefiles" |
6155 fi | 5062 fi |
6161 | 5068 |
6162 for deplib in $libs; do | 5069 for deplib in $libs; do |
6163 lib= | 5070 lib= |
6164 found=no | 5071 found=no |
6165 case $deplib in | 5072 case $deplib in |
6166 -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ | 5073 -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) |
6167 |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) | |
6168 if test "$linkmode,$pass" = "prog,link"; then | 5074 if test "$linkmode,$pass" = "prog,link"; then |
6169 compile_deplibs="$deplib $compile_deplibs" | 5075 compile_deplibs="$deplib $compile_deplibs" |
6170 finalize_deplibs="$deplib $finalize_deplibs" | 5076 finalize_deplibs="$deplib $finalize_deplibs" |
6171 else | 5077 else |
6172 func_append compiler_flags " $deplib" | 5078 compiler_flags="$compiler_flags $deplib" |
6173 if test "$linkmode" = lib ; then | 5079 if test "$linkmode" = lib ; then |
6174 case "$new_inherited_linker_flags " in | 5080 case "$new_inherited_linker_flags " in |
6175 *" $deplib "*) ;; | 5081 *" $deplib "*) ;; |
6176 * ) func_append new_inherited_linker_flags " $deplib" ;; | 5082 * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;; |
6177 esac | 5083 esac |
6178 fi | 5084 fi |
6179 fi | 5085 fi |
6180 continue | 5086 continue |
6181 ;; | 5087 ;; |
6256 else | 5162 else |
6257 deplibs="$deplib $deplibs" | 5163 deplibs="$deplib $deplibs" |
6258 if test "$linkmode" = lib ; then | 5164 if test "$linkmode" = lib ; then |
6259 case "$new_inherited_linker_flags " in | 5165 case "$new_inherited_linker_flags " in |
6260 *" $deplib "*) ;; | 5166 *" $deplib "*) ;; |
6261 * ) func_append new_inherited_linker_flags " $deplib" ;; | 5167 * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;; |
6262 esac | 5168 esac |
6263 fi | 5169 fi |
6264 fi | 5170 fi |
6265 continue | 5171 continue |
6266 ;; | 5172 ;; |
6269 lib) | 5175 lib) |
6270 deplibs="$deplib $deplibs" | 5176 deplibs="$deplib $deplibs" |
6271 test "$pass" = conv && continue | 5177 test "$pass" = conv && continue |
6272 newdependency_libs="$deplib $newdependency_libs" | 5178 newdependency_libs="$deplib $newdependency_libs" |
6273 func_stripname '-L' '' "$deplib" | 5179 func_stripname '-L' '' "$deplib" |
6274 func_resolve_sysroot "$func_stripname_result" | 5180 newlib_search_path="$newlib_search_path $func_stripname_result" |
6275 func_append newlib_search_path " $func_resolve_sysroot_result" | |
6276 ;; | 5181 ;; |
6277 prog) | 5182 prog) |
6278 if test "$pass" = conv; then | 5183 if test "$pass" = conv; then |
6279 deplibs="$deplib $deplibs" | 5184 deplibs="$deplib $deplibs" |
6280 continue | 5185 continue |
6284 else | 5189 else |
6285 compile_deplibs="$deplib $compile_deplibs" | 5190 compile_deplibs="$deplib $compile_deplibs" |
6286 finalize_deplibs="$deplib $finalize_deplibs" | 5191 finalize_deplibs="$deplib $finalize_deplibs" |
6287 fi | 5192 fi |
6288 func_stripname '-L' '' "$deplib" | 5193 func_stripname '-L' '' "$deplib" |
6289 func_resolve_sysroot "$func_stripname_result" | 5194 newlib_search_path="$newlib_search_path $func_stripname_result" |
6290 func_append newlib_search_path " $func_resolve_sysroot_result" | |
6291 ;; | 5195 ;; |
6292 *) | 5196 *) |
6293 func_warning "\`-L' is ignored for archives/objects" | 5197 func_warning "\`-L' is ignored for archives/objects" |
6294 ;; | 5198 ;; |
6295 esac # linkmode | 5199 esac # linkmode |
6296 continue | 5200 continue |
6297 ;; # -L | 5201 ;; # -L |
6298 -R*) | 5202 -R*) |
6299 if test "$pass" = link; then | 5203 if test "$pass" = link; then |
6300 func_stripname '-R' '' "$deplib" | 5204 func_stripname '-R' '' "$deplib" |
6301 func_resolve_sysroot "$func_stripname_result" | 5205 dir=$func_stripname_result |
6302 dir=$func_resolve_sysroot_result | |
6303 # Make sure the xrpath contains only unique directories. | 5206 # Make sure the xrpath contains only unique directories. |
6304 case "$xrpath " in | 5207 case "$xrpath " in |
6305 *" $dir "*) ;; | 5208 *" $dir "*) ;; |
6306 *) func_append xrpath " $dir" ;; | 5209 *) xrpath="$xrpath $dir" ;; |
6307 esac | 5210 esac |
6308 fi | 5211 fi |
6309 deplibs="$deplib $deplibs" | 5212 deplibs="$deplib $deplibs" |
6310 continue | 5213 continue |
6311 ;; | 5214 ;; |
6312 *.la) | 5215 *.la) lib="$deplib" ;; |
6313 func_resolve_sysroot "$deplib" | |
6314 lib=$func_resolve_sysroot_result | |
6315 ;; | |
6316 *.$libext) | 5216 *.$libext) |
6317 if test "$pass" = conv; then | 5217 if test "$pass" = conv; then |
6318 deplibs="$deplib $deplibs" | 5218 deplibs="$deplib $deplibs" |
6319 continue | 5219 continue |
6320 fi | 5220 fi |
6328 valid_a_lib=no | 5228 valid_a_lib=no |
6329 case $deplibs_check_method in | 5229 case $deplibs_check_method in |
6330 match_pattern*) | 5230 match_pattern*) |
6331 set dummy $deplibs_check_method; shift | 5231 set dummy $deplibs_check_method; shift |
6332 match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` | 5232 match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` |
6333 if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \ | 5233 if eval "\$ECHO \"X$deplib\"" 2>/dev/null | $Xsed -e 10q \ |
6334 | $EGREP "$match_pattern_regex" > /dev/null; then | 5234 | $EGREP "$match_pattern_regex" > /dev/null; then |
6335 valid_a_lib=yes | 5235 valid_a_lib=yes |
6336 fi | 5236 fi |
6337 ;; | 5237 ;; |
6338 pass_all) | 5238 pass_all) |
6339 valid_a_lib=yes | 5239 valid_a_lib=yes |
6340 ;; | 5240 ;; |
6341 esac | 5241 esac |
6342 if test "$valid_a_lib" != yes; then | 5242 if test "$valid_a_lib" != yes; then |
6343 echo | 5243 $ECHO |
6344 $ECHO "*** Warning: Trying to link with static lib archive $deplib." | 5244 $ECHO "*** Warning: Trying to link with static lib archive $deplib." |
6345 echo "*** I have the capability to make that library automatically link in when" | 5245 $ECHO "*** I have the capability to make that library automatically link in when" |
6346 echo "*** you link to this library. But I can only do this if you have a" | 5246 $ECHO "*** you link to this library. But I can only do this if you have a" |
6347 echo "*** shared version of the library, which you do not appear to have" | 5247 $ECHO "*** shared version of the library, which you do not appear to have" |
6348 echo "*** because the file extensions .$libext of this argument makes me believe" | 5248 $ECHO "*** because the file extensions .$libext of this argument makes me believe" |
6349 echo "*** that it is just a static archive that I should not use here." | 5249 $ECHO "*** that it is just a static archive that I should not use here." |
6350 else | 5250 else |
6351 echo | 5251 $ECHO |
6352 $ECHO "*** Warning: Linking the shared library $output against the" | 5252 $ECHO "*** Warning: Linking the shared library $output against the" |
6353 $ECHO "*** static library $deplib is not portable!" | 5253 $ECHO "*** static library $deplib is not portable!" |
6354 deplibs="$deplib $deplibs" | 5254 deplibs="$deplib $deplibs" |
6355 fi | 5255 fi |
6356 ;; | 5256 ;; |
6373 deplibs="$deplib $deplibs" | 5273 deplibs="$deplib $deplibs" |
6374 elif test "$linkmode" = prog; then | 5274 elif test "$linkmode" = prog; then |
6375 if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then | 5275 if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then |
6376 # If there is no dlopen support or we're linking statically, | 5276 # If there is no dlopen support or we're linking statically, |
6377 # we need to preload. | 5277 # we need to preload. |
6378 func_append newdlprefiles " $deplib" | 5278 newdlprefiles="$newdlprefiles $deplib" |
6379 compile_deplibs="$deplib $compile_deplibs" | 5279 compile_deplibs="$deplib $compile_deplibs" |
6380 finalize_deplibs="$deplib $finalize_deplibs" | 5280 finalize_deplibs="$deplib $finalize_deplibs" |
6381 else | 5281 else |
6382 func_append newdlfiles " $deplib" | 5282 newdlfiles="$newdlfiles $deplib" |
6383 fi | 5283 fi |
6384 fi | 5284 fi |
6385 continue | 5285 continue |
6386 ;; | 5286 ;; |
6387 %DEPLIBS%) | 5287 %DEPLIBS%) |
6419 # Read the .la file | 5319 # Read the .la file |
6420 func_source "$lib" | 5320 func_source "$lib" |
6421 | 5321 |
6422 # Convert "-framework foo" to "foo.ltframework" | 5322 # Convert "-framework foo" to "foo.ltframework" |
6423 if test -n "$inherited_linker_flags"; then | 5323 if test -n "$inherited_linker_flags"; then |
6424 tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'` | 5324 tmp_inherited_linker_flags=`$ECHO "X$inherited_linker_flags" | $Xsed -e 's/-framework \([^ $]*\)/\1.ltframework/g'` |
6425 for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do | 5325 for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do |
6426 case " $new_inherited_linker_flags " in | 5326 case " $new_inherited_linker_flags " in |
6427 *" $tmp_inherited_linker_flag "*) ;; | 5327 *" $tmp_inherited_linker_flag "*) ;; |
6428 *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";; | 5328 *) new_inherited_linker_flags="$new_inherited_linker_flags $tmp_inherited_linker_flag";; |
6429 esac | 5329 esac |
6430 done | 5330 done |
6431 fi | 5331 fi |
6432 dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` | 5332 dependency_libs=`$ECHO "X $dependency_libs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` |
6433 if test "$linkmode,$pass" = "lib,link" || | 5333 if test "$linkmode,$pass" = "lib,link" || |
6434 test "$linkmode,$pass" = "prog,scan" || | 5334 test "$linkmode,$pass" = "prog,scan" || |
6435 { test "$linkmode" != prog && test "$linkmode" != lib; }; then | 5335 { test "$linkmode" != prog && test "$linkmode" != lib; }; then |
6436 test -n "$dlopen" && func_append dlfiles " $dlopen" | 5336 test -n "$dlopen" && dlfiles="$dlfiles $dlopen" |
6437 test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen" | 5337 test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen" |
6438 fi | 5338 fi |
6439 | 5339 |
6440 if test "$pass" = conv; then | 5340 if test "$pass" = conv; then |
6441 # Only check for convenience libraries | 5341 # Only check for convenience libraries |
6442 deplibs="$lib $deplibs" | 5342 deplibs="$lib $deplibs" |
6443 if test -z "$libdir"; then | 5343 if test -z "$libdir"; then |
6444 if test -z "$old_library"; then | 5344 if test -z "$old_library"; then |
6445 func_fatal_error "cannot find name of link library for \`$lib'" | 5345 func_fatal_error "cannot find name of link library for \`$lib'" |
6446 fi | 5346 fi |
6447 # It is a libtool convenience library, so add in its objects. | 5347 # It is a libtool convenience library, so add in its objects. |
6448 func_append convenience " $ladir/$objdir/$old_library" | 5348 convenience="$convenience $ladir/$objdir/$old_library" |
6449 func_append old_convenience " $ladir/$objdir/$old_library" | 5349 old_convenience="$old_convenience $ladir/$objdir/$old_library" |
6450 tmp_libs= | 5350 tmp_libs= |
6451 for deplib in $dependency_libs; do | 5351 for deplib in $dependency_libs; do |
6452 deplibs="$deplib $deplibs" | 5352 deplibs="$deplib $deplibs" |
6453 if $opt_preserve_dup_deps ; then | 5353 if $opt_duplicate_deps ; then |
6454 case "$tmp_libs " in | 5354 case "$tmp_libs " in |
6455 *" $deplib "*) func_append specialdeplibs " $deplib" ;; | 5355 *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; |
6456 esac | 5356 esac |
6457 fi | 5357 fi |
6458 func_append tmp_libs " $deplib" | 5358 tmp_libs="$tmp_libs $deplib" |
6459 done | 5359 done |
6460 elif test "$linkmode" != prog && test "$linkmode" != lib; then | 5360 elif test "$linkmode" != prog && test "$linkmode" != lib; then |
6461 func_fatal_error "\`$lib' is not a convenience library" | 5361 func_fatal_error "\`$lib' is not a convenience library" |
6462 fi | 5362 fi |
6463 continue | 5363 continue |
6464 fi # $pass = conv | 5364 fi # $pass = conv |
6465 | 5365 |
6466 | 5366 |
6467 # Get the name of the library we link against. | 5367 # Get the name of the library we link against. |
6468 linklib= | 5368 linklib= |
6469 if test -n "$old_library" && | 5369 for l in $old_library $library_names; do |
6470 { test "$prefer_static_libs" = yes || | 5370 linklib="$l" |
6471 test "$prefer_static_libs,$installed" = "built,no"; }; then | 5371 done |
6472 linklib=$old_library | |
6473 else | |
6474 for l in $old_library $library_names; do | |
6475 linklib="$l" | |
6476 done | |
6477 fi | |
6478 if test -z "$linklib"; then | 5372 if test -z "$linklib"; then |
6479 func_fatal_error "cannot find name of link library for \`$lib'" | 5373 func_fatal_error "cannot find name of link library for \`$lib'" |
6480 fi | 5374 fi |
6481 | 5375 |
6482 # This library was specified with -dlopen. | 5376 # This library was specified with -dlopen. |
6489 test "$build_libtool_libs" = no; then | 5383 test "$build_libtool_libs" = no; then |
6490 # If there is no dlname, no dlopen support or we're linking | 5384 # If there is no dlname, no dlopen support or we're linking |
6491 # statically, we need to preload. We also need to preload any | 5385 # statically, we need to preload. We also need to preload any |
6492 # dependent libraries so libltdl's deplib preloader doesn't | 5386 # dependent libraries so libltdl's deplib preloader doesn't |
6493 # bomb out in the load deplibs phase. | 5387 # bomb out in the load deplibs phase. |
6494 func_append dlprefiles " $lib $dependency_libs" | 5388 dlprefiles="$dlprefiles $lib $dependency_libs" |
6495 else | 5389 else |
6496 func_append newdlfiles " $lib" | 5390 newdlfiles="$newdlfiles $lib" |
6497 fi | 5391 fi |
6498 continue | 5392 continue |
6499 fi # $pass = dlopen | 5393 fi # $pass = dlopen |
6500 | 5394 |
6501 # We need an absolute path. | 5395 # We need an absolute path. |
6513 func_basename "$lib" | 5407 func_basename "$lib" |
6514 laname="$func_basename_result" | 5408 laname="$func_basename_result" |
6515 | 5409 |
6516 # Find the relevant object directory and library name. | 5410 # Find the relevant object directory and library name. |
6517 if test "X$installed" = Xyes; then | 5411 if test "X$installed" = Xyes; then |
6518 if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then | 5412 if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then |
6519 func_warning "library \`$lib' was moved." | 5413 func_warning "library \`$lib' was moved." |
6520 dir="$ladir" | 5414 dir="$ladir" |
6521 absdir="$abs_ladir" | 5415 absdir="$abs_ladir" |
6522 libdir="$abs_ladir" | 5416 libdir="$abs_ladir" |
6523 else | 5417 else |
6524 dir="$lt_sysroot$libdir" | 5418 dir="$libdir" |
6525 absdir="$lt_sysroot$libdir" | 5419 absdir="$libdir" |
6526 fi | 5420 fi |
6527 test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes | 5421 test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes |
6528 else | 5422 else |
6529 if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then | 5423 if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then |
6530 dir="$ladir" | 5424 dir="$ladir" |
6531 absdir="$abs_ladir" | 5425 absdir="$abs_ladir" |
6532 # Remove this search path later | 5426 # Remove this search path later |
6533 func_append notinst_path " $abs_ladir" | 5427 notinst_path="$notinst_path $abs_ladir" |
6534 else | 5428 else |
6535 dir="$ladir/$objdir" | 5429 dir="$ladir/$objdir" |
6536 absdir="$abs_ladir/$objdir" | 5430 absdir="$abs_ladir/$objdir" |
6537 # Remove this search path later | 5431 # Remove this search path later |
6538 func_append notinst_path " $abs_ladir" | 5432 notinst_path="$notinst_path $abs_ladir" |
6539 fi | 5433 fi |
6540 fi # $installed = yes | 5434 fi # $installed = yes |
6541 func_stripname 'lib' '.la' "$laname" | 5435 func_stripname 'lib' '.la' "$laname" |
6542 name=$func_stripname_result | 5436 name=$func_stripname_result |
6543 | 5437 |
6544 # This library was specified with -dlpreopen. | 5438 # This library was specified with -dlpreopen. |
6545 if test "$pass" = dlpreopen; then | 5439 if test "$pass" = dlpreopen; then |
6546 if test -z "$libdir" && test "$linkmode" = prog; then | 5440 if test -z "$libdir" && test "$linkmode" = prog; then |
6547 func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'" | 5441 func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'" |
6548 fi | 5442 fi |
6549 case "$host" in | 5443 # Prefer using a static library (so that no silly _DYNAMIC symbols |
6550 # special handling for platforms with PE-DLLs. | 5444 # are required to link). |
6551 *cygwin* | *mingw* | *cegcc* ) | 5445 if test -n "$old_library"; then |
6552 # Linker will automatically link against shared library if both | 5446 newdlprefiles="$newdlprefiles $dir/$old_library" |
6553 # static and shared are present. Therefore, ensure we extract | 5447 # Keep a list of preopened convenience libraries to check |
6554 # symbols from the import library if a shared library is present | 5448 # that they are being used correctly in the link pass. |
6555 # (otherwise, the dlopen module name will be incorrect). We do | 5449 test -z "$libdir" && \ |
6556 # this by putting the import library name into $newdlprefiles. | 5450 dlpreconveniencelibs="$dlpreconveniencelibs $dir/$old_library" |
6557 # We recover the dlopen module name by 'saving' the la file | 5451 # Otherwise, use the dlname, so that lt_dlopen finds it. |
6558 # name in a special purpose variable, and (later) extracting the | 5452 elif test -n "$dlname"; then |
6559 # dlname from the la file. | 5453 newdlprefiles="$newdlprefiles $dir/$dlname" |
6560 if test -n "$dlname"; then | 5454 else |
6561 func_tr_sh "$dir/$linklib" | 5455 newdlprefiles="$newdlprefiles $dir/$linklib" |
6562 eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname" | 5456 fi |
6563 func_append newdlprefiles " $dir/$linklib" | |
6564 else | |
6565 func_append newdlprefiles " $dir/$old_library" | |
6566 # Keep a list of preopened convenience libraries to check | |
6567 # that they are being used correctly in the link pass. | |
6568 test -z "$libdir" && \ | |
6569 func_append dlpreconveniencelibs " $dir/$old_library" | |
6570 fi | |
6571 ;; | |
6572 * ) | |
6573 # Prefer using a static library (so that no silly _DYNAMIC symbols | |
6574 # are required to link). | |
6575 if test -n "$old_library"; then | |
6576 func_append newdlprefiles " $dir/$old_library" | |
6577 # Keep a list of preopened convenience libraries to check | |
6578 # that they are being used correctly in the link pass. | |
6579 test -z "$libdir" && \ | |
6580 func_append dlpreconveniencelibs " $dir/$old_library" | |
6581 # Otherwise, use the dlname, so that lt_dlopen finds it. | |
6582 elif test -n "$dlname"; then | |
6583 func_append newdlprefiles " $dir/$dlname" | |
6584 else | |
6585 func_append newdlprefiles " $dir/$linklib" | |
6586 fi | |
6587 ;; | |
6588 esac | |
6589 fi # $pass = dlpreopen | 5457 fi # $pass = dlpreopen |
6590 | 5458 |
6591 if test -z "$libdir"; then | 5459 if test -z "$libdir"; then |
6592 # Link the convenience library | 5460 # Link the convenience library |
6593 if test "$linkmode" = lib; then | 5461 if test "$linkmode" = lib; then |
6601 continue | 5469 continue |
6602 fi | 5470 fi |
6603 | 5471 |
6604 | 5472 |
6605 if test "$linkmode" = prog && test "$pass" != link; then | 5473 if test "$linkmode" = prog && test "$pass" != link; then |
6606 func_append newlib_search_path " $ladir" | 5474 newlib_search_path="$newlib_search_path $ladir" |
6607 deplibs="$lib $deplibs" | 5475 deplibs="$lib $deplibs" |
6608 | 5476 |
6609 linkalldeplibs=no | 5477 linkalldeplibs=no |
6610 if test "$link_all_deplibs" != no || test -z "$library_names" || | 5478 if test "$link_all_deplibs" != no || test -z "$library_names" || |
6611 test "$build_libtool_libs" = no; then | 5479 test "$build_libtool_libs" = no; then |
6614 | 5482 |
6615 tmp_libs= | 5483 tmp_libs= |
6616 for deplib in $dependency_libs; do | 5484 for deplib in $dependency_libs; do |
6617 case $deplib in | 5485 case $deplib in |
6618 -L*) func_stripname '-L' '' "$deplib" | 5486 -L*) func_stripname '-L' '' "$deplib" |
6619 func_resolve_sysroot "$func_stripname_result" | 5487 newlib_search_path="$newlib_search_path $func_stripname_result" |
6620 func_append newlib_search_path " $func_resolve_sysroot_result" | |
6621 ;; | 5488 ;; |
6622 esac | 5489 esac |
6623 # Need to link against all dependency_libs? | 5490 # Need to link against all dependency_libs? |
6624 if test "$linkalldeplibs" = yes; then | 5491 if test "$linkalldeplibs" = yes; then |
6625 deplibs="$deplib $deplibs" | 5492 deplibs="$deplib $deplibs" |
6626 else | 5493 else |
6627 # Need to hardcode shared library paths | 5494 # Need to hardcode shared library paths |
6628 # or/and link against static libraries | 5495 # or/and link against static libraries |
6629 newdependency_libs="$deplib $newdependency_libs" | 5496 newdependency_libs="$deplib $newdependency_libs" |
6630 fi | 5497 fi |
6631 if $opt_preserve_dup_deps ; then | 5498 if $opt_duplicate_deps ; then |
6632 case "$tmp_libs " in | 5499 case "$tmp_libs " in |
6633 *" $deplib "*) func_append specialdeplibs " $deplib" ;; | 5500 *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; |
6634 esac | 5501 esac |
6635 fi | 5502 fi |
6636 func_append tmp_libs " $deplib" | 5503 tmp_libs="$tmp_libs $deplib" |
6637 done # for deplib | 5504 done # for deplib |
6638 continue | 5505 continue |
6639 fi # $linkmode = prog... | 5506 fi # $linkmode = prog... |
6640 | 5507 |
6641 if test "$linkmode,$pass" = "prog,link"; then | 5508 if test "$linkmode,$pass" = "prog,link"; then |
6646 # We need to hardcode the library path | 5513 # We need to hardcode the library path |
6647 if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then | 5514 if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then |
6648 # Make sure the rpath contains only unique directories. | 5515 # Make sure the rpath contains only unique directories. |
6649 case "$temp_rpath:" in | 5516 case "$temp_rpath:" in |
6650 *"$absdir:"*) ;; | 5517 *"$absdir:"*) ;; |
6651 *) func_append temp_rpath "$absdir:" ;; | 5518 *) temp_rpath="$temp_rpath$absdir:" ;; |
6652 esac | 5519 esac |
6653 fi | 5520 fi |
6654 | 5521 |
6655 # Hardcode the library path. | 5522 # Hardcode the library path. |
6656 # Skip directories that are in the system default run-time | 5523 # Skip directories that are in the system default run-time |
6658 case " $sys_lib_dlsearch_path " in | 5525 case " $sys_lib_dlsearch_path " in |
6659 *" $absdir "*) ;; | 5526 *" $absdir "*) ;; |
6660 *) | 5527 *) |
6661 case "$compile_rpath " in | 5528 case "$compile_rpath " in |
6662 *" $absdir "*) ;; | 5529 *" $absdir "*) ;; |
6663 *) func_append compile_rpath " $absdir" ;; | 5530 *) compile_rpath="$compile_rpath $absdir" |
6664 esac | 5531 esac |
6665 ;; | 5532 ;; |
6666 esac | 5533 esac |
6667 case " $sys_lib_dlsearch_path " in | 5534 case " $sys_lib_dlsearch_path " in |
6668 *" $libdir "*) ;; | 5535 *" $libdir "*) ;; |
6669 *) | 5536 *) |
6670 case "$finalize_rpath " in | 5537 case "$finalize_rpath " in |
6671 *" $libdir "*) ;; | 5538 *" $libdir "*) ;; |
6672 *) func_append finalize_rpath " $libdir" ;; | 5539 *) finalize_rpath="$finalize_rpath $libdir" |
6673 esac | 5540 esac |
6674 ;; | 5541 ;; |
6675 esac | 5542 esac |
6676 fi # $linkmode,$pass = prog,link... | 5543 fi # $linkmode,$pass = prog,link... |
6677 | 5544 |
6692 if test -n "$library_names" && | 5559 if test -n "$library_names" && |
6693 { test "$use_static_libs" = no || test -z "$old_library"; }; then | 5560 { test "$use_static_libs" = no || test -z "$old_library"; }; then |
6694 case $host in | 5561 case $host in |
6695 *cygwin* | *mingw* | *cegcc*) | 5562 *cygwin* | *mingw* | *cegcc*) |
6696 # No point in relinking DLLs because paths are not encoded | 5563 # No point in relinking DLLs because paths are not encoded |
6697 func_append notinst_deplibs " $lib" | 5564 notinst_deplibs="$notinst_deplibs $lib" |
6698 need_relink=no | 5565 need_relink=no |
6699 ;; | 5566 ;; |
6700 *) | 5567 *) |
6701 if test "$installed" = no; then | 5568 if test "$installed" = no; then |
6702 func_append notinst_deplibs " $lib" | 5569 notinst_deplibs="$notinst_deplibs $lib" |
6703 need_relink=yes | 5570 need_relink=yes |
6704 fi | 5571 fi |
6705 ;; | 5572 ;; |
6706 esac | 5573 esac |
6707 # This is a shared library | 5574 # This is a shared library |
6714 dlopenmodule="$dlpremoduletest" | 5581 dlopenmodule="$dlpremoduletest" |
6715 break | 5582 break |
6716 fi | 5583 fi |
6717 done | 5584 done |
6718 if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then | 5585 if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then |
6719 echo | 5586 $ECHO |
6720 if test "$linkmode" = prog; then | 5587 if test "$linkmode" = prog; then |
6721 $ECHO "*** Warning: Linking the executable $output against the loadable module" | 5588 $ECHO "*** Warning: Linking the executable $output against the loadable module" |
6722 else | 5589 else |
6723 $ECHO "*** Warning: Linking the shared library $output against the loadable module" | 5590 $ECHO "*** Warning: Linking the shared library $output against the loadable module" |
6724 fi | 5591 fi |
6732 case " $sys_lib_dlsearch_path " in | 5599 case " $sys_lib_dlsearch_path " in |
6733 *" $absdir "*) ;; | 5600 *" $absdir "*) ;; |
6734 *) | 5601 *) |
6735 case "$compile_rpath " in | 5602 case "$compile_rpath " in |
6736 *" $absdir "*) ;; | 5603 *" $absdir "*) ;; |
6737 *) func_append compile_rpath " $absdir" ;; | 5604 *) compile_rpath="$compile_rpath $absdir" |
6738 esac | 5605 esac |
6739 ;; | 5606 ;; |
6740 esac | 5607 esac |
6741 case " $sys_lib_dlsearch_path " in | 5608 case " $sys_lib_dlsearch_path " in |
6742 *" $libdir "*) ;; | 5609 *" $libdir "*) ;; |
6743 *) | 5610 *) |
6744 case "$finalize_rpath " in | 5611 case "$finalize_rpath " in |
6745 *" $libdir "*) ;; | 5612 *" $libdir "*) ;; |
6746 *) func_append finalize_rpath " $libdir" ;; | 5613 *) finalize_rpath="$finalize_rpath $libdir" |
6747 esac | 5614 esac |
6748 ;; | 5615 ;; |
6749 esac | 5616 esac |
6750 fi | 5617 fi |
6751 | 5618 |
6795 # make sure the library variables are pointing to the new library | 5662 # make sure the library variables are pointing to the new library |
6796 dir=$output_objdir | 5663 dir=$output_objdir |
6797 linklib=$newlib | 5664 linklib=$newlib |
6798 fi # test -n "$old_archive_from_expsyms_cmds" | 5665 fi # test -n "$old_archive_from_expsyms_cmds" |
6799 | 5666 |
6800 if test "$linkmode" = prog || test "$opt_mode" != relink; then | 5667 if test "$linkmode" = prog || test "$mode" != relink; then |
6801 add_shlibpath= | 5668 add_shlibpath= |
6802 add_dir= | 5669 add_dir= |
6803 add= | 5670 add= |
6804 lib_linked=yes | 5671 lib_linked=yes |
6805 case $hardcode_action in | 5672 case $hardcode_action in |
6817 if /usr/bin/file -L $add 2> /dev/null | | 5684 if /usr/bin/file -L $add 2> /dev/null | |
6818 $GREP ": [^:]* bundle" >/dev/null ; then | 5685 $GREP ": [^:]* bundle" >/dev/null ; then |
6819 if test "X$dlopenmodule" != "X$lib"; then | 5686 if test "X$dlopenmodule" != "X$lib"; then |
6820 $ECHO "*** Warning: lib $linklib is a module, not a shared library" | 5687 $ECHO "*** Warning: lib $linklib is a module, not a shared library" |
6821 if test -z "$old_library" ; then | 5688 if test -z "$old_library" ; then |
6822 echo | 5689 $ECHO |
6823 echo "*** And there doesn't seem to be a static archive available" | 5690 $ECHO "*** And there doesn't seem to be a static archive available" |
6824 echo "*** The link will probably fail, sorry" | 5691 $ECHO "*** The link will probably fail, sorry" |
6825 else | 5692 else |
6826 add="$dir/$old_library" | 5693 add="$dir/$old_library" |
6827 fi | 5694 fi |
6828 elif test -n "$old_library"; then | 5695 elif test -n "$old_library"; then |
6829 add="$dir/$old_library" | 5696 add="$dir/$old_library" |
6846 relink) | 5713 relink) |
6847 if test "$hardcode_direct" = yes && | 5714 if test "$hardcode_direct" = yes && |
6848 test "$hardcode_direct_absolute" = no; then | 5715 test "$hardcode_direct_absolute" = no; then |
6849 add="$dir/$linklib" | 5716 add="$dir/$linklib" |
6850 elif test "$hardcode_minus_L" = yes; then | 5717 elif test "$hardcode_minus_L" = yes; then |
6851 add_dir="-L$absdir" | 5718 add_dir="-L$dir" |
6852 # Try looking first in the location we're being installed to. | 5719 # Try looking first in the location we're being installed to. |
6853 if test -n "$inst_prefix_dir"; then | 5720 if test -n "$inst_prefix_dir"; then |
6854 case $libdir in | 5721 case $libdir in |
6855 [\\/]*) | 5722 [\\/]*) |
6856 func_append add_dir " -L$inst_prefix_dir$libdir" | 5723 add_dir="$add_dir -L$inst_prefix_dir$libdir" |
6857 ;; | 5724 ;; |
6858 esac | 5725 esac |
6859 fi | 5726 fi |
6860 add="-l$name" | 5727 add="-l$name" |
6861 elif test "$hardcode_shlibpath_var" = yes; then | 5728 elif test "$hardcode_shlibpath_var" = yes; then |
6873 fi | 5740 fi |
6874 | 5741 |
6875 if test -n "$add_shlibpath"; then | 5742 if test -n "$add_shlibpath"; then |
6876 case :$compile_shlibpath: in | 5743 case :$compile_shlibpath: in |
6877 *":$add_shlibpath:"*) ;; | 5744 *":$add_shlibpath:"*) ;; |
6878 *) func_append compile_shlibpath "$add_shlibpath:" ;; | 5745 *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;; |
6879 esac | 5746 esac |
6880 fi | 5747 fi |
6881 if test "$linkmode" = prog; then | 5748 if test "$linkmode" = prog; then |
6882 test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" | 5749 test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" |
6883 test -n "$add" && compile_deplibs="$add $compile_deplibs" | 5750 test -n "$add" && compile_deplibs="$add $compile_deplibs" |
6887 if test "$hardcode_direct" != yes && | 5754 if test "$hardcode_direct" != yes && |
6888 test "$hardcode_minus_L" != yes && | 5755 test "$hardcode_minus_L" != yes && |
6889 test "$hardcode_shlibpath_var" = yes; then | 5756 test "$hardcode_shlibpath_var" = yes; then |
6890 case :$finalize_shlibpath: in | 5757 case :$finalize_shlibpath: in |
6891 *":$libdir:"*) ;; | 5758 *":$libdir:"*) ;; |
6892 *) func_append finalize_shlibpath "$libdir:" ;; | 5759 *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; |
6893 esac | 5760 esac |
6894 fi | 5761 fi |
6895 fi | 5762 fi |
6896 fi | 5763 fi |
6897 | 5764 |
6898 if test "$linkmode" = prog || test "$opt_mode" = relink; then | 5765 if test "$linkmode" = prog || test "$mode" = relink; then |
6899 add_shlibpath= | 5766 add_shlibpath= |
6900 add_dir= | 5767 add_dir= |
6901 add= | 5768 add= |
6902 # Finalize command for both is simple: just hardcode it. | 5769 # Finalize command for both is simple: just hardcode it. |
6903 if test "$hardcode_direct" = yes && | 5770 if test "$hardcode_direct" = yes && |
6907 add_dir="-L$libdir" | 5774 add_dir="-L$libdir" |
6908 add="-l$name" | 5775 add="-l$name" |
6909 elif test "$hardcode_shlibpath_var" = yes; then | 5776 elif test "$hardcode_shlibpath_var" = yes; then |
6910 case :$finalize_shlibpath: in | 5777 case :$finalize_shlibpath: in |
6911 *":$libdir:"*) ;; | 5778 *":$libdir:"*) ;; |
6912 *) func_append finalize_shlibpath "$libdir:" ;; | 5779 *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; |
6913 esac | 5780 esac |
6914 add="-l$name" | 5781 add="-l$name" |
6915 elif test "$hardcode_automatic" = yes; then | 5782 elif test "$hardcode_automatic" = yes; then |
6916 if test -n "$inst_prefix_dir" && | 5783 if test -n "$inst_prefix_dir" && |
6917 test -f "$inst_prefix_dir$libdir/$linklib" ; then | 5784 test -f "$inst_prefix_dir$libdir/$linklib" ; then |
6924 add_dir="-L$libdir" | 5791 add_dir="-L$libdir" |
6925 # Try looking first in the location we're being installed to. | 5792 # Try looking first in the location we're being installed to. |
6926 if test -n "$inst_prefix_dir"; then | 5793 if test -n "$inst_prefix_dir"; then |
6927 case $libdir in | 5794 case $libdir in |
6928 [\\/]*) | 5795 [\\/]*) |
6929 func_append add_dir " -L$inst_prefix_dir$libdir" | 5796 add_dir="$add_dir -L$inst_prefix_dir$libdir" |
6930 ;; | 5797 ;; |
6931 esac | 5798 esac |
6932 fi | 5799 fi |
6933 add="-l$name" | 5800 add="-l$name" |
6934 fi | 5801 fi |
6959 # We're trying link a shared library against a static one | 5826 # We're trying link a shared library against a static one |
6960 # but the system doesn't support it. | 5827 # but the system doesn't support it. |
6961 | 5828 |
6962 # Just print a warning and add the library to dependency_libs so | 5829 # Just print a warning and add the library to dependency_libs so |
6963 # that the program can be linked against the static library. | 5830 # that the program can be linked against the static library. |
6964 echo | 5831 $ECHO |
6965 $ECHO "*** Warning: This system can not link to static lib archive $lib." | 5832 $ECHO "*** Warning: This system can not link to static lib archive $lib." |
6966 echo "*** I have the capability to make that library automatically link in when" | 5833 $ECHO "*** I have the capability to make that library automatically link in when" |
6967 echo "*** you link to this library. But I can only do this if you have a" | 5834 $ECHO "*** you link to this library. But I can only do this if you have a" |
6968 echo "*** shared version of the library, which you do not appear to have." | 5835 $ECHO "*** shared version of the library, which you do not appear to have." |
6969 if test "$module" = yes; then | 5836 if test "$module" = yes; then |
6970 echo "*** But as you try to build a module library, libtool will still create " | 5837 $ECHO "*** But as you try to build a module library, libtool will still create " |
6971 echo "*** a static module, that should work as long as the dlopening application" | 5838 $ECHO "*** a static module, that should work as long as the dlopening application" |
6972 echo "*** is linked with the -dlopen flag to resolve symbols at runtime." | 5839 $ECHO "*** is linked with the -dlopen flag to resolve symbols at runtime." |
6973 if test -z "$global_symbol_pipe"; then | 5840 if test -z "$global_symbol_pipe"; then |
6974 echo | 5841 $ECHO |
6975 echo "*** However, this would only work if libtool was able to extract symbol" | 5842 $ECHO "*** However, this would only work if libtool was able to extract symbol" |
6976 echo "*** lists from a program, using \`nm' or equivalent, but libtool could" | 5843 $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could" |
6977 echo "*** not find such a program. So, this module is probably useless." | 5844 $ECHO "*** not find such a program. So, this module is probably useless." |
6978 echo "*** \`nm' from GNU binutils and a full rebuild may help." | 5845 $ECHO "*** \`nm' from GNU binutils and a full rebuild may help." |
6979 fi | 5846 fi |
6980 if test "$build_old_libs" = no; then | 5847 if test "$build_old_libs" = no; then |
6981 build_libtool_libs=module | 5848 build_libtool_libs=module |
6982 build_old_libs=yes | 5849 build_old_libs=yes |
6983 else | 5850 else |
7001 case $libdir in | 5868 case $libdir in |
7002 -R*) func_stripname '-R' '' "$libdir" | 5869 -R*) func_stripname '-R' '' "$libdir" |
7003 temp_xrpath=$func_stripname_result | 5870 temp_xrpath=$func_stripname_result |
7004 case " $xrpath " in | 5871 case " $xrpath " in |
7005 *" $temp_xrpath "*) ;; | 5872 *" $temp_xrpath "*) ;; |
7006 *) func_append xrpath " $temp_xrpath";; | 5873 *) xrpath="$xrpath $temp_xrpath";; |
7007 esac;; | 5874 esac;; |
7008 *) func_append temp_deplibs " $libdir";; | 5875 *) temp_deplibs="$temp_deplibs $libdir";; |
7009 esac | 5876 esac |
7010 done | 5877 done |
7011 dependency_libs="$temp_deplibs" | 5878 dependency_libs="$temp_deplibs" |
7012 fi | 5879 fi |
7013 | 5880 |
7014 func_append newlib_search_path " $absdir" | 5881 newlib_search_path="$newlib_search_path $absdir" |
7015 # Link against this library | 5882 # Link against this library |
7016 test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" | 5883 test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" |
7017 # ... and its dependency_libs | 5884 # ... and its dependency_libs |
7018 tmp_libs= | 5885 tmp_libs= |
7019 for deplib in $dependency_libs; do | 5886 for deplib in $dependency_libs; do |
7020 newdependency_libs="$deplib $newdependency_libs" | 5887 newdependency_libs="$deplib $newdependency_libs" |
7021 case $deplib in | 5888 if $opt_duplicate_deps ; then |
7022 -L*) func_stripname '-L' '' "$deplib" | |
7023 func_resolve_sysroot "$func_stripname_result";; | |
7024 *) func_resolve_sysroot "$deplib" ;; | |
7025 esac | |
7026 if $opt_preserve_dup_deps ; then | |
7027 case "$tmp_libs " in | 5889 case "$tmp_libs " in |
7028 *" $func_resolve_sysroot_result "*) | 5890 *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; |
7029 func_append specialdeplibs " $func_resolve_sysroot_result" ;; | |
7030 esac | 5891 esac |
7031 fi | 5892 fi |
7032 func_append tmp_libs " $func_resolve_sysroot_result" | 5893 tmp_libs="$tmp_libs $deplib" |
7033 done | 5894 done |
7034 | 5895 |
7035 if test "$link_all_deplibs" != no; then | 5896 if test "$link_all_deplibs" != no; then |
7036 # Add the search paths of all dependency libraries | 5897 # Add the search paths of all dependency libraries |
7037 for deplib in $dependency_libs; do | 5898 for deplib in $dependency_libs; do |
7038 path= | 5899 path= |
7039 case $deplib in | 5900 case $deplib in |
7040 -L*) path="$deplib" ;; | 5901 -L*) path="$deplib" ;; |
7041 *.la) | 5902 *.la) |
7042 func_resolve_sysroot "$deplib" | |
7043 deplib=$func_resolve_sysroot_result | |
7044 func_dirname "$deplib" "" "." | 5903 func_dirname "$deplib" "" "." |
7045 dir=$func_dirname_result | 5904 dir="$func_dirname_result" |
7046 # We need an absolute path. | 5905 # We need an absolute path. |
7047 case $dir in | 5906 case $dir in |
7048 [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; | 5907 [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; |
7049 *) | 5908 *) |
7050 absdir=`cd "$dir" && pwd` | 5909 absdir=`cd "$dir" && pwd` |
7067 depdepl="$absdir/$objdir/$depdepl" | 5926 depdepl="$absdir/$objdir/$depdepl" |
7068 darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` | 5927 darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` |
7069 if test -z "$darwin_install_name"; then | 5928 if test -z "$darwin_install_name"; then |
7070 darwin_install_name=`${OTOOL64} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` | 5929 darwin_install_name=`${OTOOL64} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` |
7071 fi | 5930 fi |
7072 func_append compiler_flags " ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}" | 5931 compiler_flags="$compiler_flags ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}" |
7073 func_append linker_flags " -dylib_file ${darwin_install_name}:${depdepl}" | 5932 linker_flags="$linker_flags -dylib_file ${darwin_install_name}:${depdepl}" |
7074 path= | 5933 path= |
7075 fi | 5934 fi |
7076 fi | 5935 fi |
7077 ;; | 5936 ;; |
7078 *) | 5937 *) |
7101 if test "$pass" = link; then | 5960 if test "$pass" = link; then |
7102 if test "$linkmode" = "prog"; then | 5961 if test "$linkmode" = "prog"; then |
7103 compile_deplibs="$new_inherited_linker_flags $compile_deplibs" | 5962 compile_deplibs="$new_inherited_linker_flags $compile_deplibs" |
7104 finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" | 5963 finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" |
7105 else | 5964 else |
7106 compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` | 5965 compiler_flags="$compiler_flags "`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` |
7107 fi | 5966 fi |
7108 fi | 5967 fi |
7109 dependency_libs="$newdependency_libs" | 5968 dependency_libs="$newdependency_libs" |
7110 if test "$pass" = dlpreopen; then | 5969 if test "$pass" = dlpreopen; then |
7111 # Link the dlpreopened libraries before other libraries | 5970 # Link the dlpreopened libraries before other libraries |
7118 # Make sure lib_search_path contains only unique directories. | 5977 # Make sure lib_search_path contains only unique directories. |
7119 lib_search_path= | 5978 lib_search_path= |
7120 for dir in $newlib_search_path; do | 5979 for dir in $newlib_search_path; do |
7121 case "$lib_search_path " in | 5980 case "$lib_search_path " in |
7122 *" $dir "*) ;; | 5981 *" $dir "*) ;; |
7123 *) func_append lib_search_path " $dir" ;; | 5982 *) lib_search_path="$lib_search_path $dir" ;; |
7124 esac | 5983 esac |
7125 done | 5984 done |
7126 newlib_search_path= | 5985 newlib_search_path= |
7127 fi | 5986 fi |
7128 | 5987 |
7176 for deplib in $new_libs; do | 6035 for deplib in $new_libs; do |
7177 case $deplib in | 6036 case $deplib in |
7178 -L*) | 6037 -L*) |
7179 case " $tmp_libs " in | 6038 case " $tmp_libs " in |
7180 *" $deplib "*) ;; | 6039 *" $deplib "*) ;; |
7181 *) func_append tmp_libs " $deplib" ;; | 6040 *) tmp_libs="$tmp_libs $deplib" ;; |
7182 esac | 6041 esac |
7183 ;; | 6042 ;; |
7184 *) func_append tmp_libs " $deplib" ;; | 6043 *) tmp_libs="$tmp_libs $deplib" ;; |
7185 esac | 6044 esac |
7186 done | 6045 done |
7187 eval $var=\"$tmp_libs\" | 6046 eval $var=\"$tmp_libs\" |
7188 done # for var | 6047 done # for var |
7189 fi | 6048 fi |
7195 *" $i "*) | 6054 *" $i "*) |
7196 i="" | 6055 i="" |
7197 ;; | 6056 ;; |
7198 esac | 6057 esac |
7199 if test -n "$i" ; then | 6058 if test -n "$i" ; then |
7200 func_append tmp_libs " $i" | 6059 tmp_libs="$tmp_libs $i" |
7201 fi | 6060 fi |
7202 done | 6061 done |
7203 dependency_libs=$tmp_libs | 6062 dependency_libs=$tmp_libs |
7204 done # for pass | 6063 done # for pass |
7205 if test "$linkmode" = prog; then | 6064 if test "$linkmode" = prog; then |
7236 func_warning "\`-export-symbols' is ignored for archives" | 6095 func_warning "\`-export-symbols' is ignored for archives" |
7237 | 6096 |
7238 # Now set the variables for building old libraries. | 6097 # Now set the variables for building old libraries. |
7239 build_libtool_libs=no | 6098 build_libtool_libs=no |
7240 oldlibs="$output" | 6099 oldlibs="$output" |
7241 func_append objs "$old_deplibs" | 6100 objs="$objs$old_deplibs" |
7242 ;; | 6101 ;; |
7243 | 6102 |
7244 lib) | 6103 lib) |
7245 # Make sure we only generate libraries of the form `libNAME.la'. | 6104 # Make sure we only generate libraries of the form `libNAME.la'. |
7246 case $outputname in | 6105 case $outputname in |
7269 | 6128 |
7270 if test -n "$objs"; then | 6129 if test -n "$objs"; then |
7271 if test "$deplibs_check_method" != pass_all; then | 6130 if test "$deplibs_check_method" != pass_all; then |
7272 func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs" | 6131 func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs" |
7273 else | 6132 else |
7274 echo | 6133 $ECHO |
7275 $ECHO "*** Warning: Linking the shared library $output against the non-libtool" | 6134 $ECHO "*** Warning: Linking the shared library $output against the non-libtool" |
7276 $ECHO "*** objects $objs is not portable!" | 6135 $ECHO "*** objects $objs is not portable!" |
7277 func_append libobjs " $objs" | 6136 libobjs="$libobjs $objs" |
7278 fi | 6137 fi |
7279 fi | 6138 fi |
7280 | 6139 |
7281 test "$dlself" != no && \ | 6140 test "$dlself" != no && \ |
7282 func_warning "\`-dlopen self' is ignored for libtool libraries" | 6141 func_warning "\`-dlopen self' is ignored for libtool libraries" |
7331 # and those that subtract age and use age as | 6190 # and those that subtract age and use age as |
7332 # a minor version. But, then there is irix | 6191 # a minor version. But, then there is irix |
7333 # which has an extra 1 added just for fun | 6192 # which has an extra 1 added just for fun |
7334 # | 6193 # |
7335 case $version_type in | 6194 case $version_type in |
7336 # correct linux to gnu/linux during the next big refactor | |
7337 darwin|linux|osf|windows|none) | 6195 darwin|linux|osf|windows|none) |
7338 func_arith $number_major + $number_minor | 6196 func_arith $number_major + $number_minor |
7339 current=$func_arith_result | 6197 current=$func_arith_result |
7340 age="$number_minor" | 6198 age="$number_minor" |
7341 revision="$number_revision" | 6199 revision="$number_revision" |
7342 ;; | 6200 ;; |
7343 freebsd-aout|freebsd-elf|qnx|sunos) | 6201 freebsd-aout|freebsd-elf|sunos) |
7344 current="$number_major" | 6202 current="$number_major" |
7345 revision="$number_minor" | 6203 revision="$number_minor" |
7346 age="0" | 6204 age="0" |
7347 ;; | 6205 ;; |
7348 irix|nonstopux) | 6206 irix|nonstopux) |
7451 # Before this point, $major must not contain `.'. | 6309 # Before this point, $major must not contain `.'. |
7452 major=.$major | 6310 major=.$major |
7453 versuffix="$major.$revision" | 6311 versuffix="$major.$revision" |
7454 ;; | 6312 ;; |
7455 | 6313 |
7456 linux) # correct to gnu/linux during the next big refactor | 6314 linux) |
7457 func_arith $current - $age | 6315 func_arith $current - $age |
7458 major=.$func_arith_result | 6316 major=.$func_arith_result |
7459 versuffix="$major.$age.$revision" | 6317 versuffix="$major.$age.$revision" |
7460 ;; | 6318 ;; |
7461 | 6319 |
7474 loop=$func_arith_result | 6332 loop=$func_arith_result |
7475 verstring="$verstring:${iface}.0" | 6333 verstring="$verstring:${iface}.0" |
7476 done | 6334 done |
7477 | 6335 |
7478 # Make executables depend on our current version. | 6336 # Make executables depend on our current version. |
7479 func_append verstring ":${current}.0" | 6337 verstring="$verstring:${current}.0" |
7480 ;; | 6338 ;; |
7481 | 6339 |
7482 qnx) | 6340 qnx) |
7483 major=".$current" | 6341 major=".$current" |
7484 versuffix=".$current" | 6342 versuffix=".$current" |
7542 fi | 6400 fi |
7543 | 6401 |
7544 fi | 6402 fi |
7545 | 6403 |
7546 func_generate_dlsyms "$libname" "$libname" "yes" | 6404 func_generate_dlsyms "$libname" "$libname" "yes" |
7547 func_append libobjs " $symfileobj" | 6405 libobjs="$libobjs $symfileobj" |
7548 test "X$libobjs" = "X " && libobjs= | 6406 test "X$libobjs" = "X " && libobjs= |
7549 | 6407 |
7550 if test "$opt_mode" != relink; then | 6408 if test "$mode" != relink; then |
7551 # Remove our outputs, but don't remove object files since they | 6409 # Remove our outputs, but don't remove object files since they |
7552 # may have been created when compiling PIC objects. | 6410 # may have been created when compiling PIC objects. |
7553 removelist= | 6411 removelist= |
7554 tempremovelist=`$ECHO "$output_objdir/*"` | 6412 tempremovelist=`$ECHO "$output_objdir/*"` |
7555 for p in $tempremovelist; do | 6413 for p in $tempremovelist; do |
7561 if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 | 6419 if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 |
7562 then | 6420 then |
7563 continue | 6421 continue |
7564 fi | 6422 fi |
7565 fi | 6423 fi |
7566 func_append removelist " $p" | 6424 removelist="$removelist $p" |
7567 ;; | 6425 ;; |
7568 *) ;; | 6426 *) ;; |
7569 esac | 6427 esac |
7570 done | 6428 done |
7571 test -n "$removelist" && \ | 6429 test -n "$removelist" && \ |
7572 func_show_eval "${RM}r \$removelist" | 6430 func_show_eval "${RM}r \$removelist" |
7573 fi | 6431 fi |
7574 | 6432 |
7575 # Now set the variables for building old libraries. | 6433 # Now set the variables for building old libraries. |
7576 if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then | 6434 if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then |
7577 func_append oldlibs " $output_objdir/$libname.$libext" | 6435 oldlibs="$oldlibs $output_objdir/$libname.$libext" |
7578 | 6436 |
7579 # Transform .lo files to .o files. | 6437 # Transform .lo files to .o files. |
7580 oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; $lo2o" | $NL2SP` | 6438 oldobjs="$objs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP` |
7581 fi | 6439 fi |
7582 | 6440 |
7583 # Eliminate all temporary directories. | 6441 # Eliminate all temporary directories. |
7584 #for path in $notinst_path; do | 6442 #for path in $notinst_path; do |
7585 # lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"` | 6443 # lib_search_path=`$ECHO "X$lib_search_path " | $Xsed -e "s% $path % %g"` |
7586 # deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"` | 6444 # deplibs=`$ECHO "X$deplibs " | $Xsed -e "s% -L$path % %g"` |
7587 # dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"` | 6445 # dependency_libs=`$ECHO "X$dependency_libs " | $Xsed -e "s% -L$path % %g"` |
7588 #done | 6446 #done |
7589 | 6447 |
7590 if test -n "$xrpath"; then | 6448 if test -n "$xrpath"; then |
7591 # If the user specified any rpath flags, then add them. | 6449 # If the user specified any rpath flags, then add them. |
7592 temp_xrpath= | 6450 temp_xrpath= |
7593 for libdir in $xrpath; do | 6451 for libdir in $xrpath; do |
7594 func_replace_sysroot "$libdir" | 6452 temp_xrpath="$temp_xrpath -R$libdir" |
7595 func_append temp_xrpath " -R$func_replace_sysroot_result" | |
7596 case "$finalize_rpath " in | 6453 case "$finalize_rpath " in |
7597 *" $libdir "*) ;; | 6454 *" $libdir "*) ;; |
7598 *) func_append finalize_rpath " $libdir" ;; | 6455 *) finalize_rpath="$finalize_rpath $libdir" ;; |
7599 esac | 6456 esac |
7600 done | 6457 done |
7601 if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then | 6458 if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then |
7602 dependency_libs="$temp_xrpath $dependency_libs" | 6459 dependency_libs="$temp_xrpath $dependency_libs" |
7603 fi | 6460 fi |
7607 old_dlfiles="$dlfiles" | 6464 old_dlfiles="$dlfiles" |
7608 dlfiles= | 6465 dlfiles= |
7609 for lib in $old_dlfiles; do | 6466 for lib in $old_dlfiles; do |
7610 case " $dlprefiles $dlfiles " in | 6467 case " $dlprefiles $dlfiles " in |
7611 *" $lib "*) ;; | 6468 *" $lib "*) ;; |
7612 *) func_append dlfiles " $lib" ;; | 6469 *) dlfiles="$dlfiles $lib" ;; |
7613 esac | 6470 esac |
7614 done | 6471 done |
7615 | 6472 |
7616 # Make sure dlprefiles contains only unique files | 6473 # Make sure dlprefiles contains only unique files |
7617 old_dlprefiles="$dlprefiles" | 6474 old_dlprefiles="$dlprefiles" |
7618 dlprefiles= | 6475 dlprefiles= |
7619 for lib in $old_dlprefiles; do | 6476 for lib in $old_dlprefiles; do |
7620 case "$dlprefiles " in | 6477 case "$dlprefiles " in |
7621 *" $lib "*) ;; | 6478 *" $lib "*) ;; |
7622 *) func_append dlprefiles " $lib" ;; | 6479 *) dlprefiles="$dlprefiles $lib" ;; |
7623 esac | 6480 esac |
7624 done | 6481 done |
7625 | 6482 |
7626 if test "$build_libtool_libs" = yes; then | 6483 if test "$build_libtool_libs" = yes; then |
7627 if test -n "$rpath"; then | 6484 if test -n "$rpath"; then |
7628 case $host in | 6485 case $host in |
7629 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*) | 6486 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc*) |
7630 # these systems don't actually have a c library (as such)! | 6487 # these systems don't actually have a c library (as such)! |
7631 ;; | 6488 ;; |
7632 *-*-rhapsody* | *-*-darwin1.[012]) | 6489 *-*-rhapsody* | *-*-darwin1.[012]) |
7633 # Rhapsody C library is in the System framework | 6490 # Rhapsody C library is in the System framework |
7634 func_append deplibs " System.ltframework" | 6491 deplibs="$deplibs System.ltframework" |
7635 ;; | 6492 ;; |
7636 *-*-netbsd*) | 6493 *-*-netbsd*) |
7637 # Don't link with libc until the a.out ld.so is fixed. | 6494 # Don't link with libc until the a.out ld.so is fixed. |
7638 ;; | 6495 ;; |
7639 *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) | 6496 *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) |
7646 # Compiler inserts libc in the correct place for threads to work | 6503 # Compiler inserts libc in the correct place for threads to work |
7647 ;; | 6504 ;; |
7648 *) | 6505 *) |
7649 # Add libc to deplibs on all other systems if necessary. | 6506 # Add libc to deplibs on all other systems if necessary. |
7650 if test "$build_libtool_need_lc" = "yes"; then | 6507 if test "$build_libtool_need_lc" = "yes"; then |
7651 func_append deplibs " -lc" | 6508 deplibs="$deplibs -lc" |
7652 fi | 6509 fi |
7653 ;; | 6510 ;; |
7654 esac | 6511 esac |
7655 fi | 6512 fi |
7656 | 6513 |
7695 func_stripname -l '' "$i" | 6552 func_stripname -l '' "$i" |
7696 name=$func_stripname_result | 6553 name=$func_stripname_result |
7697 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then | 6554 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then |
7698 case " $predeps $postdeps " in | 6555 case " $predeps $postdeps " in |
7699 *" $i "*) | 6556 *" $i "*) |
7700 func_append newdeplibs " $i" | 6557 newdeplibs="$newdeplibs $i" |
7701 i="" | 6558 i="" |
7702 ;; | 6559 ;; |
7703 esac | 6560 esac |
7704 fi | 6561 fi |
7705 if test -n "$i" ; then | 6562 if test -n "$i" ; then |
7706 libname=`eval "\\$ECHO \"$libname_spec\""` | 6563 libname=`eval "\\$ECHO \"$libname_spec\""` |
7707 deplib_matches=`eval "\\$ECHO \"$library_names_spec\""` | 6564 deplib_matches=`eval "\\$ECHO \"$library_names_spec\""` |
7708 set dummy $deplib_matches; shift | 6565 set dummy $deplib_matches; shift |
7709 deplib_match=$1 | 6566 deplib_match=$1 |
7710 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then | 6567 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then |
7711 func_append newdeplibs " $i" | 6568 newdeplibs="$newdeplibs $i" |
7712 else | 6569 else |
7713 droppeddeps=yes | 6570 droppeddeps=yes |
7714 echo | 6571 $ECHO |
7715 $ECHO "*** Warning: dynamic linker does not accept needed library $i." | 6572 $ECHO "*** Warning: dynamic linker does not accept needed library $i." |
7716 echo "*** I have the capability to make that library automatically link in when" | 6573 $ECHO "*** I have the capability to make that library automatically link in when" |
7717 echo "*** you link to this library. But I can only do this if you have a" | 6574 $ECHO "*** you link to this library. But I can only do this if you have a" |
7718 echo "*** shared version of the library, which I believe you do not have" | 6575 $ECHO "*** shared version of the library, which I believe you do not have" |
7719 echo "*** because a test_compile did reveal that the linker did not use it for" | 6576 $ECHO "*** because a test_compile did reveal that the linker did not use it for" |
7720 echo "*** its dynamic dependency list that programs get resolved with at runtime." | 6577 $ECHO "*** its dynamic dependency list that programs get resolved with at runtime." |
7721 fi | 6578 fi |
7722 fi | 6579 fi |
7723 ;; | 6580 ;; |
7724 *) | 6581 *) |
7725 func_append newdeplibs " $i" | 6582 newdeplibs="$newdeplibs $i" |
7726 ;; | 6583 ;; |
7727 esac | 6584 esac |
7728 done | 6585 done |
7729 else | 6586 else |
7730 # Error occurred in the first compile. Let's try to salvage | 6587 # Error occurred in the first compile. Let's try to salvage |
7738 if $LTCC $LTCFLAGS -o conftest conftest.c $i; then | 6595 if $LTCC $LTCFLAGS -o conftest conftest.c $i; then |
7739 ldd_output=`ldd conftest` | 6596 ldd_output=`ldd conftest` |
7740 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then | 6597 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then |
7741 case " $predeps $postdeps " in | 6598 case " $predeps $postdeps " in |
7742 *" $i "*) | 6599 *" $i "*) |
7743 func_append newdeplibs " $i" | 6600 newdeplibs="$newdeplibs $i" |
7744 i="" | 6601 i="" |
7745 ;; | 6602 ;; |
7746 esac | 6603 esac |
7747 fi | 6604 fi |
7748 if test -n "$i" ; then | 6605 if test -n "$i" ; then |
7749 libname=`eval "\\$ECHO \"$libname_spec\""` | 6606 libname=`eval "\\$ECHO \"$libname_spec\""` |
7750 deplib_matches=`eval "\\$ECHO \"$library_names_spec\""` | 6607 deplib_matches=`eval "\\$ECHO \"$library_names_spec\""` |
7751 set dummy $deplib_matches; shift | 6608 set dummy $deplib_matches; shift |
7752 deplib_match=$1 | 6609 deplib_match=$1 |
7753 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then | 6610 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then |
7754 func_append newdeplibs " $i" | 6611 newdeplibs="$newdeplibs $i" |
7755 else | 6612 else |
7756 droppeddeps=yes | 6613 droppeddeps=yes |
7757 echo | 6614 $ECHO |
7758 $ECHO "*** Warning: dynamic linker does not accept needed library $i." | 6615 $ECHO "*** Warning: dynamic linker does not accept needed library $i." |
7759 echo "*** I have the capability to make that library automatically link in when" | 6616 $ECHO "*** I have the capability to make that library automatically link in when" |
7760 echo "*** you link to this library. But I can only do this if you have a" | 6617 $ECHO "*** you link to this library. But I can only do this if you have a" |
7761 echo "*** shared version of the library, which you do not appear to have" | 6618 $ECHO "*** shared version of the library, which you do not appear to have" |
7762 echo "*** because a test_compile did reveal that the linker did not use this one" | 6619 $ECHO "*** because a test_compile did reveal that the linker did not use this one" |
7763 echo "*** as a dynamic dependency that programs can get resolved with at runtime." | 6620 $ECHO "*** as a dynamic dependency that programs can get resolved with at runtime." |
7764 fi | 6621 fi |
7765 fi | 6622 fi |
7766 else | 6623 else |
7767 droppeddeps=yes | 6624 droppeddeps=yes |
7768 echo | 6625 $ECHO |
7769 $ECHO "*** Warning! Library $i is needed by this library but I was not able to" | 6626 $ECHO "*** Warning! Library $i is needed by this library but I was not able to" |
7770 echo "*** make it link in! You will probably need to install it or some" | 6627 $ECHO "*** make it link in! You will probably need to install it or some" |
7771 echo "*** library that it depends on before this library will be fully" | 6628 $ECHO "*** library that it depends on before this library will be fully" |
7772 echo "*** functional. Installing it before continuing would be even better." | 6629 $ECHO "*** functional. Installing it before continuing would be even better." |
7773 fi | 6630 fi |
7774 ;; | 6631 ;; |
7775 *) | 6632 *) |
7776 func_append newdeplibs " $i" | 6633 newdeplibs="$newdeplibs $i" |
7777 ;; | 6634 ;; |
7778 esac | 6635 esac |
7779 done | 6636 done |
7780 fi | 6637 fi |
7781 ;; | 6638 ;; |
7788 func_stripname -l '' "$a_deplib" | 6645 func_stripname -l '' "$a_deplib" |
7789 name=$func_stripname_result | 6646 name=$func_stripname_result |
7790 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then | 6647 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then |
7791 case " $predeps $postdeps " in | 6648 case " $predeps $postdeps " in |
7792 *" $a_deplib "*) | 6649 *" $a_deplib "*) |
7793 func_append newdeplibs " $a_deplib" | 6650 newdeplibs="$newdeplibs $a_deplib" |
7794 a_deplib="" | 6651 a_deplib="" |
7795 ;; | 6652 ;; |
7796 esac | 6653 esac |
7797 fi | 6654 fi |
7798 if test -n "$a_deplib" ; then | 6655 if test -n "$a_deplib" ; then |
7799 libname=`eval "\\$ECHO \"$libname_spec\""` | 6656 libname=`eval "\\$ECHO \"$libname_spec\""` |
7800 if test -n "$file_magic_glob"; then | |
7801 libnameglob=`func_echo_all "$libname" | $SED -e $file_magic_glob` | |
7802 else | |
7803 libnameglob=$libname | |
7804 fi | |
7805 test "$want_nocaseglob" = yes && nocaseglob=`shopt -p nocaseglob` | |
7806 for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do | 6657 for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do |
7807 if test "$want_nocaseglob" = yes; then | 6658 potential_libs=`ls $i/$libname[.-]* 2>/dev/null` |
7808 shopt -s nocaseglob | |
7809 potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null` | |
7810 $nocaseglob | |
7811 else | |
7812 potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null` | |
7813 fi | |
7814 for potent_lib in $potential_libs; do | 6659 for potent_lib in $potential_libs; do |
7815 # Follow soft links. | 6660 # Follow soft links. |
7816 if ls -lLd "$potent_lib" 2>/dev/null | | 6661 if ls -lLd "$potent_lib" 2>/dev/null | |
7817 $GREP " -> " >/dev/null; then | 6662 $GREP " -> " >/dev/null; then |
7818 continue | 6663 continue |
7825 potlib="$potent_lib" | 6670 potlib="$potent_lib" |
7826 while test -h "$potlib" 2>/dev/null; do | 6671 while test -h "$potlib" 2>/dev/null; do |
7827 potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` | 6672 potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` |
7828 case $potliblink in | 6673 case $potliblink in |
7829 [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; | 6674 [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; |
7830 *) potlib=`$ECHO "$potlib" | $SED 's,[^/]*$,,'`"$potliblink";; | 6675 *) potlib=`$ECHO "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";; |
7831 esac | 6676 esac |
7832 done | 6677 done |
7833 if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | | 6678 if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | |
7834 $SED -e 10q | | 6679 $SED -e 10q | |
7835 $EGREP "$file_magic_regex" > /dev/null; then | 6680 $EGREP "$file_magic_regex" > /dev/null; then |
7836 func_append newdeplibs " $a_deplib" | 6681 newdeplibs="$newdeplibs $a_deplib" |
7837 a_deplib="" | 6682 a_deplib="" |
7838 break 2 | 6683 break 2 |
7839 fi | 6684 fi |
7840 done | 6685 done |
7841 done | 6686 done |
7842 fi | 6687 fi |
7843 if test -n "$a_deplib" ; then | 6688 if test -n "$a_deplib" ; then |
7844 droppeddeps=yes | 6689 droppeddeps=yes |
7845 echo | 6690 $ECHO |
7846 $ECHO "*** Warning: linker path does not have real file for library $a_deplib." | 6691 $ECHO "*** Warning: linker path does not have real file for library $a_deplib." |
7847 echo "*** I have the capability to make that library automatically link in when" | 6692 $ECHO "*** I have the capability to make that library automatically link in when" |
7848 echo "*** you link to this library. But I can only do this if you have a" | 6693 $ECHO "*** you link to this library. But I can only do this if you have a" |
7849 echo "*** shared version of the library, which you do not appear to have" | 6694 $ECHO "*** shared version of the library, which you do not appear to have" |
7850 echo "*** because I did check the linker path looking for a file starting" | 6695 $ECHO "*** because I did check the linker path looking for a file starting" |
7851 if test -z "$potlib" ; then | 6696 if test -z "$potlib" ; then |
7852 $ECHO "*** with $libname but no candidates were found. (...for file magic test)" | 6697 $ECHO "*** with $libname but no candidates were found. (...for file magic test)" |
7853 else | 6698 else |
7854 $ECHO "*** with $libname and none of the candidates passed a file format test" | 6699 $ECHO "*** with $libname and none of the candidates passed a file format test" |
7855 $ECHO "*** using a file magic. Last file checked: $potlib" | 6700 $ECHO "*** using a file magic. Last file checked: $potlib" |
7856 fi | 6701 fi |
7857 fi | 6702 fi |
7858 ;; | 6703 ;; |
7859 *) | 6704 *) |
7860 # Add a -L argument. | 6705 # Add a -L argument. |
7861 func_append newdeplibs " $a_deplib" | 6706 newdeplibs="$newdeplibs $a_deplib" |
7862 ;; | 6707 ;; |
7863 esac | 6708 esac |
7864 done # Gone through all deplibs. | 6709 done # Gone through all deplibs. |
7865 ;; | 6710 ;; |
7866 match_pattern*) | 6711 match_pattern*) |
7872 func_stripname -l '' "$a_deplib" | 6717 func_stripname -l '' "$a_deplib" |
7873 name=$func_stripname_result | 6718 name=$func_stripname_result |
7874 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then | 6719 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then |
7875 case " $predeps $postdeps " in | 6720 case " $predeps $postdeps " in |
7876 *" $a_deplib "*) | 6721 *" $a_deplib "*) |
7877 func_append newdeplibs " $a_deplib" | 6722 newdeplibs="$newdeplibs $a_deplib" |
7878 a_deplib="" | 6723 a_deplib="" |
7879 ;; | 6724 ;; |
7880 esac | 6725 esac |
7881 fi | 6726 fi |
7882 if test -n "$a_deplib" ; then | 6727 if test -n "$a_deplib" ; then |
7883 libname=`eval "\\$ECHO \"$libname_spec\""` | 6728 libname=`eval "\\$ECHO \"$libname_spec\""` |
7884 for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do | 6729 for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do |
7885 potential_libs=`ls $i/$libname[.-]* 2>/dev/null` | 6730 potential_libs=`ls $i/$libname[.-]* 2>/dev/null` |
7886 for potent_lib in $potential_libs; do | 6731 for potent_lib in $potential_libs; do |
7887 potlib="$potent_lib" # see symlink-check above in file_magic test | 6732 potlib="$potent_lib" # see symlink-check above in file_magic test |
7888 if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \ | 6733 if eval "\$ECHO \"X$potent_lib\"" 2>/dev/null | $Xsed -e 10q | \ |
7889 $EGREP "$match_pattern_regex" > /dev/null; then | 6734 $EGREP "$match_pattern_regex" > /dev/null; then |
7890 func_append newdeplibs " $a_deplib" | 6735 newdeplibs="$newdeplibs $a_deplib" |
7891 a_deplib="" | 6736 a_deplib="" |
7892 break 2 | 6737 break 2 |
7893 fi | 6738 fi |
7894 done | 6739 done |
7895 done | 6740 done |
7896 fi | 6741 fi |
7897 if test -n "$a_deplib" ; then | 6742 if test -n "$a_deplib" ; then |
7898 droppeddeps=yes | 6743 droppeddeps=yes |
7899 echo | 6744 $ECHO |
7900 $ECHO "*** Warning: linker path does not have real file for library $a_deplib." | 6745 $ECHO "*** Warning: linker path does not have real file for library $a_deplib." |
7901 echo "*** I have the capability to make that library automatically link in when" | 6746 $ECHO "*** I have the capability to make that library automatically link in when" |
7902 echo "*** you link to this library. But I can only do this if you have a" | 6747 $ECHO "*** you link to this library. But I can only do this if you have a" |
7903 echo "*** shared version of the library, which you do not appear to have" | 6748 $ECHO "*** shared version of the library, which you do not appear to have" |
7904 echo "*** because I did check the linker path looking for a file starting" | 6749 $ECHO "*** because I did check the linker path looking for a file starting" |
7905 if test -z "$potlib" ; then | 6750 if test -z "$potlib" ; then |
7906 $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)" | 6751 $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)" |
7907 else | 6752 else |
7908 $ECHO "*** with $libname and none of the candidates passed a file format test" | 6753 $ECHO "*** with $libname and none of the candidates passed a file format test" |
7909 $ECHO "*** using a regex pattern. Last file checked: $potlib" | 6754 $ECHO "*** using a regex pattern. Last file checked: $potlib" |
7910 fi | 6755 fi |
7911 fi | 6756 fi |
7912 ;; | 6757 ;; |
7913 *) | 6758 *) |
7914 # Add a -L argument. | 6759 # Add a -L argument. |
7915 func_append newdeplibs " $a_deplib" | 6760 newdeplibs="$newdeplibs $a_deplib" |
7916 ;; | 6761 ;; |
7917 esac | 6762 esac |
7918 done # Gone through all deplibs. | 6763 done # Gone through all deplibs. |
7919 ;; | 6764 ;; |
7920 none | unknown | *) | 6765 none | unknown | *) |
7921 newdeplibs="" | 6766 newdeplibs="" |
7922 tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'` | 6767 tmp_deplibs=`$ECHO "X $deplibs" | $Xsed \ |
6768 -e 's/ -lc$//' -e 's/ -[LR][^ ]*//g'` | |
7923 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then | 6769 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then |
7924 for i in $predeps $postdeps ; do | 6770 for i in $predeps $postdeps ; do |
7925 # can't use Xsed below, because $i might contain '/' | 6771 # can't use Xsed below, because $i might contain '/' |
7926 tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s,$i,,"` | 6772 tmp_deplibs=`$ECHO "X $tmp_deplibs" | $Xsed -e "s,$i,,"` |
7927 done | 6773 done |
7928 fi | 6774 fi |
7929 case $tmp_deplibs in | 6775 if $ECHO "X $tmp_deplibs" | $Xsed -e 's/[ ]//g' | |
7930 *[!\ \ ]*) | 6776 $GREP . >/dev/null; then |
7931 echo | 6777 $ECHO |
7932 if test "X$deplibs_check_method" = "Xnone"; then | 6778 if test "X$deplibs_check_method" = "Xnone"; then |
7933 echo "*** Warning: inter-library dependencies are not supported in this platform." | 6779 $ECHO "*** Warning: inter-library dependencies are not supported in this platform." |
7934 else | 6780 else |
7935 echo "*** Warning: inter-library dependencies are not known to be supported." | 6781 $ECHO "*** Warning: inter-library dependencies are not known to be supported." |
7936 fi | 6782 fi |
7937 echo "*** All declared inter-library dependencies are being dropped." | 6783 $ECHO "*** All declared inter-library dependencies are being dropped." |
7938 droppeddeps=yes | 6784 droppeddeps=yes |
7939 ;; | 6785 fi |
7940 esac | |
7941 ;; | 6786 ;; |
7942 esac | 6787 esac |
7943 versuffix=$versuffix_save | 6788 versuffix=$versuffix_save |
7944 major=$major_save | 6789 major=$major_save |
7945 release=$release_save | 6790 release=$release_save |
7947 name=$name_save | 6792 name=$name_save |
7948 | 6793 |
7949 case $host in | 6794 case $host in |
7950 *-*-rhapsody* | *-*-darwin1.[012]) | 6795 *-*-rhapsody* | *-*-darwin1.[012]) |
7951 # On Rhapsody replace the C library with the System framework | 6796 # On Rhapsody replace the C library with the System framework |
7952 newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'` | 6797 newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's/ -lc / System.ltframework /'` |
7953 ;; | 6798 ;; |
7954 esac | 6799 esac |
7955 | 6800 |
7956 if test "$droppeddeps" = yes; then | 6801 if test "$droppeddeps" = yes; then |
7957 if test "$module" = yes; then | 6802 if test "$module" = yes; then |
7958 echo | 6803 $ECHO |
7959 echo "*** Warning: libtool could not satisfy all declared inter-library" | 6804 $ECHO "*** Warning: libtool could not satisfy all declared inter-library" |
7960 $ECHO "*** dependencies of module $libname. Therefore, libtool will create" | 6805 $ECHO "*** dependencies of module $libname. Therefore, libtool will create" |
7961 echo "*** a static module, that should work as long as the dlopening" | 6806 $ECHO "*** a static module, that should work as long as the dlopening" |
7962 echo "*** application is linked with the -dlopen flag." | 6807 $ECHO "*** application is linked with the -dlopen flag." |
7963 if test -z "$global_symbol_pipe"; then | 6808 if test -z "$global_symbol_pipe"; then |
7964 echo | 6809 $ECHO |
7965 echo "*** However, this would only work if libtool was able to extract symbol" | 6810 $ECHO "*** However, this would only work if libtool was able to extract symbol" |
7966 echo "*** lists from a program, using \`nm' or equivalent, but libtool could" | 6811 $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could" |
7967 echo "*** not find such a program. So, this module is probably useless." | 6812 $ECHO "*** not find such a program. So, this module is probably useless." |
7968 echo "*** \`nm' from GNU binutils and a full rebuild may help." | 6813 $ECHO "*** \`nm' from GNU binutils and a full rebuild may help." |
7969 fi | 6814 fi |
7970 if test "$build_old_libs" = no; then | 6815 if test "$build_old_libs" = no; then |
7971 oldlibs="$output_objdir/$libname.$libext" | 6816 oldlibs="$output_objdir/$libname.$libext" |
7972 build_libtool_libs=module | 6817 build_libtool_libs=module |
7973 build_old_libs=yes | 6818 build_old_libs=yes |
7974 else | 6819 else |
7975 build_libtool_libs=no | 6820 build_libtool_libs=no |
7976 fi | 6821 fi |
7977 else | 6822 else |
7978 echo "*** The inter-library dependencies that have been dropped here will be" | 6823 $ECHO "*** The inter-library dependencies that have been dropped here will be" |
7979 echo "*** automatically added whenever a program is linked with this library" | 6824 $ECHO "*** automatically added whenever a program is linked with this library" |
7980 echo "*** or is declared to -dlopen it." | 6825 $ECHO "*** or is declared to -dlopen it." |
7981 | 6826 |
7982 if test "$allow_undefined" = no; then | 6827 if test "$allow_undefined" = no; then |
7983 echo | 6828 $ECHO |
7984 echo "*** Since this library must not contain undefined symbols," | 6829 $ECHO "*** Since this library must not contain undefined symbols," |
7985 echo "*** because either the platform does not support them or" | 6830 $ECHO "*** because either the platform does not support them or" |
7986 echo "*** it was explicitly requested with -no-undefined," | 6831 $ECHO "*** it was explicitly requested with -no-undefined," |
7987 echo "*** libtool will only create a static version of it." | 6832 $ECHO "*** libtool will only create a static version of it." |
7988 if test "$build_old_libs" = no; then | 6833 if test "$build_old_libs" = no; then |
7989 oldlibs="$output_objdir/$libname.$libext" | 6834 oldlibs="$output_objdir/$libname.$libext" |
7990 build_libtool_libs=module | 6835 build_libtool_libs=module |
7991 build_old_libs=yes | 6836 build_old_libs=yes |
7992 else | 6837 else |
7999 deplibs=$newdeplibs | 6844 deplibs=$newdeplibs |
8000 fi | 6845 fi |
8001 # Time to change all our "foo.ltframework" stuff back to "-framework foo" | 6846 # Time to change all our "foo.ltframework" stuff back to "-framework foo" |
8002 case $host in | 6847 case $host in |
8003 *-*-darwin*) | 6848 *-*-darwin*) |
8004 newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` | 6849 newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` |
8005 new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` | 6850 new_inherited_linker_flags=`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` |
8006 deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` | 6851 deplibs=`$ECHO "X $deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` |
8007 ;; | 6852 ;; |
8008 esac | 6853 esac |
8009 | 6854 |
8010 # move library search paths that coincide with paths to not yet | 6855 # move library search paths that coincide with paths to not yet |
8011 # installed libraries to the beginning of the library search list | 6856 # installed libraries to the beginning of the library search list |
8014 case " $new_libs " in | 6859 case " $new_libs " in |
8015 *" -L$path/$objdir "*) ;; | 6860 *" -L$path/$objdir "*) ;; |
8016 *) | 6861 *) |
8017 case " $deplibs " in | 6862 case " $deplibs " in |
8018 *" -L$path/$objdir "*) | 6863 *" -L$path/$objdir "*) |
8019 func_append new_libs " -L$path/$objdir" ;; | 6864 new_libs="$new_libs -L$path/$objdir" ;; |
8020 esac | 6865 esac |
8021 ;; | 6866 ;; |
8022 esac | 6867 esac |
8023 done | 6868 done |
8024 for deplib in $deplibs; do | 6869 for deplib in $deplibs; do |
8025 case $deplib in | 6870 case $deplib in |
8026 -L*) | 6871 -L*) |
8027 case " $new_libs " in | 6872 case " $new_libs " in |
8028 *" $deplib "*) ;; | 6873 *" $deplib "*) ;; |
8029 *) func_append new_libs " $deplib" ;; | 6874 *) new_libs="$new_libs $deplib" ;; |
8030 esac | 6875 esac |
8031 ;; | 6876 ;; |
8032 *) func_append new_libs " $deplib" ;; | 6877 *) new_libs="$new_libs $deplib" ;; |
8033 esac | 6878 esac |
8034 done | 6879 done |
8035 deplibs="$new_libs" | 6880 deplibs="$new_libs" |
8036 | 6881 |
8037 # All the library-specific variables (install_libdir is set above). | 6882 # All the library-specific variables (install_libdir is set above). |
8039 old_library= | 6884 old_library= |
8040 dlname= | 6885 dlname= |
8041 | 6886 |
8042 # Test again, we may have decided not to build it any more | 6887 # Test again, we may have decided not to build it any more |
8043 if test "$build_libtool_libs" = yes; then | 6888 if test "$build_libtool_libs" = yes; then |
8044 # Remove ${wl} instances when linking with ld. | |
8045 # FIXME: should test the right _cmds variable. | |
8046 case $archive_cmds in | |
8047 *\$LD\ *) wl= ;; | |
8048 esac | |
8049 if test "$hardcode_into_libs" = yes; then | 6889 if test "$hardcode_into_libs" = yes; then |
8050 # Hardcode the library paths | 6890 # Hardcode the library paths |
8051 hardcode_libdirs= | 6891 hardcode_libdirs= |
8052 dep_rpath= | 6892 dep_rpath= |
8053 rpath="$finalize_rpath" | 6893 rpath="$finalize_rpath" |
8054 test "$opt_mode" != relink && rpath="$compile_rpath$rpath" | 6894 test "$mode" != relink && rpath="$compile_rpath$rpath" |
8055 for libdir in $rpath; do | 6895 for libdir in $rpath; do |
8056 if test -n "$hardcode_libdir_flag_spec"; then | 6896 if test -n "$hardcode_libdir_flag_spec"; then |
8057 if test -n "$hardcode_libdir_separator"; then | 6897 if test -n "$hardcode_libdir_separator"; then |
8058 func_replace_sysroot "$libdir" | |
8059 libdir=$func_replace_sysroot_result | |
8060 if test -z "$hardcode_libdirs"; then | 6898 if test -z "$hardcode_libdirs"; then |
8061 hardcode_libdirs="$libdir" | 6899 hardcode_libdirs="$libdir" |
8062 else | 6900 else |
8063 # Just accumulate the unique libdirs. | 6901 # Just accumulate the unique libdirs. |
8064 case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in | 6902 case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in |
8065 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) | 6903 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) |
8066 ;; | 6904 ;; |
8067 *) | 6905 *) |
8068 func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" | 6906 hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" |
8069 ;; | 6907 ;; |
8070 esac | 6908 esac |
8071 fi | 6909 fi |
8072 else | 6910 else |
8073 eval flag=\"$hardcode_libdir_flag_spec\" | 6911 eval flag=\"$hardcode_libdir_flag_spec\" |
8074 func_append dep_rpath " $flag" | 6912 dep_rpath="$dep_rpath $flag" |
8075 fi | 6913 fi |
8076 elif test -n "$runpath_var"; then | 6914 elif test -n "$runpath_var"; then |
8077 case "$perm_rpath " in | 6915 case "$perm_rpath " in |
8078 *" $libdir "*) ;; | 6916 *" $libdir "*) ;; |
8079 *) func_append perm_rpath " $libdir" ;; | 6917 *) perm_rpath="$perm_rpath $libdir" ;; |
8080 esac | 6918 esac |
8081 fi | 6919 fi |
8082 done | 6920 done |
8083 # Substitute the hardcoded libdirs into the rpath. | 6921 # Substitute the hardcoded libdirs into the rpath. |
8084 if test -n "$hardcode_libdir_separator" && | 6922 if test -n "$hardcode_libdir_separator" && |
8085 test -n "$hardcode_libdirs"; then | 6923 test -n "$hardcode_libdirs"; then |
8086 libdir="$hardcode_libdirs" | 6924 libdir="$hardcode_libdirs" |
8087 eval "dep_rpath=\"$hardcode_libdir_flag_spec\"" | 6925 if test -n "$hardcode_libdir_flag_spec_ld"; then |
6926 eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" | |
6927 else | |
6928 eval dep_rpath=\"$hardcode_libdir_flag_spec\" | |
6929 fi | |
8088 fi | 6930 fi |
8089 if test -n "$runpath_var" && test -n "$perm_rpath"; then | 6931 if test -n "$runpath_var" && test -n "$perm_rpath"; then |
8090 # We should set the runpath_var. | 6932 # We should set the runpath_var. |
8091 rpath= | 6933 rpath= |
8092 for dir in $perm_rpath; do | 6934 for dir in $perm_rpath; do |
8093 func_append rpath "$dir:" | 6935 rpath="$rpath$dir:" |
8094 done | 6936 done |
8095 eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" | 6937 eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" |
8096 fi | 6938 fi |
8097 test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" | 6939 test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" |
8098 fi | 6940 fi |
8099 | 6941 |
8100 shlibpath="$finalize_shlibpath" | 6942 shlibpath="$finalize_shlibpath" |
8101 test "$opt_mode" != relink && shlibpath="$compile_shlibpath$shlibpath" | 6943 test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath" |
8102 if test -n "$shlibpath"; then | 6944 if test -n "$shlibpath"; then |
8103 eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" | 6945 eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" |
8104 fi | 6946 fi |
8105 | 6947 |
8106 # Get the real and link names of the library. | 6948 # Get the real and link names of the library. |
8122 | 6964 |
8123 lib="$output_objdir/$realname" | 6965 lib="$output_objdir/$realname" |
8124 linknames= | 6966 linknames= |
8125 for link | 6967 for link |
8126 do | 6968 do |
8127 func_append linknames " $link" | 6969 linknames="$linknames $link" |
8128 done | 6970 done |
8129 | 6971 |
8130 # Use standard objects if they are pic | 6972 # Use standard objects if they are pic |
8131 test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP` | 6973 test -z "$pic_flag" && libobjs=`$ECHO "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` |
8132 test "X$libobjs" = "X " && libobjs= | 6974 test "X$libobjs" = "X " && libobjs= |
8133 | 6975 |
8134 delfiles= | 6976 delfiles= |
8135 if test -n "$export_symbols" && test -n "$include_expsyms"; then | 6977 if test -n "$export_symbols" && test -n "$include_expsyms"; then |
8136 $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" | 6978 $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" |
8137 export_symbols="$output_objdir/$libname.uexp" | 6979 export_symbols="$output_objdir/$libname.uexp" |
8138 func_append delfiles " $export_symbols" | 6980 delfiles="$delfiles $export_symbols" |
8139 fi | 6981 fi |
8140 | 6982 |
8141 orig_export_symbols= | 6983 orig_export_symbols= |
8142 case $host_os in | 6984 case $host_os in |
8143 cygwin* | mingw* | cegcc*) | 6985 cygwin* | mingw* | cegcc*) |
8164 func_verbose "generating symbol list for \`$libname.la'" | 7006 func_verbose "generating symbol list for \`$libname.la'" |
8165 export_symbols="$output_objdir/$libname.exp" | 7007 export_symbols="$output_objdir/$libname.exp" |
8166 $opt_dry_run || $RM $export_symbols | 7008 $opt_dry_run || $RM $export_symbols |
8167 cmds=$export_symbols_cmds | 7009 cmds=$export_symbols_cmds |
8168 save_ifs="$IFS"; IFS='~' | 7010 save_ifs="$IFS"; IFS='~' |
8169 for cmd1 in $cmds; do | 7011 for cmd in $cmds; do |
8170 IFS="$save_ifs" | 7012 IFS="$save_ifs" |
8171 # Take the normal branch if the nm_file_list_spec branch | 7013 eval cmd=\"$cmd\" |
8172 # doesn't work or if tool conversion is not needed. | 7014 func_len " $cmd" |
8173 case $nm_file_list_spec~$to_tool_file_cmd in | 7015 len=$func_len_result |
8174 *~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*) | 7016 if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then |
8175 try_normal_branch=yes | |
8176 eval cmd=\"$cmd1\" | |
8177 func_len " $cmd" | |
8178 len=$func_len_result | |
8179 ;; | |
8180 *) | |
8181 try_normal_branch=no | |
8182 ;; | |
8183 esac | |
8184 if test "$try_normal_branch" = yes \ | |
8185 && { test "$len" -lt "$max_cmd_len" \ | |
8186 || test "$max_cmd_len" -le -1; } | |
8187 then | |
8188 func_show_eval "$cmd" 'exit $?' | 7017 func_show_eval "$cmd" 'exit $?' |
8189 skipped_export=false | |
8190 elif test -n "$nm_file_list_spec"; then | |
8191 func_basename "$output" | |
8192 output_la=$func_basename_result | |
8193 save_libobjs=$libobjs | |
8194 save_output=$output | |
8195 output=${output_objdir}/${output_la}.nm | |
8196 func_to_tool_file "$output" | |
8197 libobjs=$nm_file_list_spec$func_to_tool_file_result | |
8198 func_append delfiles " $output" | |
8199 func_verbose "creating $NM input file list: $output" | |
8200 for obj in $save_libobjs; do | |
8201 func_to_tool_file "$obj" | |
8202 $ECHO "$func_to_tool_file_result" | |
8203 done > "$output" | |
8204 eval cmd=\"$cmd1\" | |
8205 func_show_eval "$cmd" 'exit $?' | |
8206 output=$save_output | |
8207 libobjs=$save_libobjs | |
8208 skipped_export=false | 7018 skipped_export=false |
8209 else | 7019 else |
8210 # The command line is too long to execute in one step. | 7020 # The command line is too long to execute in one step. |
8211 func_verbose "using reloadable object file for export list..." | 7021 func_verbose "using reloadable object file for export list..." |
8212 skipped_export=: | 7022 skipped_export=: |
8224 fi | 7034 fi |
8225 | 7035 |
8226 if test -n "$export_symbols" && test -n "$include_expsyms"; then | 7036 if test -n "$export_symbols" && test -n "$include_expsyms"; then |
8227 tmp_export_symbols="$export_symbols" | 7037 tmp_export_symbols="$export_symbols" |
8228 test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" | 7038 test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" |
8229 $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' | 7039 $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"' |
8230 fi | 7040 fi |
8231 | 7041 |
8232 if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then | 7042 if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then |
8233 # The given exports_symbols file has to be filtered, so filter it. | 7043 # The given exports_symbols file has to be filtered, so filter it. |
8234 func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" | 7044 func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" |
8236 # 's' commands which not all seds can handle. GNU sed should be fine | 7046 # 's' commands which not all seds can handle. GNU sed should be fine |
8237 # though. Also, the filter scales superlinearly with the number of | 7047 # though. Also, the filter scales superlinearly with the number of |
8238 # global variables. join(1) would be nice here, but unfortunately | 7048 # global variables. join(1) would be nice here, but unfortunately |
8239 # isn't a blessed tool. | 7049 # isn't a blessed tool. |
8240 $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter | 7050 $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter |
8241 func_append delfiles " $export_symbols $output_objdir/$libname.filter" | 7051 delfiles="$delfiles $export_symbols $output_objdir/$libname.filter" |
8242 export_symbols=$output_objdir/$libname.def | 7052 export_symbols=$output_objdir/$libname.def |
8243 $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols | 7053 $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols |
8244 fi | 7054 fi |
8245 | 7055 |
8246 tmp_deplibs= | 7056 tmp_deplibs= |
8247 for test_deplib in $deplibs; do | 7057 for test_deplib in $deplibs; do |
8248 case " $convenience " in | 7058 case " $convenience " in |
8249 *" $test_deplib "*) ;; | 7059 *" $test_deplib "*) ;; |
8250 *) | 7060 *) |
8251 func_append tmp_deplibs " $test_deplib" | 7061 tmp_deplibs="$tmp_deplibs $test_deplib" |
8252 ;; | 7062 ;; |
8253 esac | 7063 esac |
8254 done | 7064 done |
8255 deplibs="$tmp_deplibs" | 7065 deplibs="$tmp_deplibs" |
8256 | 7066 |
8266 save_libobjs=$libobjs | 7076 save_libobjs=$libobjs |
8267 eval libobjs=\"\$libobjs $whole_archive_flag_spec\" | 7077 eval libobjs=\"\$libobjs $whole_archive_flag_spec\" |
8268 test "X$libobjs" = "X " && libobjs= | 7078 test "X$libobjs" = "X " && libobjs= |
8269 else | 7079 else |
8270 gentop="$output_objdir/${outputname}x" | 7080 gentop="$output_objdir/${outputname}x" |
8271 func_append generated " $gentop" | 7081 generated="$generated $gentop" |
8272 | 7082 |
8273 func_extract_archives $gentop $convenience | 7083 func_extract_archives $gentop $convenience |
8274 func_append libobjs " $func_extract_archives_result" | 7084 libobjs="$libobjs $func_extract_archives_result" |
8275 test "X$libobjs" = "X " && libobjs= | 7085 test "X$libobjs" = "X " && libobjs= |
8276 fi | 7086 fi |
8277 fi | 7087 fi |
8278 | 7088 |
8279 if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then | 7089 if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then |
8280 eval flag=\"$thread_safe_flag_spec\" | 7090 eval flag=\"$thread_safe_flag_spec\" |
8281 func_append linker_flags " $flag" | 7091 linker_flags="$linker_flags $flag" |
8282 fi | 7092 fi |
8283 | 7093 |
8284 # Make a backup of the uninstalled library when relinking | 7094 # Make a backup of the uninstalled library when relinking |
8285 if test "$opt_mode" = relink; then | 7095 if test "$mode" = relink; then |
8286 $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? | 7096 $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? |
8287 fi | 7097 fi |
8288 | 7098 |
8289 # Do each of the archive commands. | 7099 # Do each of the archive commands. |
8290 if test "$module" = yes && test -n "$module_cmds" ; then | 7100 if test "$module" = yes && test -n "$module_cmds" ; then |
8325 # the spec. | 7135 # the spec. |
8326 if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then | 7136 if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then |
8327 save_libobjs=$libobjs | 7137 save_libobjs=$libobjs |
8328 fi | 7138 fi |
8329 save_output=$output | 7139 save_output=$output |
8330 func_basename "$output" | 7140 output_la=`$ECHO "X$output" | $Xsed -e "$basename"` |
8331 output_la=$func_basename_result | |
8332 | 7141 |
8333 # Clear the reloadable object creation command queue and | 7142 # Clear the reloadable object creation command queue and |
8334 # initialize k to one. | 7143 # initialize k to one. |
8335 test_cmds= | 7144 test_cmds= |
8336 concat_cmds= | 7145 concat_cmds= |
8339 k=1 | 7148 k=1 |
8340 | 7149 |
8341 if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then | 7150 if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then |
8342 output=${output_objdir}/${output_la}.lnkscript | 7151 output=${output_objdir}/${output_la}.lnkscript |
8343 func_verbose "creating GNU ld script: $output" | 7152 func_verbose "creating GNU ld script: $output" |
8344 echo 'INPUT (' > $output | 7153 $ECHO 'INPUT (' > $output |
8345 for obj in $save_libobjs | 7154 for obj in $save_libobjs |
8346 do | 7155 do |
8347 func_to_tool_file "$obj" | 7156 $ECHO "$obj" >> $output |
8348 $ECHO "$func_to_tool_file_result" >> $output | |
8349 done | 7157 done |
8350 echo ')' >> $output | 7158 $ECHO ')' >> $output |
8351 func_append delfiles " $output" | 7159 delfiles="$delfiles $output" |
8352 func_to_tool_file "$output" | |
8353 output=$func_to_tool_file_result | |
8354 elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then | 7160 elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then |
8355 output=${output_objdir}/${output_la}.lnk | 7161 output=${output_objdir}/${output_la}.lnk |
8356 func_verbose "creating linker input file list: $output" | 7162 func_verbose "creating linker input file list: $output" |
8357 : > $output | 7163 : > $output |
8358 set x $save_libobjs | 7164 set x $save_libobjs |
8362 firstobj="$1 " | 7168 firstobj="$1 " |
8363 shift | 7169 shift |
8364 fi | 7170 fi |
8365 for obj | 7171 for obj |
8366 do | 7172 do |
8367 func_to_tool_file "$obj" | 7173 $ECHO "$obj" >> $output |
8368 $ECHO "$func_to_tool_file_result" >> $output | |
8369 done | 7174 done |
8370 func_append delfiles " $output" | 7175 delfiles="$delfiles $output" |
8371 func_to_tool_file "$output" | 7176 output=$firstobj\"$file_list_spec$output\" |
8372 output=$firstobj\"$file_list_spec$func_to_tool_file_result\" | |
8373 else | 7177 else |
8374 if test -n "$save_libobjs"; then | 7178 if test -n "$save_libobjs"; then |
8375 func_verbose "creating reloadable object files..." | 7179 func_verbose "creating reloadable object files..." |
8376 output=$output_objdir/$output_la-${k}.$objext | 7180 output=$output_objdir/$output_la-${k}.$objext |
8377 eval test_cmds=\"$reload_cmds\" | 7181 eval test_cmds=\"$reload_cmds\" |
8391 else | 7195 else |
8392 # The command $test_cmds is almost too long, add a | 7196 # The command $test_cmds is almost too long, add a |
8393 # command to the queue. | 7197 # command to the queue. |
8394 if test "$k" -eq 1 ; then | 7198 if test "$k" -eq 1 ; then |
8395 # The first file doesn't have a previous command to add. | 7199 # The first file doesn't have a previous command to add. |
8396 reload_objs=$objlist | 7200 eval concat_cmds=\"$reload_cmds $objlist $last_robj\" |
8397 eval concat_cmds=\"$reload_cmds\" | |
8398 else | 7201 else |
8399 # All subsequent reloadable object files will link in | 7202 # All subsequent reloadable object files will link in |
8400 # the last one created. | 7203 # the last one created. |
8401 reload_objs="$objlist $last_robj" | 7204 eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj~\$RM $last_robj\" |
8402 eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\" | |
8403 fi | 7205 fi |
8404 last_robj=$output_objdir/$output_la-${k}.$objext | 7206 last_robj=$output_objdir/$output_la-${k}.$objext |
8405 func_arith $k + 1 | 7207 func_arith $k + 1 |
8406 k=$func_arith_result | 7208 k=$func_arith_result |
8407 output=$output_objdir/$output_la-${k}.$objext | 7209 output=$output_objdir/$output_la-${k}.$objext |
8408 objlist=" $obj" | 7210 objlist=$obj |
8409 func_len " $last_robj" | 7211 func_len " $last_robj" |
8410 func_arith $len0 + $func_len_result | 7212 func_arith $len0 + $func_len_result |
8411 len=$func_arith_result | 7213 len=$func_arith_result |
8412 fi | 7214 fi |
8413 done | 7215 done |
8414 # Handle the remaining objects by creating one last | 7216 # Handle the remaining objects by creating one last |
8415 # reloadable object file. All subsequent reloadable object | 7217 # reloadable object file. All subsequent reloadable object |
8416 # files will link in the last one created. | 7218 # files will link in the last one created. |
8417 test -z "$concat_cmds" || concat_cmds=$concat_cmds~ | 7219 test -z "$concat_cmds" || concat_cmds=$concat_cmds~ |
8418 reload_objs="$objlist $last_robj" | 7220 eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\" |
8419 eval concat_cmds=\"\${concat_cmds}$reload_cmds\" | |
8420 if test -n "$last_robj"; then | 7221 if test -n "$last_robj"; then |
8421 eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\" | 7222 eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\" |
8422 fi | 7223 fi |
8423 func_append delfiles " $output" | 7224 delfiles="$delfiles $output" |
8424 | 7225 |
8425 else | 7226 else |
8426 output= | 7227 output= |
8427 fi | 7228 fi |
8428 | 7229 |
8452 } | 7253 } |
8453 $opt_dry_run || eval "$cmd" || { | 7254 $opt_dry_run || eval "$cmd" || { |
8454 lt_exit=$? | 7255 lt_exit=$? |
8455 | 7256 |
8456 # Restore the uninstalled library and exit | 7257 # Restore the uninstalled library and exit |
8457 if test "$opt_mode" = relink; then | 7258 if test "$mode" = relink; then |
8458 ( cd "$output_objdir" && \ | 7259 ( cd "$output_objdir" && \ |
8459 $RM "${realname}T" && \ | 7260 $RM "${realname}T" && \ |
8460 $MV "${realname}U" "$realname" ) | 7261 $MV "${realname}U" "$realname" ) |
8461 fi | 7262 fi |
8462 | 7263 |
8473 | 7274 |
8474 if ${skipped_export-false}; then | 7275 if ${skipped_export-false}; then |
8475 if test -n "$export_symbols" && test -n "$include_expsyms"; then | 7276 if test -n "$export_symbols" && test -n "$include_expsyms"; then |
8476 tmp_export_symbols="$export_symbols" | 7277 tmp_export_symbols="$export_symbols" |
8477 test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" | 7278 test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" |
8478 $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' | 7279 $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"' |
8479 fi | 7280 fi |
8480 | 7281 |
8481 if test -n "$orig_export_symbols"; then | 7282 if test -n "$orig_export_symbols"; then |
8482 # The given exports_symbols file has to be filtered, so filter it. | 7283 # The given exports_symbols file has to be filtered, so filter it. |
8483 func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" | 7284 func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" |
8485 # 's' commands which not all seds can handle. GNU sed should be fine | 7286 # 's' commands which not all seds can handle. GNU sed should be fine |
8486 # though. Also, the filter scales superlinearly with the number of | 7287 # though. Also, the filter scales superlinearly with the number of |
8487 # global variables. join(1) would be nice here, but unfortunately | 7288 # global variables. join(1) would be nice here, but unfortunately |
8488 # isn't a blessed tool. | 7289 # isn't a blessed tool. |
8489 $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter | 7290 $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter |
8490 func_append delfiles " $export_symbols $output_objdir/$libname.filter" | 7291 delfiles="$delfiles $export_symbols $output_objdir/$libname.filter" |
8491 export_symbols=$output_objdir/$libname.def | 7292 export_symbols=$output_objdir/$libname.def |
8492 $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols | 7293 $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols |
8493 fi | 7294 fi |
8494 fi | 7295 fi |
8495 | 7296 |
8526 fi | 7327 fi |
8527 | 7328 |
8528 # Add any objects from preloaded convenience libraries | 7329 # Add any objects from preloaded convenience libraries |
8529 if test -n "$dlprefiles"; then | 7330 if test -n "$dlprefiles"; then |
8530 gentop="$output_objdir/${outputname}x" | 7331 gentop="$output_objdir/${outputname}x" |
8531 func_append generated " $gentop" | 7332 generated="$generated $gentop" |
8532 | 7333 |
8533 func_extract_archives $gentop $dlprefiles | 7334 func_extract_archives $gentop $dlprefiles |
8534 func_append libobjs " $func_extract_archives_result" | 7335 libobjs="$libobjs $func_extract_archives_result" |
8535 test "X$libobjs" = "X " && libobjs= | 7336 test "X$libobjs" = "X " && libobjs= |
8536 fi | 7337 fi |
8537 | 7338 |
8538 save_ifs="$IFS"; IFS='~' | 7339 save_ifs="$IFS"; IFS='~' |
8539 for cmd in $cmds; do | 7340 for cmd in $cmds; do |
8545 } | 7346 } |
8546 $opt_dry_run || eval "$cmd" || { | 7347 $opt_dry_run || eval "$cmd" || { |
8547 lt_exit=$? | 7348 lt_exit=$? |
8548 | 7349 |
8549 # Restore the uninstalled library and exit | 7350 # Restore the uninstalled library and exit |
8550 if test "$opt_mode" = relink; then | 7351 if test "$mode" = relink; then |
8551 ( cd "$output_objdir" && \ | 7352 ( cd "$output_objdir" && \ |
8552 $RM "${realname}T" && \ | 7353 $RM "${realname}T" && \ |
8553 $MV "${realname}U" "$realname" ) | 7354 $MV "${realname}U" "$realname" ) |
8554 fi | 7355 fi |
8555 | 7356 |
8557 } | 7358 } |
8558 done | 7359 done |
8559 IFS="$save_ifs" | 7360 IFS="$save_ifs" |
8560 | 7361 |
8561 # Restore the uninstalled library and exit | 7362 # Restore the uninstalled library and exit |
8562 if test "$opt_mode" = relink; then | 7363 if test "$mode" = relink; then |
8563 $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? | 7364 $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? |
8564 | 7365 |
8565 if test -n "$convenience"; then | 7366 if test -n "$convenience"; then |
8566 if test -z "$whole_archive_flag_spec"; then | 7367 if test -z "$whole_archive_flag_spec"; then |
8567 func_show_eval '${RM}r "$gentop"' | 7368 func_show_eval '${RM}r "$gentop"' |
8638 wl= | 7439 wl= |
8639 | 7440 |
8640 if test -n "$convenience"; then | 7441 if test -n "$convenience"; then |
8641 if test -n "$whole_archive_flag_spec"; then | 7442 if test -n "$whole_archive_flag_spec"; then |
8642 eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" | 7443 eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" |
8643 reload_conv_objs=$reload_objs\ `$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'` | 7444 reload_conv_objs=$reload_objs\ `$ECHO "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'` |
8644 else | 7445 else |
8645 gentop="$output_objdir/${obj}x" | 7446 gentop="$output_objdir/${obj}x" |
8646 func_append generated " $gentop" | 7447 generated="$generated $gentop" |
8647 | 7448 |
8648 func_extract_archives $gentop $convenience | 7449 func_extract_archives $gentop $convenience |
8649 reload_conv_objs="$reload_objs $func_extract_archives_result" | 7450 reload_conv_objs="$reload_objs $func_extract_archives_result" |
8650 fi | 7451 fi |
8651 fi | 7452 fi |
8652 | 7453 |
8653 # If we're not building shared, we need to use non_pic_objs | |
8654 test "$build_libtool_libs" != yes && libobjs="$non_pic_objects" | |
8655 | |
8656 # Create the old-style object. | 7454 # Create the old-style object. |
8657 reload_objs="$objs$old_deplibs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; /\.lib$/d; $lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test | 7455 reload_objs="$objs$old_deplibs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test |
8658 | 7456 |
8659 output="$obj" | 7457 output="$obj" |
8660 func_execute_cmds "$reload_cmds" 'exit $?' | 7458 func_execute_cmds "$reload_cmds" 'exit $?' |
8661 | 7459 |
8662 # Exit if we aren't doing a library object file. | 7460 # Exit if we aren't doing a library object file. |
8712 func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support." | 7510 func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support." |
8713 | 7511 |
8714 case $host in | 7512 case $host in |
8715 *-*-rhapsody* | *-*-darwin1.[012]) | 7513 *-*-rhapsody* | *-*-darwin1.[012]) |
8716 # On Rhapsody replace the C library is the System framework | 7514 # On Rhapsody replace the C library is the System framework |
8717 compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'` | 7515 compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'` |
8718 finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'` | 7516 finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'` |
8719 ;; | 7517 ;; |
8720 esac | 7518 esac |
8721 | 7519 |
8722 case $host in | 7520 case $host in |
8723 *-*-darwin*) | 7521 *-*-darwin*) |
8724 # Don't allow lazy linking, it breaks C++ global constructors | 7522 # Don't allow lazy linking, it breaks C++ global constructors |
8725 # But is supposedly fixed on 10.4 or later (yay!). | 7523 # But is supposedly fixed on 10.4 or later (yay!). |
8726 if test "$tagname" = CXX ; then | 7524 if test "$tagname" = CXX ; then |
8727 case ${MACOSX_DEPLOYMENT_TARGET-10.0} in | 7525 case ${MACOSX_DEPLOYMENT_TARGET-10.0} in |
8728 10.[0123]) | 7526 10.[0123]) |
8729 func_append compile_command " ${wl}-bind_at_load" | 7527 compile_command="$compile_command ${wl}-bind_at_load" |
8730 func_append finalize_command " ${wl}-bind_at_load" | 7528 finalize_command="$finalize_command ${wl}-bind_at_load" |
8731 ;; | 7529 ;; |
8732 esac | 7530 esac |
8733 fi | 7531 fi |
8734 # Time to change all our "foo.ltframework" stuff back to "-framework foo" | 7532 # Time to change all our "foo.ltframework" stuff back to "-framework foo" |
8735 compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` | 7533 compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` |
8736 finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` | 7534 finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` |
8737 ;; | 7535 ;; |
8738 esac | 7536 esac |
8739 | 7537 |
8740 | 7538 |
8741 # move library search paths that coincide with paths to not yet | 7539 # move library search paths that coincide with paths to not yet |
8745 case " $new_libs " in | 7543 case " $new_libs " in |
8746 *" -L$path/$objdir "*) ;; | 7544 *" -L$path/$objdir "*) ;; |
8747 *) | 7545 *) |
8748 case " $compile_deplibs " in | 7546 case " $compile_deplibs " in |
8749 *" -L$path/$objdir "*) | 7547 *" -L$path/$objdir "*) |
8750 func_append new_libs " -L$path/$objdir" ;; | 7548 new_libs="$new_libs -L$path/$objdir" ;; |
8751 esac | 7549 esac |
8752 ;; | 7550 ;; |
8753 esac | 7551 esac |
8754 done | 7552 done |
8755 for deplib in $compile_deplibs; do | 7553 for deplib in $compile_deplibs; do |
8756 case $deplib in | 7554 case $deplib in |
8757 -L*) | 7555 -L*) |
8758 case " $new_libs " in | 7556 case " $new_libs " in |
8759 *" $deplib "*) ;; | 7557 *" $deplib "*) ;; |
8760 *) func_append new_libs " $deplib" ;; | 7558 *) new_libs="$new_libs $deplib" ;; |
8761 esac | 7559 esac |
8762 ;; | 7560 ;; |
8763 *) func_append new_libs " $deplib" ;; | 7561 *) new_libs="$new_libs $deplib" ;; |
8764 esac | 7562 esac |
8765 done | 7563 done |
8766 compile_deplibs="$new_libs" | 7564 compile_deplibs="$new_libs" |
8767 | 7565 |
8768 | 7566 |
8769 func_append compile_command " $compile_deplibs" | 7567 compile_command="$compile_command $compile_deplibs" |
8770 func_append finalize_command " $finalize_deplibs" | 7568 finalize_command="$finalize_command $finalize_deplibs" |
8771 | 7569 |
8772 if test -n "$rpath$xrpath"; then | 7570 if test -n "$rpath$xrpath"; then |
8773 # If the user specified any rpath flags, then add them. | 7571 # If the user specified any rpath flags, then add them. |
8774 for libdir in $rpath $xrpath; do | 7572 for libdir in $rpath $xrpath; do |
8775 # This is the magic to use -rpath. | 7573 # This is the magic to use -rpath. |
8776 case "$finalize_rpath " in | 7574 case "$finalize_rpath " in |
8777 *" $libdir "*) ;; | 7575 *" $libdir "*) ;; |
8778 *) func_append finalize_rpath " $libdir" ;; | 7576 *) finalize_rpath="$finalize_rpath $libdir" ;; |
8779 esac | 7577 esac |
8780 done | 7578 done |
8781 fi | 7579 fi |
8782 | 7580 |
8783 # Now hardcode the library paths | 7581 # Now hardcode the library paths |
8792 # Just accumulate the unique libdirs. | 7590 # Just accumulate the unique libdirs. |
8793 case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in | 7591 case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in |
8794 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) | 7592 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) |
8795 ;; | 7593 ;; |
8796 *) | 7594 *) |
8797 func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" | 7595 hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" |
8798 ;; | 7596 ;; |
8799 esac | 7597 esac |
8800 fi | 7598 fi |
8801 else | 7599 else |
8802 eval flag=\"$hardcode_libdir_flag_spec\" | 7600 eval flag=\"$hardcode_libdir_flag_spec\" |
8803 func_append rpath " $flag" | 7601 rpath="$rpath $flag" |
8804 fi | 7602 fi |
8805 elif test -n "$runpath_var"; then | 7603 elif test -n "$runpath_var"; then |
8806 case "$perm_rpath " in | 7604 case "$perm_rpath " in |
8807 *" $libdir "*) ;; | 7605 *" $libdir "*) ;; |
8808 *) func_append perm_rpath " $libdir" ;; | 7606 *) perm_rpath="$perm_rpath $libdir" ;; |
8809 esac | 7607 esac |
8810 fi | 7608 fi |
8811 case $host in | 7609 case $host in |
8812 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) | 7610 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) |
8813 testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'` | 7611 testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'` |
8814 case :$dllsearchpath: in | 7612 case :$dllsearchpath: in |
8815 *":$libdir:"*) ;; | 7613 *":$libdir:"*) ;; |
8816 ::) dllsearchpath=$libdir;; | 7614 ::) dllsearchpath=$libdir;; |
8817 *) func_append dllsearchpath ":$libdir";; | 7615 *) dllsearchpath="$dllsearchpath:$libdir";; |
8818 esac | 7616 esac |
8819 case :$dllsearchpath: in | 7617 case :$dllsearchpath: in |
8820 *":$testbindir:"*) ;; | 7618 *":$testbindir:"*) ;; |
8821 ::) dllsearchpath=$testbindir;; | 7619 ::) dllsearchpath=$testbindir;; |
8822 *) func_append dllsearchpath ":$testbindir";; | 7620 *) dllsearchpath="$dllsearchpath:$testbindir";; |
8823 esac | 7621 esac |
8824 ;; | 7622 ;; |
8825 esac | 7623 esac |
8826 done | 7624 done |
8827 # Substitute the hardcoded libdirs into the rpath. | 7625 # Substitute the hardcoded libdirs into the rpath. |
8843 # Just accumulate the unique libdirs. | 7641 # Just accumulate the unique libdirs. |
8844 case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in | 7642 case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in |
8845 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) | 7643 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) |
8846 ;; | 7644 ;; |
8847 *) | 7645 *) |
8848 func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" | 7646 hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" |
8849 ;; | 7647 ;; |
8850 esac | 7648 esac |
8851 fi | 7649 fi |
8852 else | 7650 else |
8853 eval flag=\"$hardcode_libdir_flag_spec\" | 7651 eval flag=\"$hardcode_libdir_flag_spec\" |
8854 func_append rpath " $flag" | 7652 rpath="$rpath $flag" |
8855 fi | 7653 fi |
8856 elif test -n "$runpath_var"; then | 7654 elif test -n "$runpath_var"; then |
8857 case "$finalize_perm_rpath " in | 7655 case "$finalize_perm_rpath " in |
8858 *" $libdir "*) ;; | 7656 *" $libdir "*) ;; |
8859 *) func_append finalize_perm_rpath " $libdir" ;; | 7657 *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;; |
8860 esac | 7658 esac |
8861 fi | 7659 fi |
8862 done | 7660 done |
8863 # Substitute the hardcoded libdirs into the rpath. | 7661 # Substitute the hardcoded libdirs into the rpath. |
8864 if test -n "$hardcode_libdir_separator" && | 7662 if test -n "$hardcode_libdir_separator" && |
8868 fi | 7666 fi |
8869 finalize_rpath="$rpath" | 7667 finalize_rpath="$rpath" |
8870 | 7668 |
8871 if test -n "$libobjs" && test "$build_old_libs" = yes; then | 7669 if test -n "$libobjs" && test "$build_old_libs" = yes; then |
8872 # Transform all the library objects into standard objects. | 7670 # Transform all the library objects into standard objects. |
8873 compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP` | 7671 compile_command=`$ECHO "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` |
8874 finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP` | 7672 finalize_command=`$ECHO "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` |
8875 fi | 7673 fi |
8876 | 7674 |
8877 func_generate_dlsyms "$outputname" "@PROGRAM@" "no" | 7675 func_generate_dlsyms "$outputname" "@PROGRAM@" "no" |
8878 | 7676 |
8879 # template prelinking step | 7677 # template prelinking step |
8881 func_execute_cmds "$prelink_cmds" 'exit $?' | 7679 func_execute_cmds "$prelink_cmds" 'exit $?' |
8882 fi | 7680 fi |
8883 | 7681 |
8884 wrappers_required=yes | 7682 wrappers_required=yes |
8885 case $host in | 7683 case $host in |
8886 *cegcc* | *mingw32ce*) | |
8887 # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway. | |
8888 wrappers_required=no | |
8889 ;; | |
8890 *cygwin* | *mingw* ) | 7684 *cygwin* | *mingw* ) |
8891 if test "$build_libtool_libs" != yes; then | 7685 if test "$build_libtool_libs" != yes; then |
8892 wrappers_required=no | 7686 wrappers_required=no |
8893 fi | 7687 fi |
7688 ;; | |
7689 *cegcc) | |
7690 # Disable wrappers for cegcc, we are cross compiling anyway. | |
7691 wrappers_required=no | |
8894 ;; | 7692 ;; |
8895 *) | 7693 *) |
8896 if test "$need_relink" = no || test "$build_libtool_libs" != yes; then | 7694 if test "$need_relink" = no || test "$build_libtool_libs" != yes; then |
8897 wrappers_required=no | 7695 wrappers_required=no |
8898 fi | 7696 fi |
8899 ;; | 7697 ;; |
8900 esac | 7698 esac |
8901 if test "$wrappers_required" = no; then | 7699 if test "$wrappers_required" = no; then |
8902 # Replace the output file specification. | 7700 # Replace the output file specification. |
8903 compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'` | 7701 compile_command=`$ECHO "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` |
8904 link_command="$compile_command$compile_rpath" | 7702 link_command="$compile_command$compile_rpath" |
8905 | 7703 |
8906 # We have no uninstalled library dependencies, so finalize right now. | 7704 # We have no uninstalled library dependencies, so finalize right now. |
8907 exit_status=0 | 7705 exit_status=0 |
8908 func_show_eval "$link_command" 'exit_status=$?' | 7706 func_show_eval "$link_command" 'exit_status=$?' |
8909 | |
8910 if test -n "$postlink_cmds"; then | |
8911 func_to_tool_file "$output" | |
8912 postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` | |
8913 func_execute_cmds "$postlink_cmds" 'exit $?' | |
8914 fi | |
8915 | 7707 |
8916 # Delete the generated files. | 7708 # Delete the generated files. |
8917 if test -f "$output_objdir/${outputname}S.${objext}"; then | 7709 if test -f "$output_objdir/${outputname}S.${objext}"; then |
8918 func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"' | 7710 func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"' |
8919 fi | 7711 fi |
8933 if test -n "$runpath_var"; then | 7725 if test -n "$runpath_var"; then |
8934 if test -n "$perm_rpath"; then | 7726 if test -n "$perm_rpath"; then |
8935 # We should set the runpath_var. | 7727 # We should set the runpath_var. |
8936 rpath= | 7728 rpath= |
8937 for dir in $perm_rpath; do | 7729 for dir in $perm_rpath; do |
8938 func_append rpath "$dir:" | 7730 rpath="$rpath$dir:" |
8939 done | 7731 done |
8940 compile_var="$runpath_var=\"$rpath\$$runpath_var\" " | 7732 compile_var="$runpath_var=\"$rpath\$$runpath_var\" " |
8941 fi | 7733 fi |
8942 if test -n "$finalize_perm_rpath"; then | 7734 if test -n "$finalize_perm_rpath"; then |
8943 # We should set the runpath_var. | 7735 # We should set the runpath_var. |
8944 rpath= | 7736 rpath= |
8945 for dir in $finalize_perm_rpath; do | 7737 for dir in $finalize_perm_rpath; do |
8946 func_append rpath "$dir:" | 7738 rpath="$rpath$dir:" |
8947 done | 7739 done |
8948 finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " | 7740 finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " |
8949 fi | 7741 fi |
8950 fi | 7742 fi |
8951 | 7743 |
8952 if test "$no_install" = yes; then | 7744 if test "$no_install" = yes; then |
8953 # We don't need to create a wrapper script. | 7745 # We don't need to create a wrapper script. |
8954 link_command="$compile_var$compile_command$compile_rpath" | 7746 link_command="$compile_var$compile_command$compile_rpath" |
8955 # Replace the output file specification. | 7747 # Replace the output file specification. |
8956 link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'` | 7748 link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` |
8957 # Delete the old output file. | 7749 # Delete the old output file. |
8958 $opt_dry_run || $RM $output | 7750 $opt_dry_run || $RM $output |
8959 # Link the executable and exit | 7751 # Link the executable and exit |
8960 func_show_eval "$link_command" 'exit $?' | 7752 func_show_eval "$link_command" 'exit $?' |
8961 | |
8962 if test -n "$postlink_cmds"; then | |
8963 func_to_tool_file "$output" | |
8964 postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` | |
8965 func_execute_cmds "$postlink_cmds" 'exit $?' | |
8966 fi | |
8967 | |
8968 exit $EXIT_SUCCESS | 7753 exit $EXIT_SUCCESS |
8969 fi | 7754 fi |
8970 | 7755 |
8971 if test "$hardcode_action" = relink; then | 7756 if test "$hardcode_action" = relink; then |
8972 # Fast installation is not supported | 7757 # Fast installation is not supported |
8977 func_warning "\`$output' will be relinked during installation" | 7762 func_warning "\`$output' will be relinked during installation" |
8978 else | 7763 else |
8979 if test "$fast_install" != no; then | 7764 if test "$fast_install" != no; then |
8980 link_command="$finalize_var$compile_command$finalize_rpath" | 7765 link_command="$finalize_var$compile_command$finalize_rpath" |
8981 if test "$fast_install" = yes; then | 7766 if test "$fast_install" = yes; then |
8982 relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'` | 7767 relink_command=`$ECHO "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'` |
8983 else | 7768 else |
8984 # fast_install is set to needless | 7769 # fast_install is set to needless |
8985 relink_command= | 7770 relink_command= |
8986 fi | 7771 fi |
8987 else | 7772 else |
8989 relink_command="$finalize_var$finalize_command$finalize_rpath" | 7774 relink_command="$finalize_var$finalize_command$finalize_rpath" |
8990 fi | 7775 fi |
8991 fi | 7776 fi |
8992 | 7777 |
8993 # Replace the output file specification. | 7778 # Replace the output file specification. |
8994 link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` | 7779 link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` |
8995 | 7780 |
8996 # Delete the old output files. | 7781 # Delete the old output files. |
8997 $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname | 7782 $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname |
8998 | 7783 |
8999 func_show_eval "$link_command" 'exit $?' | 7784 func_show_eval "$link_command" 'exit $?' |
9000 | |
9001 if test -n "$postlink_cmds"; then | |
9002 func_to_tool_file "$output_objdir/$outputname" | |
9003 postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` | |
9004 func_execute_cmds "$postlink_cmds" 'exit $?' | |
9005 fi | |
9006 | 7785 |
9007 # Now create the wrapper script. | 7786 # Now create the wrapper script. |
9008 func_verbose "creating $output" | 7787 func_verbose "creating $output" |
9009 | 7788 |
9010 # Quote the relink command for shipping. | 7789 # Quote the relink command for shipping. |
9019 func_quote_for_eval "$var_value" | 7798 func_quote_for_eval "$var_value" |
9020 relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" | 7799 relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" |
9021 fi | 7800 fi |
9022 done | 7801 done |
9023 relink_command="(cd `pwd`; $relink_command)" | 7802 relink_command="(cd `pwd`; $relink_command)" |
9024 relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` | 7803 relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"` |
7804 fi | |
7805 | |
7806 # Quote $ECHO for shipping. | |
7807 if test "X$ECHO" = "X$SHELL $progpath --fallback-echo"; then | |
7808 case $progpath in | |
7809 [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";; | |
7810 *) qecho="$SHELL `pwd`/$progpath --fallback-echo";; | |
7811 esac | |
7812 qecho=`$ECHO "X$qecho" | $Xsed -e "$sed_quote_subst"` | |
7813 else | |
7814 qecho=`$ECHO "X$ECHO" | $Xsed -e "$sed_quote_subst"` | |
9025 fi | 7815 fi |
9026 | 7816 |
9027 # Only actually do things if not in dry run mode. | 7817 # Only actually do things if not in dry run mode. |
9028 $opt_dry_run || { | 7818 $opt_dry_run || { |
9029 # win32 will think the script is a binary if it has | 7819 # win32 will think the script is a binary if it has |
9099 oldobjs="$libobjs_save" | 7889 oldobjs="$libobjs_save" |
9100 build_libtool_libs=no | 7890 build_libtool_libs=no |
9101 else | 7891 else |
9102 oldobjs="$old_deplibs $non_pic_objects" | 7892 oldobjs="$old_deplibs $non_pic_objects" |
9103 if test "$preload" = yes && test -f "$symfileobj"; then | 7893 if test "$preload" = yes && test -f "$symfileobj"; then |
9104 func_append oldobjs " $symfileobj" | 7894 oldobjs="$oldobjs $symfileobj" |
9105 fi | 7895 fi |
9106 fi | 7896 fi |
9107 addlibs="$old_convenience" | 7897 addlibs="$old_convenience" |
9108 fi | 7898 fi |
9109 | 7899 |
9110 if test -n "$addlibs"; then | 7900 if test -n "$addlibs"; then |
9111 gentop="$output_objdir/${outputname}x" | 7901 gentop="$output_objdir/${outputname}x" |
9112 func_append generated " $gentop" | 7902 generated="$generated $gentop" |
9113 | 7903 |
9114 func_extract_archives $gentop $addlibs | 7904 func_extract_archives $gentop $addlibs |
9115 func_append oldobjs " $func_extract_archives_result" | 7905 oldobjs="$oldobjs $func_extract_archives_result" |
9116 fi | 7906 fi |
9117 | 7907 |
9118 # Do each command in the archive commands. | 7908 # Do each command in the archive commands. |
9119 if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then | 7909 if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then |
9120 cmds=$old_archive_from_new_cmds | 7910 cmds=$old_archive_from_new_cmds |
9121 else | 7911 else |
9122 | 7912 |
9123 # Add any objects from preloaded convenience libraries | 7913 # Add any objects from preloaded convenience libraries |
9124 if test -n "$dlprefiles"; then | 7914 if test -n "$dlprefiles"; then |
9125 gentop="$output_objdir/${outputname}x" | 7915 gentop="$output_objdir/${outputname}x" |
9126 func_append generated " $gentop" | 7916 generated="$generated $gentop" |
9127 | 7917 |
9128 func_extract_archives $gentop $dlprefiles | 7918 func_extract_archives $gentop $dlprefiles |
9129 func_append oldobjs " $func_extract_archives_result" | 7919 oldobjs="$oldobjs $func_extract_archives_result" |
9130 fi | 7920 fi |
9131 | 7921 |
9132 # POSIX demands no paths to be encoded in archives. We have | 7922 # POSIX demands no paths to be encoded in archives. We have |
9133 # to avoid creating archives with duplicate basenames if we | 7923 # to avoid creating archives with duplicate basenames if we |
9134 # might have to extract them afterwards, e.g., when creating a | 7924 # might have to extract them afterwards, e.g., when creating a |
9140 func_basename "$obj" | 7930 func_basename "$obj" |
9141 $ECHO "$func_basename_result" | 7931 $ECHO "$func_basename_result" |
9142 done | sort | sort -uc >/dev/null 2>&1); then | 7932 done | sort | sort -uc >/dev/null 2>&1); then |
9143 : | 7933 : |
9144 else | 7934 else |
9145 echo "copying selected object files to avoid basename conflicts..." | 7935 $ECHO "copying selected object files to avoid basename conflicts..." |
9146 gentop="$output_objdir/${outputname}x" | 7936 gentop="$output_objdir/${outputname}x" |
9147 func_append generated " $gentop" | 7937 generated="$generated $gentop" |
9148 func_mkdir_p "$gentop" | 7938 func_mkdir_p "$gentop" |
9149 save_oldobjs=$oldobjs | 7939 save_oldobjs=$oldobjs |
9150 oldobjs= | 7940 oldobjs= |
9151 counter=1 | 7941 counter=1 |
9152 for obj in $save_oldobjs | 7942 for obj in $save_oldobjs |
9166 *[\ /]"$newobj "*) ;; | 7956 *[\ /]"$newobj "*) ;; |
9167 *) if test ! -f "$gentop/$newobj"; then break; fi ;; | 7957 *) if test ! -f "$gentop/$newobj"; then break; fi ;; |
9168 esac | 7958 esac |
9169 done | 7959 done |
9170 func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" | 7960 func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" |
9171 func_append oldobjs " $gentop/$newobj" | 7961 oldobjs="$oldobjs $gentop/$newobj" |
9172 ;; | 7962 ;; |
9173 *) func_append oldobjs " $obj" ;; | 7963 *) oldobjs="$oldobjs $obj" ;; |
9174 esac | 7964 esac |
9175 done | 7965 done |
9176 fi | 7966 fi |
9177 func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 | |
9178 tool_oldlib=$func_to_tool_file_result | |
9179 eval cmds=\"$old_archive_cmds\" | 7967 eval cmds=\"$old_archive_cmds\" |
9180 | 7968 |
9181 func_len " $cmds" | 7969 func_len " $cmds" |
9182 len=$func_len_result | 7970 len=$func_len_result |
9183 if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then | 7971 if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then |
9184 cmds=$old_archive_cmds | |
9185 elif test -n "$archiver_list_spec"; then | |
9186 func_verbose "using command file archive linking..." | |
9187 for obj in $oldobjs | |
9188 do | |
9189 func_to_tool_file "$obj" | |
9190 $ECHO "$func_to_tool_file_result" | |
9191 done > $output_objdir/$libname.libcmd | |
9192 func_to_tool_file "$output_objdir/$libname.libcmd" | |
9193 oldobjs=" $archiver_list_spec$func_to_tool_file_result" | |
9194 cmds=$old_archive_cmds | 7972 cmds=$old_archive_cmds |
9195 else | 7973 else |
9196 # the command line is too long to link in one step, link in parts | 7974 # the command line is too long to link in one step, link in parts |
9197 func_verbose "using piecewise archive linking..." | 7975 func_verbose "using piecewise archive linking..." |
9198 save_RANLIB=$RANLIB | 7976 save_RANLIB=$RANLIB |
9263 relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" | 8041 relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" |
9264 fi | 8042 fi |
9265 done | 8043 done |
9266 # Quote the link command for shipping. | 8044 # Quote the link command for shipping. |
9267 relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" | 8045 relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" |
9268 relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` | 8046 relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"` |
9269 if test "$hardcode_automatic" = yes ; then | 8047 if test "$hardcode_automatic" = yes ; then |
9270 relink_command= | 8048 relink_command= |
9271 fi | 8049 fi |
9272 | 8050 |
9273 # Only create the output if not a dry run. | 8051 # Only create the output if not a dry run. |
9283 for deplib in $dependency_libs; do | 8061 for deplib in $dependency_libs; do |
9284 case $deplib in | 8062 case $deplib in |
9285 *.la) | 8063 *.la) |
9286 func_basename "$deplib" | 8064 func_basename "$deplib" |
9287 name="$func_basename_result" | 8065 name="$func_basename_result" |
9288 func_resolve_sysroot "$deplib" | 8066 eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` |
9289 eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result` | |
9290 test -z "$libdir" && \ | 8067 test -z "$libdir" && \ |
9291 func_fatal_error "\`$deplib' is not a valid libtool archive" | 8068 func_fatal_error "\`$deplib' is not a valid libtool archive" |
9292 func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name" | 8069 newdependency_libs="$newdependency_libs $libdir/$name" |
9293 ;; | 8070 ;; |
9294 -L*) | 8071 *) newdependency_libs="$newdependency_libs $deplib" ;; |
9295 func_stripname -L '' "$deplib" | |
9296 func_replace_sysroot "$func_stripname_result" | |
9297 func_append newdependency_libs " -L$func_replace_sysroot_result" | |
9298 ;; | |
9299 -R*) | |
9300 func_stripname -R '' "$deplib" | |
9301 func_replace_sysroot "$func_stripname_result" | |
9302 func_append newdependency_libs " -R$func_replace_sysroot_result" | |
9303 ;; | |
9304 *) func_append newdependency_libs " $deplib" ;; | |
9305 esac | 8072 esac |
9306 done | 8073 done |
9307 dependency_libs="$newdependency_libs" | 8074 dependency_libs="$newdependency_libs" |
9308 newdlfiles= | 8075 newdlfiles= |
9309 | 8076 |
9313 func_basename "$lib" | 8080 func_basename "$lib" |
9314 name="$func_basename_result" | 8081 name="$func_basename_result" |
9315 eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` | 8082 eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` |
9316 test -z "$libdir" && \ | 8083 test -z "$libdir" && \ |
9317 func_fatal_error "\`$lib' is not a valid libtool archive" | 8084 func_fatal_error "\`$lib' is not a valid libtool archive" |
9318 func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name" | 8085 newdlfiles="$newdlfiles $libdir/$name" |
9319 ;; | 8086 ;; |
9320 *) func_append newdlfiles " $lib" ;; | 8087 *) newdlfiles="$newdlfiles $lib" ;; |
9321 esac | 8088 esac |
9322 done | 8089 done |
9323 dlfiles="$newdlfiles" | 8090 dlfiles="$newdlfiles" |
9324 newdlprefiles= | 8091 newdlprefiles= |
9325 for lib in $dlprefiles; do | 8092 for lib in $dlprefiles; do |
9332 func_basename "$lib" | 8099 func_basename "$lib" |
9333 name="$func_basename_result" | 8100 name="$func_basename_result" |
9334 eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` | 8101 eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` |
9335 test -z "$libdir" && \ | 8102 test -z "$libdir" && \ |
9336 func_fatal_error "\`$lib' is not a valid libtool archive" | 8103 func_fatal_error "\`$lib' is not a valid libtool archive" |
9337 func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name" | 8104 newdlprefiles="$newdlprefiles $libdir/$name" |
9338 ;; | 8105 ;; |
9339 esac | 8106 esac |
9340 done | 8107 done |
9341 dlprefiles="$newdlprefiles" | 8108 dlprefiles="$newdlprefiles" |
9342 else | 8109 else |
9344 for lib in $dlfiles; do | 8111 for lib in $dlfiles; do |
9345 case $lib in | 8112 case $lib in |
9346 [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; | 8113 [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; |
9347 *) abs=`pwd`"/$lib" ;; | 8114 *) abs=`pwd`"/$lib" ;; |
9348 esac | 8115 esac |
9349 func_append newdlfiles " $abs" | 8116 newdlfiles="$newdlfiles $abs" |
9350 done | 8117 done |
9351 dlfiles="$newdlfiles" | 8118 dlfiles="$newdlfiles" |
9352 newdlprefiles= | 8119 newdlprefiles= |
9353 for lib in $dlprefiles; do | 8120 for lib in $dlprefiles; do |
9354 case $lib in | 8121 case $lib in |
9355 [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; | 8122 [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; |
9356 *) abs=`pwd`"/$lib" ;; | 8123 *) abs=`pwd`"/$lib" ;; |
9357 esac | 8124 esac |
9358 func_append newdlprefiles " $abs" | 8125 newdlprefiles="$newdlprefiles $abs" |
9359 done | 8126 done |
9360 dlprefiles="$newdlprefiles" | 8127 dlprefiles="$newdlprefiles" |
9361 fi | 8128 fi |
9362 $RM $output | 8129 $RM $output |
9363 # place dlname in correct position for cygwin | 8130 # place dlname in correct position for cygwin |
9364 # In fact, it would be nice if we could use this code for all target | |
9365 # systems that can't hard-code library paths into their executables | |
9366 # and that have no shared library path variable independent of PATH, | |
9367 # but it turns out we can't easily determine that from inspecting | |
9368 # libtool variables, so we have to hard-code the OSs to which it | |
9369 # applies here; at the moment, that means platforms that use the PE | |
9370 # object format with DLL files. See the long comment at the top of | |
9371 # tests/bindir.at for full details. | |
9372 tdlname=$dlname | 8131 tdlname=$dlname |
9373 case $host,$output,$installed,$module,$dlname in | 8132 case $host,$output,$installed,$module,$dlname in |
9374 *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) | 8133 *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;; |
9375 # If a -bindir argument was supplied, place the dll there. | |
9376 if test "x$bindir" != x ; | |
9377 then | |
9378 func_relative_path "$install_libdir" "$bindir" | |
9379 tdlname=$func_relative_path_result$dlname | |
9380 else | |
9381 # Otherwise fall back on heuristic. | |
9382 tdlname=../bin/$dlname | |
9383 fi | |
9384 ;; | |
9385 esac | 8134 esac |
9386 $ECHO > $output "\ | 8135 $ECHO > $output "\ |
9387 # $outputname - a libtool library file | 8136 # $outputname - a libtool library file |
9388 # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION | 8137 # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION |
9389 # | 8138 # |
9438 ;; | 8187 ;; |
9439 esac | 8188 esac |
9440 exit $EXIT_SUCCESS | 8189 exit $EXIT_SUCCESS |
9441 } | 8190 } |
9442 | 8191 |
9443 { test "$opt_mode" = link || test "$opt_mode" = relink; } && | 8192 { test "$mode" = link || test "$mode" = relink; } && |
9444 func_mode_link ${1+"$@"} | 8193 func_mode_link ${1+"$@"} |
9445 | 8194 |
9446 | 8195 |
9447 # func_mode_uninstall arg... | 8196 # func_mode_uninstall arg... |
9448 func_mode_uninstall () | 8197 func_mode_uninstall () |
9458 libtool_install_magic="$magic" | 8207 libtool_install_magic="$magic" |
9459 | 8208 |
9460 for arg | 8209 for arg |
9461 do | 8210 do |
9462 case $arg in | 8211 case $arg in |
9463 -f) func_append RM " $arg"; rmforce=yes ;; | 8212 -f) RM="$RM $arg"; rmforce=yes ;; |
9464 -*) func_append RM " $arg" ;; | 8213 -*) RM="$RM $arg" ;; |
9465 *) func_append files " $arg" ;; | 8214 *) files="$files $arg" ;; |
9466 esac | 8215 esac |
9467 done | 8216 done |
9468 | 8217 |
9469 test -z "$RM" && \ | 8218 test -z "$RM" && \ |
9470 func_fatal_help "you must specify an RM program" | 8219 func_fatal_help "you must specify an RM program" |
9471 | 8220 |
9472 rmdirs= | 8221 rmdirs= |
9473 | 8222 |
8223 origobjdir="$objdir" | |
9474 for file in $files; do | 8224 for file in $files; do |
9475 func_dirname "$file" "" "." | 8225 func_dirname "$file" "" "." |
9476 dir="$func_dirname_result" | 8226 dir="$func_dirname_result" |
9477 if test "X$dir" = X.; then | 8227 if test "X$dir" = X.; then |
9478 odir="$objdir" | 8228 objdir="$origobjdir" |
9479 else | 8229 else |
9480 odir="$dir/$objdir" | 8230 objdir="$dir/$origobjdir" |
9481 fi | 8231 fi |
9482 func_basename "$file" | 8232 func_basename "$file" |
9483 name="$func_basename_result" | 8233 name="$func_basename_result" |
9484 test "$opt_mode" = uninstall && odir="$dir" | 8234 test "$mode" = uninstall && objdir="$dir" |
9485 | 8235 |
9486 # Remember odir for removal later, being careful to avoid duplicates | 8236 # Remember objdir for removal later, being careful to avoid duplicates |
9487 if test "$opt_mode" = clean; then | 8237 if test "$mode" = clean; then |
9488 case " $rmdirs " in | 8238 case " $rmdirs " in |
9489 *" $odir "*) ;; | 8239 *" $objdir "*) ;; |
9490 *) func_append rmdirs " $odir" ;; | 8240 *) rmdirs="$rmdirs $objdir" ;; |
9491 esac | 8241 esac |
9492 fi | 8242 fi |
9493 | 8243 |
9494 # Don't error if the file doesn't exist and rm -f was used. | 8244 # Don't error if the file doesn't exist and rm -f was used. |
9495 if { test -L "$file"; } >/dev/null 2>&1 || | 8245 if { test -L "$file"; } >/dev/null 2>&1 || |
9511 if func_lalib_p "$file"; then | 8261 if func_lalib_p "$file"; then |
9512 func_source $dir/$name | 8262 func_source $dir/$name |
9513 | 8263 |
9514 # Delete the libtool libraries and symlinks. | 8264 # Delete the libtool libraries and symlinks. |
9515 for n in $library_names; do | 8265 for n in $library_names; do |
9516 func_append rmfiles " $odir/$n" | 8266 rmfiles="$rmfiles $objdir/$n" |
9517 done | 8267 done |
9518 test -n "$old_library" && func_append rmfiles " $odir/$old_library" | 8268 test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library" |
9519 | 8269 |
9520 case "$opt_mode" in | 8270 case "$mode" in |
9521 clean) | 8271 clean) |
9522 case " $library_names " in | 8272 case " $library_names " in |
8273 # " " in the beginning catches empty $dlname | |
9523 *" $dlname "*) ;; | 8274 *" $dlname "*) ;; |
9524 *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;; | 8275 *) rmfiles="$rmfiles $objdir/$dlname" ;; |
9525 esac | 8276 esac |
9526 test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i" | 8277 test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" |
9527 ;; | 8278 ;; |
9528 uninstall) | 8279 uninstall) |
9529 if test -n "$library_names"; then | 8280 if test -n "$library_names"; then |
9530 # Do each command in the postuninstall commands. | 8281 # Do each command in the postuninstall commands. |
9531 func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' | 8282 func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' |
9549 func_source $dir/$name | 8300 func_source $dir/$name |
9550 | 8301 |
9551 # Add PIC object to the list of files to remove. | 8302 # Add PIC object to the list of files to remove. |
9552 if test -n "$pic_object" && | 8303 if test -n "$pic_object" && |
9553 test "$pic_object" != none; then | 8304 test "$pic_object" != none; then |
9554 func_append rmfiles " $dir/$pic_object" | 8305 rmfiles="$rmfiles $dir/$pic_object" |
9555 fi | 8306 fi |
9556 | 8307 |
9557 # Add non-PIC object to the list of files to remove. | 8308 # Add non-PIC object to the list of files to remove. |
9558 if test -n "$non_pic_object" && | 8309 if test -n "$non_pic_object" && |
9559 test "$non_pic_object" != none; then | 8310 test "$non_pic_object" != none; then |
9560 func_append rmfiles " $dir/$non_pic_object" | 8311 rmfiles="$rmfiles $dir/$non_pic_object" |
9561 fi | 8312 fi |
9562 fi | 8313 fi |
9563 ;; | 8314 ;; |
9564 | 8315 |
9565 *) | 8316 *) |
9566 if test "$opt_mode" = clean ; then | 8317 if test "$mode" = clean ; then |
9567 noexename=$name | 8318 noexename=$name |
9568 case $file in | 8319 case $file in |
9569 *.exe) | 8320 *.exe) |
9570 func_stripname '' '.exe' "$file" | 8321 func_stripname '' '.exe' "$file" |
9571 file=$func_stripname_result | 8322 file=$func_stripname_result |
9572 func_stripname '' '.exe' "$name" | 8323 func_stripname '' '.exe' "$name" |
9573 noexename=$func_stripname_result | 8324 noexename=$func_stripname_result |
9574 # $file with .exe has already been added to rmfiles, | 8325 # $file with .exe has already been added to rmfiles, |
9575 # add $file without .exe | 8326 # add $file without .exe |
9576 func_append rmfiles " $file" | 8327 rmfiles="$rmfiles $file" |
9577 ;; | 8328 ;; |
9578 esac | 8329 esac |
9579 # Do a test to see if this is a libtool program. | 8330 # Do a test to see if this is a libtool program. |
9580 if func_ltwrapper_p "$file"; then | 8331 if func_ltwrapper_p "$file"; then |
9581 if func_ltwrapper_executable_p "$file"; then | 8332 if func_ltwrapper_executable_p "$file"; then |
9582 func_ltwrapper_scriptname "$file" | 8333 func_ltwrapper_scriptname "$file" |
9583 relink_command= | 8334 relink_command= |
9584 func_source $func_ltwrapper_scriptname_result | 8335 func_source $func_ltwrapper_scriptname_result |
9585 func_append rmfiles " $func_ltwrapper_scriptname_result" | 8336 rmfiles="$rmfiles $func_ltwrapper_scriptname_result" |
9586 else | 8337 else |
9587 relink_command= | 8338 relink_command= |
9588 func_source $dir/$noexename | 8339 func_source $dir/$noexename |
9589 fi | 8340 fi |
9590 | 8341 |
9591 # note $name still contains .exe if it was in $file originally | 8342 # note $name still contains .exe if it was in $file originally |
9592 # as does the version of $file that was added into $rmfiles | 8343 # as does the version of $file that was added into $rmfiles |
9593 func_append rmfiles " $odir/$name $odir/${name}S.${objext}" | 8344 rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}" |
9594 if test "$fast_install" = yes && test -n "$relink_command"; then | 8345 if test "$fast_install" = yes && test -n "$relink_command"; then |
9595 func_append rmfiles " $odir/lt-$name" | 8346 rmfiles="$rmfiles $objdir/lt-$name" |
9596 fi | 8347 fi |
9597 if test "X$noexename" != "X$name" ; then | 8348 if test "X$noexename" != "X$name" ; then |
9598 func_append rmfiles " $odir/lt-${noexename}.c" | 8349 rmfiles="$rmfiles $objdir/lt-${noexename}.c" |
9599 fi | 8350 fi |
9600 fi | 8351 fi |
9601 fi | 8352 fi |
9602 ;; | 8353 ;; |
9603 esac | 8354 esac |
9604 func_show_eval "$RM $rmfiles" 'exit_status=1' | 8355 func_show_eval "$RM $rmfiles" 'exit_status=1' |
9605 done | 8356 done |
8357 objdir="$origobjdir" | |
9606 | 8358 |
9607 # Try to remove the ${objdir}s in the directories where we deleted files | 8359 # Try to remove the ${objdir}s in the directories where we deleted files |
9608 for dir in $rmdirs; do | 8360 for dir in $rmdirs; do |
9609 if test -d "$dir"; then | 8361 if test -d "$dir"; then |
9610 func_show_eval "rmdir $dir >/dev/null 2>&1" | 8362 func_show_eval "rmdir $dir >/dev/null 2>&1" |
9612 done | 8364 done |
9613 | 8365 |
9614 exit $exit_status | 8366 exit $exit_status |
9615 } | 8367 } |
9616 | 8368 |
9617 { test "$opt_mode" = uninstall || test "$opt_mode" = clean; } && | 8369 { test "$mode" = uninstall || test "$mode" = clean; } && |
9618 func_mode_uninstall ${1+"$@"} | 8370 func_mode_uninstall ${1+"$@"} |
9619 | 8371 |
9620 test -z "$opt_mode" && { | 8372 test -z "$mode" && { |
9621 help="$generic_help" | 8373 help="$generic_help" |
9622 func_fatal_help "you must specify a MODE" | 8374 func_fatal_help "you must specify a MODE" |
9623 } | 8375 } |
9624 | 8376 |
9625 test -z "$exec_cmd" && \ | 8377 test -z "$exec_cmd" && \ |
9626 func_fatal_help "invalid operation mode \`$opt_mode'" | 8378 func_fatal_help "invalid operation mode \`$mode'" |
9627 | 8379 |
9628 if test -n "$exec_cmd"; then | 8380 if test -n "$exec_cmd"; then |
9629 eval exec "$exec_cmd" | 8381 eval exec "$exec_cmd" |
9630 exit $EXIT_FAILURE | 8382 exit $EXIT_FAILURE |
9631 fi | 8383 fi |