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