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