* ltconfig, ltmain.sh: Update to libtool 1.2b.
[external/binutils.git] / 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               compile_command="$compile_command -L$dir -l$name"
747             elif test "$hardcode_shlibpath_var" = no; then
748               compile_shlibpath="$compile_shlibpath$dir:"
749               compile_command="$compile_command -l$name"
750             else
751               lib_linked=no
752             fi
753             ;;
754
755           relink)
756             # We need an absolute path.
757             case "$dir" in
758             /* | [A-Za-z]:[/\\]*) ;;
759             *)
760               absdir=`cd "$dir" && pwd`
761               if test -z "$absdir"; then
762                 $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2
763                 exit 1
764               fi
765               dir="$absdir"
766               ;;
767             esac
768
769             if test "$hardcode_direct" = yes; then
770               compile_command="$compile_command $dir/$linklib"
771             elif test "$hardcode_minus_L" = yes; then
772               compile_command="$compile_command -L$dir -l$name"
773             elif test "$hardcode_shlibpath_var" = yes; then
774               compile_shlibpath="$compile_shlibpath$dir:"
775               compile_command="$compile_command -l$name"
776             else
777               lib_linked=no
778             fi
779             ;;
780
781           *)
782             lib_linked=no
783             ;;
784           esac
785
786           if test "$lib_linked" != yes; then
787             $echo "$modename: configuration error: unsupported hardcode properties"
788             exit 1
789           fi
790
791           # Finalize command for both is simple: just hardcode it.
792           if test "$hardcode_direct" = yes; then
793             finalize_command="$finalize_command $libdir/$linklib"
794           elif test "$hardcode_minus_L" = yes; then
795             finalize_command="$finalize_command -L$libdir -l$name"
796           elif test "$hardcode_shlibpath_var" = yes; then
797             finalize_shlibpath="$finalize_shlibpath$libdir:"
798             finalize_command="$finalize_command -l$name"
799           else
800             # We cannot seem to hardcode it, guess we'll fake it.
801             finalize_command="$finalize_command -L$libdir -l$name"
802           fi
803         else
804           # Transform directly to old archives if we don't build new libraries.
805           if test -n "$pic_flag" && test -z "$old_library"; then
806             $echo "$modename: cannot find static library for \`$arg'" 1>&2
807             exit 1
808           fi
809
810           # Here we assume that one of hardcode_direct or hardcode_minus_L
811           # is not unsupported.  This is valid on all known static and
812           # shared platforms.
813           if test "$hardcode_direct" != unsupported; then
814             test -n "$old_library" && linklib="$old_library"
815             compile_command="$compile_command $dir/$linklib"
816             finalize_command="$finalize_command $dir/$linklib"
817           else
818             compile_command="$compile_command -L$dir -l$name"
819             finalize_command="$finalize_command -L$dir -l$name"
820           fi
821         fi
822
823         # Add in any libraries that this one depends upon.
824         compile_command="$compile_command$dependency_libs"
825         finalize_command="$finalize_command$dependency_libs"
826         continue
827         ;;
828
829       # Some other compiler argument.
830       *)
831         # Unknown arguments in both finalize_command and compile_command need
832         # to be aesthetically quoted because they are evaled later.
833         arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
834         case "$arg" in
835         *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \   ]*|*]*)
836           arg="\"$arg\""
837           ;;
838         esac
839         ;;
840       esac
841
842       # Now actually substitute the argument into the commands.
843       if test -n "$arg"; then
844         compile_command="$compile_command $arg"
845         finalize_command="$finalize_command $arg"
846       fi
847     done
848
849     if test -n "$prev"; then
850       $echo "$modename: the \`$prevarg' option requires an argument" 1>&2
851       $echo "$help" 1>&2
852       exit 1
853     fi
854
855     oldlibs=
856     case "$output" in
857     "")
858       $echo "$modename: you must specify an output file" 1>&2
859       $echo "$help" 1>&2
860       exit 1
861       ;;
862
863     */* | *\\*)
864       $echo "$modename: output file \`$output' must have no directory components" 1>&2
865       $echo "$help" 1>&2
866       exit 1
867       ;;
868
869     *.a | *.lib)
870       if test -n "$link_against_libtool_libs"; then
871         $echo "$modename: error: cannot link libtool libraries into archives" 1>&2
872         exit 1
873       fi
874
875       if test -n "$deplibs"; then
876         $echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2
877       fi
878
879       if test -n "$dlfiles$dlprefiles"; then
880         $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2
881       fi
882
883       if test -n "$rpath"; then
884         $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2
885       fi
886
887       if test -n "$vinfo"; then
888         $echo "$modename: warning: \`-version-info' is ignored for archives" 1>&2
889       fi
890
891       if test -n "$release"; then
892         $echo "$modename: warning: \`-release' is ignored for archives" 1>&2
893       fi
894
895       # Now set the variables for building old libraries.
896       build_libtool_libs=no
897       oldlibs="$output"
898       ;;
899
900     *.la)
901       # Make sure we only generate libraries of the form `libNAME.la'.
902       case "$output" in
903       lib*) ;;
904       *)
905         $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2
906         $echo "$help" 1>&2
907         exit 1
908         ;;
909       esac
910
911       name=`$echo "X$output" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
912       eval libname=\"$libname_spec\"
913
914       # All the library-specific variables (install_libdir is set above).
915       library_names=
916       old_library=
917       dlname=
918
919       if test -n "$objs"; then
920         $echo "$modename: cannot build libtool library \`$output' from non-libtool objects:$objs" 2>&1
921         exit 1
922       fi
923
924       # How the heck are we supposed to write a wrapper for a shared library?
925       if test -n "$link_against_libtool_libs"; then
926         $echo "$modename: error: cannot link shared libraries into libtool libraries" 1>&2
927         exit 1
928       fi
929
930       if test -n "$dlfiles$dlprefiles"; then
931         $echo "$modename: warning: \`-dlopen' is ignored for libtool libraries" 1>&2
932       fi
933
934       set dummy $rpath
935       if test $# -gt 2; then
936         $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2
937       fi
938       install_libdir="$2"
939
940       # Now set the variables for building old libraries.
941       oldlibs="$objdir/$libname.$libext"
942       if test -z "$rpath"; then
943         # Building a libtool convenience library.
944         oldlibs="$objdir/$libname.al $oldlibs"
945         build_libtool_libs=convenience
946
947         if test -n "$vinfo"; then
948           $echo "$modename: warning: \`-version-info' is ignored for convenience libraries" 1>&2
949         fi
950
951         if test -n "$release"; then
952           $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2
953         fi
954       else
955
956         # Parse the version information argument.
957         IFS="${IFS=     }"; save_ifs="$IFS"; IFS=':'
958         set dummy $vinfo 0 0 0
959         IFS="$save_ifs"
960
961         if test -n "$8"; then
962           $echo "$modename: too many parameters to \`-version-info'" 1>&2
963           $echo "$help" 1>&2
964           exit 1
965         fi
966
967         current="$2"
968         revision="$3"
969         age="$4"
970
971         # Check that each of the things are valid numbers.
972         case "$current" in
973         0 | [1-9] | [1-9][0-9]*) ;;
974         *)
975           $echo "$modename: CURRENT \`$current' is not a nonnegative integer" 1>&2
976           $echo "$modename: \`$vinfo' is not valid version information" 1>&2
977           exit 1
978           ;;
979         esac
980
981         case "$revision" in
982         0 | [1-9] | [1-9][0-9]*) ;;
983         *)
984           $echo "$modename: REVISION \`$revision' is not a nonnegative integer" 1>&2
985           $echo "$modename: \`$vinfo' is not valid version information" 1>&2
986           exit 1
987           ;;
988         esac
989
990         case "$age" in
991         0 | [1-9] | [1-9][0-9]*) ;;
992         *)
993           $echo "$modename: AGE \`$age' is not a nonnegative integer" 1>&2
994           $echo "$modename: \`$vinfo' is not valid version information" 1>&2
995           exit 1
996           ;;
997         esac
998
999         if test $age -gt $current; then
1000           $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2
1001           $echo "$modename: \`$vinfo' is not valid version information" 1>&2
1002           exit 1
1003         fi
1004
1005         # Calculate the version variables.
1006         major=
1007         versuffix=
1008         verstring=
1009         case "$version_type" in
1010         none) ;;
1011
1012         linux)
1013           major=.`expr $current - $age`
1014           versuffix="$major.$age.$revision"
1015           ;;
1016
1017         osf)
1018           major=`expr $current - $age`
1019           versuffix=".$current.$age.$revision"
1020           verstring="$current.$age.$revision"
1021
1022           # Add in all the interfaces that we are compatible with.
1023           loop=$age
1024           while test $loop != 0; do
1025             iface=`expr $current - $loop`
1026             loop=`expr $loop - 1`
1027             verstring="$verstring:${iface}.0"
1028           done
1029
1030           # Make executables depend on our current version.
1031           verstring="$verstring:${current}.0"
1032           ;;
1033
1034         sunos)
1035           major=".$current"
1036           versuffix=".$current.$revision"
1037           ;;
1038
1039         windows)
1040           # Like Linux, but with '-' rather than '.', since we only
1041           # want one extension on Windows 95.
1042           major=`expr $current - $age`
1043           versuffix="-$major-$age-$revision"
1044           ;;
1045
1046         *)
1047           $echo "$modename: unknown library version type \`$version_type'" 1>&2
1048           echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
1049           exit 1
1050           ;;
1051         esac
1052
1053         # Clear the version info if we defaulted, and they specified a release.
1054         if test -z "$vinfo" && test -n "$release"; then
1055           major=
1056           versuffix=
1057           verstring="0.0"
1058         fi
1059
1060         # Check to see if the archive will have undefined symbols.
1061         if test "$allow_undefined" = yes; then
1062           if test "$allow_undefined_flag" = unsupported; then
1063             $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2
1064             build_libtool_libs=no
1065             build_old_libs=yes
1066           fi
1067         else
1068           # Don't allow undefined symbols.
1069           allow_undefined_flag="$no_undefined_flag"
1070         fi
1071
1072         # Add libc to deplibs on all systems.
1073         dependency_libs="$deplibs"
1074         deplibs="$deplibs -lc"
1075       fi
1076
1077       # Create the output directory, or remove our outputs if we need to.
1078       if test -d $objdir; then
1079         $show "${rm}r $objdir/$output $objdir/$libname.* $objdir/${libname}${release}.*"
1080         $run ${rm}r $objdir/$output $objdir/$libname.* $objdir/${libname}${release}.*
1081       else
1082         $show "$mkdir $objdir"
1083         $run $mkdir $objdir
1084         status=$?
1085         if test $status -ne 0 && test ! -d $objdir; then
1086           exit $status
1087         fi
1088       fi
1089
1090       if test "$build_libtool_libs" = yes; then
1091         # Get the real and link names of the library.
1092         eval library_names=\"$library_names_spec\"
1093         set dummy $library_names
1094         realname="$2"
1095         shift; shift
1096
1097         if test -n "$soname_spec"; then
1098           eval soname=\"$soname_spec\"
1099         else
1100           soname="$realname"
1101         fi
1102
1103         lib="$objdir/$realname"
1104         for link
1105         do
1106           linknames="$linknames $link"
1107         done
1108
1109         # Use standard objects if they are PIC.
1110         test -z "$pic_flag" && libobjs=`$echo "X$libobjs " | $Xsed -e "$los2o" -e 's/ $//g'`
1111
1112         # Transform .lo files to .o files.
1113         test "$build_old_libs" = yes && oldobjs="$objs"`$echo "X$libobjs " | $Xsed -e 's/[^   ]*\.a //g' -e 's/[^   ]*\.lib //g' -e "$los2o" -e 's/ $//g'`
1114
1115         if test -n "$whole_archive_flag_spec"; then
1116           if test -n "$convenience"; then
1117             eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
1118           fi
1119         else
1120           for xlib in $convenience; do
1121             # Extract the objects.
1122             xdir="$xlib"x
1123             generated="$generated $xdir"
1124             xlib=`echo "$xlib" | $Xsed -e 's%^.*/%%'`
1125
1126             $show "${rm}r $xdir"
1127             $run ${rm}r "$xdir"
1128             $show "mkdir $xdir"
1129             $run mkdir "$xdir"
1130             status=$?
1131             if test $status -ne 0 && test ! -d "$xdir"; then
1132               exit $status
1133             fi
1134             $show "(cd $xdir && $AR x ../$xlib)"
1135             $run eval "(cd \$xdir && $AR x ../\$xlib)" || exit $?
1136
1137             libobjs="$libobjs `echo $xdir/*`"
1138           done
1139         fi
1140
1141         # Do each of the archive commands.
1142         eval cmds=\"$archive_cmds\"
1143         IFS="${IFS=     }"; save_ifs="$IFS"; IFS=';'
1144         for cmd in $cmds; do
1145           IFS="$save_ifs"
1146           $show "$cmd"
1147           $run eval "$cmd" || exit $?
1148         done
1149         IFS="$save_ifs"
1150
1151         # Create links to the real library.
1152         for linkname in $linknames; do
1153           if test "$realname" != "$linkname"; then
1154             $show "(cd $objdir && $LN_S $realname $linkname)"
1155             $run eval '(cd $objdir && $LN_S $realname $linkname)' || exit $?
1156           fi
1157         done
1158
1159         # If -export-dynamic was specified, set the dlname.
1160         if test "$export_dynamic" = yes; then
1161           # On all known operating systems, these are identical.
1162           dlname="$soname"
1163         fi
1164       fi
1165       ;;
1166
1167     *.lo | *.o | *.obj)
1168       if test -n "$link_against_libtool_libs"; then
1169         $echo "$modename: error: cannot link libtool libraries into objects" 1>&2
1170         exit 1
1171       fi
1172
1173       if test -n "$deplibs"; then
1174         $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2
1175       fi
1176
1177       if test -n "$dlfiles$dlprefiles"; then
1178         $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2
1179       fi
1180
1181       if test -n "$rpath"; then
1182         $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2
1183       fi
1184
1185       if test -n "$vinfo"; then
1186         $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2
1187       fi
1188
1189       if test -n "$release"; then
1190         $echo "$modename: warning: \`-release' is ignored for objects" 1>&2
1191       fi
1192
1193       case "$output" in
1194       *.lo)
1195         if test -n "$objs"; then
1196           $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2
1197           exit 1
1198         fi
1199         libobj="$output"
1200         obj=`$echo "X$output" | $Xsed -e "$lo2o"`
1201         ;;
1202       *)
1203         libobj=
1204         obj="$output"
1205         ;;
1206       esac
1207
1208       # Delete the old objects.
1209       $run $rm $obj $libobj
1210
1211       # Create the old-style object.
1212       reload_objs="$objs"`$echo "X$libobjs " | $Xsed -e 's/[^       ]*\.a //g' -e 's/[^       ]*\.lib //g' -e "$los2o" -e 's/ $//g'`
1213
1214       output="$obj"
1215       eval cmds=\"$reload_cmds\"
1216       IFS="${IFS=       }"; save_ifs="$IFS"; IFS=';'
1217       for cmd in $cmds; do
1218         IFS="$save_ifs"
1219         $show "$cmd"
1220         $run eval "$cmd" || exit $?
1221       done
1222       IFS="$save_ifs"
1223
1224       # Exit if we aren't doing a library object file.
1225       test -z "$libobj" && exit 0
1226
1227       if test "$build_libtool_libs" != yes; then
1228         # Create an invalid libtool object if no PIC, so that we don't
1229         # accidentally link it into a program.
1230         $show "echo timestamp > $libobj"
1231         $run eval "echo timestamp > $libobj" || exit $?
1232         exit 0
1233       fi
1234
1235       if test -n "$pic_flag"; then
1236         # Only do commands if we really have different PIC objects.
1237         reload_objs="$libobjs"
1238         output="$libobj"
1239         eval cmds=\"$reload_cmds\"
1240         IFS="${IFS=     }"; save_ifs="$IFS"; IFS=';'
1241         for cmd in $cmds; do
1242           IFS="$save_ifs"
1243           $show "$cmd"
1244           $run eval "$cmd" || exit $?
1245         done
1246         IFS="$save_ifs"
1247       else
1248         # Just create a symlink.
1249         $show "$LN_S $obj $libobj"
1250         $run $LN_S $obj $libobj || exit $?
1251       fi
1252
1253       exit 0
1254       ;;
1255
1256     *)
1257       if test -n "$vinfo"; then
1258         $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2
1259       fi
1260
1261       if test -n "$release"; then
1262         $echo "$modename: warning: \`-release' is ignored for programs" 1>&2
1263       fi
1264
1265       if test -n "$rpath"; then
1266         # If the user specified any rpath flags, then add them.
1267         for libdir in $rpath; do
1268           if test -n "$hardcode_libdir_flag_spec"; then
1269             if test -n "$hardcode_libdir_separator"; then
1270               if test -z "$hardcode_libdirs"; then
1271                 # Put the magic libdir with the hardcode flag.
1272                 hardcode_libdirs="$libdir"
1273                 libdir="@HARDCODE_LIBDIRS@"
1274               else
1275                 # Just accumulate the unique libdirs.
1276                 case "$hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator" in
1277                 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
1278                   ;;
1279                 *)
1280                   hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
1281                   ;;
1282                 esac
1283                 libdir=
1284               fi
1285             fi
1286
1287             if test -n "$libdir"; then
1288               eval flag=\"$hardcode_libdir_flag_spec\"
1289
1290               compile_command="$compile_command $flag"
1291               finalize_command="$finalize_command $flag"
1292             fi
1293           elif test -n "$runpath_var"; then
1294             case "$perm_rpath " in
1295             *" $libdir "*) ;;
1296             *) perm_rpath="$perm_rpath $libdir" ;;
1297             esac
1298           fi
1299         done
1300       fi
1301
1302       # Substitute the hardcoded libdirs into the compile commands.
1303       if test -n "$hardcode_libdir_separator"; then
1304         compile_command=`$echo "X$compile_command" | $Xsed -e "s%@HARDCODE_LIBDIRS@%$hardcode_libdirs%g"`
1305         finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@HARDCODE_LIBDIRS@%$hardcode_libdirs%g"`
1306       fi
1307
1308       if test -n "$libobjs" && test "$build_old_libs" = yes; then
1309         # Transform all the library objects into standard objects.
1310         compile_command=`$echo "X$compile_command " | $Xsed -e "$los2o" -e 's/ $//'`
1311         finalize_command=`$echo "X$finalize_command " | $Xsed -e "$los2o" -e 's/ $//'`
1312       fi
1313
1314       if test "$export_dynamic" = yes && test -n "$NM" && test -n "$global_symbol_pipe"; then
1315         dlsyms="${output}S.c"
1316       else
1317         dlsyms=
1318       fi
1319
1320       if test -n "$dlsyms"; then
1321         # Add our own program objects to the preloaded list.
1322         dlprefiles=`$echo "X$objs$dlprefiles " | $Xsed -e "$los2o" -e 's/ $//'`
1323
1324         # Discover the nlist of each of the dlfiles.
1325         nlist="$objdir/${output}.nm"
1326
1327         if test -d $objdir; then
1328           $show "$rm $nlist ${nlist}T"
1329           $run $rm "$nlist" "${nlist}T"
1330         else
1331           $show "$mkdir $objdir"
1332           $run $mkdir $objdir
1333           status=$?
1334           if test $status -ne 0 && test ! -d $objdir; then
1335             exit $status
1336           fi
1337         fi
1338
1339         for arg in $dlprefiles; do
1340           $show "extracting global C symbols from \`$arg'"
1341           $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
1342         done
1343
1344         # Parse the name list into a source file.
1345         $show "creating $objdir/$dlsyms"
1346         if test -z "$run"; then
1347           # Make sure we at least have an empty file.
1348           test -f "$nlist" || : > "$nlist"
1349
1350           # Try sorting and uniquifying the output.
1351           if sort "$nlist" | uniq > "$nlist"T; then
1352             mv -f "$nlist"T "$nlist"
1353             wcout=`wc "$nlist" 2>/dev/null`
1354             count=`echo "X$wcout" | $Xsed -e 's/^[      ]*\([0-9][0-9]*\).*$/\1/'`
1355             (test "$count" -ge 0) 2>/dev/null || count=-1
1356           else
1357             $rm "$nlist"T
1358             count=-1
1359           fi
1360
1361           case "$dlsyms" in
1362           "") ;;
1363           *.c)
1364             $echo > "$objdir/$dlsyms" "\
1365 /* $dlsyms - symbol resolution table for \`$output' dlsym emulation. */
1366 /* Generated by $PROGRAM - GNU $PACKAGE $VERSION */
1367
1368 #ifdef __cplusplus
1369 extern \"C\" {
1370 #endif
1371
1372 /* Prevent the only kind of declaration conflicts we can make. */
1373 #define dld_preloaded_symbol_count some_other_symbol
1374 #define dld_preloaded_symbols some_other_symbol
1375
1376 /* External symbol declarations for the compiler. */\
1377 "
1378
1379             if test -f "$nlist"; then
1380               sed -e 's/^.* \(.*\)$/extern char \1;/' < "$nlist" >> "$objdir/$dlsyms"
1381             else
1382               echo '/* NONE */' >> "$objdir/$dlsyms"
1383             fi
1384
1385             $echo >> "$objdir/$dlsyms" "\
1386
1387 #undef dld_preloaded_symbol_count
1388 #undef dld_preloaded_symbols
1389
1390 #if defined (__STDC__) && __STDC__
1391 # define __ptr_t void *
1392 #else
1393 # define __ptr_t char *
1394 #endif
1395
1396 /* The number of symbols in dld_preloaded_symbols, -1 if unsorted. */
1397 int dld_preloaded_symbol_count = $count;
1398
1399 /* The mapping between symbol names and symbols. */
1400 struct {
1401   char *name;
1402   __ptr_t address;
1403 }
1404 dld_preloaded_symbols[] =
1405 {\
1406 "
1407
1408             if test -f "$nlist"; then
1409               sed 's/^\(.*\) \(.*\)$/  {"\1", (__ptr_t) \&\2},/' < "$nlist" >> "$objdir/$dlsyms"
1410             fi
1411
1412             $echo >> "$objdir/$dlsyms" "\
1413   {0, (__ptr_t) 0}
1414 };
1415
1416 #ifdef __cplusplus
1417 }
1418 #endif\
1419 "
1420             ;;
1421
1422           *)
1423             $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2
1424             exit 1
1425             ;;
1426           esac
1427         fi
1428
1429         # Now compile the dynamic symbol file.
1430         $show "(cd $objdir && $CC -c$no_builtin_flag \"$dlsyms\")"
1431         $run eval '(cd $objdir && $CC -c$no_builtin_flag "$dlsyms")' || exit $?
1432
1433         # Transform the symbol file into the correct name.
1434         compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$objdir/${output}S.${objext}%"`
1435         finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$objdir/${output}S.${objext}%"`
1436       elif test "$export_dynamic" != yes; then
1437         test -n "$dlfiles$dlprefiles" && $echo "$modename: warning: \`-dlopen' and \`-dlpreopen' are ignored without \`-export-dynamic'" 1>&2
1438       else
1439         # We keep going just in case the user didn't refer to
1440         # dld_preloaded_symbols.  The linker will fail if global_symbol_pipe
1441         # really was required.
1442         $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2
1443
1444         # Nullify the symbol file.
1445         compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
1446         finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
1447       fi
1448
1449       if test -z "$link_against_libtool_libs" || test "$build_libtool_libs" != yes; then
1450         # Replace the output file specification.
1451         compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
1452         finalize_command=`$echo "X$finalize_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
1453
1454         # We have no uninstalled library dependencies, so finalize right now.
1455         $show "$compile_command"
1456         $run eval "$compile_command"
1457         exit $?
1458       fi
1459
1460       # Replace the output file specification.
1461       compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$objdir/$output"'%g'`
1462       finalize_command=`$echo "X$finalize_command" | $Xsed -e 's%@OUTPUT@%'"$objdir/$output"'T%g'`
1463
1464       # Create the binary in the object directory, then wrap it.
1465       if test ! -d $objdir; then
1466         $show "$mkdir $objdir"
1467         $run $mkdir $objdir
1468         status=$?
1469         if test $status -ne 0 && test ! -d $objdir; then
1470           exit $status
1471         fi
1472       fi
1473
1474       if test -n "$shlibpath_var"; then
1475         # We should set the shlibpath_var
1476         rpath=
1477         for dir in $temp_rpath; do
1478           case "$dir" in
1479           /* | [A-Za-z]:[/\\]*)
1480             # Absolute path.
1481             rpath="$rpath$dir:"
1482             ;;
1483           *)
1484             # Relative path: add a thisdir entry.
1485             rpath="$rpath\$thisdir/$dir:"
1486             ;;
1487           esac
1488         done
1489         temp_rpath="$rpath"
1490       fi
1491
1492       # Delete the old output file.
1493       $run $rm $output
1494
1495       if test -n "$compile_shlibpath"; then
1496         compile_command="$shlibpath_var=\"$compile_shlibpath\$$shlibpath_var\" $compile_command"
1497       fi
1498       if test -n "$finalize_shlibpath"; then
1499         finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
1500       fi
1501
1502       if test -n "$runpath_var" && test -n "$perm_rpath"; then
1503         # We should set the runpath_var.
1504         rpath=
1505         for dir in $perm_rpath; do
1506           rpath="$rpath$dir:"
1507         done
1508         compile_command="$runpath_var=\"$rpath\$$runpath_var\" $compile_command"
1509         finalize_command="$runpath_var=\"$rpath\$$runpath_var\" $finalize_command"
1510       fi
1511
1512       if test "$hardcode_action" = relink; then
1513         # AGH! Flame the AIX and HP-UX people for me, will ya?
1514         $echo "$modename: warning: using a buggy system linker" 1>&2
1515         $echo "$modename: relinking will be required before \`$output' can be installed" 1>&2
1516       fi
1517
1518       $show "$compile_command"
1519       $run eval "$compile_command" || exit $?
1520
1521       # Now create the wrapper script.
1522       $show "creating $output"
1523
1524       # Quote the finalize command for shipping.
1525       finalize_command=`$echo "X$finalize_command" | $Xsed -e "$sed_quote_subst"`
1526
1527       # Quote $echo for shipping.
1528       qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"`
1529
1530       # Only actually do things if our run command is non-null.
1531       if test -z "$run"; then
1532         $rm $output
1533         trap "$rm $output; exit 1" 1 2 15
1534
1535         $echo > $output "\
1536 #! $SHELL
1537
1538 # $output - temporary wrapper script for $objdir/$output
1539 # Generated by $PROGRAM - GNU $PACKAGE $VERSION
1540 #
1541 # The $output program cannot be directly executed until all the libtool
1542 # libraries that it depends on are installed.
1543 #
1544 # This wrapper script should never be moved out of \``pwd`'.
1545 # If it is, it will not operate correctly.
1546
1547 # Sed substitution that helps us do robust quoting.  It backslashifies
1548 # metacharacters that are still active within double-quoted strings.
1549 Xsed='sed -e s/^X//'
1550 sed_quote_subst='$sed_quote_subst'
1551
1552 # The HP-UX ksh and POSIX shell print the target directory to stdout
1553 # if CDPATH is set.
1554 if test \"\${CDPATH+set}\" = set; then CDPATH=; export CDPATH; fi
1555
1556 # This environment variable determines our operation mode.
1557 if test \"\$libtool_install_magic\" = \"$magic\"; then
1558   # install mode needs the following variables:
1559   link_against_libtool_libs='$link_against_libtool_libs'
1560   finalize_command=\"$finalize_command\"
1561 else
1562   # When we are sourced in execute mode, \$file and \$echo are already set.
1563   if test \"\$libtool_execute_magic\" != \"$magic\"; then
1564     echo=\"$qecho\"
1565     file=\"\$0\"
1566     # Make sure echo works.
1567     if test \"X\$1\" = X--no-reexec; then
1568       # Discard the --no-reexec flag, and continue.
1569       shift
1570     elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then
1571       # Yippee, \$echo works!
1572       :
1573     else
1574       # Restart under the correct shell, and then maybe \$echo will work.
1575       exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
1576     fi
1577   fi\
1578 "
1579         $echo >> $output "\
1580
1581   # Find the directory that this script lives in.
1582   thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
1583   test \"x\$thisdir\" = \"x\$file\" && thisdir=.
1584
1585   # Follow symbolic links until we get to the real thisdir.
1586   file=\`ls -ld \"\$file\" | sed -n 's/.*-> //p'\`
1587   while test -n \"\$file\"; do
1588     destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
1589
1590     # If there was a directory component, then change thisdir.
1591     if test \"x\$destdir\" != \"x\$file\"; then
1592       case \"\$destdir\" in
1593       /* | [A-Za-z]:[/\\]*) thisdir=\"\$destdir\" ;;
1594       *) thisdir=\"\$thisdir/\$destdir\" ;;
1595       esac
1596     fi
1597
1598     file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
1599     file=\`ls -ld \"\$thisdir/\$file\" | sed -n 's/.*-> //p'\`
1600   done
1601
1602   # Try to get the absolute directory name.
1603   absdir=\`cd \"\$thisdir\" && pwd\`
1604   test -n \"\$absdir\" && thisdir=\"\$absdir\"
1605
1606   progdir=\"\$thisdir/$objdir\"
1607   program='$output'
1608
1609   if test -f \"\$progdir/\$program\"; then"
1610
1611         # Export our shlibpath_var if we have one.
1612         if test -n "$shlibpath_var" && test -n "$temp_rpath"; then
1613           $echo >> $output "\
1614     # Add our own library path to $shlibpath_var
1615     $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
1616
1617     # Some systems cannot cope with colon-terminated $shlibpath_var
1618     $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/:*\$//'\`
1619
1620     export $shlibpath_var
1621 "
1622         fi
1623
1624         $echo >> $output "\
1625     if test \"\$libtool_execute_magic\" != \"$magic\"; then
1626       # Run the actual program with our arguments.
1627
1628       # Export the path to the program.
1629       PATH=\"\$progdir:\$PATH\"
1630       export PATH
1631
1632       exec \$program \${1+\"\$@\"}
1633
1634       \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\"
1635       exit 1
1636     fi
1637   else
1638     # The program doesn't exist.
1639     \$echo \"\$0: error: \$progdir/\$program does not exist\" 1>&2
1640     \$echo \"This script is just a wrapper for \$program.\" 1>&2
1641     echo \"See the $PACKAGE documentation for more information.\" 1>&2
1642     exit 1
1643   fi
1644 fi\
1645 "
1646         chmod +x $output
1647       fi
1648       exit 0
1649       ;;
1650     esac
1651
1652     # See if we need to build an old-fashioned archive.
1653     for oldlib in $oldlibs; do
1654
1655       if test "$build_libtool_libs" = convenience; then
1656         oldobjs="$libobjs"
1657         addlibs="$convenience"
1658         build_libtool_libs=no
1659       else
1660         addlibs="$old_convenience"
1661       fi
1662
1663       # Add in members from convenience archives.
1664       for xlib in $addlibs; do
1665         # Extract the objects.
1666         xdir="$xlib"x
1667         generated="$generated $xdir"
1668         xlib=`echo "$xlib" | $Xsed -e 's%^.*/%%'`
1669
1670         $show "${rm}r $xdir"
1671         $run ${rm}r "$xdir"
1672         $show "mkdir $xdir"
1673         $run mkdir "$xdir"
1674         status=$?
1675         if test $status -ne 0 && test ! -d "$xdir"; then
1676           exit $status
1677         fi
1678         $show "(cd $xdir && $AR x ../$xlib)"
1679         $run eval "(cd \$xdir && $AR x ../\$xlib)" || exit $?
1680
1681         oldobjs="$oldobjs `echo $xdir/*`"
1682       done
1683
1684       # Do each command in the archive commands.
1685       if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
1686         eval cmds=\"$old_archive_from_new_cmds\"
1687       else
1688         eval cmds=\"$old_archive_cmds\"
1689       fi
1690       IFS="${IFS=       }"; save_ifs="$IFS"; IFS=';'
1691       for cmd in $cmds; do
1692         IFS="$save_ifs"
1693         $show "$cmd"
1694         $run eval "$cmd" || exit $?
1695       done
1696       IFS="$save_ifs"
1697     done
1698
1699     if test -n "$generated"; then
1700       $show "${rm}r$generated"
1701       $run ${rm}r$generated
1702     fi
1703
1704     # Now create the libtool archive.
1705     case "$output" in
1706     *.la)
1707       old_library=
1708       test "$build_old_libs" = yes && old_library="$libname.$libext"
1709       $show "creating $output"
1710
1711       # Only create the output if not a dry run.
1712       if test -z "$run"; then
1713         $echo > $output "\
1714 # $output - a libtool library file
1715 # Generated by $PROGRAM - GNU $PACKAGE $VERSION
1716
1717 # The name that we can dlopen(3).
1718 dlname='$dlname'
1719
1720 # Names of this library.
1721 library_names='$library_names'
1722
1723 # The name of the static archive.
1724 old_library='$old_library'
1725
1726 # Libraries that this one depends upon.
1727 dependency_libs='$dependency_libs'
1728
1729 # Version information for $libname.
1730 current=$current
1731 age=$age
1732 revision=$revision
1733
1734 # Directory that this library needs to be installed in:
1735 libdir='$install_libdir'\
1736 "
1737       fi
1738
1739       # Do a symbolic link so that the libtool archive can be found in
1740       # LD_LIBRARY_PATH before the program is installed.
1741       $show "(cd $objdir && $LN_S ../$output $output)"
1742       $run eval "(cd $objdir && $LN_S ../$output $output)" || exit $?
1743       ;;
1744     esac
1745     exit 0
1746     ;;
1747
1748   # libtool install mode
1749   install)
1750     modename="$modename: install"
1751
1752     # There may be an optional sh(1) argument at the beginning of
1753     # install_prog (especially on Windows NT).
1754     if test "$nonopt" = "$SHELL"; then
1755       # Aesthetically quote it.
1756       arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"`
1757       case "$arg" in
1758       *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \     ]*|*]*)
1759         arg="\"$arg\""
1760         ;;
1761       esac
1762       install_prog="$arg "
1763       arg="$1"
1764       shift
1765     else
1766       install_prog=
1767       arg="$nonopt"
1768     fi
1769
1770     # The real first argument should be the name of the installation program.
1771     # Aesthetically quote it.
1772     arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1773     case "$arg" in
1774     *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \       ]*|*]*)
1775       arg="\"$arg\""
1776       ;;
1777     esac
1778     install_prog="$install_prog$arg"
1779
1780     # We need to accept at least all the BSD install flags.
1781     dest=
1782     files=
1783     opts=
1784     prev=
1785     install_type=
1786     isdir=no
1787     stripme=
1788     for arg
1789     do
1790       if test -n "$dest"; then
1791         files="$files $dest"
1792         dest="$arg"
1793         continue
1794       fi
1795
1796       case "$arg" in
1797       -d) isdir=yes ;;
1798       -f) prev="-f" ;;
1799       -g) prev="-g" ;;
1800       -m) prev="-m" ;;
1801       -o) prev="-o" ;;
1802       -s)
1803         stripme=" -s"
1804         continue
1805         ;;
1806       -*) ;;
1807
1808       *)
1809         # If the previous option needed an argument, then skip it.
1810         if test -n "$prev"; then
1811           prev=
1812         else
1813           dest="$arg"
1814           continue
1815         fi
1816         ;;
1817       esac
1818
1819       # Aesthetically quote the argument.
1820       arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1821       case "$arg" in
1822       *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \     ]*|*]*)
1823         arg="\"$arg\""
1824         ;;
1825       esac
1826       install_prog="$install_prog $arg"
1827     done
1828
1829     if test -z "$install_prog"; then
1830       $echo "$modename: you must specify an install program" 1>&2
1831       $echo "$help" 1>&2
1832       exit 1
1833     fi
1834
1835     if test -n "$prev"; then
1836       $echo "$modename: the \`$prev' option requires an argument" 1>&2
1837       $echo "$help" 1>&2
1838       exit 1
1839     fi
1840
1841     if test -z "$files"; then
1842       if test -z "$dest"; then
1843         $echo "$modename: no file or destination specified" 1>&2
1844       else
1845         $echo "$modename: you must specify a destination" 1>&2
1846       fi
1847       $echo "$help" 1>&2
1848       exit 1
1849     fi
1850
1851     # Strip any trailing slash from the destination.
1852     dest=`$echo "X$dest" | $Xsed -e 's%/$%%'`
1853
1854     # Check to see that the destination is a directory.
1855     test -d "$dest" && isdir=yes
1856     if test "$isdir" = yes; then
1857       destdir="$dest"
1858       destname=
1859     else
1860       destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'`
1861       test "X$destdir" = "X$dest" && destdir=.
1862       destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'`
1863
1864       # Not a directory, so check to see that there is only one file specified.
1865       set dummy $files
1866       if test $# -gt 2; then
1867         $echo "$modename: \`$dest' is not a directory" 1>&2
1868         $echo "$help" 1>&2
1869         exit 1
1870       fi
1871     fi
1872     case "$destdir" in
1873     /* | [A-Za-z]:[/\\]*) ;;
1874     *)
1875       for file in $files; do
1876         case "$file" in
1877         *.lo) ;;
1878         *)
1879           $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2
1880           $echo "$help" 1>&2
1881           exit 1
1882           ;;
1883         esac
1884       done
1885       ;;
1886     esac
1887
1888     # This variable tells wrapper scripts just to set variables rather
1889     # than running their programs.
1890     libtool_install_magic="$magic"
1891
1892     staticlibs=
1893     future_libdirs=
1894     current_libdirs=
1895     for file in $files; do
1896
1897       # Do each installation.
1898       case "$file" in
1899       *.a | *.lib)
1900         # Do the static libraries later.
1901         staticlibs="$staticlibs $file"
1902         ;;
1903
1904       *.la)
1905         # Check to see that this really is a libtool archive.
1906         if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
1907         else
1908           $echo "$modename: \`$file' is not a valid libtool archive" 1>&2
1909           $echo "$help" 1>&2
1910           exit 1
1911         fi
1912
1913         library_names=
1914         old_library=
1915         # If there is no directory component, then add one.
1916         case "$file" in
1917         */* | *\\*) . $file ;;
1918         *) . ./$file ;;
1919         esac
1920
1921         # Add the libdir to current_libdirs if it is the destination.
1922         if test "X$destdir" = "X$libdir"; then
1923           case "$current_libdirs " in
1924           *" $libdir "*) ;;
1925           *) current_libdirs="$current_libdirs $libdir" ;;
1926           esac
1927         else
1928           # Note the libdir as a future libdir.
1929           case "$future_libdirs " in
1930           *" $libdir "*) ;;
1931           *) future_libdirs="$future_libdirs $libdir" ;;
1932           esac
1933         fi
1934
1935         dir="`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/"
1936         test "X$dir" = "X$file/" && dir=
1937         dir="$dir$objdir"
1938
1939         # See the names of the shared library.
1940         set dummy $library_names
1941         if test -n "$2"; then
1942           realname="$2"
1943           shift
1944           shift
1945
1946           # Install the shared library and build the symlinks.
1947           $show "$install_prog $dir/$realname $destdir/$realname"
1948           $run eval "$install_prog $dir/$realname $destdir/$realname" || exit $?
1949           test "X$dlname" = "X$realname" && dlname=
1950
1951           if test $# -gt 0; then
1952             # Delete the old symlinks.
1953             rmcmd="$rm"
1954             for linkname
1955             do
1956               if test "X$linkname" != "X$realname"; then
1957                 rmcmd="$rmcmd $destdir/$linkname"
1958               fi
1959             done
1960             $show "$rmcmd"
1961             $run $rmcmd
1962
1963             # ... and create new ones.
1964             for linkname
1965             do
1966               if test "X$linkname" != "X$realname"; then
1967                 test "X$dlname" = "X$linkname" && dlname=
1968                 $show "(cd $destdir && $LN_S $realname $linkname)"
1969                 $run eval "(cd $destdir && $LN_S $realname $linkname)"
1970               fi
1971             done
1972           fi
1973
1974           if test -n "$dlname"; then
1975             # Install the dynamically-loadable library.
1976             $show "$install_prog $dir/$dlname $destdir/$dlname"
1977             $run eval "$install_prog $dir/$dlname $destdir/$dlname" || exit $?
1978           fi
1979
1980           # Do each command in the postinstall commands.
1981           lib="$destdir/$realname"
1982           eval cmds=\"$postinstall_cmds\"
1983           IFS="${IFS=   }"; save_ifs="$IFS"; IFS=';'
1984           for cmd in $cmds; do
1985             IFS="$save_ifs"
1986             $show "$cmd"
1987             $run eval "$cmd" || exit $?
1988           done
1989           IFS="$save_ifs"
1990         fi
1991
1992         # Install the pseudo-library for information purposes.
1993         name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
1994         $show "$install_prog $file $destdir/$name"
1995         $run eval "$install_prog $file $destdir/$name" || exit $?
1996
1997         # Maybe install the static library, too.
1998         test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
1999         ;;
2000
2001       *.lo)
2002         # Install (i.e. copy) a libtool object.
2003
2004         # Figure out destination file name, if it wasn't already specified.
2005         if test -n "$destname"; then
2006           destfile="$destdir/$destname"
2007         else
2008           destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
2009           destfile="$destdir/$destfile"
2010         fi
2011
2012         # Deduce the name of the destination old-style object file.
2013         case "$destfile" in
2014         *.lo)
2015           staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"`
2016           ;;
2017         *.o | *.obj)
2018           staticdest="$destfile"
2019           destfile=
2020           ;;
2021         *)
2022           $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2
2023           $echo "$help" 1>&2
2024           exit 1
2025           ;;
2026         esac
2027
2028         # Install the libtool object if requested.
2029         if test -n "$destfile"; then
2030           $show "$install_prog $file $destfile"
2031           $run eval "$install_prog $file $destfile" || exit $?
2032         fi
2033
2034         # Install the old object if enabled.
2035         if test "$build_old_libs" = yes; then
2036           # Deduce the name of the old-style object file.
2037           staticobj=`$echo "X$file" | $Xsed -e "$lo2o"`
2038
2039           $show "$install_prog $staticobj $staticdest"
2040           $run eval "$install_prog \$staticobj \$staticdest" || exit $?
2041         fi
2042         exit 0
2043         ;;
2044
2045       *)
2046         # Figure out destination file name, if it wasn't already specified.
2047         if test -n "$destname"; then
2048           destfile="$destdir/$destname"
2049         else
2050           destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
2051           destfile="$destdir/$destfile"
2052         fi
2053
2054         # Do a test to see if this is really a libtool program.
2055         if (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
2056           link_against_libtool_libs=
2057           finalize_command=
2058
2059           # If there is no directory component, then add one.
2060           case "$file" in
2061           */* | *\\*) . $file ;;
2062           *) . ./$file ;;
2063           esac
2064
2065           # Check the variables that should have been set.
2066           if test -z "$link_against_libtool_libs" || test -z "$finalize_command"; then
2067             $echo "$modename: invalid libtool wrapper script \`$file'" 1>&2
2068             exit 1
2069           fi
2070
2071           finalize=yes
2072           for lib in $link_against_libtool_libs; do
2073             # Check to see that each library is installed.
2074             libdir=
2075             if test -f "$lib"; then
2076               # If there is no directory component, then add one.
2077               case "$lib" in
2078               */* | *\\*) . $lib ;;
2079               *) . ./$lib ;;
2080               esac
2081             fi
2082             libfile="$libdir/`$echo "X$lib" | $Xsed -e 's%^.*/%%g'`"
2083             if test -n "$libdir" && test ! -f "$libfile"; then
2084               $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2
2085               finalize=no
2086             fi
2087           done
2088
2089           if test "$hardcode_action" = relink; then
2090             if test "$finalize" = yes; then
2091               $echo "$modename: warning: relinking \`$file' on behalf of your buggy system linker" 1>&2
2092               $show "$finalize_command"
2093               if $run eval "$finalize_command"; then :
2094               else
2095                 $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
2096                 continue
2097               fi
2098               file="$objdir/$file"T
2099             else
2100               $echo "$modename: warning: cannot relink \`$file' on behalf of your buggy system linker" 1>&2
2101             fi
2102           else
2103             # Install the binary that we compiled earlier.
2104             file=`$echo "X$file" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
2105           fi
2106         fi
2107
2108         $show "$install_prog$stripme $file $destfile"
2109         $run eval "$install_prog\$stripme \$file \$destfile" || exit $?
2110         ;;
2111       esac
2112     done
2113
2114     for file in $staticlibs; do
2115       name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
2116
2117       # Set up the ranlib parameters.
2118       oldlib="$destdir/$name"
2119
2120       $show "$install_prog $file $oldlib"
2121       $run eval "$install_prog \$file \$oldlib" || exit $?
2122
2123       # Do each command in the postinstall commands.
2124       eval cmds=\"$old_postinstall_cmds\"
2125       IFS="${IFS=       }"; save_ifs="$IFS"; IFS=';'
2126       for cmd in $cmds; do
2127         IFS="$save_ifs"
2128         $show "$cmd"
2129         $run eval "$cmd" || exit $?
2130       done
2131       IFS="$save_ifs"
2132     done
2133
2134     if test -n "$future_libdirs"; then
2135       $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2
2136     fi
2137
2138     if test -n "$current_libdirs"; then
2139       # Maybe just do a dry run.
2140       test -n "$run" && current_libdirs=" -n$current_libdirs"
2141       exec $SHELL $0 --finish$current_libdirs
2142       exit 1
2143     fi
2144
2145     exit 0
2146     ;;
2147
2148   # libtool finish mode
2149   finish)
2150     modename="$modename: finish"
2151     libdirs="$nonopt"
2152     admincmds=
2153
2154     if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
2155       for dir
2156       do
2157         libdirs="$libdirs $dir"
2158       done
2159
2160       for libdir in $libdirs; do
2161         if test -n "$finish_cmds"; then
2162           # Do each command in the finish commands.
2163           eval cmds=\"$finish_cmds\"
2164           IFS="${IFS=   }"; save_ifs="$IFS"; IFS=';'
2165           for cmd in $cmds; do
2166             IFS="$save_ifs"
2167             $show "$cmd"
2168             $run eval "$cmd" || admincmds="$admincmds
2169        $cmd"
2170           done
2171           IFS="$save_ifs"
2172         fi
2173         if test -n "$finish_eval"; then
2174           # Do the single finish_eval.
2175           eval cmds=\"$finish_eval\"
2176           $run eval "$cmds" || admincmds="$admincmds
2177        $cmds"
2178         fi
2179       done
2180     fi
2181
2182     echo "----------------------------------------------------------------------"
2183     echo "Libraries have been installed in:"
2184     for libdir in $libdirs; do
2185       echo "   $libdir"
2186     done
2187     echo
2188     echo "To link against installed libraries in a given directory, LIBDIR,"
2189     echo "you must use the \`-LLIBDIR' flag during linking."
2190     echo
2191     echo " You will also need to do at least one of the following:"
2192     if test -n "$shlibpath_var"; then
2193       echo "   - add LIBDIR to the \`$shlibpath_var' environment variable"
2194       echo "     during execution"
2195     fi
2196     if test -n "$runpath_var"; then
2197       echo "   - add LIBDIR to the \`$runpath_var' environment variable"
2198       echo "     during linking"
2199     fi
2200     if test -n "$hardcode_libdir_flag_spec"; then
2201       libdir=LIBDIR
2202       eval flag=\"$hardcode_libdir_flag_spec\"
2203
2204       echo "   - use the \`$flag' linker flag"
2205     fi
2206     if test -n "$admincmds"; then
2207       echo "   - have your system administrator run these commands:$admincmds"
2208     fi
2209     if test -f /etc/ld.so.conf; then
2210       echo "   - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
2211     fi
2212     echo
2213     echo "See any operating system documentation about shared libraries for"
2214     echo "more information, such as the ld(1) and ld.so(8) manual pages."
2215     echo "----------------------------------------------------------------------"
2216     exit 0
2217     ;;
2218
2219   # libtool execute mode
2220   execute)
2221     modename="$modename: execute"
2222
2223     # The first argument is the command name.
2224     cmd="$nonopt"
2225     if test -z "$cmd"; then
2226       $echo "$modename: you must specify a COMMAND" 1>&2
2227       $echo "$help"
2228       exit 1
2229     fi
2230
2231     # Handle -dlopen flags immediately.
2232     for file in $execute_dlfiles; do
2233       if test ! -f "$file"; then
2234         $echo "$modename: \`$file' is not a file" 1>&2
2235         $echo "$help" 1>&2
2236         exit 1
2237       fi
2238
2239       dir=
2240       case "$file" in
2241       *.la)
2242         # Check to see that this really is a libtool archive.
2243         if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
2244         else
2245           $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
2246           $echo "$help" 1>&2
2247           exit 1
2248         fi
2249
2250         # Read the libtool library.
2251         dlname=
2252         library_names=
2253
2254         # If there is no directory component, then add one.
2255         case "$file" in
2256         */* | *\\*) . $file ;;
2257         *) . ./$file ;;
2258         esac
2259
2260         # Skip this library if it cannot be dlopened.
2261         if test -z "$dlname"; then
2262           # Warn if it was a shared library.
2263           test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'"
2264           continue
2265         fi
2266
2267         dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
2268         test "X$dir" = "X$file" && dir=.
2269
2270         if test -f "$dir/$objdir/$dlname"; then
2271           dir="$dir/$objdir"
2272         else
2273           $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2
2274           exit 1
2275         fi
2276         ;;
2277
2278       *.lo)
2279         # Just add the directory containing the .lo file.
2280         dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
2281         test "X$dir" = "X$file" && dir=.
2282         ;;
2283
2284       *)
2285         $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2
2286         continue
2287         ;;
2288       esac
2289
2290       # Get the absolute pathname.
2291       absdir=`cd "$dir" && pwd`
2292       test -n "$absdir" && dir="$absdir"
2293
2294       # Now add the directory to shlibpath_var.
2295       if eval "test -z \"\$$shlibpath_var\""; then
2296         eval "$shlibpath_var=\"\$dir\""
2297       else
2298         eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
2299       fi
2300     done
2301
2302     # This variable tells wrapper scripts just to set shlibpath_var
2303     # rather than running their programs.
2304     libtool_execute_magic="$magic"
2305
2306     # Check if any of the arguments is a wrapper script.
2307     args=
2308     for file
2309     do
2310       case "$file" in
2311       -*) ;;
2312       *)
2313         # Do a test to see if this is really a libtool program.
2314         if (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
2315           # If there is no directory component, then add one.
2316           case "$file" in
2317           */* | *\\*) . $file ;;
2318           *) . ./$file ;;
2319           esac
2320
2321           # Transform arg to wrapped name.
2322           file="$progdir/$program"
2323         fi
2324         ;;
2325       esac
2326       # Quote arguments (to preserve shell metacharacters).
2327       file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"`
2328       args="$args \"$file\""
2329     done
2330
2331     if test -z "$run"; then
2332       # Export the shlibpath_var.
2333       eval "export $shlibpath_var"
2334
2335       # Restore saved enviroment variables
2336       if test "${save_LC_ALL+set}" = set; then
2337         LC_ALL="$save_LC_ALL"; export LC_ALL
2338       fi
2339       if test "${save_LANG+set}" = set; then
2340         LANG="$save_LANG"; export LANG
2341       fi
2342
2343       # Now actually exec the command.
2344       eval "exec \$cmd$args"
2345
2346       $echo "$modename: cannot exec \$cmd$args"
2347       exit 1
2348     else
2349       # Display what would be done.
2350       eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\""
2351       $echo "export $shlibpath_var"
2352       $echo "$cmd$args"
2353       exit 0
2354     fi
2355     ;;
2356
2357   # libtool uninstall mode
2358   uninstall)
2359     modename="$modename: uninstall"
2360     rm="$nonopt"
2361     files=
2362
2363     for arg
2364     do
2365       case "$arg" in
2366       -*) rm="$rm $arg" ;;
2367       *) files="$files $arg" ;;
2368       esac
2369     done
2370
2371     if test -z "$rm"; then
2372       $echo "$modename: you must specify an RM program" 1>&2
2373       $echo "$help" 1>&2
2374       exit 1
2375     fi
2376
2377     for file in $files; do
2378       dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
2379       test "X$dir" = "X$file" && dir=.
2380       name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
2381
2382       rmfiles="$file"
2383
2384       case "$name" in
2385       *.la)
2386         # Possibly a libtool archive, so verify it.
2387         if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
2388           . $dir/$name
2389
2390           # Delete the libtool libraries and symlinks.
2391           for n in $library_names; do
2392             rmfiles="$rmfiles $dir/$n"
2393             test "X$n" = "X$dlname" && dlname=
2394           done
2395           test -n "$dlname" && rmfiles="$rmfiles $dir/$dlname"
2396           test -n "$old_library" && rmfiles="$rmfiles $dir/$old_library"
2397
2398           $show "$rm $rmfiles"
2399           $run $rm $rmfiles
2400
2401           if test -n "$library_names"; then
2402             # Do each command in the postuninstall commands.
2403             eval cmds=\"$postuninstall_cmds\"
2404             IFS="${IFS=         }"; save_ifs="$IFS"; IFS=';'
2405             for cmd in $cmds; do
2406               IFS="$save_ifs"
2407               $show "$cmd"
2408               $run eval "$cmd"
2409             done
2410             IFS="$save_ifs"
2411           fi
2412
2413           if test -n "$old_library"; then
2414             # Do each command in the old_postuninstall commands.
2415             eval cmds=\"$old_postuninstall_cmds\"
2416             IFS="${IFS=         }"; save_ifs="$IFS"; IFS=';'
2417             for cmd in $cmds; do
2418               IFS="$save_ifs"
2419               $show "$cmd"
2420               $run eval "$cmd"
2421             done
2422             IFS="$save_ifs"
2423           fi
2424
2425           # FIXME: should reinstall the best remaining shared library.
2426         fi
2427         ;;
2428
2429       *.lo)
2430         if test "$build_old_libs" = yes; then
2431           oldobj=`$echo "X$name" | $Xsed -e "$lo2o"`
2432           rmfiles="$rmfiles $dir/$oldobj"
2433         fi
2434         $show "$rm $rmfiles"
2435         $run $rm $rmfiles
2436         ;;
2437
2438       *)
2439         $show "$rm $rmfiles"
2440         $run $rm $rmfiles
2441         ;;
2442       esac
2443     done
2444     exit 0
2445     ;;
2446
2447   "")
2448     $echo "$modename: you must specify a MODE" 1>&2
2449     $echo "$generic_help" 1>&2
2450     exit 1
2451     ;;
2452   esac
2453
2454   $echo "$modename: invalid operation mode \`$mode'" 1>&2
2455   $echo "$generic_help" 1>&2
2456   exit 1
2457 fi # test -z "$show_help"
2458
2459 # We need to display help for each of the modes.
2460 case "$mode" in
2461 "") $echo \
2462 "Usage: $modename [OPTION]... [MODE-ARG]...
2463
2464 Provide generalized library-building support services.
2465
2466     --config          show all configuration variables
2467     --debug           enable verbose shell tracing
2468 -n, --dry-run         display commands without modifying any files
2469     --features        display basic configuration information and exit
2470     --finish          same as \`--mode=finish'
2471     --help            display this help message and exit
2472     --mode=MODE       use operation mode MODE [default=inferred from MODE-ARGS]
2473     --quiet           same as \`--silent'
2474     --silent          don't print informational messages
2475     --version         print version information
2476
2477 MODE must be one of the following:
2478
2479       compile         compile a source file into a libtool object
2480       execute         automatically set library path, then run a program
2481       finish          complete the installation of libtool libraries
2482       install         install libraries or executables
2483       link            create a library or an executable
2484       uninstall       remove libraries from an installed directory
2485
2486 MODE-ARGS vary depending on the MODE.  Try \`$modename --help --mode=MODE' for
2487 a more detailed description of MODE."
2488   exit 0
2489   ;;
2490
2491 compile)
2492   $echo \
2493 "Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
2494
2495 Compile a source file into a libtool library object.
2496
2497 This mode accepts the following additional options:
2498
2499   -static           always build a \`.o' file suitable for static linking
2500
2501 COMPILE-COMMAND is a command to be used in creating a \`standard' object file
2502 from the given SOURCEFILE.
2503
2504 The output file name is determined by removing the directory component from
2505 SOURCEFILE, then substituting the C source code suffix \`.c' with the
2506 library object suffix, \`.lo'."
2507   ;;
2508
2509 execute)
2510   $echo \
2511 "Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]...
2512
2513 Automatically set library path, then run a program.
2514
2515 This mode accepts the following additional options:
2516
2517   -dlopen FILE      add the directory containing FILE to the library path
2518
2519 This mode sets the library path environment variable according to \`-dlopen'
2520 flags.
2521
2522 If any of the ARGS are libtool executable wrappers, then they are translated
2523 into their corresponding uninstalled binary, and any of their required library
2524 directories are added to the library path.
2525
2526 Then, COMMAND is executed, with ARGS as arguments."
2527   ;;
2528
2529 finish)
2530   $echo \
2531 "Usage: $modename [OPTION]... --mode=finish [LIBDIR]...
2532
2533 Complete the installation of libtool libraries.
2534
2535 Each LIBDIR is a directory that contains libtool libraries.
2536
2537 The commands that this mode executes may require superuser privileges.  Use
2538 the \`--dry-run' option if you just want to see what would be executed."
2539   ;;
2540
2541 install)
2542   $echo \
2543 "Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND...
2544
2545 Install executables or libraries.
2546
2547 INSTALL-COMMAND is the installation command.  The first component should be
2548 either the \`install' or \`cp' program.
2549
2550 The rest of the components are interpreted as arguments to that command (only
2551 BSD-compatible install options are recognized)."
2552   ;;
2553
2554 link)
2555   $echo \
2556 "Usage: $modename [OPTION]... --mode=link LINK-COMMAND...
2557
2558 Link object files or libraries together to form another library, or to
2559 create an executable program.
2560
2561 LINK-COMMAND is a command using the C compiler that you would use to create
2562 a program from several object files.
2563
2564 The following components of LINK-COMMAND are treated specially:
2565
2566   -all-static       do not do any dynamic linking at all
2567   -dlopen FILE      \`-dlpreopen' FILE if it cannot be dlopened at runtime
2568   -dlpreopen FILE   link in FILE and add its symbols to dld_preloaded_symbols
2569   -export-dynamic   allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
2570   -LLIBDIR          search LIBDIR for required installed libraries
2571   -lNAME            OUTPUT-FILE requires the installed library libNAME
2572   -no-undefined     declare that a library does not refer to external symbols
2573   -o OUTPUT-FILE    create OUTPUT-FILE from the specified objects
2574   -release RELEASE  specify package release information
2575   -rpath LIBDIR     the created library will eventually be installed in LIBDIR
2576   -static           do not do any dynamic linking of libtool libraries
2577   -version-info CURRENT[:REVISION[:AGE]]
2578                     specify library version info [each variable defaults to 0]
2579
2580 All other options (arguments beginning with \`-') are ignored.
2581
2582 Every other argument is treated as a filename.  Files ending in \`.la' are
2583 treated as uninstalled libtool libraries, other files are standard or library
2584 object files.
2585
2586 If the OUTPUT-FILE ends in \`.la', then a libtool library is created, only
2587 library objects (\`.lo' files) may be specified, and \`-rpath' is required.
2588
2589 If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
2590 using \`ar' and \`ranlib', or on WIndows using \`lib'.
2591
2592 If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
2593 is created, otherwise an executable program is created."
2594   ;;
2595
2596 uninstall)
2597   $echo
2598 "Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
2599
2600 Remove libraries from an installation directory.
2601
2602 RM is the name of the program to use to delete files associated with each FILE
2603 (typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
2604 to RM.
2605
2606 If FILE is a libtool library, all the files associated with it are deleted.
2607 Otherwise, only FILE itself is deleted using RM."
2608   ;;
2609
2610 *)
2611   $echo "$modename: invalid operation mode \`$mode'" 1>&2
2612   $echo "$help" 1>&2
2613   exit 1
2614   ;;
2615 esac
2616
2617 echo
2618 $echo "Try \`$modename --help' for more information about other modes."
2619
2620 exit 0
2621
2622 # Local Variables:
2623 # mode:shell-script
2624 # sh-indentation:2
2625 # End: