1 | # ltmain.sh - Provide generalized library-building support services. |
---|
2 | # NOTE: Changing this file will not affect anything until you rerun ltconfig. |
---|
3 | # |
---|
4 | # Copyright (C) 1996-1998 Free Software Foundation, Inc. |
---|
5 | # Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996 |
---|
6 | # |
---|
7 | # This program is free software; you can redistribute it and/or modify |
---|
8 | # it under the terms of the GNU General Public License as published by |
---|
9 | # the Free Software Foundation; either version 2 of the License, or |
---|
10 | # (at your option) any later version. |
---|
11 | # |
---|
12 | # This program is distributed in the hope that it will be useful, but |
---|
13 | # WITHOUT ANY WARRANTY; without even the implied warranty of |
---|
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
---|
15 | # General Public License for more details. |
---|
16 | # |
---|
17 | # You should have received a copy of the GNU General Public License |
---|
18 | # along with this program; if not, write to the Free Software |
---|
19 | # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
---|
20 | # |
---|
21 | # As a special exception to the GNU General Public License, if you |
---|
22 | # distribute this file as part of a program that contains a |
---|
23 | # configuration script generated by Autoconf, you may include it under |
---|
24 | # the same distribution terms that you use for the rest of that program. |
---|
25 | |
---|
26 | # The name of this program. |
---|
27 | progname=`$echo "$0" | sed 's%^.*/%%'` |
---|
28 | modename="$progname" |
---|
29 | |
---|
30 | # Constants. |
---|
31 | PROGRAM=ltmain.sh |
---|
32 | PACKAGE=libtool |
---|
33 | VERSION=1.2 |
---|
34 | |
---|
35 | default_mode= |
---|
36 | help="Try \`$progname --help' for more information." |
---|
37 | magic="%%%MAGIC variable%%%" |
---|
38 | mkdir="mkdir" |
---|
39 | mv="mv -f" |
---|
40 | rm="rm -f" |
---|
41 | |
---|
42 | # Sed substitution that helps us do robust quoting. It backslashifies |
---|
43 | # metacharacters that are still active within double-quoted strings. |
---|
44 | Xsed='sed -e s/^X//' |
---|
45 | sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g' |
---|
46 | |
---|
47 | # NLS nuisances. |
---|
48 | # Only set LANG and LC_ALL to C if already set. |
---|
49 | # These must not be set unconditionally because not all systems understand |
---|
50 | # e.g. LANG=C (notably SCO). |
---|
51 | if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi |
---|
52 | if test "${LANG+set}" = set; then LANG=C; export LANG; fi |
---|
53 | |
---|
54 | if test "$LTCONFIG_VERSION" != "$VERSION"; then |
---|
55 | echo "$modename: ltconfig version \`$LTCONFIG_VERSION' does not match $PROGRAM version \`$VERSION'" 1>&2 |
---|
56 | echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 |
---|
57 | exit 1 |
---|
58 | fi |
---|
59 | |
---|
60 | if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then |
---|
61 | echo "$modename: not configured to build any kind of library" 1>&2 |
---|
62 | echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 |
---|
63 | exit 1 |
---|
64 | fi |
---|
65 | |
---|
66 | # Global variables. |
---|
67 | mode=$default_mode |
---|
68 | nonopt= |
---|
69 | prev= |
---|
70 | prevopt= |
---|
71 | run= |
---|
72 | show="$echo" |
---|
73 | show_help= |
---|
74 | execute_dlfiles= |
---|
75 | |
---|
76 | # Parse our command line options once, thoroughly. |
---|
77 | while test $# -gt 0 |
---|
78 | do |
---|
79 | arg="$1" |
---|
80 | shift |
---|
81 | |
---|
82 | case "$arg" in |
---|
83 | -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;; |
---|
84 | *) optarg= ;; |
---|
85 | esac |
---|
86 | |
---|
87 | # If the previous option needs an argument, assign it. |
---|
88 | if test -n "$prev"; then |
---|
89 | case "$prev" in |
---|
90 | execute_dlfiles) |
---|
91 | eval "$prev=\"\$$prev \$arg\"" |
---|
92 | ;; |
---|
93 | *) |
---|
94 | eval "$prev=\$arg" |
---|
95 | ;; |
---|
96 | esac |
---|
97 | |
---|
98 | prev= |
---|
99 | prevopt= |
---|
100 | continue |
---|
101 | fi |
---|
102 | |
---|
103 | # Have we seen a non-optional argument yet? |
---|
104 | case "$arg" in |
---|
105 | --help) |
---|
106 | show_help=yes |
---|
107 | ;; |
---|
108 | |
---|
109 | --version) |
---|
110 | echo "$PROGRAM (GNU $PACKAGE) $VERSION" |
---|
111 | exit 0 |
---|
112 | ;; |
---|
113 | |
---|
114 | --dry-run | -n) |
---|
115 | run=: |
---|
116 | ;; |
---|
117 | |
---|
118 | --features) |
---|
119 | echo "host: $host" |
---|
120 | if test "$build_libtool_libs" = yes; then |
---|
121 | echo "enable shared libraries" |
---|
122 | else |
---|
123 | echo "disable shared libraries" |
---|
124 | fi |
---|
125 | if test "$build_old_libs" = yes; then |
---|
126 | echo "enable static libraries" |
---|
127 | else |
---|
128 | echo "disable static libraries" |
---|
129 | fi |
---|
130 | exit 0 |
---|
131 | ;; |
---|
132 | |
---|
133 | --finish) mode="finish" ;; |
---|
134 | |
---|
135 | --mode) prevopt="--mode" prev=mode ;; |
---|
136 | --mode=*) mode="$optarg" ;; |
---|
137 | |
---|
138 | --quiet | --silent) |
---|
139 | show=: |
---|
140 | ;; |
---|
141 | |
---|
142 | -dlopen) |
---|
143 | prevopt="-dlopen" |
---|
144 | prev=execute_dlfiles |
---|
145 | ;; |
---|
146 | |
---|
147 | -*) |
---|
148 | $echo "$modename: unrecognized option \`$arg'" 1>&2 |
---|
149 | $echo "$help" 1>&2 |
---|
150 | exit 1 |
---|
151 | ;; |
---|
152 | |
---|
153 | *) |
---|
154 | nonopt="$arg" |
---|
155 | break |
---|
156 | ;; |
---|
157 | esac |
---|
158 | done |
---|
159 | |
---|
160 | if test -n "$prevopt"; then |
---|
161 | $echo "$modename: option \`$prevopt' requires an argument" 1>&2 |
---|
162 | $echo "$help" 1>&2 |
---|
163 | exit 1 |
---|
164 | fi |
---|
165 | |
---|
166 | if test -z "$show_help"; then |
---|
167 | |
---|
168 | # Infer the operation mode. |
---|
169 | if test -z "$mode"; then |
---|
170 | case "$nonopt" in |
---|
171 | *cc | *++ | gcc* | *-gcc*) |
---|
172 | mode=link |
---|
173 | for arg |
---|
174 | do |
---|
175 | case "$arg" in |
---|
176 | -c) |
---|
177 | mode=compile |
---|
178 | break |
---|
179 | ;; |
---|
180 | esac |
---|
181 | done |
---|
182 | ;; |
---|
183 | *db | *dbx) |
---|
184 | mode=execute |
---|
185 | ;; |
---|
186 | *install*|cp|mv) |
---|
187 | mode=install |
---|
188 | ;; |
---|
189 | *rm) |
---|
190 | mode=uninstall |
---|
191 | ;; |
---|
192 | *) |
---|
193 | # If we have no mode, but dlfiles were specified, then do execute mode. |
---|
194 | test -n "$execute_dlfiles" && mode=execute |
---|
195 | |
---|
196 | # Just use the default operation mode. |
---|
197 | if test -z "$mode"; then |
---|
198 | if test -n "$nonopt"; then |
---|
199 | $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2 |
---|
200 | else |
---|
201 | $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2 |
---|
202 | fi |
---|
203 | fi |
---|
204 | ;; |
---|
205 | esac |
---|
206 | fi |
---|
207 | |
---|
208 | # Only execute mode is allowed to have -dlopen flags. |
---|
209 | if test -n "$execute_dlfiles" && test "$mode" != execute; then |
---|
210 | $echo "$modename: unrecognized option \`-dlopen'" 1>&2 |
---|
211 | $echo "$help" 1>&2 |
---|
212 | exit 1 |
---|
213 | fi |
---|
214 | |
---|
215 | # Change the help message to a mode-specific one. |
---|
216 | generic_help="$help" |
---|
217 | help="Try \`$modename --help --mode=$mode' for more information." |
---|
218 | |
---|
219 | # These modes are in order of execution frequency so that they run quickly. |
---|
220 | case "$mode" in |
---|
221 | # libtool compile mode |
---|
222 | compile) |
---|
223 | modename="$modename: compile" |
---|
224 | # Get the compilation command and the source file. |
---|
225 | base_compile= |
---|
226 | lastarg= |
---|
227 | srcfile="$nonopt" |
---|
228 | suppress_output= |
---|
229 | |
---|
230 | for arg |
---|
231 | do |
---|
232 | # Accept any command-line options. |
---|
233 | case "$arg" in |
---|
234 | -o) |
---|
235 | $echo "$modename: you cannot specify the output filename with \`-o'" 1>&2 |
---|
236 | $echo "$help" 1>&2 |
---|
237 | exit 1 |
---|
238 | ;; |
---|
239 | |
---|
240 | -static) |
---|
241 | build_libtool_libs=no |
---|
242 | build_old_libs=yes |
---|
243 | continue |
---|
244 | ;; |
---|
245 | esac |
---|
246 | |
---|
247 | # Accept the current argument as the source file. |
---|
248 | lastarg="$srcfile" |
---|
249 | srcfile="$arg" |
---|
250 | |
---|
251 | # Aesthetically quote the previous argument. |
---|
252 | |
---|
253 | # Backslashify any backslashes, double quotes, and dollar signs. |
---|
254 | # These are the only characters that are still specially |
---|
255 | # interpreted inside of double-quoted scrings. |
---|
256 | lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"` |
---|
257 | |
---|
258 | # Double-quote args containing other shell metacharacters. |
---|
259 | # Many Bourne shells cannot handle close brackets correctly in scan |
---|
260 | # sets, so we specify it separately. |
---|
261 | case "$lastarg" in |
---|
262 | *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) |
---|
263 | lastarg="\"$lastarg\"" |
---|
264 | ;; |
---|
265 | esac |
---|
266 | |
---|
267 | # Add the previous argument to base_compile. |
---|
268 | if test -z "$base_compile"; then |
---|
269 | base_compile="$lastarg" |
---|
270 | else |
---|
271 | base_compile="$base_compile $lastarg" |
---|
272 | fi |
---|
273 | done |
---|
274 | |
---|
275 | # Get the name of the library object. |
---|
276 | libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'` |
---|
277 | |
---|
278 | # Recognize several different file suffixes. |
---|
279 | xform='[cCFSfms]' |
---|
280 | case "$libobj" in |
---|
281 | *.ada) xform=ada ;; |
---|
282 | *.adb) xform=adb ;; |
---|
283 | *.ads) xform=ads ;; |
---|
284 | *.asm) xform=asm ;; |
---|
285 | *.c++) xform=c++ ;; |
---|
286 | *.cc) xform=cc ;; |
---|
287 | *.cpp) xform=cpp ;; |
---|
288 | *.cxx) xform=cxx ;; |
---|
289 | *.f90) xform=f90 ;; |
---|
290 | *.for) xform=for ;; |
---|
291 | esac |
---|
292 | |
---|
293 | libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"` |
---|
294 | |
---|
295 | case "$libobj" in |
---|
296 | *.lo) obj=`$echo "X$libobj" | $Xsed -e 's/\.lo$/.o/'` ;; |
---|
297 | *) |
---|
298 | $echo "$modename: cannot determine name of library object from \`$srcfile'" 1>&2 |
---|
299 | exit 1 |
---|
300 | ;; |
---|
301 | esac |
---|
302 | |
---|
303 | if test -z "$base_compile"; then |
---|
304 | $echo "$modename: you must specify a compilation command" 1>&2 |
---|
305 | $echo "$help" 1>&2 |
---|
306 | exit 1 |
---|
307 | fi |
---|
308 | |
---|
309 | # Delete any leftover library objects. |
---|
310 | if test "$build_old_libs" = yes; then |
---|
311 | $run $rm $obj $libobj |
---|
312 | trap "$run $rm $obj $libobj; exit 1" 1 2 15 |
---|
313 | else |
---|
314 | $run $rm $libobj |
---|
315 | trap "$run $rm $libobj; exit 1" 1 2 15 |
---|
316 | fi |
---|
317 | |
---|
318 | # Only build a PIC object if we are building libtool libraries. |
---|
319 | if test "$build_libtool_libs" = yes; then |
---|
320 | # Without this assignment, base_compile gets emptied. |
---|
321 | fbsd_hideous_sh_bug=$base_compile |
---|
322 | |
---|
323 | # All platforms use -DPIC, to notify preprocessed assembler code. |
---|
324 | $show "$base_compile$pic_flag -DPIC $srcfile" |
---|
325 | if $run eval "$base_compile\$pic_flag -DPIC \$srcfile"; then : |
---|
326 | else |
---|
327 | test -n "$obj" && $run $rm $obj |
---|
328 | exit 1 |
---|
329 | fi |
---|
330 | |
---|
331 | # If we have no pic_flag, then copy the object into place and finish. |
---|
332 | if test -z "$pic_flag"; then |
---|
333 | $show "$LN_S $obj $libobj" |
---|
334 | $run $LN_S $obj $libobj |
---|
335 | exit $? |
---|
336 | fi |
---|
337 | |
---|
338 | # Just move the object, then go on to compile the next one |
---|
339 | $show "$mv $obj $libobj" |
---|
340 | $run $mv $obj $libobj || exit 1 |
---|
341 | |
---|
342 | # Allow error messages only from the first compilation. |
---|
343 | suppress_output=' >/dev/null 2>&1' |
---|
344 | fi |
---|
345 | |
---|
346 | # Only build a position-dependent object if we build old libraries. |
---|
347 | if test "$build_old_libs" = yes; then |
---|
348 | # Suppress compiler output if we already did a PIC compilation. |
---|
349 | $show "$base_compile $srcfile$suppress_output" |
---|
350 | if $run eval "$base_compile \$srcfile$suppress_output"; then : |
---|
351 | else |
---|
352 | $run $rm $obj $libobj |
---|
353 | exit 1 |
---|
354 | fi |
---|
355 | fi |
---|
356 | |
---|
357 | # Create an invalid libtool object if no PIC, so that we do not |
---|
358 | # accidentally link it into a program. |
---|
359 | if test "$build_libtool_libs" != yes; then |
---|
360 | $show "echo timestamp > $libobj" |
---|
361 | $run eval "echo timestamp > \$libobj" || exit $? |
---|
362 | fi |
---|
363 | |
---|
364 | exit 0 |
---|
365 | ;; |
---|
366 | |
---|
367 | # libtool link mode |
---|
368 | link) |
---|
369 | modename="$modename: link" |
---|
370 | CC="$nonopt" |
---|
371 | allow_undefined=yes |
---|
372 | compile_command="$CC" |
---|
373 | finalize_command="$CC" |
---|
374 | |
---|
375 | compile_shlibpath= |
---|
376 | finalize_shlibpath= |
---|
377 | deplibs= |
---|
378 | dlfiles= |
---|
379 | dlprefiles= |
---|
380 | export_dynamic=no |
---|
381 | hardcode_libdirs= |
---|
382 | libobjs= |
---|
383 | link_against_libtool_libs= |
---|
384 | ltlibs= |
---|
385 | objs= |
---|
386 | prev= |
---|
387 | prevarg= |
---|
388 | release= |
---|
389 | rpath= |
---|
390 | perm_rpath= |
---|
391 | temp_rpath= |
---|
392 | vinfo= |
---|
393 | |
---|
394 | # We need to know -static, to get the right output filenames. |
---|
395 | for arg |
---|
396 | do |
---|
397 | case "$arg" in |
---|
398 | -all-static | -static) |
---|
399 | if test "X$arg" = "X-all-static" && test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then |
---|
400 | $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2 |
---|
401 | fi |
---|
402 | build_libtool_libs=no |
---|
403 | build_old_libs=yes |
---|
404 | break |
---|
405 | ;; |
---|
406 | esac |
---|
407 | done |
---|
408 | |
---|
409 | # See if our shared archives depend on static archives. |
---|
410 | test -n "$old_archive_from_new_cmds" && build_old_libs=yes |
---|
411 | |
---|
412 | # Go through the arguments, transforming them on the way. |
---|
413 | for arg |
---|
414 | do |
---|
415 | # If the previous option needs an argument, assign it. |
---|
416 | if test -n "$prev"; then |
---|
417 | case "$prev" in |
---|
418 | output) |
---|
419 | compile_command="$compile_command @OUTPUT@" |
---|
420 | finalize_command="$finalize_command @OUTPUT@" |
---|
421 | ;; |
---|
422 | esac |
---|
423 | |
---|
424 | case "$prev" in |
---|
425 | dlfiles|dlprefiles) |
---|
426 | case "$arg" in |
---|
427 | *.la | *.lo) ;; # We handle these cases below. |
---|
428 | *) |
---|
429 | dlprefiles="$dlprefiles $arg" |
---|
430 | test "$prev" = dlfiles && dlfiles="$dlfiles $arg" |
---|
431 | prev= |
---|
432 | ;; |
---|
433 | esac |
---|
434 | ;; |
---|
435 | release) |
---|
436 | release="-$arg" |
---|
437 | prev= |
---|
438 | continue |
---|
439 | ;; |
---|
440 | rpath) |
---|
441 | rpath="$rpath $arg" |
---|
442 | prev= |
---|
443 | continue |
---|
444 | ;; |
---|
445 | *) |
---|
446 | eval "$prev=\"\$arg\"" |
---|
447 | prev= |
---|
448 | continue |
---|
449 | ;; |
---|
450 | esac |
---|
451 | fi |
---|
452 | |
---|
453 | prevarg="$arg" |
---|
454 | |
---|
455 | case "$arg" in |
---|
456 | -all-static) |
---|
457 | if test -n "$link_static_flag"; then |
---|
458 | compile_command="$compile_command $link_static_flag" |
---|
459 | finalize_command="$finalize_command $link_static_flag" |
---|
460 | fi |
---|
461 | continue |
---|
462 | ;; |
---|
463 | |
---|
464 | -allow-undefined) |
---|
465 | # FIXME: remove this flag sometime in the future. |
---|
466 | $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2 |
---|
467 | continue |
---|
468 | ;; |
---|
469 | |
---|
470 | -dlopen) |
---|
471 | prev=dlfiles |
---|
472 | continue |
---|
473 | ;; |
---|
474 | |
---|
475 | -dlpreopen) |
---|
476 | prev=dlprefiles |
---|
477 | continue |
---|
478 | ;; |
---|
479 | |
---|
480 | -export-dynamic) |
---|
481 | if test "$export_dynamic" != yes; then |
---|
482 | export_dynamic=yes |
---|
483 | if test -n "$export_dynamic_flag_spec"; then |
---|
484 | eval arg=\"$export_dynamic_flag_spec\" |
---|
485 | else |
---|
486 | arg= |
---|
487 | fi |
---|
488 | |
---|
489 | # Add the symbol object into the linking commands. |
---|
490 | compile_command="$compile_command @SYMFILE@" |
---|
491 | finalize_command="$finalize_command @SYMFILE@" |
---|
492 | fi |
---|
493 | ;; |
---|
494 | |
---|
495 | -L*) |
---|
496 | dir=`$echo "X$arg" | $Xsed -e 's%^-L\(.*\)$%\1%'` |
---|
497 | case "$dir" in |
---|
498 | /* | [A-Za-z]:\\*) |
---|
499 | # Add the corresponding hardcode_libdir_flag, if it is not identical. |
---|
500 | ;; |
---|
501 | *) |
---|
502 | $echo "$modename: \`-L$dir' cannot specify a relative directory" 1>&2 |
---|
503 | exit 1 |
---|
504 | ;; |
---|
505 | esac |
---|
506 | deplibs="$deplibs $arg" |
---|
507 | ;; |
---|
508 | |
---|
509 | -l*) deplibs="$deplibs $arg" ;; |
---|
510 | |
---|
511 | -no-undefined) |
---|
512 | allow_undefined=no |
---|
513 | continue |
---|
514 | ;; |
---|
515 | |
---|
516 | -o) prev=output ;; |
---|
517 | |
---|
518 | -release) |
---|
519 | prev=release |
---|
520 | continue |
---|
521 | ;; |
---|
522 | |
---|
523 | -rpath) |
---|
524 | prev=rpath |
---|
525 | continue |
---|
526 | ;; |
---|
527 | |
---|
528 | -static) |
---|
529 | # If we have no pic_flag, then this is the same as -all-static. |
---|
530 | if test -z "$pic_flag" && test -n "$link_static_flag"; then |
---|
531 | compile_command="$compile_command $link_static_flag" |
---|
532 | finalize_command="$finalize_command $link_static_flag" |
---|
533 | fi |
---|
534 | continue |
---|
535 | ;; |
---|
536 | |
---|
537 | -version-info) |
---|
538 | prev=vinfo |
---|
539 | continue |
---|
540 | ;; |
---|
541 | |
---|
542 | # Some other compiler flag. |
---|
543 | -* | +*) |
---|
544 | # Unknown arguments in both finalize_command and compile_command need |
---|
545 | # to be aesthetically quoted because they are evaled later. |
---|
546 | arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` |
---|
547 | case "$arg" in |
---|
548 | *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) |
---|
549 | arg="\"$arg\"" |
---|
550 | ;; |
---|
551 | esac |
---|
552 | ;; |
---|
553 | |
---|
554 | *.o | *.a) |
---|
555 | # A standard object. |
---|
556 | objs="$objs $arg" |
---|
557 | ;; |
---|
558 | |
---|
559 | *.lo) |
---|
560 | # A library object. |
---|
561 | if test "$prev" = dlfiles; then |
---|
562 | dlfiles="$dlfiles $arg" |
---|
563 | if test "$build_libtool_libs" = yes; then |
---|
564 | prev= |
---|
565 | continue |
---|
566 | else |
---|
567 | # If libtool objects are unsupported, then we need to preload. |
---|
568 | prev=dlprefiles |
---|
569 | fi |
---|
570 | fi |
---|
571 | |
---|
572 | if test "$prev" = dlprefiles; then |
---|
573 | # Preload the old-style object. |
---|
574 | dlprefiles="$dlprefiles "`$echo "X$arg" | $Xsed -e 's/\.lo$/\.o/'` |
---|
575 | prev= |
---|
576 | fi |
---|
577 | libobjs="$libobjs $arg" |
---|
578 | ;; |
---|
579 | |
---|
580 | *.la) |
---|
581 | # A libtool-controlled library. |
---|
582 | |
---|
583 | dlname= |
---|
584 | libdir= |
---|
585 | library_names= |
---|
586 | old_library= |
---|
587 | |
---|
588 | # Check to see that this really is a libtool archive. |
---|
589 | if (sed -e '2q' $arg | egrep '^# Generated by ltmain\.sh') >/dev/null 2>&1; then : |
---|
590 | else |
---|
591 | $echo "$modename: \`$arg' is not a valid libtool archive" 1>&2 |
---|
592 | exit 1 |
---|
593 | fi |
---|
594 | |
---|
595 | # If there is no directory component, then add one. |
---|
596 | case "$arg" in |
---|
597 | */* | *\\*) . $arg ;; |
---|
598 | *) . ./$arg ;; |
---|
599 | esac |
---|
600 | |
---|
601 | if test -z "$libdir"; then |
---|
602 | $echo "$modename: \`$arg' contains no -rpath information" 1>&2 |
---|
603 | exit 1 |
---|
604 | fi |
---|
605 | |
---|
606 | # Get the name of the library we link against. |
---|
607 | linklib= |
---|
608 | for l in $old_library $library_names; do |
---|
609 | linklib="$l" |
---|
610 | done |
---|
611 | |
---|
612 | if test -z "$linklib"; then |
---|
613 | $echo "$modename: cannot find name of link library for \`$arg'" 1>&2 |
---|
614 | exit 1 |
---|
615 | fi |
---|
616 | |
---|
617 | # Find the relevant object directory and library name. |
---|
618 | name=`$echo "X$arg" | $Xsed -e 's%^.*/%%' -e 's/\.la$//' -e 's/^lib//'` |
---|
619 | dir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` |
---|
620 | if test "X$dir" = "X$arg"; then |
---|
621 | dir="$objdir" |
---|
622 | else |
---|
623 | dir="$dir/$objdir" |
---|
624 | fi |
---|
625 | |
---|
626 | # This library was specified with -dlopen. |
---|
627 | if test "$prev" = dlfiles; then |
---|
628 | dlfiles="$dlfiles $arg" |
---|
629 | if test -z "$dlname"; then |
---|
630 | # If there is no dlname, we need to preload. |
---|
631 | prev=dlprefiles |
---|
632 | else |
---|
633 | # We should not create a dependency on this library, but we |
---|
634 | # may need any libraries it requires. |
---|
635 | compile_command="$compile_command$dependency_libs" |
---|
636 | finalize_command="$finalize_command$dependency_libs" |
---|
637 | prev= |
---|
638 | continue |
---|
639 | fi |
---|
640 | fi |
---|
641 | |
---|
642 | # The library was specified with -dlpreopen. |
---|
643 | if test "$prev" = dlprefiles; then |
---|
644 | # Prefer using a static library (so that no silly _DYNAMIC symbols |
---|
645 | # are required to link). |
---|
646 | if test -n "$old_library"; then |
---|
647 | dlprefiles="$dlprefiles $dir/$old_library" |
---|
648 | else |
---|
649 | dlprefiles="$dlprefiles $dir/$linklib" |
---|
650 | fi |
---|
651 | prev= |
---|
652 | fi |
---|
653 | |
---|
654 | if test "$build_libtool_libs" = yes && test -n "$library_names"; then |
---|
655 | link_against_libtool_libs="$link_against_libtool_libs $arg" |
---|
656 | if test -n "$shlibpath_var"; then |
---|
657 | # Make sure the rpath contains only unique directories. |
---|
658 | case "$temp_rpath " in |
---|
659 | *" $dir "*) ;; |
---|
660 | *) temp_rpath="$temp_rpath $dir" ;; |
---|
661 | esac |
---|
662 | fi |
---|
663 | |
---|
664 | # This is the magic to use -rpath. |
---|
665 | if test -n "$hardcode_libdir_flag_spec"; then |
---|
666 | if test -n "$hardcode_libdir_separator"; then |
---|
667 | if test -z "$hardcode_libdirs"; then |
---|
668 | # Put the magic libdir with the hardcode flag. |
---|
669 | hardcode_libdirs="$libdir" |
---|
670 | libdir="@HARDCODE_LIBDIRS@" |
---|
671 | else |
---|
672 | # Just accumulate the unique libdirs. |
---|
673 | case "$hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator" in |
---|
674 | *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) |
---|
675 | ;; |
---|
676 | *) |
---|
677 | hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" |
---|
678 | ;; |
---|
679 | esac |
---|
680 | libdir= |
---|
681 | fi |
---|
682 | fi |
---|
683 | |
---|
684 | if test -n "$libdir"; then |
---|
685 | eval flag=\"$hardcode_libdir_flag_spec\" |
---|
686 | |
---|
687 | compile_command="$compile_command $flag" |
---|
688 | finalize_command="$finalize_command $flag" |
---|
689 | fi |
---|
690 | elif test -n "$runpath_var"; then |
---|
691 | # Do the same for the permanent run path. |
---|
692 | case "$perm_rpath " in |
---|
693 | *" $libdir "*) ;; |
---|
694 | *) perm_rpath="$perm_rpath $libdir" ;; |
---|
695 | esac |
---|
696 | fi |
---|
697 | |
---|
698 | |
---|
699 | case "$hardcode_action" in |
---|
700 | immediate) |
---|
701 | if test "$hardcode_direct" = no; then |
---|
702 | compile_command="$compile_command $dir/$linklib" |
---|
703 | elif test "$hardcode_minus_L" = no; then |
---|
704 | compile_command="$compile_command -L$dir -l$name" |
---|
705 | elif test "$hardcode_shlibpath_var" = no; then |
---|
706 | compile_shlibpath="$compile_shlibpath$dir:" |
---|
707 | compile_command="$compile_command -l$name" |
---|
708 | fi |
---|
709 | ;; |
---|
710 | |
---|
711 | relink) |
---|
712 | # We need an absolute path. |
---|
713 | case "$dir" in |
---|
714 | /* | [A-Za-z]:\\*) ;; |
---|
715 | *) |
---|
716 | absdir=`cd "$dir" && pwd` |
---|
717 | if test -z "$absdir"; then |
---|
718 | $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2 |
---|
719 | exit 1 |
---|
720 | fi |
---|
721 | dir="$absdir" |
---|
722 | ;; |
---|
723 | esac |
---|
724 | |
---|
725 | if test "$hardcode_direct" = yes; then |
---|
726 | compile_command="$compile_command $dir/$linklib" |
---|
727 | elif test "$hardcode_minus_L" = yes; then |
---|
728 | compile_command="$compile_command -L$dir -l$name" |
---|
729 | elif test "$hardcode_shlibpath_var" = yes; then |
---|
730 | compile_shlibpath="$compile_shlibpath$dir:" |
---|
731 | compile_command="$compile_command -l$name" |
---|
732 | fi |
---|
733 | ;; |
---|
734 | |
---|
735 | *) |
---|
736 | $echo "$modename: \`$hardcode_action' is an unknown hardcode action" 1>&2 |
---|
737 | exit 1 |
---|
738 | ;; |
---|
739 | esac |
---|
740 | |
---|
741 | # Finalize command for both is simple: just hardcode it. |
---|
742 | if test "$hardcode_direct" = yes; then |
---|
743 | finalize_command="$finalize_command $libdir/$linklib" |
---|
744 | elif test "$hardcode_minus_L" = yes; then |
---|
745 | finalize_command="$finalize_command -L$libdir -l$name" |
---|
746 | elif test "$hardcode_shlibpath_var" = yes; then |
---|
747 | finalize_shlibpath="$finalize_shlibpath$libdir:" |
---|
748 | finalize_command="$finalize_command -l$name" |
---|
749 | else |
---|
750 | # We cannot seem to hardcode it, guess we'll fake it. |
---|
751 | finalize_command="$finalize_command -L$libdir -l$name" |
---|
752 | fi |
---|
753 | else |
---|
754 | # Transform directly to old archives if we don't build new libraries. |
---|
755 | if test -n "$pic_flag" && test -z "$old_library"; then |
---|
756 | $echo "$modename: cannot find static library for \`$arg'" 1>&2 |
---|
757 | exit 1 |
---|
758 | fi |
---|
759 | |
---|
760 | # Here we assume that one of hardcode_direct or hardcode_minus_L |
---|
761 | # is not unsupported. This is valid on all known static and |
---|
762 | # shared platforms. |
---|
763 | if test "$hardcode_direct" != unsupported; then |
---|
764 | test -n "$old_library" && linklib="$old_library" |
---|
765 | compile_command="$compile_command $dir/$linklib" |
---|
766 | finalize_command="$finalize_command $dir/$linklib" |
---|
767 | else |
---|
768 | compile_command="$compile_command -L$dir -l$name" |
---|
769 | finalize_command="$finalize_command -L$dir -l$name" |
---|
770 | fi |
---|
771 | fi |
---|
772 | |
---|
773 | # Add in any libraries that this one depends upon. |
---|
774 | compile_command="$compile_command$dependency_libs" |
---|
775 | finalize_command="$finalize_command$dependency_libs" |
---|
776 | continue |
---|
777 | ;; |
---|
778 | |
---|
779 | # Some other compiler argument. |
---|
780 | *) |
---|
781 | # Unknown arguments in both finalize_command and compile_command need |
---|
782 | # to be aesthetically quoted because they are evaled later. |
---|
783 | arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` |
---|
784 | case "$arg" in |
---|
785 | *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) |
---|
786 | arg="\"$arg\"" |
---|
787 | ;; |
---|
788 | esac |
---|
789 | ;; |
---|
790 | esac |
---|
791 | |
---|
792 | # Now actually substitute the argument into the commands. |
---|
793 | if test -n "$arg"; then |
---|
794 | compile_command="$compile_command $arg" |
---|
795 | finalize_command="$finalize_command $arg" |
---|
796 | fi |
---|
797 | done |
---|
798 | |
---|
799 | if test -n "$prev"; then |
---|
800 | $echo "$modename: the \`$prevarg' option requires an argument" 1>&2 |
---|
801 | $echo "$help" 1>&2 |
---|
802 | exit 1 |
---|
803 | fi |
---|
804 | |
---|
805 | if test -n "$vinfo" && test -n "$release"; then |
---|
806 | $echo "$modename: you cannot specify both \`-version-info' and \`-release'" 1>&2 |
---|
807 | $echo "$help" 1>&2 |
---|
808 | exit 1 |
---|
809 | fi |
---|
810 | |
---|
811 | oldlib= |
---|
812 | oldobjs= |
---|
813 | case "$output" in |
---|
814 | "") |
---|
815 | $echo "$modename: you must specify an output file" 1>&2 |
---|
816 | $echo "$help" 1>&2 |
---|
817 | exit 1 |
---|
818 | ;; |
---|
819 | |
---|
820 | */* | *\\*) |
---|
821 | $echo "$modename: output file \`$output' must have no directory components" 1>&2 |
---|
822 | exit 1 |
---|
823 | ;; |
---|
824 | |
---|
825 | *.a) |
---|
826 | # Now set the variables for building old libraries. |
---|
827 | build_libtool_libs=no |
---|
828 | build_old_libs=yes |
---|
829 | oldlib="$output" |
---|
830 | $show "$rm $oldlib" |
---|
831 | $run $rm $oldlib |
---|
832 | ;; |
---|
833 | |
---|
834 | *.la) |
---|
835 | # Make sure we only generate libraries of the form `libNAME.la'. |
---|
836 | case "$output" in |
---|
837 | lib*) ;; |
---|
838 | *) |
---|
839 | $echo "$modename: libtool library \`$arg' must begin with \`lib'" 1>&2 |
---|
840 | $echo "$help" 1>&2 |
---|
841 | exit 1 |
---|
842 | ;; |
---|
843 | esac |
---|
844 | |
---|
845 | name=`$echo "X$output" | $Xsed -e 's/\.la$//' -e 's/^lib//'` |
---|
846 | eval libname=\"$libname_spec\" |
---|
847 | |
---|
848 | # All the library-specific variables (install_libdir is set above). |
---|
849 | library_names= |
---|
850 | old_library= |
---|
851 | dlname= |
---|
852 | current=0 |
---|
853 | revision=0 |
---|
854 | age=0 |
---|
855 | |
---|
856 | if test -n "$objs"; then |
---|
857 | $echo "$modename: cannot build libtool library \`$output' from non-libtool objects:$objs" 2>&1 |
---|
858 | exit 1 |
---|
859 | fi |
---|
860 | |
---|
861 | # How the heck are we supposed to write a wrapper for a shared library? |
---|
862 | if test -n "$link_against_libtool_libs"; then |
---|
863 | $echo "$modename: libtool library \`$output' may not depend on uninstalled libraries:$link_against_libtool_libs" 1>&2 |
---|
864 | exit 1 |
---|
865 | fi |
---|
866 | |
---|
867 | if test -n "$dlfiles$dlprefiles"; then |
---|
868 | $echo "$modename: warning: \`-dlopen' is ignored while creating libtool libraries" 1>&2 |
---|
869 | # Nullify the symbol file. |
---|
870 | compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"` |
---|
871 | finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"` |
---|
872 | fi |
---|
873 | |
---|
874 | if test -z "$rpath"; then |
---|
875 | $echo "$modename: you must specify an installation directory with \`-rpath'" 1>&2 |
---|
876 | $echo "$help" 1>&2 |
---|
877 | exit 1 |
---|
878 | fi |
---|
879 | |
---|
880 | set dummy $rpath |
---|
881 | if test $# -gt 2; then |
---|
882 | $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2 |
---|
883 | fi |
---|
884 | install_libdir="$2" |
---|
885 | |
---|
886 | # Parse the version information argument. |
---|
887 | IFS="${IFS= }"; save_ifs="$IFS"; IFS=':' |
---|
888 | set dummy $vinfo |
---|
889 | IFS="$save_ifs" |
---|
890 | |
---|
891 | if test -n "$5"; then |
---|
892 | $echo "$modename: too many parameters to \`-version-info'" 1>&2 |
---|
893 | $echo "$help" 1>&2 |
---|
894 | exit 1 |
---|
895 | fi |
---|
896 | |
---|
897 | test -n "$2" && current="$2" |
---|
898 | test -n "$3" && revision="$3" |
---|
899 | test -n "$4" && age="$4" |
---|
900 | |
---|
901 | # Check that each of the things are valid numbers. |
---|
902 | case "$current" in |
---|
903 | 0 | [1-9] | [1-9][0-9]*) ;; |
---|
904 | *) |
---|
905 | $echo "$modename: CURRENT \`$current' is not a nonnegative integer" 1>&2 |
---|
906 | $echo "$modename: \`$vinfo' is not valid version information" 1>&2 |
---|
907 | exit 1 |
---|
908 | ;; |
---|
909 | esac |
---|
910 | |
---|
911 | case "$revision" in |
---|
912 | 0 | [1-9] | [1-9][0-9]*) ;; |
---|
913 | *) |
---|
914 | $echo "$modename: REVISION \`$revision' is not a nonnegative integer" 1>&2 |
---|
915 | $echo "$modename: \`$vinfo' is not valid version information" 1>&2 |
---|
916 | exit 1 |
---|
917 | ;; |
---|
918 | esac |
---|
919 | |
---|
920 | case "$age" in |
---|
921 | 0 | [1-9] | [1-9][0-9]*) ;; |
---|
922 | *) |
---|
923 | $echo "$modename: AGE \`$age' is not a nonnegative integer" 1>&2 |
---|
924 | $echo "$modename: \`$vinfo' is not valid version information" 1>&2 |
---|
925 | exit 1 |
---|
926 | ;; |
---|
927 | esac |
---|
928 | |
---|
929 | if test $age -gt $current; then |
---|
930 | $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2 |
---|
931 | $echo "$modename: \`$vinfo' is not valid version information" 1>&2 |
---|
932 | exit 1 |
---|
933 | fi |
---|
934 | |
---|
935 | # Calculate the version variables. |
---|
936 | version_vars="version_type current age revision" |
---|
937 | case "$version_type" in |
---|
938 | none) ;; |
---|
939 | |
---|
940 | linux) |
---|
941 | version_vars="$version_vars major versuffix" |
---|
942 | major=`expr $current - $age` |
---|
943 | versuffix="$major.$age.$revision" |
---|
944 | ;; |
---|
945 | |
---|
946 | osf) |
---|
947 | version_vars="$version_vars versuffix verstring" |
---|
948 | major=`expr $current - $age` |
---|
949 | versuffix="$current.$age.$revision" |
---|
950 | verstring="$versuffix" |
---|
951 | |
---|
952 | # Add in all the interfaces that we are compatible with. |
---|
953 | loop=$age |
---|
954 | while test $loop != 0; do |
---|
955 | iface=`expr $current - $loop` |
---|
956 | loop=`expr $loop - 1` |
---|
957 | verstring="$verstring:${iface}.0" |
---|
958 | done |
---|
959 | |
---|
960 | # Make executables depend on our current version. |
---|
961 | verstring="$verstring:${current}.0" |
---|
962 | ;; |
---|
963 | |
---|
964 | sunos) |
---|
965 | version_vars="$version_vars major versuffix" |
---|
966 | major="$current" |
---|
967 | versuffix="$current.$revision" |
---|
968 | ;; |
---|
969 | |
---|
970 | *) |
---|
971 | $echo "$modename: unknown library version type \`$version_type'" 1>&2 |
---|
972 | echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 |
---|
973 | exit 1 |
---|
974 | ;; |
---|
975 | esac |
---|
976 | |
---|
977 | # Create the output directory, or remove our outputs if we need to. |
---|
978 | if test -d $objdir; then |
---|
979 | $show "$rm $objdir/$output $objdir/$libname.* $objdir/${libname}${release}.*" |
---|
980 | $run $rm $objdir/$output $objdir/$libname.* $objdir/${libname}${release}.* |
---|
981 | else |
---|
982 | $show "$mkdir $objdir" |
---|
983 | $run $mkdir $objdir |
---|
984 | status=$? |
---|
985 | if test $status -eq 0 || test -d $objdir; then : |
---|
986 | else |
---|
987 | exit $status |
---|
988 | fi |
---|
989 | fi |
---|
990 | |
---|
991 | # Check to see if the archive will have undefined symbols. |
---|
992 | if test "$allow_undefined" = yes; then |
---|
993 | if test "$allow_undefined_flag" = unsupported; then |
---|
994 | $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2 |
---|
995 | build_libtool_libs=no |
---|
996 | build_old_libs=yes |
---|
997 | fi |
---|
998 | else |
---|
999 | # Don't allow undefined symbols. |
---|
1000 | allow_undefined_flag="$no_undefined_flag" |
---|
1001 | fi |
---|
1002 | |
---|
1003 | # Add libc to deplibs on all systems. |
---|
1004 | dependency_libs="$deplibs" |
---|
1005 | deplibs="$deplibs -lc" |
---|
1006 | |
---|
1007 | if test "$build_libtool_libs" = yes; then |
---|
1008 | # Get the real and link names of the library. |
---|
1009 | eval library_names=\"$library_names_spec\" |
---|
1010 | set dummy $library_names |
---|
1011 | realname="$2" |
---|
1012 | shift; shift |
---|
1013 | |
---|
1014 | if test -n "$soname_spec"; then |
---|
1015 | eval soname=\"$soname_spec\" |
---|
1016 | else |
---|
1017 | soname="$realname" |
---|
1018 | fi |
---|
1019 | |
---|
1020 | lib="$objdir/$realname" |
---|
1021 | for link |
---|
1022 | do |
---|
1023 | linknames="$linknames $link" |
---|
1024 | done |
---|
1025 | |
---|
1026 | # Use standard objects if they are PIC. |
---|
1027 | test -z "$pic_flag" && libobjs=`$echo "X$libobjs " | $Xsed -e 's/\.lo /.o /g' -e 's/ $//g'` |
---|
1028 | |
---|
1029 | # Do each of the archive commands. |
---|
1030 | eval cmds=\"$archive_cmds\" |
---|
1031 | IFS="${IFS= }"; save_ifs="$IFS"; IFS=';' |
---|
1032 | for cmd in $cmds; do |
---|
1033 | IFS="$save_ifs" |
---|
1034 | $show "$cmd" |
---|
1035 | $run eval "$cmd" || exit $? |
---|
1036 | done |
---|
1037 | IFS="$save_ifs" |
---|
1038 | |
---|
1039 | # Create links to the real library. |
---|
1040 | for linkname in $linknames; do |
---|
1041 | $show "(cd $objdir && $LN_S $realname $linkname)" |
---|
1042 | $run eval '(cd $objdir && $LN_S $realname $linkname)' || exit $? |
---|
1043 | done |
---|
1044 | |
---|
1045 | # If -export-dynamic was specified, set the dlname. |
---|
1046 | if test "$export_dynamic" = yes; then |
---|
1047 | # On all known operating systems, these are identical. |
---|
1048 | dlname="$soname" |
---|
1049 | fi |
---|
1050 | fi |
---|
1051 | |
---|
1052 | # Now set the variables for building old libraries. |
---|
1053 | oldlib="$objdir/$libname.a" |
---|
1054 | ;; |
---|
1055 | |
---|
1056 | *.lo | *.o) |
---|
1057 | if test -n "$link_against_libtool_libs"; then |
---|
1058 | $echo "$modename: error: cannot link libtool libraries into reloadable objects" 1>&2 |
---|
1059 | exit 1 |
---|
1060 | fi |
---|
1061 | |
---|
1062 | if test -n "$deplibs"; then |
---|
1063 | $echo "$modename: warning: \`-l' and \`-L' are ignored while creating objects" 1>&2 |
---|
1064 | fi |
---|
1065 | |
---|
1066 | if test -n "$dlfiles$dlprefiles"; then |
---|
1067 | $echo "$modename: warning: \`-dlopen' is ignored while creating objects" 1>&2 |
---|
1068 | # Nullify the symbol file. |
---|
1069 | compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"` |
---|
1070 | finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"` |
---|
1071 | fi |
---|
1072 | |
---|
1073 | if test -n "$rpath"; then |
---|
1074 | $echo "$modename: warning: \`-rpath' is ignored while creating objects" 1>&2 |
---|
1075 | fi |
---|
1076 | |
---|
1077 | if test -n "$vinfo"; then |
---|
1078 | $echo "$modename: warning: \`-version-info' is ignored while creating objects" 1>&2 |
---|
1079 | fi |
---|
1080 | |
---|
1081 | if test -n "$release"; then |
---|
1082 | $echo "$modename: warning: \`-release' is ignored while creating objects" 1>&2 |
---|
1083 | fi |
---|
1084 | |
---|
1085 | case "$output" in |
---|
1086 | *.lo) |
---|
1087 | if test -n "$objs"; then |
---|
1088 | $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2 |
---|
1089 | exit 1 |
---|
1090 | fi |
---|
1091 | libobj="$output" |
---|
1092 | obj=`$echo "X$output" | $Xsed -e 's/\.lo$/.o/'` |
---|
1093 | ;; |
---|
1094 | *) |
---|
1095 | libobj= |
---|
1096 | obj="$output" |
---|
1097 | ;; |
---|
1098 | esac |
---|
1099 | |
---|
1100 | # Delete the old objects. |
---|
1101 | $run $rm $obj $libobj |
---|
1102 | |
---|
1103 | # Create the old-style object. |
---|
1104 | reload_objs="$objs"`$echo "X$libobjs " | $Xsed -e 's/[^ ]*\.a //g' -e 's/\.lo /.o /g' -e 's/ $//g'` |
---|
1105 | |
---|
1106 | output="$obj" |
---|
1107 | eval cmds=\"$reload_cmds\" |
---|
1108 | IFS="${IFS= }"; save_ifs="$IFS"; IFS=';' |
---|
1109 | for cmd in $cmds; do |
---|
1110 | IFS="$save_ifs" |
---|
1111 | $show "$cmd" |
---|
1112 | $run eval "$cmd" || exit $? |
---|
1113 | done |
---|
1114 | IFS="$save_ifs" |
---|
1115 | |
---|
1116 | # Exit if we aren't doing a library object file. |
---|
1117 | test -z "$libobj" && exit 0 |
---|
1118 | |
---|
1119 | if test "$build_libtool_libs" != yes; then |
---|
1120 | # Create an invalid libtool object if no PIC, so that we don't |
---|
1121 | # accidentally link it into a program. |
---|
1122 | $show "echo timestamp > $libobj" |
---|
1123 | $run eval "echo timestamp > $libobj" || exit $? |
---|
1124 | exit 0 |
---|
1125 | fi |
---|
1126 | |
---|
1127 | if test -n "$pic_flag"; then |
---|
1128 | # Only do commands if we really have different PIC objects. |
---|
1129 | reload_objs="$libobjs" |
---|
1130 | output="$libobj" |
---|
1131 | eval cmds=\"$reload_cmds\" |
---|
1132 | IFS="${IFS= }"; save_ifs="$IFS"; IFS=';' |
---|
1133 | for cmd in $cmds; do |
---|
1134 | IFS="$save_ifs" |
---|
1135 | $show "$cmd" |
---|
1136 | $run eval "$cmd" || exit $? |
---|
1137 | done |
---|
1138 | IFS="$save_ifs" |
---|
1139 | else |
---|
1140 | # Just create a symlink. |
---|
1141 | $show "$LN_S $obj $libobj" |
---|
1142 | $run $LN_S $obj $libobj || exit 1 |
---|
1143 | fi |
---|
1144 | |
---|
1145 | exit 0 |
---|
1146 | ;; |
---|
1147 | |
---|
1148 | *) |
---|
1149 | if test -n "$vinfo"; then |
---|
1150 | $echo "$modename: warning: \`-version-info' is ignored while linking programs" 1>&2 |
---|
1151 | fi |
---|
1152 | |
---|
1153 | if test -n "$release"; then |
---|
1154 | $echo "$modename: warning: \`-release' is ignored while creating objects" 1>&2 |
---|
1155 | fi |
---|
1156 | |
---|
1157 | if test -n "$rpath"; then |
---|
1158 | # If the user specified any rpath flags, then add them. |
---|
1159 | for libdir in $rpath; do |
---|
1160 | if test -n "$hardcode_libdir_flag_spec"; then |
---|
1161 | if test -n "$hardcode_libdir_separator"; then |
---|
1162 | if test -z "$hardcode_libdirs"; then |
---|
1163 | # Put the magic libdir with the hardcode flag. |
---|
1164 | hardcode_libdirs="$libdir" |
---|
1165 | libdir="@HARDCODE_LIBDIRS@" |
---|
1166 | else |
---|
1167 | # Just accumulate the unique libdirs. |
---|
1168 | case "$hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator" in |
---|
1169 | *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) |
---|
1170 | ;; |
---|
1171 | *) |
---|
1172 | hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" |
---|
1173 | ;; |
---|
1174 | esac |
---|
1175 | libdir= |
---|
1176 | fi |
---|
1177 | fi |
---|
1178 | |
---|
1179 | if test -n "$libdir"; then |
---|
1180 | eval flag=\"$hardcode_libdir_flag_spec\" |
---|
1181 | |
---|
1182 | compile_command="$compile_command $flag" |
---|
1183 | finalize_command="$finalize_command $flag" |
---|
1184 | fi |
---|
1185 | elif test -n "$runpath_var"; then |
---|
1186 | case "$perm_rpath " in |
---|
1187 | *" $libdir "*) ;; |
---|
1188 | *) perm_rpath="$perm_rpath $libdir" ;; |
---|
1189 | esac |
---|
1190 | fi |
---|
1191 | done |
---|
1192 | fi |
---|
1193 | |
---|
1194 | # Substitute the hardcoded libdirs into the compile commands. |
---|
1195 | if test -n "$hardcode_libdir_separator"; then |
---|
1196 | compile_command=`$echo "X$compile_command" | $Xsed -e "s%@HARDCODE_LIBDIRS@%$hardcode_libdirs%g"` |
---|
1197 | finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@HARDCODE_LIBDIRS@%$hardcode_libdirs%g"` |
---|
1198 | fi |
---|
1199 | |
---|
1200 | if test -n "$libobjs" && test "$build_old_libs" = yes; then |
---|
1201 | # Transform all the library objects into standard objects. |
---|
1202 | compile_command=`$echo "X$compile_command " | $Xsed -e 's/\.lo /.o /g' -e 's/ $//'` |
---|
1203 | finalize_command=`$echo "X$finalize_command " | $Xsed -e 's/\.lo /.o /g' -e 's/ $//'` |
---|
1204 | fi |
---|
1205 | |
---|
1206 | if test "$export_dynamic" = yes && test -n "$NM" && test -n "$global_symbol_pipe"; then |
---|
1207 | dlsyms="${output}S.c" |
---|
1208 | else |
---|
1209 | dlsyms= |
---|
1210 | fi |
---|
1211 | |
---|
1212 | if test -n "$dlsyms"; then |
---|
1213 | # Add our own program objects to the preloaded list. |
---|
1214 | dlprefiles=`$echo "X$objs$dlprefiles " | $Xsed -e 's/\.lo /.o /g' -e 's/ $//'` |
---|
1215 | |
---|
1216 | # Discover the nlist of each of the dlfiles. |
---|
1217 | nlist="$objdir/${output}.nm" |
---|
1218 | |
---|
1219 | if test -d $objdir; then |
---|
1220 | $show "$rm $nlist ${nlist}T" |
---|
1221 | $run $rm "$nlist" "${nlist}T" |
---|
1222 | else |
---|
1223 | $show "$mkdir $objdir" |
---|
1224 | $run $mkdir $objdir |
---|
1225 | status=$? |
---|
1226 | if test $status -eq 0 || test -d $objdir; then : |
---|
1227 | else |
---|
1228 | exit $status |
---|
1229 | fi |
---|
1230 | fi |
---|
1231 | |
---|
1232 | for arg in $dlprefiles; do |
---|
1233 | $show "extracting global C symbols from \`$arg'" |
---|
1234 | $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" |
---|
1235 | done |
---|
1236 | |
---|
1237 | # Parse the name list into a source file. |
---|
1238 | $show "creating $objdir/$dlsyms" |
---|
1239 | if test -z "$run"; then |
---|
1240 | # Make sure we at least have an empty file. |
---|
1241 | test -f "$nlist" || : > "$nlist" |
---|
1242 | |
---|
1243 | # Try sorting and uniquifying the output. |
---|
1244 | if sort "$nlist" | uniq > "$nlist"T; then |
---|
1245 | mv -f "$nlist"T "$nlist" |
---|
1246 | wcout=`wc "$nlist" 2>/dev/null` |
---|
1247 | count=`echo "X$wcout" | $Xsed -e 's/^[ ]*\([0-9][0-9]*\).*$/\1/'` |
---|
1248 | (test "$count" -ge 0) 2>/dev/null || count=-1 |
---|
1249 | else |
---|
1250 | $rm "$nlist"T |
---|
1251 | count=-1 |
---|
1252 | fi |
---|
1253 | |
---|
1254 | case "$dlsyms" in |
---|
1255 | "") ;; |
---|
1256 | *.c) |
---|
1257 | $echo > "$objdir/$dlsyms" "\ |
---|
1258 | /* $dlsyms - symbol resolution table for \`$output' dlsym emulation. */ |
---|
1259 | /* Generated by $PROGRAM - GNU $PACKAGE $VERSION */ |
---|
1260 | |
---|
1261 | #ifdef __cplusplus |
---|
1262 | extern \"C\" { |
---|
1263 | #endif |
---|
1264 | |
---|
1265 | /* Prevent the only kind of declaration conflicts we can make. */ |
---|
1266 | #define dld_preloaded_symbol_count some_other_symbol |
---|
1267 | #define dld_preloaded_symbols some_other_symbol |
---|
1268 | |
---|
1269 | /* External symbol declarations for the compiler. */\ |
---|
1270 | " |
---|
1271 | |
---|
1272 | if test -f "$nlist"; then |
---|
1273 | sed -e 's/^.* \(.*\)$/extern char \1;/' < "$nlist" >> "$objdir/$dlsyms" |
---|
1274 | else |
---|
1275 | echo '/* NONE */' >> "$objdir/$dlsyms" |
---|
1276 | fi |
---|
1277 | |
---|
1278 | $echo >> "$objdir/$dlsyms" "\ |
---|
1279 | |
---|
1280 | #undef dld_preloaded_symbol_count |
---|
1281 | #undef dld_preloaded_symbols |
---|
1282 | |
---|
1283 | #if defined (__STDC__) && __STDC__ |
---|
1284 | # define __ptr_t void * |
---|
1285 | #else |
---|
1286 | # define __ptr_t char * |
---|
1287 | #endif |
---|
1288 | |
---|
1289 | /* The number of symbols in dld_preloaded_symbols, -1 if unsorted. */ |
---|
1290 | int dld_preloaded_symbol_count = $count; |
---|
1291 | |
---|
1292 | /* The mapping between symbol names and symbols. */ |
---|
1293 | struct { |
---|
1294 | char *name; |
---|
1295 | __ptr_t address; |
---|
1296 | } |
---|
1297 | dld_preloaded_symbols[] = |
---|
1298 | {\ |
---|
1299 | " |
---|
1300 | |
---|
1301 | if test -f "$nlist"; then |
---|
1302 | sed 's/^\(.*\) \(.*\)$/ {"\1", (__ptr_t) \&\2},/' < "$nlist" >> "$objdir/$dlsyms" |
---|
1303 | fi |
---|
1304 | |
---|
1305 | $echo >> "$objdir/$dlsyms" "\ |
---|
1306 | {0, (__ptr_t) 0} |
---|
1307 | }; |
---|
1308 | |
---|
1309 | #ifdef __cplusplus |
---|
1310 | } |
---|
1311 | #endif\ |
---|
1312 | " |
---|
1313 | ;; |
---|
1314 | |
---|
1315 | *) |
---|
1316 | $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2 |
---|
1317 | exit 1 |
---|
1318 | ;; |
---|
1319 | esac |
---|
1320 | fi |
---|
1321 | |
---|
1322 | # Now compile the dynamic symbol file. |
---|
1323 | $show "(cd $objdir && $CC -c$no_builtin_flag \"$dlsyms\")" |
---|
1324 | $run eval '(cd $objdir && $CC -c$no_builtin_flag "$dlsyms")' || exit $? |
---|
1325 | |
---|
1326 | # Transform the symbol file into the correct name. |
---|
1327 | compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$objdir/${output}S.o%"` |
---|
1328 | finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$objdir/${output}S.o%"` |
---|
1329 | elif test "$export_dynamic" != yes; then |
---|
1330 | test -n "$dlfiles$dlprefiles" && $echo "$modename: warning: \`-dlopen' and \`-dlpreopen' are ignored without \`-export-dynamic'" 1>&2 |
---|
1331 | else |
---|
1332 | # We keep going just in case the user didn't refer to |
---|
1333 | # dld_preloaded_symbols. The linker will fail if global_symbol_pipe |
---|
1334 | # really was required. |
---|
1335 | $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2 |
---|
1336 | |
---|
1337 | # Nullify the symbol file. |
---|
1338 | compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"` |
---|
1339 | finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"` |
---|
1340 | fi |
---|
1341 | |
---|
1342 | if test -z "$link_against_libtool_libs" || test "$build_libtool_libs" != yes; then |
---|
1343 | # Replace the output file specification. |
---|
1344 | compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` |
---|
1345 | finalize_command=`$echo "X$finalize_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` |
---|
1346 | |
---|
1347 | # We have no uninstalled library dependencies, so finalize right now. |
---|
1348 | $show "$compile_command" |
---|
1349 | $run eval "$compile_command" |
---|
1350 | exit $? |
---|
1351 | fi |
---|
1352 | |
---|
1353 | # Replace the output file specification. |
---|
1354 | compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$objdir/$output"'%g'` |
---|
1355 | finalize_command=`$echo "X$finalize_command" | $Xsed -e 's%@OUTPUT@%'"$objdir/$output"'T%g'` |
---|
1356 | |
---|
1357 | # Create the binary in the object directory, then wrap it. |
---|
1358 | if test -d $objdir; then : |
---|
1359 | else |
---|
1360 | $show "$mkdir $objdir" |
---|
1361 | $run $mkdir $objdir |
---|
1362 | status=$? |
---|
1363 | if test $status -eq 0 || test -d $objdir; then : |
---|
1364 | else |
---|
1365 | exit $status |
---|
1366 | fi |
---|
1367 | fi |
---|
1368 | |
---|
1369 | if test -n "$shlibpath_var"; then |
---|
1370 | # We should set the shlibpath_var |
---|
1371 | rpath= |
---|
1372 | for dir in $temp_rpath; do |
---|
1373 | case "$dir" in |
---|
1374 | /* | [A-Za-z]:\\*) |
---|
1375 | # Absolute path. |
---|
1376 | rpath="$rpath$dir:" |
---|
1377 | ;; |
---|
1378 | *) |
---|
1379 | # Relative path: add a thisdir entry. |
---|
1380 | rpath="$rpath\$thisdir/$dir:" |
---|
1381 | ;; |
---|
1382 | esac |
---|
1383 | done |
---|
1384 | temp_rpath="$rpath" |
---|
1385 | fi |
---|
1386 | |
---|
1387 | # Delete the old output file. |
---|
1388 | $run $rm $output |
---|
1389 | |
---|
1390 | if test -n "$compile_shlibpath"; then |
---|
1391 | compile_command="$shlibpath_var=\"$compile_shlibpath\$$shlibpath_var\" $compile_command" |
---|
1392 | fi |
---|
1393 | if test -n "$finalize_shlibpath"; then |
---|
1394 | finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" |
---|
1395 | fi |
---|
1396 | |
---|
1397 | if test -n "$runpath_var" && test -n "$perm_rpath"; then |
---|
1398 | # We should set the runpath_var. |
---|
1399 | rpath= |
---|
1400 | for dir in $perm_rpath; do |
---|
1401 | rpath="$rpath$dir:" |
---|
1402 | done |
---|
1403 | compile_command="$runpath_var=\"$rpath\$$runpath_var\" $compile_command" |
---|
1404 | finalize_command="$runpath_var=\"$rpath\$$runpath_var\" $finalize_command" |
---|
1405 | fi |
---|
1406 | |
---|
1407 | case "$hardcode_action" in |
---|
1408 | relink) |
---|
1409 | # AGH! Flame the AIX and HP-UX people for me, will ya? |
---|
1410 | $echo "$modename: warning: using a buggy system linker" 1>&2 |
---|
1411 | $echo "$modename: relinking will be required before \`$output' can be installed" 1>&2 |
---|
1412 | ;; |
---|
1413 | esac |
---|
1414 | |
---|
1415 | $show "$compile_command" |
---|
1416 | $run eval "$compile_command" || exit $? |
---|
1417 | |
---|
1418 | # Now create the wrapper script. |
---|
1419 | $show "creating $output" |
---|
1420 | |
---|
1421 | # Quote the finalize command for shipping. |
---|
1422 | finalize_command=`$echo "X$finalize_command" | $Xsed -e "$sed_quote_subst"` |
---|
1423 | |
---|
1424 | # Quote $echo for shipping. |
---|
1425 | qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"` |
---|
1426 | |
---|
1427 | # Only actually do things if our run command is non-null. |
---|
1428 | if test -z "$run"; then |
---|
1429 | $rm $output |
---|
1430 | trap "$rm $output; exit 1" 1 2 15 |
---|
1431 | |
---|
1432 | $echo > $output "\ |
---|
1433 | #! /bin/sh |
---|
1434 | |
---|
1435 | # $output - temporary wrapper script for $objdir/$output |
---|
1436 | # Generated by ltmain.sh - GNU $PACKAGE $VERSION |
---|
1437 | # |
---|
1438 | # The $output program cannot be directly executed until all the libtool |
---|
1439 | # libraries that it depends on are installed. |
---|
1440 | # |
---|
1441 | # This wrapper script should never be moved out of \``pwd`'. |
---|
1442 | # If it is, it will not operate correctly. |
---|
1443 | |
---|
1444 | # Sed substitution that helps us do robust quoting. It backslashifies |
---|
1445 | # metacharacters that are still active within double-quoted strings. |
---|
1446 | Xsed='sed -e s/^X//' |
---|
1447 | sed_quote_subst='$sed_quote_subst' |
---|
1448 | |
---|
1449 | # The HP-UX ksh and POSIX shell print the target directory to stdout |
---|
1450 | # if CDPATH is set. |
---|
1451 | if test \"\${CDPATH+set}\" = set; then CDPATH=; export CDPATH; fi |
---|
1452 | |
---|
1453 | # This environment variable determines our operation mode. |
---|
1454 | if test \"\$libtool_install_magic\" = \"$magic\"; then |
---|
1455 | # install mode needs the following variables: |
---|
1456 | link_against_libtool_libs='$link_against_libtool_libs' |
---|
1457 | finalize_command=\"$finalize_command\" |
---|
1458 | else |
---|
1459 | # When we are sourced in execute mode, \$file and \$echo are already set. |
---|
1460 | if test \"\$libtool_execute_magic\" = \"$magic\"; then : |
---|
1461 | else |
---|
1462 | echo=\"$qecho\" |
---|
1463 | file=\"\$0\" |
---|
1464 | fi\ |
---|
1465 | " |
---|
1466 | $echo >> $output "\ |
---|
1467 | |
---|
1468 | # Find the directory that this script lives in. |
---|
1469 | thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\` |
---|
1470 | test \"x\$thisdir\" = \"x\$file\" && thisdir=. |
---|
1471 | |
---|
1472 | # Follow symbolic links until we get to the real thisdir. |
---|
1473 | file=\`ls -ld \"\$file\" | sed -n 's/.*-> //p'\` |
---|
1474 | while test -n \"\$file\"; do |
---|
1475 | destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\` |
---|
1476 | |
---|
1477 | # If there was a directory component, then change thisdir. |
---|
1478 | if test \"x\$destdir\" != \"x\$file\"; then |
---|
1479 | case \"\$destdir\" in |
---|
1480 | /* | [A-Za-z]:\\*) thisdir=\"\$destdir\" ;; |
---|
1481 | *) thisdir=\"\$thisdir/\$destdir\" ;; |
---|
1482 | esac |
---|
1483 | fi |
---|
1484 | |
---|
1485 | file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\` |
---|
1486 | file=\`ls -ld \"\$thisdir/\$file\" | sed -n 's/.*-> //p'\` |
---|
1487 | done |
---|
1488 | |
---|
1489 | # Try to get the absolute directory name. |
---|
1490 | absdir=\`cd \"\$thisdir\" && pwd\` |
---|
1491 | test -n \"\$absdir\" && thisdir=\"\$absdir\" |
---|
1492 | |
---|
1493 | progdir=\"\$thisdir/$objdir\" |
---|
1494 | program='$output' |
---|
1495 | |
---|
1496 | if test -f \"\$progdir/\$program\"; then" |
---|
1497 | |
---|
1498 | # Export our shlibpath_var if we have one. |
---|
1499 | if test -n "$shlibpath_var" && test -n "$temp_rpath"; then |
---|
1500 | $echo >> $output "\ |
---|
1501 | # Add our own library path to $shlibpath_var |
---|
1502 | $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" |
---|
1503 | |
---|
1504 | # Some systems cannot cope with colon-terminated $shlibpath_var |
---|
1505 | $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/:*\$//'\` |
---|
1506 | |
---|
1507 | export $shlibpath_var |
---|
1508 | " |
---|
1509 | fi |
---|
1510 | |
---|
1511 | $echo >> $output "\ |
---|
1512 | if test \"\$libtool_execute_magic\" != \"$magic\"; then |
---|
1513 | # Run the actual program with our arguments. |
---|
1514 | |
---|
1515 | # Export the path to the program. |
---|
1516 | PATH=\"\$progdir:\$PATH\" |
---|
1517 | export PATH |
---|
1518 | |
---|
1519 | exec \$program \${1+\"\$@\"} |
---|
1520 | |
---|
1521 | \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\" |
---|
1522 | exit 1 |
---|
1523 | fi |
---|
1524 | else |
---|
1525 | # The program doesn't exist. |
---|
1526 | \$echo \"\$0: error: \$progdir/\$program does not exist\" 1>&2 |
---|
1527 | \$echo \"This script is just a wrapper for \$program.\" 1>&2 |
---|
1528 | echo \"See the $PACKAGE documentation for more information.\" 1>&2 |
---|
1529 | exit 1 |
---|
1530 | fi |
---|
1531 | fi\ |
---|
1532 | " |
---|
1533 | chmod +x $output |
---|
1534 | fi |
---|
1535 | exit 0 |
---|
1536 | ;; |
---|
1537 | esac |
---|
1538 | |
---|
1539 | # See if we need to build an old-fashioned archive. |
---|
1540 | if test "$build_old_libs" = "yes"; then |
---|
1541 | # Transform .lo files to .o files. |
---|
1542 | oldobjs="$objs"`$echo "X$libobjs " | $Xsed -e 's/[^ ]*\.a //g' -e 's/\.lo /.o /g' -e 's/ $//g'` |
---|
1543 | |
---|
1544 | # Do each command in the archive commands. |
---|
1545 | if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then |
---|
1546 | eval cmds=\"$old_archive_from_new_cmds\" |
---|
1547 | else |
---|
1548 | eval cmds=\"$old_archive_cmds\" |
---|
1549 | fi |
---|
1550 | IFS="${IFS= }"; save_ifs="$IFS"; IFS=';' |
---|
1551 | for cmd in $cmds; do |
---|
1552 | IFS="$save_ifs" |
---|
1553 | $show "$cmd" |
---|
1554 | $run eval "$cmd" || exit $? |
---|
1555 | done |
---|
1556 | IFS="$save_ifs" |
---|
1557 | fi |
---|
1558 | |
---|
1559 | # Now create the libtool archive. |
---|
1560 | case "$output" in |
---|
1561 | *.la) |
---|
1562 | old_library= |
---|
1563 | test "$build_old_libs" = yes && old_library="$libname.a" |
---|
1564 | |
---|
1565 | $show "creating $output" |
---|
1566 | |
---|
1567 | # Only create the output if not a dry run. |
---|
1568 | if test -z "$run"; then |
---|
1569 | $echo > $output "\ |
---|
1570 | # $output - a libtool library file |
---|
1571 | # Generated by ltmain.sh - GNU $PACKAGE $VERSION |
---|
1572 | |
---|
1573 | # The name that we can dlopen(3). |
---|
1574 | dlname='$dlname' |
---|
1575 | |
---|
1576 | # Names of this library. |
---|
1577 | library_names='$library_names' |
---|
1578 | |
---|
1579 | # The name of the static archive. |
---|
1580 | old_library='$old_library' |
---|
1581 | |
---|
1582 | # Libraries that this one depends upon. |
---|
1583 | dependency_libs='$dependency_libs' |
---|
1584 | |
---|
1585 | # Version information for $libname. |
---|
1586 | current=$current |
---|
1587 | age=$age |
---|
1588 | revision=$revision |
---|
1589 | |
---|
1590 | # Directory that this library needs to be installed in: |
---|
1591 | libdir='$install_libdir'\ |
---|
1592 | " |
---|
1593 | fi |
---|
1594 | |
---|
1595 | # Do a symbolic link so that the libtool archive can be found in |
---|
1596 | # LD_LIBRARY_PATH before the program is installed. |
---|
1597 | $show "(cd $objdir && $LN_S ../$output $output)" |
---|
1598 | $run eval "(cd $objdir && $LN_S ../$output $output)" || exit 1 |
---|
1599 | ;; |
---|
1600 | esac |
---|
1601 | exit 0 |
---|
1602 | ;; |
---|
1603 | |
---|
1604 | # libtool install mode |
---|
1605 | install) |
---|
1606 | modename="$modename: install" |
---|
1607 | |
---|
1608 | # There may be an optional /bin/sh argument at the beginning of |
---|
1609 | # install_prog (especially on Windows NT). |
---|
1610 | if test "$nonopt" = "$SHELL"; then |
---|
1611 | # Aesthetically quote it. |
---|
1612 | arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"` |
---|
1613 | case "$arg" in |
---|
1614 | *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) |
---|
1615 | arg="\"$arg\"" |
---|
1616 | ;; |
---|
1617 | esac |
---|
1618 | install_prog="$arg " |
---|
1619 | arg="$1" |
---|
1620 | shift |
---|
1621 | else |
---|
1622 | install_prog= |
---|
1623 | arg="$nonopt" |
---|
1624 | fi |
---|
1625 | |
---|
1626 | # The real first argument should be the name of the installation program. |
---|
1627 | # Aesthetically quote it. |
---|
1628 | arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` |
---|
1629 | case "$arg" in |
---|
1630 | *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) |
---|
1631 | arg="\"$arg\"" |
---|
1632 | ;; |
---|
1633 | esac |
---|
1634 | install_prog="$install_prog$arg" |
---|
1635 | |
---|
1636 | # We need to accept at least all the BSD install flags. |
---|
1637 | dest= |
---|
1638 | files= |
---|
1639 | opts= |
---|
1640 | prev= |
---|
1641 | install_type= |
---|
1642 | isdir= |
---|
1643 | stripme= |
---|
1644 | for arg |
---|
1645 | do |
---|
1646 | if test -n "$dest"; then |
---|
1647 | files="$files $dest" |
---|
1648 | dest="$arg" |
---|
1649 | continue |
---|
1650 | fi |
---|
1651 | |
---|
1652 | case "$arg" in |
---|
1653 | -d) isdir=yes ;; |
---|
1654 | -f) prev="-f" ;; |
---|
1655 | -g) prev="-g" ;; |
---|
1656 | -m) prev="-m" ;; |
---|
1657 | -o) prev="-o" ;; |
---|
1658 | -s) |
---|
1659 | stripme=" -s" |
---|
1660 | continue |
---|
1661 | ;; |
---|
1662 | -*) ;; |
---|
1663 | |
---|
1664 | *) |
---|
1665 | # If the previous option needed an argument, then skip it. |
---|
1666 | if test -n "$prev"; then |
---|
1667 | prev= |
---|
1668 | else |
---|
1669 | dest="$arg" |
---|
1670 | continue |
---|
1671 | fi |
---|
1672 | ;; |
---|
1673 | esac |
---|
1674 | |
---|
1675 | # Aesthetically quote the argument. |
---|
1676 | arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` |
---|
1677 | case "$arg" in |
---|
1678 | *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) |
---|
1679 | arg="\"$arg\"" |
---|
1680 | ;; |
---|
1681 | esac |
---|
1682 | install_prog="$install_prog $arg" |
---|
1683 | done |
---|
1684 | |
---|
1685 | if test -z "$install_prog"; then |
---|
1686 | $echo "$modename: you must specify an install program" 1>&2 |
---|
1687 | $echo "$help" 1>&2 |
---|
1688 | exit 1 |
---|
1689 | fi |
---|
1690 | |
---|
1691 | if test -n "$prev"; then |
---|
1692 | $echo "$modename: the \`$prev' option requires an argument" 1>&2 |
---|
1693 | $echo "$help" 1>&2 |
---|
1694 | exit 1 |
---|
1695 | fi |
---|
1696 | |
---|
1697 | if test -z "$files"; then |
---|
1698 | if test -z "$dest"; then |
---|
1699 | $echo "$modename: no file or destination specified" 1>&2 |
---|
1700 | else |
---|
1701 | $echo "$modename: you must specify a destination" 1>&2 |
---|
1702 | fi |
---|
1703 | $echo "$help" 1>&2 |
---|
1704 | exit 1 |
---|
1705 | fi |
---|
1706 | |
---|
1707 | # Strip any trailing slash from the destination. |
---|
1708 | dest=`$echo "X$dest" | $Xsed -e 's%/$%%'` |
---|
1709 | |
---|
1710 | # Check to see that the destination is a directory. |
---|
1711 | test -d "$dest" && isdir=yes |
---|
1712 | if test -n "$isdir"; then |
---|
1713 | destdir="$dest" |
---|
1714 | destname= |
---|
1715 | else |
---|
1716 | destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'` |
---|
1717 | test "X$destdir" = "X$dest" && destdir=. |
---|
1718 | destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'` |
---|
1719 | |
---|
1720 | # Not a directory, so check to see that there is only one file specified. |
---|
1721 | set dummy $files |
---|
1722 | if test $# -gt 2; then |
---|
1723 | $echo "$modename: \`$dest' is not a directory" 1>&2 |
---|
1724 | $echo "$help" 1>&2 |
---|
1725 | exit 1 |
---|
1726 | fi |
---|
1727 | fi |
---|
1728 | case "$destdir" in |
---|
1729 | /* | [A-Za-z]:\\*) ;; |
---|
1730 | *) |
---|
1731 | for file in $files; do |
---|
1732 | case "$file" in |
---|
1733 | *.lo) ;; |
---|
1734 | *) |
---|
1735 | $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2 |
---|
1736 | $echo "$help" 1>&2 |
---|
1737 | exit 1 |
---|
1738 | ;; |
---|
1739 | esac |
---|
1740 | done |
---|
1741 | ;; |
---|
1742 | esac |
---|
1743 | |
---|
1744 | # This variable tells wrapper scripts just to set variables rather |
---|
1745 | # than running their programs. |
---|
1746 | libtool_install_magic="$magic" |
---|
1747 | |
---|
1748 | staticlibs= |
---|
1749 | future_libdirs= |
---|
1750 | current_libdirs= |
---|
1751 | for file in $files; do |
---|
1752 | |
---|
1753 | # Do each installation. |
---|
1754 | case "$file" in |
---|
1755 | *.a) |
---|
1756 | # Do the static libraries later. |
---|
1757 | staticlibs="$staticlibs $file" |
---|
1758 | ;; |
---|
1759 | |
---|
1760 | *.la) |
---|
1761 | # Check to see that this really is a libtool archive. |
---|
1762 | if (sed -e '2q' $file | egrep '^# Generated by ltmain\.sh') >/dev/null 2>&1; then : |
---|
1763 | else |
---|
1764 | $echo "$modename: \`$file' is not a valid libtool archive" 1>&2 |
---|
1765 | $echo "$help" 1>&2 |
---|
1766 | exit 1 |
---|
1767 | fi |
---|
1768 | |
---|
1769 | library_names= |
---|
1770 | old_library= |
---|
1771 | # If there is no directory component, then add one. |
---|
1772 | case "$file" in |
---|
1773 | */* | *\\*) . $file ;; |
---|
1774 | *) . ./$file ;; |
---|
1775 | esac |
---|
1776 | |
---|
1777 | # Add the libdir to current_libdirs if it is the destination. |
---|
1778 | if test "X$destdir" = "X$libdir"; then |
---|
1779 | case "$current_libdirs " in |
---|
1780 | *" $libdir "*) ;; |
---|
1781 | *) current_libdirs="$current_libdirs $libdir" ;; |
---|
1782 | esac |
---|
1783 | else |
---|
1784 | # Note the libdir as a future libdir. |
---|
1785 | case "$future_libdirs " in |
---|
1786 | *" $libdir "*) ;; |
---|
1787 | *) future_libdirs="$future_libdirs $libdir" ;; |
---|
1788 | esac |
---|
1789 | fi |
---|
1790 | |
---|
1791 | dir="`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/" |
---|
1792 | test "X$dir" = "X$file/" && dir= |
---|
1793 | dir="$dir$objdir" |
---|
1794 | |
---|
1795 | # See the names of the shared library. |
---|
1796 | set dummy $library_names |
---|
1797 | if test -n "$2"; then |
---|
1798 | realname="$2" |
---|
1799 | shift |
---|
1800 | shift |
---|
1801 | |
---|
1802 | # Install the shared library and build the symlinks. |
---|
1803 | $show "$install_prog $dir/$realname $destdir/$realname" |
---|
1804 | $run eval "$install_prog $dir/$realname $destdir/$realname" || exit $? |
---|
1805 | test "X$dlname" = "X$realname" && dlname= |
---|
1806 | |
---|
1807 | if test $# -gt 0; then |
---|
1808 | # Delete the old symlinks. |
---|
1809 | rmcmd="$rm" |
---|
1810 | for linkname |
---|
1811 | do |
---|
1812 | rmcmd="$rmcmd $destdir/$linkname" |
---|
1813 | done |
---|
1814 | $show "$rmcmd" |
---|
1815 | $run $rmcmd |
---|
1816 | |
---|
1817 | # ... and create new ones. |
---|
1818 | for linkname |
---|
1819 | do |
---|
1820 | test "X$dlname" = "X$linkname" && dlname= |
---|
1821 | $show "(cd $destdir && $LN_S $realname $linkname)" |
---|
1822 | $run eval "(cd $destdir && $LN_S $realname $linkname)" |
---|
1823 | done |
---|
1824 | fi |
---|
1825 | |
---|
1826 | if test -n "$dlname"; then |
---|
1827 | # Install the dynamically-loadable library. |
---|
1828 | $show "$install_prog $dir/$dlname $destdir/$dlname" |
---|
1829 | $run eval "$install_prog $dir/$dlname $destdir/$dlname" || exit $? |
---|
1830 | fi |
---|
1831 | |
---|
1832 | # Do each command in the postinstall commands. |
---|
1833 | lib="$destdir/$realname" |
---|
1834 | eval cmds=\"$postinstall_cmds\" |
---|
1835 | IFS="${IFS= }"; save_ifs="$IFS"; IFS=';' |
---|
1836 | for cmd in $cmds; do |
---|
1837 | IFS="$save_ifs" |
---|
1838 | $show "$cmd" |
---|
1839 | $run eval "$cmd" || exit $? |
---|
1840 | done |
---|
1841 | IFS="$save_ifs" |
---|
1842 | fi |
---|
1843 | |
---|
1844 | # Install the pseudo-library for information purposes. |
---|
1845 | name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` |
---|
1846 | $show "$install_prog $file $destdir/$name" |
---|
1847 | $run eval "$install_prog $file $destdir/$name" || exit $? |
---|
1848 | |
---|
1849 | # Maybe install the static library, too. |
---|
1850 | test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library" |
---|
1851 | ;; |
---|
1852 | |
---|
1853 | *.lo) |
---|
1854 | # Install (i.e. copy) a libtool object. |
---|
1855 | |
---|
1856 | # Figure out destination file name, if it wasn't already specified. |
---|
1857 | if test -n "$destname"; then |
---|
1858 | destfile="$destdir/$destname" |
---|
1859 | else |
---|
1860 | destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` |
---|
1861 | destfile="$destdir/$destfile" |
---|
1862 | fi |
---|
1863 | |
---|
1864 | # Deduce the name of the destination old-style object file. |
---|
1865 | case "$destfile" in |
---|
1866 | *.lo) |
---|
1867 | staticdest=`$echo "X$destfile" | $Xsed -e 's/\.lo$/\.o/'` |
---|
1868 | ;; |
---|
1869 | *.o) |
---|
1870 | staticdest="$destfile" |
---|
1871 | destfile= |
---|
1872 | ;; |
---|
1873 | *) |
---|
1874 | $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2 |
---|
1875 | $echo "$help" 1>&2 |
---|
1876 | exit 1 |
---|
1877 | ;; |
---|
1878 | esac |
---|
1879 | |
---|
1880 | # Install the libtool object if requested. |
---|
1881 | if test -n "$destfile"; then |
---|
1882 | $show "$install_prog $file $destfile" |
---|
1883 | $run eval "$install_prog $file $destfile" || exit $? |
---|
1884 | fi |
---|
1885 | |
---|
1886 | # Install the old object if enabled. |
---|
1887 | if test "$build_old_libs" = yes; then |
---|
1888 | # Deduce the name of the old-style object file. |
---|
1889 | staticobj=`$echo "X$file" | $Xsed -e 's/\.lo$/\.o/'` |
---|
1890 | |
---|
1891 | $show "$install_prog $staticobj $staticdest" |
---|
1892 | $run eval "$install_prog \$staticobj \$staticdest" || exit $? |
---|
1893 | fi |
---|
1894 | exit 0 |
---|
1895 | ;; |
---|
1896 | |
---|
1897 | *) |
---|
1898 | # Do a test to see if this is really a libtool program. |
---|
1899 | if (sed -e '4q' $file | egrep '^# Generated by ltmain\.sh') >/dev/null 2>&1; then |
---|
1900 | link_against_libtool_libs= |
---|
1901 | finalize_command= |
---|
1902 | |
---|
1903 | # If there is no directory component, then add one. |
---|
1904 | case "$file" in |
---|
1905 | */* | *\\*) . $file ;; |
---|
1906 | *) . ./$file ;; |
---|
1907 | esac |
---|
1908 | |
---|
1909 | # Check the variables that should have been set. |
---|
1910 | if test -z "$link_against_libtool_libs" || test -z "$finalize_command"; then |
---|
1911 | $echo "$modename: invalid libtool wrapper script \`$file'" 1>&2 |
---|
1912 | exit 1 |
---|
1913 | fi |
---|
1914 | |
---|
1915 | finalize=yes |
---|
1916 | for lib in $link_against_libtool_libs; do |
---|
1917 | # Check to see that each library is installed. |
---|
1918 | libdir= |
---|
1919 | if test -f "$lib"; then |
---|
1920 | # If there is no directory component, then add one. |
---|
1921 | case "$lib" in |
---|
1922 | */* | *\\*) . $lib ;; |
---|
1923 | *) . ./$lib ;; |
---|
1924 | esac |
---|
1925 | fi |
---|
1926 | libfile="$libdir/`$echo "X$lib" | $Xsed -e 's%^.*/%%g'`" |
---|
1927 | if test -z "$libdir"; then |
---|
1928 | $echo "$modename: warning: \`$lib' contains no -rpath information" 1>&2 |
---|
1929 | elif test -f "$libfile"; then : |
---|
1930 | else |
---|
1931 | $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2 |
---|
1932 | finalize=no |
---|
1933 | fi |
---|
1934 | done |
---|
1935 | |
---|
1936 | if test "$hardcode_action" = relink; then |
---|
1937 | if test "$finalize" = yes; then |
---|
1938 | $echo "$modename: warning: relinking \`$file' on behalf of your buggy system linker" 1>&2 |
---|
1939 | $show "$finalize_command" |
---|
1940 | if $run eval "$finalize_command"; then : |
---|
1941 | else |
---|
1942 | $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 |
---|
1943 | continue |
---|
1944 | fi |
---|
1945 | file="$objdir/$file"T |
---|
1946 | else |
---|
1947 | $echo "$modename: warning: cannot relink \`$file' on behalf of your buggy system linker" 1>&2 |
---|
1948 | fi |
---|
1949 | else |
---|
1950 | # Install the binary that we compiled earlier. |
---|
1951 | file=`$echo "X$file" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"` |
---|
1952 | fi |
---|
1953 | fi |
---|
1954 | |
---|
1955 | $show "$install_prog$stripme $file $dest" |
---|
1956 | $run eval "$install_prog\$stripme \$file \$dest" || exit $? |
---|
1957 | ;; |
---|
1958 | esac |
---|
1959 | done |
---|
1960 | |
---|
1961 | for file in $staticlibs; do |
---|
1962 | name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` |
---|
1963 | |
---|
1964 | # Set up the ranlib parameters. |
---|
1965 | oldlib="$destdir/$name" |
---|
1966 | |
---|
1967 | $show "$install_prog $file $oldlib" |
---|
1968 | $run eval "$install_prog \$file \$oldlib" || exit $? |
---|
1969 | |
---|
1970 | # Do each command in the postinstall commands. |
---|
1971 | eval cmds=\"$old_postinstall_cmds\" |
---|
1972 | IFS="${IFS= }"; save_ifs="$IFS"; IFS=';' |
---|
1973 | for cmd in $cmds; do |
---|
1974 | IFS="$save_ifs" |
---|
1975 | $show "$cmd" |
---|
1976 | $run eval "$cmd" || exit $? |
---|
1977 | done |
---|
1978 | IFS="$save_ifs" |
---|
1979 | done |
---|
1980 | |
---|
1981 | if test -n "$future_libdirs"; then |
---|
1982 | $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2 |
---|
1983 | fi |
---|
1984 | |
---|
1985 | if test -n "$current_libdirs"; then |
---|
1986 | # Maybe just do a dry run. |
---|
1987 | test -n "$run" && current_libdirs=" -n$current_libdirs" |
---|
1988 | exec $SHELL $0 --finish$current_libdirs |
---|
1989 | exit 1 |
---|
1990 | fi |
---|
1991 | |
---|
1992 | exit 0 |
---|
1993 | ;; |
---|
1994 | |
---|
1995 | # libtool finish mode |
---|
1996 | finish) |
---|
1997 | modename="$modename: finish" |
---|
1998 | libdirs="$nonopt" |
---|
1999 | |
---|
2000 | if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then |
---|
2001 | for dir |
---|
2002 | do |
---|
2003 | libdirs="$libdirs $dir" |
---|
2004 | done |
---|
2005 | |
---|
2006 | for libdir in $libdirs; do |
---|
2007 | if test -n "$finish_cmds"; then |
---|
2008 | # Do each command in the finish commands. |
---|
2009 | eval cmds=\"$finish_cmds\" |
---|
2010 | IFS="${IFS= }"; save_ifs="$IFS"; IFS=';' |
---|
2011 | for cmd in $cmds; do |
---|
2012 | IFS="$save_ifs" |
---|
2013 | $show "$cmd" |
---|
2014 | $run eval "$cmd" |
---|
2015 | done |
---|
2016 | IFS="$save_ifs" |
---|
2017 | fi |
---|
2018 | if test -n "$finish_eval"; then |
---|
2019 | # Do the single finish_eval. |
---|
2020 | eval cmds=\"$finish_eval\" |
---|
2021 | $run eval "$cmds" |
---|
2022 | fi |
---|
2023 | done |
---|
2024 | fi |
---|
2025 | |
---|
2026 | echo "------------------------------------------------------------------------------" |
---|
2027 | echo "Libraries have been installed in:" |
---|
2028 | for libdir in $libdirs; do |
---|
2029 | echo " $libdir" |
---|
2030 | done |
---|
2031 | echo |
---|
2032 | echo "To link against installed libraries in a given directory, LIBDIR," |
---|
2033 | echo "you must use the \`-LLIBDIR' flag during linking." |
---|
2034 | echo |
---|
2035 | echo " You will also need to do one of the following:" |
---|
2036 | if test -n "$shlibpath_var"; then |
---|
2037 | echo " - add LIBDIR to the \`$shlibpath_var' environment variable" |
---|
2038 | echo " during execution" |
---|
2039 | fi |
---|
2040 | if test -n "$runpath_var"; then |
---|
2041 | echo " - add LIBDIR to the \`$runpath_var' environment variable" |
---|
2042 | echo " during linking" |
---|
2043 | fi |
---|
2044 | if test -n "$hardcode_libdir_flag_spec"; then |
---|
2045 | libdir=LIBDIR |
---|
2046 | eval flag=\"$hardcode_libdir_flag_spec\" |
---|
2047 | |
---|
2048 | echo " - use the \`$flag' linker flag" |
---|
2049 | fi |
---|
2050 | if test -f /etc/ld.so.conf; then |
---|
2051 | echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" |
---|
2052 | fi |
---|
2053 | echo |
---|
2054 | echo "See any operating system documentation about shared libraries for" |
---|
2055 | echo "more information, such as the ld(1) and ld.so(8) manual pages." |
---|
2056 | echo "------------------------------------------------------------------------------" |
---|
2057 | exit 0 |
---|
2058 | ;; |
---|
2059 | |
---|
2060 | # libtool execute mode |
---|
2061 | execute) |
---|
2062 | modename="$modename: execute" |
---|
2063 | |
---|
2064 | # The first argument is the command name. |
---|
2065 | cmd="$nonopt" |
---|
2066 | if test -z "$cmd"; then |
---|
2067 | $echo "$modename: you must specify a COMMAND" 1>&2 |
---|
2068 | $echo "$help" |
---|
2069 | exit 1 |
---|
2070 | fi |
---|
2071 | |
---|
2072 | # Handle -dlopen flags immediately. |
---|
2073 | for file in $execute_dlfiles; do |
---|
2074 | if test -f "$file"; then : |
---|
2075 | else |
---|
2076 | $echo "$modename: \`$file' is not a file" 1>&2 |
---|
2077 | $echo "$help" 1>&2 |
---|
2078 | exit 1 |
---|
2079 | fi |
---|
2080 | |
---|
2081 | dir= |
---|
2082 | case "$file" in |
---|
2083 | *.la) |
---|
2084 | # Check to see that this really is a libtool archive. |
---|
2085 | if (sed -e '2q' $file | egrep '^# Generated by ltmain\.sh') >/dev/null 2>&1; then : |
---|
2086 | else |
---|
2087 | $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 |
---|
2088 | $echo "$help" 1>&2 |
---|
2089 | exit 1 |
---|
2090 | fi |
---|
2091 | |
---|
2092 | # Read the libtool library. |
---|
2093 | dlname= |
---|
2094 | library_names= |
---|
2095 | |
---|
2096 | # If there is no directory component, then add one. |
---|
2097 | case "$file" in |
---|
2098 | */* | *\\*) . $file ;; |
---|
2099 | *) . ./$file ;; |
---|
2100 | esac |
---|
2101 | |
---|
2102 | # Skip this library if it cannot be dlopened. |
---|
2103 | if test -z "$dlname"; then |
---|
2104 | # Warn if it was a shared library. |
---|
2105 | test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'" |
---|
2106 | continue |
---|
2107 | fi |
---|
2108 | |
---|
2109 | dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` |
---|
2110 | test "X$dir" = "X$file" && dir=. |
---|
2111 | |
---|
2112 | if test -f "$dir/$objdir/$dlname"; then |
---|
2113 | dir="$dir/$objdir" |
---|
2114 | else |
---|
2115 | $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2 |
---|
2116 | exit 1 |
---|
2117 | fi |
---|
2118 | ;; |
---|
2119 | |
---|
2120 | *.lo) |
---|
2121 | # Just add the directory containing the .lo file. |
---|
2122 | dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` |
---|
2123 | test "X$dir" = "X$file" && dir=. |
---|
2124 | ;; |
---|
2125 | |
---|
2126 | *) |
---|
2127 | $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2 |
---|
2128 | continue |
---|
2129 | ;; |
---|
2130 | esac |
---|
2131 | |
---|
2132 | # Get the absolute pathname. |
---|
2133 | absdir=`cd "$dir" && pwd` |
---|
2134 | test -n "$absdir" && dir="$absdir" |
---|
2135 | |
---|
2136 | # Now add the directory to shlibpath_var. |
---|
2137 | if eval "test -z \"\$$shlibpath_var\""; then |
---|
2138 | eval "$shlibpath_var=\"\$dir\"" |
---|
2139 | else |
---|
2140 | eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" |
---|
2141 | fi |
---|
2142 | done |
---|
2143 | |
---|
2144 | # This variable tells wrapper scripts just to set shlibpath_var |
---|
2145 | # rather than running their programs. |
---|
2146 | libtool_execute_magic="$magic" |
---|
2147 | |
---|
2148 | # Check if any of the arguments is a wrapper script. |
---|
2149 | args= |
---|
2150 | for file |
---|
2151 | do |
---|
2152 | case "$file" in |
---|
2153 | -*) ;; |
---|
2154 | *) |
---|
2155 | # Do a test to see if this is really a libtool program. |
---|
2156 | if (sed -e '4q' $file | egrep '^# Generated by ltmain\.sh') >/dev/null 2>&1; then |
---|
2157 | # If there is no directory component, then add one. |
---|
2158 | case "$file" in |
---|
2159 | */* | *\\*) . $file ;; |
---|
2160 | *) . ./$file ;; |
---|
2161 | esac |
---|
2162 | |
---|
2163 | # Transform arg to wrapped name. |
---|
2164 | file="$progdir/$program" |
---|
2165 | fi |
---|
2166 | ;; |
---|
2167 | esac |
---|
2168 | # Quote arguments (to preserve shell metacharacters). |
---|
2169 | file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"` |
---|
2170 | args="$args \"$file\"" |
---|
2171 | done |
---|
2172 | |
---|
2173 | if test -z "$run"; then |
---|
2174 | # Export the shlibpath_var. |
---|
2175 | eval "export $shlibpath_var" |
---|
2176 | |
---|
2177 | # Now actually exec the command. |
---|
2178 | eval "exec \$cmd$args" |
---|
2179 | |
---|
2180 | $echo "$modename: cannot exec \$cmd$args" |
---|
2181 | exit 1 |
---|
2182 | else |
---|
2183 | # Display what would be done. |
---|
2184 | eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\"" |
---|
2185 | $echo "export $shlibpath_var" |
---|
2186 | $echo "$cmd$args" |
---|
2187 | exit 0 |
---|
2188 | fi |
---|
2189 | ;; |
---|
2190 | |
---|
2191 | # libtool uninstall mode |
---|
2192 | uninstall) |
---|
2193 | modename="$modename: uninstall" |
---|
2194 | rm="$nonopt" |
---|
2195 | files= |
---|
2196 | |
---|
2197 | for arg |
---|
2198 | do |
---|
2199 | case "$arg" in |
---|
2200 | -*) rm="$rm $arg" ;; |
---|
2201 | *) files="$files $arg" ;; |
---|
2202 | esac |
---|
2203 | done |
---|
2204 | |
---|
2205 | if test -z "$rm"; then |
---|
2206 | $echo "$modename: you must specify an RM program" 1>&2 |
---|
2207 | $echo "$help" 1>&2 |
---|
2208 | exit 1 |
---|
2209 | fi |
---|
2210 | |
---|
2211 | for file in $files; do |
---|
2212 | dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` |
---|
2213 | test "X$dir" = "X$file" && dir=. |
---|
2214 | name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` |
---|
2215 | |
---|
2216 | rmfiles="$file" |
---|
2217 | |
---|
2218 | case "$name" in |
---|
2219 | *.la) |
---|
2220 | # Possibly a libtool archive, so verify it. |
---|
2221 | if (sed -e '2q' $file | egrep '^# Generated by ltmain\.sh') >/dev/null 2>&1; then |
---|
2222 | . $dir/$name |
---|
2223 | |
---|
2224 | # Delete the libtool libraries and symlinks. |
---|
2225 | for n in $library_names; do |
---|
2226 | rmfiles="$rmfiles $dir/$n" |
---|
2227 | test "X$n" = "X$dlname" && dlname= |
---|
2228 | done |
---|
2229 | test -n "$dlname" && rmfiles="$rmfiles $dir/$dlname" |
---|
2230 | test -n "$old_library" && rmfiles="$rmfiles $dir/$old_library" |
---|
2231 | |
---|
2232 | $show "$rm $rmfiles" |
---|
2233 | $run $rm $rmfiles |
---|
2234 | |
---|
2235 | if test -n "$library_names"; then |
---|
2236 | # Do each command in the postuninstall commands. |
---|
2237 | eval cmds=\"$postuninstall_cmds\" |
---|
2238 | IFS="${IFS= }"; save_ifs="$IFS"; IFS=';' |
---|
2239 | for cmd in $cmds; do |
---|
2240 | IFS="$save_ifs" |
---|
2241 | $show "$cmd" |
---|
2242 | $run eval "$cmd" |
---|
2243 | done |
---|
2244 | IFS="$save_ifs" |
---|
2245 | fi |
---|
2246 | |
---|
2247 | if test -n "$old_library"; then |
---|
2248 | # Do each command in the old_postuninstall commands. |
---|
2249 | eval cmds=\"$old_postuninstall_cmds\" |
---|
2250 | IFS="${IFS= }"; save_ifs="$IFS"; IFS=';' |
---|
2251 | for cmd in $cmds; do |
---|
2252 | IFS="$save_ifs" |
---|
2253 | $show "$cmd" |
---|
2254 | $run eval "$cmd" |
---|
2255 | done |
---|
2256 | IFS="$save_ifs" |
---|
2257 | fi |
---|
2258 | |
---|
2259 | # FIXME: should reinstall the best remaining shared library. |
---|
2260 | fi |
---|
2261 | ;; |
---|
2262 | |
---|
2263 | *.lo) |
---|
2264 | if test "$build_old_libs" = yes; then |
---|
2265 | oldobj=`$echo "X$name" | $Xsed -e 's/\.lo$/\.o/'` |
---|
2266 | rmfiles="$rmfiles $dir/$oldobj" |
---|
2267 | fi |
---|
2268 | $show "$rm $rmfiles" |
---|
2269 | $run $rm $rmfiles |
---|
2270 | ;; |
---|
2271 | |
---|
2272 | *) |
---|
2273 | $show "$rm $rmfiles" |
---|
2274 | $run $rm $rmfiles |
---|
2275 | ;; |
---|
2276 | esac |
---|
2277 | done |
---|
2278 | exit 0 |
---|
2279 | ;; |
---|
2280 | |
---|
2281 | "") |
---|
2282 | $echo "$modename: you must specify a MODE" 1>&2 |
---|
2283 | $echo "$generic_help" 1>&2 |
---|
2284 | exit 1 |
---|
2285 | ;; |
---|
2286 | esac |
---|
2287 | |
---|
2288 | $echo "$modename: invalid operation mode \`$mode'" 1>&2 |
---|
2289 | $echo "$generic_help" 1>&2 |
---|
2290 | exit 1 |
---|
2291 | fi # test -z "$show_help" |
---|
2292 | |
---|
2293 | # We need to display help for each of the modes. |
---|
2294 | case "$mode" in |
---|
2295 | "") $echo \ |
---|
2296 | "Usage: $modename [OPTION]... [MODE-ARG]... |
---|
2297 | |
---|
2298 | Provide generalized library-building support services. |
---|
2299 | |
---|
2300 | -n, --dry-run display commands without modifying any files |
---|
2301 | --features display configuration information and exit |
---|
2302 | --finish same as \`--mode=finish' |
---|
2303 | --help display this help message and exit |
---|
2304 | --mode=MODE use operation mode MODE [default=inferred from MODE-ARGS] |
---|
2305 | --quiet same as \`--silent' |
---|
2306 | --silent don't print informational messages |
---|
2307 | --version print version information |
---|
2308 | |
---|
2309 | MODE must be one of the following: |
---|
2310 | |
---|
2311 | compile compile a source file into a libtool object |
---|
2312 | execute automatically set library path, then run a program |
---|
2313 | finish complete the installation of libtool libraries |
---|
2314 | install install libraries or executables |
---|
2315 | link create a library or an executable |
---|
2316 | uninstall remove libraries from an installed directory |
---|
2317 | |
---|
2318 | MODE-ARGS vary depending on the MODE. Try \`$modename --help --mode=MODE' for |
---|
2319 | a more detailed description of MODE." |
---|
2320 | exit 0 |
---|
2321 | ;; |
---|
2322 | |
---|
2323 | compile) |
---|
2324 | $echo \ |
---|
2325 | "Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE |
---|
2326 | |
---|
2327 | Compile a source file into a libtool library object. |
---|
2328 | |
---|
2329 | COMPILE-COMMAND is a command to be used in creating a \`standard' object file |
---|
2330 | from the given SOURCEFILE. |
---|
2331 | |
---|
2332 | The output file name is determined by removing the directory component from |
---|
2333 | SOURCEFILE, then substituting the C source code suffix \`.c' with the |
---|
2334 | library object suffix, \`.lo'." |
---|
2335 | ;; |
---|
2336 | |
---|
2337 | execute) |
---|
2338 | $echo \ |
---|
2339 | "Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]... |
---|
2340 | |
---|
2341 | Automatically set library path, then run a program. |
---|
2342 | |
---|
2343 | This mode accepts the following additional options: |
---|
2344 | |
---|
2345 | -dlopen FILE add the directory containing FILE to the library path |
---|
2346 | |
---|
2347 | This mode sets the library path environment variable according to \`-dlopen' |
---|
2348 | flags. |
---|
2349 | |
---|
2350 | If any of the ARGS are libtool executable wrappers, then they are translated |
---|
2351 | into their corresponding uninstalled binary, and any of their required library |
---|
2352 | directories are added to the library path. |
---|
2353 | |
---|
2354 | Then, COMMAND is executed, with ARGS as arguments." |
---|
2355 | ;; |
---|
2356 | |
---|
2357 | finish) |
---|
2358 | $echo \ |
---|
2359 | "Usage: $modename [OPTION]... --mode=finish [LIBDIR]... |
---|
2360 | |
---|
2361 | Complete the installation of libtool libraries. |
---|
2362 | |
---|
2363 | Each LIBDIR is a directory that contains libtool libraries. |
---|
2364 | |
---|
2365 | The commands that this mode executes may require superuser privileges. Use |
---|
2366 | the \`--dry-run' option if you just want to see what would be executed." |
---|
2367 | ;; |
---|
2368 | |
---|
2369 | install) |
---|
2370 | $echo \ |
---|
2371 | "Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND... |
---|
2372 | |
---|
2373 | Install executables or libraries. |
---|
2374 | |
---|
2375 | INSTALL-COMMAND is the installation command. The first component should be |
---|
2376 | either the \`install' or \`cp' program. |
---|
2377 | |
---|
2378 | The rest of the components are interpreted as arguments to that command (only |
---|
2379 | BSD-compatible install options are recognized)." |
---|
2380 | ;; |
---|
2381 | |
---|
2382 | link) |
---|
2383 | $echo \ |
---|
2384 | "Usage: $modename [OPTION]... --mode=link LINK-COMMAND... |
---|
2385 | |
---|
2386 | Link object files or libraries together to form another library, or to |
---|
2387 | create an executable program. |
---|
2388 | |
---|
2389 | LINK-COMMAND is a command using the C compiler that you would use to create |
---|
2390 | a program from several object files. |
---|
2391 | |
---|
2392 | The following components of LINK-COMMAND are treated specially: |
---|
2393 | |
---|
2394 | -all-static do not do any dynamic linking at all |
---|
2395 | -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime |
---|
2396 | -dlpreopen FILE link in FILE and add its symbols to dld_preloaded_symbols |
---|
2397 | -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) |
---|
2398 | -LLIBDIR search LIBDIR for required installed libraries |
---|
2399 | -lNAME OUTPUT-FILE requires the installed library libNAME |
---|
2400 | -no-undefined declare that a library does not refer to external symbols |
---|
2401 | -o OUTPUT-FILE create OUTPUT-FILE from the specified objects |
---|
2402 | -release RELEASE specify package release information |
---|
2403 | -rpath LIBDIR the created library will eventually be installed in LIBDIR |
---|
2404 | -static do not do any dynamic linking of libtool libraries |
---|
2405 | -version-info CURRENT[:REVISION[:AGE]] |
---|
2406 | specify library version info [each variable defaults to 0] |
---|
2407 | |
---|
2408 | All other options (arguments beginning with \`-') are ignored. |
---|
2409 | |
---|
2410 | Every other argument is treated as a filename. Files ending in \`.la' are |
---|
2411 | treated as uninstalled libtool libraries, other files are standard or library |
---|
2412 | object files. |
---|
2413 | |
---|
2414 | If the OUTPUT-FILE ends in \`.la', then a libtool library is created, only |
---|
2415 | library objects (\`.lo' files) may be specified, and \`-rpath' is required. |
---|
2416 | |
---|
2417 | If OUTPUT-FILE ends in \`.a', then a standard library is created using \`ar' |
---|
2418 | and \`ranlib'. |
---|
2419 | |
---|
2420 | If OUTPUT-FILE ends in \`.lo' or \`.o', then a reloadable object file is |
---|
2421 | created, otherwise an executable program is created." |
---|
2422 | ;; |
---|
2423 | |
---|
2424 | uninstall) |
---|
2425 | $echo |
---|
2426 | "Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... |
---|
2427 | |
---|
2428 | Remove libraries from an installation directory. |
---|
2429 | |
---|
2430 | RM is the name of the program to use to delete files associated with each FILE |
---|
2431 | (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed |
---|
2432 | to RM. |
---|
2433 | |
---|
2434 | If FILE is a libtool library, all the files associated with it are deleted. |
---|
2435 | Otherwise, only FILE itself is deleted using RM." |
---|
2436 | ;; |
---|
2437 | |
---|
2438 | *) |
---|
2439 | $echo "$modename: invalid operation mode \`$mode'" 1>&2 |
---|
2440 | $echo "$help" 1>&2 |
---|
2441 | exit 1 |
---|
2442 | ;; |
---|
2443 | esac |
---|
2444 | |
---|
2445 | echo |
---|
2446 | $echo "Try \`$modename --help' for more information about other modes." |
---|
2447 | |
---|
2448 | exit 0 |
---|
2449 | |
---|
2450 | # Local Variables: |
---|
2451 | # mode:shell-script |
---|
2452 | # sh-indentation:2 |
---|
2453 | # End: |
---|