/[libtool]/libtool/ltmain.in
ViewVC logotype

Contents of /libtool/ltmain.in

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1 - (show annotations) (download)
Mon Sep 15 12:31:09 1997 UTC (26 years, 7 months ago) by gord
Branch: MAIN
CVS Tags: release-1-0
Branch point for: gord
Initial revision

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

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26