]> www.ginac.de Git - ginac.git/blob - ltmain.sh
- speedup by declaring x_pt and so on const
[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-1999 Free Software Foundation, Inc.
5 # Originally by 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$1" = X--fallback-echo; then
31   # Avoid inline document here, it may be left over
32   :
33 elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
34   # Yippee, $echo works!
35   :
36 else
37   # Restart under the correct shell, and then maybe $echo will work.
38   exec $SHELL "$0" --no-reexec ${1+"$@"}
39 fi
40
41 if test "X$1" = X--fallback-echo; then
42   # used as fallback echo
43   shift
44   cat <<EOF
45 $*
46 EOF
47   exit 0
48 fi
49
50 # The name of this program.
51 progname=`$echo "$0" | sed 's%^.*/%%'`
52 modename="$progname"
53
54 # Constants.
55 PROGRAM=ltmain.sh
56 PACKAGE=libtool
57 VERSION=1.3.3
58 TIMESTAMP=" (1.385.2.181 1999/07/02 15:49:11)"
59
60 default_mode=
61 help="Try \`$progname --help' for more information."
62 magic="%%%MAGIC variable%%%"
63 mkdir="mkdir"
64 mv="mv -f"
65 rm="rm -f"
66
67 # Sed substitution that helps us do robust quoting.  It backslashifies
68 # metacharacters that are still active within double-quoted strings.
69 Xsed='sed -e 1s/^X//'
70 sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g'
71 SP2NL='tr \040 \012'
72 NL2SP='tr \015\012 \040\040'
73
74 # NLS nuisances.
75 # Only set LANG and LC_ALL to C if already set.
76 # These must not be set unconditionally because not all systems understand
77 # e.g. LANG=C (notably SCO).
78 # We save the old values to restore during execute mode.
79 if test "${LC_ALL+set}" = set; then
80   save_LC_ALL="$LC_ALL"; LC_ALL=C; export LC_ALL
81 fi
82 if test "${LANG+set}" = set; then
83   save_LANG="$LANG"; LANG=C; export LANG
84 fi
85
86 if test "$LTCONFIG_VERSION" != "$VERSION"; then
87   echo "$modename: ltconfig version \`$LTCONFIG_VERSION' does not match $PROGRAM version \`$VERSION'" 1>&2
88   echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
89   exit 1
90 fi
91
92 if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
93   echo "$modename: not configured to build any kind of library" 1>&2
94   echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
95   exit 1
96 fi
97
98 # Global variables.
99 mode=$default_mode
100 nonopt=
101 prev=
102 prevopt=
103 run=
104 show="$echo"
105 show_help=
106 execute_dlfiles=
107 lo2o="s/\\.lo\$/.${objext}/"
108 o2lo="s/\\.${objext}\$/.lo/"
109
110 # Parse our command line options once, thoroughly.
111 while test $# -gt 0
112 do
113   arg="$1"
114   shift
115
116   case "$arg" in
117   -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;;
118   *) optarg= ;;
119   esac
120
121   # If the previous option needs an argument, assign it.
122   if test -n "$prev"; then
123     case "$prev" in
124     execute_dlfiles)
125       eval "$prev=\"\$$prev \$arg\""
126       ;;
127     *)
128       eval "$prev=\$arg"
129       ;;
130     esac
131
132     prev=
133     prevopt=
134     continue
135   fi
136
137   # Have we seen a non-optional argument yet?
138   case "$arg" in
139   --help)
140     show_help=yes
141     ;;
142
143   --version)
144     echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP"
145     exit 0
146     ;;
147
148   --config)
149     sed -e '1,/^### BEGIN LIBTOOL CONFIG/d' -e '/^### END LIBTOOL CONFIG/,$d' $0
150     exit 0
151     ;;
152
153   --debug)
154     echo "$progname: enabling shell trace mode"
155     set -x
156     ;;
157
158   --dry-run | -n)
159     run=:
160     ;;
161
162   --features)
163     echo "host: $host"
164     if test "$build_libtool_libs" = yes; then
165       echo "enable shared libraries"
166     else
167       echo "disable shared libraries"
168     fi
169     if test "$build_old_libs" = yes; then
170       echo "enable static libraries"
171     else
172       echo "disable static libraries"
173     fi
174     exit 0
175     ;;
176
177   --finish) mode="finish" ;;
178
179   --mode) prevopt="--mode" prev=mode ;;
180   --mode=*) mode="$optarg" ;;
181
182   --quiet | --silent)
183     show=:
184     ;;
185
186   -dlopen)
187     prevopt="-dlopen"
188     prev=execute_dlfiles
189     ;;
190
191   -*)
192     $echo "$modename: unrecognized option \`$arg'" 1>&2
193     $echo "$help" 1>&2
194     exit 1
195     ;;
196
197   *)
198     nonopt="$arg"
199     break
200     ;;
201   esac
202 done
203
204 if test -n "$prevopt"; then
205   $echo "$modename: option \`$prevopt' requires an argument" 1>&2
206   $echo "$help" 1>&2
207   exit 1
208 fi
209
210 if test -z "$show_help"; then
211
212   # Infer the operation mode.
213   if test -z "$mode"; then
214     case "$nonopt" in
215     *cc | *++ | gcc* | *-gcc*)
216       mode=link
217       for arg
218       do
219         case "$arg" in
220         -c)
221            mode=compile
222            break
223            ;;
224         esac
225       done
226       ;;
227     *db | *dbx | *strace | *truss)
228       mode=execute
229       ;;
230     *install*|cp|mv)
231       mode=install
232       ;;
233     *rm)
234       mode=uninstall
235       ;;
236     *)
237       # If we have no mode, but dlfiles were specified, then do execute mode.
238       test -n "$execute_dlfiles" && mode=execute
239
240       # Just use the default operation mode.
241       if test -z "$mode"; then
242         if test -n "$nonopt"; then
243           $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2
244         else
245           $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2
246         fi
247       fi
248       ;;
249     esac
250   fi
251
252   # Only execute mode is allowed to have -dlopen flags.
253   if test -n "$execute_dlfiles" && test "$mode" != execute; then
254     $echo "$modename: unrecognized option \`-dlopen'" 1>&2
255     $echo "$help" 1>&2
256     exit 1
257   fi
258
259   # Change the help message to a mode-specific one.
260   generic_help="$help"
261   help="Try \`$modename --help --mode=$mode' for more information."
262
263   # These modes are in order of execution frequency so that they run quickly.
264   case "$mode" in
265   # libtool compile mode
266   compile)
267     modename="$modename: compile"
268     # Get the compilation command and the source file.
269     base_compile=
270     lastarg=
271     srcfile="$nonopt"
272     suppress_output=
273
274     user_target=no
275     for arg
276     do
277       # Accept any command-line options.
278       case "$arg" in
279       -o)
280         if test "$user_target" != "no"; then
281           $echo "$modename: you cannot specify \`-o' more than once" 1>&2
282           exit 1
283         fi
284         user_target=next
285         ;;
286
287       -static)
288         build_old_libs=yes
289         continue
290         ;;
291       esac
292
293       case "$user_target" in
294       next)
295         # The next one is the -o target name
296         user_target=yes
297         continue
298         ;;
299       yes)
300         # We got the output file
301         user_target=set
302         libobj="$arg"
303         continue
304         ;;
305       esac
306
307       # Accept the current argument as the source file.
308       lastarg="$srcfile"
309       srcfile="$arg"
310
311       # Aesthetically quote the previous argument.
312
313       # Backslashify any backslashes, double quotes, and dollar signs.
314       # These are the only characters that are still specially
315       # interpreted inside of double-quoted scrings.
316       lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"`
317
318       # Double-quote args containing other shell metacharacters.
319       # Many Bourne shells cannot handle close brackets correctly in scan
320       # sets, so we specify it separately.
321       case "$lastarg" in
322       *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \     ]*|*]*)
323         lastarg="\"$lastarg\""
324         ;;
325       esac
326
327       # Add the previous argument to base_compile.
328       if test -z "$base_compile"; then
329         base_compile="$lastarg"
330       else
331         base_compile="$base_compile $lastarg"
332       fi
333     done
334
335     case "$user_target" in
336     set)
337       ;;
338     no)
339       # Get the name of the library object.
340       libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'`
341       ;;
342     *)
343       $echo "$modename: you must specify a target with \`-o'" 1>&2
344       exit 1
345       ;;
346     esac
347
348     # Recognize several different file suffixes.
349     # If the user specifies -o file.o, it is replaced with file.lo
350     xform='[cCFSfmso]'
351     case "$libobj" in
352     *.ada) xform=ada ;;
353     *.adb) xform=adb ;;
354     *.ads) xform=ads ;;
355     *.asm) xform=asm ;;
356     *.c++) xform=c++ ;;
357     *.cc) xform=cc ;;
358     *.cpp) xform=cpp ;;
359     *.cxx) xform=cxx ;;
360     *.f90) xform=f90 ;;
361     *.for) xform=for ;;
362     esac
363
364     libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
365
366     case "$libobj" in
367     *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;;
368     *)
369       $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2
370       exit 1
371       ;;
372     esac
373
374     if test -z "$base_compile"; then
375       $echo "$modename: you must specify a compilation command" 1>&2
376       $echo "$help" 1>&2
377       exit 1
378     fi
379
380     # Delete any leftover library objects.
381     if test "$build_old_libs" = yes; then
382       removelist="$obj $libobj"
383     else
384       removelist="$libobj"
385     fi
386
387     $run $rm $removelist
388     trap "$run $rm $removelist; exit 1" 1 2 15
389
390     # Calculate the filename of the output object if compiler does
391     # not support -o with -c
392     if test "$compiler_c_o" = no; then
393       output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\..*$%%'`.${objext}
394       lockfile="$output_obj.lock"
395       removelist="$removelist $output_obj $lockfile"
396       trap "$run $rm $removelist; exit 1" 1 2 15
397     else
398       need_locks=no
399       lockfile=
400     fi
401
402     # Lock this critical section if it is needed
403     # We use this script file to make the link, it avoids creating a new file
404     if test "$need_locks" = yes; then
405       until ln "$0" "$lockfile" 2>/dev/null; do
406         $show "Waiting for $lockfile to be removed"
407         sleep 2
408       done
409     elif test "$need_locks" = warn; then
410       if test -f "$lockfile"; then
411         echo "\
412 *** ERROR, $lockfile exists and contains:
413 `cat $lockfile 2>/dev/null`
414
415 This indicates that another process is trying to use the same
416 temporary object file, and libtool could not work around it because
417 your compiler does not support \`-c' and \`-o' together.  If you
418 repeat this compilation, it may succeed, by chance, but you had better
419 avoid parallel builds (make -j) in this platform, or get a better
420 compiler."
421
422         $run $rm $removelist
423         exit 1
424       fi
425       echo $srcfile > "$lockfile"
426     fi
427
428     if test -n "$fix_srcfile_path"; then
429       eval srcfile=\"$fix_srcfile_path\"
430     fi
431
432     # Only build a PIC object if we are building libtool libraries.
433     if test "$build_libtool_libs" = yes; then
434       # Without this assignment, base_compile gets emptied.
435       fbsd_hideous_sh_bug=$base_compile
436
437       # All platforms use -DPIC, to notify preprocessed assembler code.
438       command="$base_compile $pic_flag -DPIC $srcfile"
439       if test "$build_old_libs" = yes; then
440         lo_libobj="$libobj"
441         dir=`$echo "X$libobj" | $Xsed -e 's%/[^/]*$%%'`
442         if test "X$dir" = "X$libobj"; then
443           dir="$objdir"
444         else
445           dir="$dir/$objdir"
446         fi
447         libobj="$dir/"`$echo "X$libobj" | $Xsed -e 's%^.*/%%'`
448
449         if test -d "$dir"; then
450           $show "$rm $libobj"
451           $run $rm $libobj
452         else
453           $show "$mkdir $dir"
454           $run $mkdir $dir
455           status=$?
456           if test $status -ne 0 && test ! -d $dir; then
457             exit $status
458           fi
459         fi
460       fi
461       if test "$compiler_o_lo" = yes; then
462         output_obj="$libobj"
463         command="$command -o $output_obj"
464       elif test "$compiler_c_o" = yes; then
465         output_obj="$obj"
466         command="$command -o $output_obj"
467       fi
468
469       $run $rm "$output_obj"
470       $show "$command"
471       if $run eval "$command"; then :
472       else
473         test -n "$output_obj" && $run $rm $removelist
474         exit 1
475       fi
476
477       if test "$need_locks" = warn &&
478          test x"`cat $lockfile 2>/dev/null`" != x"$srcfile"; then
479         echo "\
480 *** ERROR, $lockfile contains:
481 `cat $lockfile 2>/dev/null`
482
483 but it should contain:
484 $srcfile
485
486 This indicates that another process is trying to use the same
487 temporary object file, and libtool could not work around it because
488 your compiler does not support \`-c' and \`-o' together.  If you
489 repeat this compilation, it may succeed, by chance, but you had better
490 avoid parallel builds (make -j) in this platform, or get a better
491 compiler."
492
493         $run $rm $removelist
494         exit 1
495       fi
496
497       # Just move the object if needed, then go on to compile the next one
498       if test x"$output_obj" != x"$libobj"; then
499         $show "$mv $output_obj $libobj"
500         if $run $mv $output_obj $libobj; then :
501         else
502           error=$?
503           $run $rm $removelist
504           exit $error
505         fi
506       fi
507
508       # If we have no pic_flag, then copy the object into place and finish.
509       if test -z "$pic_flag" && test "$build_old_libs" = yes; then
510         # Rename the .lo from within objdir to obj
511         if test -f $obj; then
512           $show $rm $obj
513           $run $rm $obj
514         fi
515
516         $show "$mv $libobj $obj"
517         if $run $mv $libobj $obj; then :
518         else
519           error=$?
520           $run $rm $removelist
521           exit $error
522         fi
523
524         # Now arrange that obj and lo_libobj become the same file
525         $show "$LN_S $obj $lo_libobj"
526         if $run $LN_S $obj $lo_libobj; then
527           exit 0
528         else
529           error=$?
530           $run $rm $removelist
531           exit $error
532         fi
533       fi
534
535       # Allow error messages only from the first compilation.
536       suppress_output=' >/dev/null 2>&1'
537     fi
538
539     # Only build a position-dependent object if we build old libraries.
540     if test "$build_old_libs" = yes; then
541       command="$base_compile $srcfile"
542       if test "$compiler_c_o" = yes; then
543         command="$command -o $obj"
544         output_obj="$obj"
545       fi
546
547       # Suppress compiler output if we already did a PIC compilation.
548       command="$command$suppress_output"
549       $run $rm "$output_obj"
550       $show "$command"
551       if $run eval "$command"; then :
552       else
553         $run $rm $removelist
554         exit 1
555       fi
556
557       if test "$need_locks" = warn &&
558          test x"`cat $lockfile 2>/dev/null`" != x"$srcfile"; then
559         echo "\
560 *** ERROR, $lockfile contains:
561 `cat $lockfile 2>/dev/null`
562
563 but it should contain:
564 $srcfile
565
566 This indicates that another process is trying to use the same
567 temporary object file, and libtool could not work around it because
568 your compiler does not support \`-c' and \`-o' together.  If you
569 repeat this compilation, it may succeed, by chance, but you had better
570 avoid parallel builds (make -j) in this platform, or get a better
571 compiler."
572
573         $run $rm $removelist
574         exit 1
575       fi
576
577       # Just move the object if needed
578       if test x"$output_obj" != x"$obj"; then
579         $show "$mv $output_obj $obj"
580         if $run $mv $output_obj $obj; then :
581         else
582           error=$?
583           $run $rm $removelist
584           exit $error
585         fi
586       fi
587
588       # Create an invalid libtool object if no PIC, so that we do not
589       # accidentally link it into a program.
590       if test "$build_libtool_libs" != yes; then
591         $show "echo timestamp > $libobj"
592         $run eval "echo timestamp > \$libobj" || exit $?
593       else
594         # Move the .lo from within objdir
595         $show "$mv $libobj $lo_libobj"
596         if $run $mv $libobj $lo_libobj; then :
597         else
598           error=$?
599           $run $rm $removelist
600           exit $error
601         fi
602       fi
603     fi
604
605     # Unlock the critical section if it was locked
606     if test "$need_locks" != no; then
607       $rm "$lockfile"
608     fi
609
610     exit 0
611     ;;
612
613   # libtool link mode
614   link)
615     modename="$modename: link"
616     C_compiler="$CC" # save it, to compile generated C sources
617     CC="$nonopt"
618     case "$host" in
619     *-*-cygwin* | *-*-mingw* | *-*-os2*)
620       # It is impossible to link a dll without this setting, and
621       # we shouldn't force the makefile maintainer to figure out
622       # which system we are compiling for in order to pass an extra
623       # flag for every libtool invokation.
624       # allow_undefined=no
625
626       # FIXME: Unfortunately, there are problems with the above when trying
627       # to make a dll which has undefined symbols, in which case not
628       # even a static library is built.  For now, we need to specify
629       # -no-undefined on the libtool link line when we can be certain
630       # that all symbols are satisfied, otherwise we get a static library.
631       allow_undefined=yes
632
633       # This is a source program that is used to create dlls on Windows
634       # Don't remove nor modify the starting and closing comments
635 # /* ltdll.c starts here */
636 # #define WIN32_LEAN_AND_MEAN
637 # #include <windows.h>
638 # #undef WIN32_LEAN_AND_MEAN
639 # #include <stdio.h>
640 #
641 # #ifndef __CYGWIN__
642 # #  ifdef __CYGWIN32__
643 # #    define __CYGWIN__ __CYGWIN32__
644 # #  endif
645 # #endif
646 #
647 # #ifdef __cplusplus
648 # extern "C" {
649 # #endif
650 # BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved);
651 # #ifdef __cplusplus
652 # }
653 # #endif
654 #
655 # #ifdef __CYGWIN__
656 # #include <cygwin/cygwin_dll.h>
657 # DECLARE_CYGWIN_DLL( DllMain );
658 # #endif
659 # HINSTANCE __hDllInstance_base;
660 #
661 # BOOL APIENTRY
662 # DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved)
663 # {
664 #   __hDllInstance_base = hInst;
665 #   return TRUE;
666 # }
667 # /* ltdll.c ends here */
668       # This is a source program that is used to create import libraries
669       # on Windows for dlls which lack them. Don't remove nor modify the
670       # starting and closing comments
671 # /* impgen.c starts here */
672 # /*   Copyright (C) 1999 Free Software Foundation, Inc.
673
674 #  This file is part of GNU libtool.
675
676 #  This program is free software; you can redistribute it and/or modify
677 #  it under the terms of the GNU General Public License as published by
678 #  the Free Software Foundation; either version 2 of the License, or
679 #  (at your option) any later version.
680
681 #  This program is distributed in the hope that it will be useful,
682 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
683 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
684 #  GNU General Public License for more details.
685
686 #  You should have received a copy of the GNU General Public License
687 #  along with this program; if not, write to the Free Software
688 #  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
689 #  */
690
691 #  #include <stdio.h>           /* for printf() */
692 #  #include <unistd.h>          /* for open(), lseek(), read() */
693 #  #include <fcntl.h>           /* for O_RDONLY, O_BINARY */
694 #  #include <string.h>          /* for strdup() */
695
696 #  static unsigned int
697 #  pe_get16 (fd, offset)
698 #       int fd;
699 #       int offset;
700 #  {
701 #    unsigned char b[2];
702 #    lseek (fd, offset, SEEK_SET);
703 #    read (fd, b, 2);
704 #    return b[0] + (b[1]<<8);
705 #  }
706
707 #  static unsigned int
708 #  pe_get32 (fd, offset)
709 #      int fd;
710 #      int offset;
711 #  {
712 #    unsigned char b[4];
713 #    lseek (fd, offset, SEEK_SET);
714 #    read (fd, b, 4);
715 #    return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24);
716 #  }
717
718 #  static unsigned int
719 #  pe_as32 (ptr)
720 #       void *ptr;
721 #  {
722 #    unsigned char *b = ptr;
723 #    return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24);
724 #  }
725
726 #  int
727 #  main (argc, argv)
728 #      int argc;
729 #      char *argv[];
730 #  {
731 #      int dll;
732 #      unsigned long pe_header_offset, opthdr_ofs, num_entries, i;
733 #      unsigned long export_rva, export_size, nsections, secptr, expptr;
734 #      unsigned long name_rvas, nexp;
735 #      unsigned char *expdata, *erva;
736 #      char *filename, *dll_name;
737
738 #      filename = argv[1];
739
740 #      dll = open(filename, O_RDONLY|O_BINARY);
741 #      if (!dll)
742 #       return 1;
743
744 #      dll_name = filename;
745 #    
746 #      for (i=0; filename[i]; i++)
747 #       if (filename[i] == '/' || filename[i] == '\\'  || filename[i] == ':')
748 #           dll_name = filename + i +1;
749
750 #      pe_header_offset = pe_get32 (dll, 0x3c);
751 #      opthdr_ofs = pe_header_offset + 4 + 20;
752 #      num_entries = pe_get32 (dll, opthdr_ofs + 92);
753
754 #      if (num_entries < 1) /* no exports */
755 #       return 1;
756
757 #      export_rva = pe_get32 (dll, opthdr_ofs + 96);
758 #      export_size = pe_get32 (dll, opthdr_ofs + 100);
759 #      nsections = pe_get16 (dll, pe_header_offset + 4 +2);
760 #      secptr = (pe_header_offset + 4 + 20 +
761 #             pe_get16 (dll, pe_header_offset + 4 + 16));
762
763 #      expptr = 0;
764 #      for (i = 0; i < nsections; i++)
765 #      {
766 #       char sname[8];
767 #       unsigned long secptr1 = secptr + 40 * i;
768 #       unsigned long vaddr = pe_get32 (dll, secptr1 + 12);
769 #       unsigned long vsize = pe_get32 (dll, secptr1 + 16);
770 #       unsigned long fptr = pe_get32 (dll, secptr1 + 20);
771 #       lseek(dll, secptr1, SEEK_SET);
772 #       read(dll, sname, 8);
773 #       if (vaddr <= export_rva && vaddr+vsize > export_rva)
774 #       {
775 #           expptr = fptr + (export_rva - vaddr);
776 #           if (export_rva + export_size > vaddr + vsize)
777 #               export_size = vsize - (export_rva - vaddr);
778 #           break;
779 #       }
780 #      }
781
782 #      expdata = (unsigned char*)malloc(export_size);
783 #      lseek (dll, expptr, SEEK_SET);
784 #      read (dll, expdata, export_size);
785 #      erva = expdata - export_rva;
786
787 #      nexp = pe_as32 (expdata+24);
788 #      name_rvas = pe_as32 (expdata+32);
789
790 #      printf ("EXPORTS\n");
791 #      for (i = 0; i<nexp; i++)
792 #      {
793 #       unsigned long name_rva = pe_as32 (erva+name_rvas+i*4);
794 #       printf ("\t%s @ %ld ;\n", erva+name_rva, 1+ i);
795 #      }
796
797 #      return 0;
798 #  }
799 # /* impgen.c ends here */
800       ;;
801     *)
802       allow_undefined=yes
803       ;;
804     esac
805     compile_command="$CC"
806     finalize_command="$CC"
807
808     compile_rpath=
809     finalize_rpath=
810     compile_shlibpath=
811     finalize_shlibpath=
812     convenience=
813     old_convenience=
814     deplibs=
815     linkopts=
816
817     if test -n "$shlibpath_var"; then
818       # get the directories listed in $shlibpath_var
819       eval lib_search_path=\`\$echo \"X \${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
820     else
821       lib_search_path=
822     fi
823     # now prepend the system-specific ones
824     eval lib_search_path=\"$sys_lib_search_path_spec\$lib_search_path\"
825     eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
826     
827     avoid_version=no
828     dlfiles=
829     dlprefiles=
830     dlself=no
831     export_dynamic=no
832     export_symbols=
833     export_symbols_regex=
834     generated=
835     libobjs=
836     link_against_libtool_libs=
837     ltlibs=
838     module=no
839     objs=
840     prefer_static_libs=no
841     preload=no
842     prev=
843     prevarg=
844     release=
845     rpath=
846     xrpath=
847     perm_rpath=
848     temp_rpath=
849     thread_safe=no
850     vinfo=
851
852     # We need to know -static, to get the right output filenames.
853     for arg
854     do
855       case "$arg" in
856       -all-static | -static)
857         if test "X$arg" = "X-all-static"; then
858           if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
859             $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2
860           fi
861           if test -n "$link_static_flag"; then
862             dlopen_self=$dlopen_self_static
863           fi
864         else
865           if test -z "$pic_flag" && test -n "$link_static_flag"; then
866             dlopen_self=$dlopen_self_static
867           fi
868         fi
869         build_libtool_libs=no
870         build_old_libs=yes
871         prefer_static_libs=yes
872         break
873         ;;
874       esac
875     done
876
877     # See if our shared archives depend on static archives.
878     test -n "$old_archive_from_new_cmds" && build_old_libs=yes
879
880     # Go through the arguments, transforming them on the way.
881     while test $# -gt 0; do
882       arg="$1"
883       shift
884
885       # If the previous option needs an argument, assign it.
886       if test -n "$prev"; then
887         case "$prev" in
888         output)
889           compile_command="$compile_command @OUTPUT@"
890           finalize_command="$finalize_command @OUTPUT@"
891           ;;
892         esac
893
894         case "$prev" in
895         dlfiles|dlprefiles)
896           if test "$preload" = no; then
897             # Add the symbol object into the linking commands.
898             compile_command="$compile_command @SYMFILE@"
899             finalize_command="$finalize_command @SYMFILE@"
900             preload=yes
901           fi
902           case "$arg" in
903           *.la | *.lo) ;;  # We handle these cases below.
904           force)
905             if test "$dlself" = no; then
906               dlself=needless
907               export_dynamic=yes
908             fi
909             prev=
910             continue
911             ;;
912           self)
913             if test "$prev" = dlprefiles; then
914               dlself=yes
915             elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
916               dlself=yes
917             else
918               dlself=needless
919               export_dynamic=yes
920             fi
921             prev=
922             continue
923             ;;
924           *)
925             if test "$prev" = dlfiles; then
926               dlfiles="$dlfiles $arg"
927             else
928               dlprefiles="$dlprefiles $arg"
929             fi
930             prev=
931             ;;
932           esac
933           ;;
934         expsyms)
935           export_symbols="$arg"
936           if test ! -f "$arg"; then
937             $echo "$modename: symbol file \`$arg' does not exist"
938             exit 1
939           fi
940           prev=
941           continue
942           ;;
943         expsyms_regex)
944           export_symbols_regex="$arg"
945           prev=
946           continue
947           ;;
948         release)
949           release="-$arg"
950           prev=
951           continue
952           ;;
953         rpath | xrpath)
954           # We need an absolute path.
955           case "$arg" in
956           [\\/]* | [A-Za-z]:[\\/]*) ;;
957           *)
958             $echo "$modename: only absolute run-paths are allowed" 1>&2
959             exit 1
960             ;;
961           esac
962           if test "$prev" = rpath; then
963             case "$rpath " in
964             *" $arg "*) ;;
965             *) rpath="$rpath $arg" ;;
966             esac
967           else
968             case "$xrpath " in
969             *" $arg "*) ;;
970             *) xrpath="$xrpath $arg" ;;
971             esac
972           fi
973           prev=
974           continue
975           ;;
976         *)
977           eval "$prev=\"\$arg\""
978           prev=
979           continue
980           ;;
981         esac
982       fi
983
984       prevarg="$arg"
985
986       case "$arg" in
987       -all-static)
988         if test -n "$link_static_flag"; then
989           compile_command="$compile_command $link_static_flag"
990           finalize_command="$finalize_command $link_static_flag"
991         fi
992         continue
993         ;;
994
995       -allow-undefined)
996         # FIXME: remove this flag sometime in the future.
997         $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2
998         continue
999         ;;
1000
1001       -avoid-version)
1002         avoid_version=yes
1003         continue
1004         ;;
1005
1006       -dlopen)
1007         prev=dlfiles
1008         continue
1009         ;;
1010
1011       -dlpreopen)
1012         prev=dlprefiles
1013         continue
1014         ;;
1015
1016       -export-dynamic)
1017         export_dynamic=yes
1018         continue
1019         ;;
1020
1021       -export-symbols | -export-symbols-regex)
1022         if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
1023           $echo "$modename: not more than one -exported-symbols argument allowed"
1024           exit 1
1025         fi
1026         if test "X$arg" = "X-export-symbols"; then
1027           prev=expsyms
1028         else
1029           prev=expsyms_regex
1030         fi
1031         continue
1032         ;;
1033
1034       -L*)
1035         dir=`$echo "X$arg" | $Xsed -e 's/^-L//'`
1036         # We need an absolute path.
1037         case "$dir" in
1038         [\\/]* | [A-Za-z]:[\\/]*) ;;
1039         *)
1040           absdir=`cd "$dir" && pwd`
1041           if test -z "$absdir"; then
1042             $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2
1043             $echo "$modename: passing it literally to the linker, although it might fail" 1>&2
1044             absdir="$dir"
1045           fi
1046           dir="$absdir"
1047           ;;
1048         esac
1049         case " $deplibs " in
1050         *" $arg "*) ;;
1051         *) deplibs="$deplibs $arg";;
1052         esac
1053         case " $lib_search_path " in
1054         *" $dir "*) ;;
1055         *) lib_search_path="$lib_search_path $dir";;
1056         esac
1057         case "$host" in
1058         *-*-cygwin* | *-*-mingw* | *-*-os2*)
1059           dllsearchdir=`cd "$dir" && pwd || echo "$dir"`
1060           case ":$dllsearchpath:" in
1061           ::) dllsearchpath="$dllsearchdir";;
1062           *":$dllsearchdir:"*) ;;
1063           *) dllsearchpath="$dllsearchpath:$dllsearchdir";;
1064           esac
1065           ;;
1066         esac
1067         ;;
1068
1069       -l*)
1070         if test "$arg" = "-lc"; then
1071           case "$host" in
1072           *-*-cygwin* | *-*-mingw* | *-*-os2* | *-*-beos*)
1073             # These systems don't actually have c library (as such)
1074             continue
1075             ;;
1076           esac
1077         elif test "$arg" = "-lm"; then
1078           case "$host" in
1079           *-*-cygwin* | *-*-beos*)
1080             # These systems don't actually have math library (as such)
1081             continue
1082             ;;
1083           esac
1084         fi
1085         deplibs="$deplibs $arg"
1086         ;;
1087
1088       -module)
1089         module=yes
1090         continue
1091         ;;
1092
1093       -no-undefined)
1094         allow_undefined=no
1095         continue
1096         ;;
1097
1098       -o) prev=output ;;
1099
1100       -release)
1101         prev=release
1102         continue
1103         ;;
1104
1105       -rpath)
1106         prev=rpath
1107         continue
1108         ;;
1109
1110       -R)
1111         prev=xrpath
1112         continue
1113         ;;
1114
1115       -R*)
1116         dir=`$echo "X$arg" | $Xsed -e 's/^-R//'`
1117         # We need an absolute path.
1118         case "$dir" in
1119         [\\/]* | [A-Za-z]:[\\/]*) ;;
1120         *)
1121           $echo "$modename: only absolute run-paths are allowed" 1>&2
1122           exit 1
1123           ;;
1124         esac
1125         case "$xrpath " in
1126         *" $dir "*) ;;
1127         *) xrpath="$xrpath $dir" ;;
1128         esac
1129         continue
1130         ;;
1131
1132       -static)
1133         # If we have no pic_flag, then this is the same as -all-static.
1134         if test -z "$pic_flag" && test -n "$link_static_flag"; then
1135           compile_command="$compile_command $link_static_flag"
1136           finalize_command="$finalize_command $link_static_flag"
1137         fi
1138         continue
1139         ;;
1140
1141       -thread-safe)
1142         thread_safe=yes
1143         continue
1144         ;;
1145
1146       -version-info)
1147         prev=vinfo
1148         continue
1149         ;;
1150
1151       # Some other compiler flag.
1152       -* | +*)
1153         # Unknown arguments in both finalize_command and compile_command need
1154         # to be aesthetically quoted because they are evaled later.
1155         arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1156         case "$arg" in
1157         *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \   ]*|*]*)
1158           arg="\"$arg\""
1159           ;;
1160         esac
1161         ;;
1162
1163       *.o | *.obj | *.a | *.lib)
1164         # A standard object.
1165         objs="$objs $arg"
1166         ;;
1167
1168       *.lo)
1169         # A library object.
1170         if test "$prev" = dlfiles; then
1171           dlfiles="$dlfiles $arg"
1172           if test "$build_libtool_libs" = yes && test "$dlopen" = yes; then
1173             prev=
1174             continue
1175           else
1176             # If libtool objects are unsupported, then we need to preload.
1177             prev=dlprefiles
1178           fi
1179         fi
1180
1181         if test "$prev" = dlprefiles; then
1182           # Preload the old-style object.
1183           dlprefiles="$dlprefiles "`$echo "X$arg" | $Xsed -e "$lo2o"`
1184           prev=
1185         fi
1186         libobjs="$libobjs $arg"
1187         ;;
1188
1189       *.la)
1190         # A libtool-controlled library.
1191
1192         dlname=
1193         libdir=
1194         library_names=
1195         old_library=
1196
1197         # Check to see that this really is a libtool archive.
1198         if (sed -e '2q' $arg | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
1199         else
1200           $echo "$modename: \`$arg' is not a valid libtool archive" 1>&2
1201           exit 1
1202         fi
1203
1204         # If the library was installed with an old release of libtool,
1205         # it will not redefine variable installed.
1206         installed=yes
1207
1208         # Read the .la file
1209         # If there is no directory component, then add one.
1210         case "$arg" in
1211         */* | *\\*) . $arg ;;
1212         *) . ./$arg ;;
1213         esac
1214
1215         # Get the name of the library we link against.
1216         linklib=
1217         for l in $old_library $library_names; do
1218           linklib="$l"
1219         done
1220
1221         if test -z "$linklib"; then
1222           $echo "$modename: cannot find name of link library for \`$arg'" 1>&2
1223           exit 1
1224         fi
1225
1226         # Find the relevant object directory and library name.
1227         name=`$echo "X$arg" | $Xsed -e 's%^.*/%%' -e 's/\.la$//' -e 's/^lib//'`
1228
1229         if test "X$installed" = Xyes; then
1230           dir="$libdir"
1231         else
1232           dir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
1233           if test "X$dir" = "X$arg"; then
1234             dir="$objdir"
1235           else
1236             dir="$dir/$objdir"
1237           fi
1238         fi
1239
1240         if test -n "$dependency_libs"; then
1241           # Extract -R and -L from dependency_libs
1242           temp_deplibs=
1243           for deplib in $dependency_libs; do
1244             case "$deplib" in
1245             -R*) temp_xrpath=`$echo "X$deplib" | $Xsed -e 's/^-R//'`
1246                  case " $rpath $xrpath " in
1247                  *" $temp_xrpath "*) ;;
1248                  *) xrpath="$xrpath $temp_xrpath";;
1249                  esac;;
1250             -L*) case "$compile_command $temp_deplibs " in
1251                  *" $deplib "*) ;;
1252                  *) temp_deplibs="$temp_deplibs $deplib";;
1253                  esac
1254                  temp_dir=`$echo "X$deplib" | $Xsed -e 's/^-L//'`
1255                  case " $lib_search_path " in
1256                  *" $temp_dir "*) ;;
1257                  *) lib_search_path="$lib_search_path $temp_dir";;
1258                  esac
1259                  ;;
1260             *) temp_deplibs="$temp_deplibs $deplib";;
1261             esac
1262           done
1263           dependency_libs="$temp_deplibs"
1264         fi
1265
1266         if test -z "$libdir"; then
1267           # It is a libtool convenience library, so add in its objects.
1268           convenience="$convenience $dir/$old_library"
1269           old_convenience="$old_convenience $dir/$old_library"
1270           deplibs="$deplibs$dependency_libs"
1271           compile_command="$compile_command $dir/$old_library$dependency_libs"
1272           finalize_command="$finalize_command $dir/$old_library$dependency_libs"
1273           continue
1274         fi
1275
1276         # This library was specified with -dlopen.
1277         if test "$prev" = dlfiles; then
1278           dlfiles="$dlfiles $arg"
1279           if test -z "$dlname" || test "$dlopen" != yes || test "$build_libtool_libs" = no; then
1280             # If there is no dlname, no dlopen support or we're linking statically,
1281             # we need to preload.
1282             prev=dlprefiles
1283           else
1284             # We should not create a dependency on this library, but we
1285             # may need any libraries it requires.
1286             compile_command="$compile_command$dependency_libs"
1287             finalize_command="$finalize_command$dependency_libs"
1288             prev=
1289             continue
1290           fi
1291         fi
1292
1293         # The library was specified with -dlpreopen.
1294         if test "$prev" = dlprefiles; then
1295           # Prefer using a static library (so that no silly _DYNAMIC symbols
1296           # are required to link).
1297           if test -n "$old_library"; then
1298             dlprefiles="$dlprefiles $dir/$old_library"
1299           else
1300             dlprefiles="$dlprefiles $dir/$linklib"
1301           fi
1302           prev=
1303         fi
1304
1305         if test -n "$library_names" &&
1306            { test "$prefer_static_libs" = no || test -z "$old_library"; }; then
1307           link_against_libtool_libs="$link_against_libtool_libs $arg"
1308           if test -n "$shlibpath_var"; then
1309             # Make sure the rpath contains only unique directories.
1310             case "$temp_rpath " in
1311             *" $dir "*) ;;
1312             *) temp_rpath="$temp_rpath $dir" ;;
1313             esac
1314           fi
1315
1316           # We need an absolute path.
1317           case "$dir" in
1318           [\\/] | [A-Za-z]:[\\/]*) absdir="$dir" ;;
1319           *)
1320             absdir=`cd "$dir" && pwd`
1321             if test -z "$absdir"; then
1322               $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2
1323               $echo "$modename: passing it literally to the linker, although it might fail" 1>&2
1324               absdir="$dir"
1325             fi
1326             ;;
1327           esac
1328           
1329           # This is the magic to use -rpath.
1330           # Skip directories that are in the system default run-time
1331           # search path, unless they have been requested with -R.
1332           case " $sys_lib_dlsearch_path " in
1333           *" $absdir "*) ;;
1334           *)
1335             case "$compile_rpath " in
1336             *" $absdir "*) ;;
1337             *) compile_rpath="$compile_rpath $absdir" 
1338             esac
1339             ;;
1340           esac
1341
1342           case " $sys_lib_dlsearch_path " in
1343           *" $libdir "*) ;;
1344           *)
1345             case "$finalize_rpath " in
1346             *" $libdir "*) ;;
1347             *) finalize_rpath="$finalize_rpath $libdir"
1348             esac
1349             ;;
1350           esac
1351
1352           lib_linked=yes
1353           case "$hardcode_action" in
1354           immediate | unsupported)
1355             if test "$hardcode_direct" = no; then
1356               compile_command="$compile_command $dir/$linklib"
1357               deplibs="$deplibs $dir/$linklib"
1358               case "$host" in
1359               *-*-cygwin* | *-*-mingw* | *-*-os2*)
1360                 dllsearchdir=`cd "$dir" && pwd || echo "$dir"`
1361                 if test -n "$dllsearchpath"; then
1362                   dllsearchpath="$dllsearchpath:$dllsearchdir"
1363                 else
1364                   dllsearchpath="$dllsearchdir"
1365                 fi
1366                 ;;
1367               esac
1368             elif test "$hardcode_minus_L" = no; then
1369               case "$host" in
1370               *-*-sunos*)
1371                 compile_shlibpath="$compile_shlibpath$dir:"
1372                 ;;
1373               esac
1374               case "$compile_command " in
1375               *" -L$dir "*) ;;
1376               *) compile_command="$compile_command -L$dir";;
1377               esac
1378               compile_command="$compile_command -l$name"
1379               deplibs="$deplibs -L$dir -l$name"
1380             elif test "$hardcode_shlibpath_var" = no; then
1381               case ":$compile_shlibpath:" in
1382               *":$dir:"*) ;;
1383               *) compile_shlibpath="$compile_shlibpath$dir:";;
1384               esac
1385               compile_command="$compile_command -l$name"
1386               deplibs="$deplibs -l$name"
1387             else
1388               lib_linked=no
1389             fi
1390             ;;
1391
1392           relink)
1393             if test "$hardcode_direct" = yes; then
1394               compile_command="$compile_command $absdir/$linklib"
1395               deplibs="$deplibs $absdir/$linklib"
1396             elif test "$hardcode_minus_L" = yes; then
1397               case "$compile_command " in
1398               *" -L$absdir "*) ;;
1399               *) compile_command="$compile_command -L$absdir";;
1400               esac
1401               compile_command="$compile_command -l$name"
1402               deplibs="$deplibs -L$absdir -l$name"
1403             elif test "$hardcode_shlibpath_var" = yes; then
1404               case ":$compile_shlibpath:" in
1405               *":$absdir:"*) ;;
1406               *) compile_shlibpath="$compile_shlibpath$absdir:";;
1407               esac
1408               compile_command="$compile_command -l$name"
1409               deplibs="$deplibs -l$name"
1410             else
1411               lib_linked=no
1412             fi
1413             ;;
1414
1415           *)
1416             lib_linked=no
1417             ;;
1418           esac
1419
1420           if test "$lib_linked" != yes; then
1421             $echo "$modename: configuration error: unsupported hardcode properties"
1422             exit 1
1423           fi
1424
1425           # Finalize command for both is simple: just hardcode it.
1426           if test "$hardcode_direct" = yes; then
1427             finalize_command="$finalize_command $libdir/$linklib"
1428           elif test "$hardcode_minus_L" = yes; then
1429             case "$finalize_command " in
1430             *" -L$libdir "*) ;;
1431             *) finalize_command="$finalize_command -L$libdir";;
1432             esac
1433             finalize_command="$finalize_command -l$name"
1434           elif test "$hardcode_shlibpath_var" = yes; then
1435             case ":$finalize_shlibpath:" in
1436             *":$libdir:"*) ;;
1437             *) finalize_shlibpath="$finalize_shlibpath$libdir:";;
1438             esac
1439             finalize_command="$finalize_command -l$name"
1440           else
1441             # We cannot seem to hardcode it, guess we'll fake it.
1442             case "$finalize_command " in
1443             *" -L$dir "*) ;;
1444             *) finalize_command="$finalize_command -L$libdir";;
1445             esac
1446             finalize_command="$finalize_command -l$name"
1447           fi
1448         else
1449           # Transform directly to old archives if we don't build new libraries.
1450           if test -n "$pic_flag" && test -z "$old_library"; then
1451             $echo "$modename: cannot find static library for \`$arg'" 1>&2
1452             exit 1
1453           fi
1454
1455           # Here we assume that one of hardcode_direct or hardcode_minus_L
1456           # is not unsupported.  This is valid on all known static and
1457           # shared platforms.
1458           if test "$hardcode_direct" != unsupported; then
1459             test -n "$old_library" && linklib="$old_library"
1460             compile_command="$compile_command $dir/$linklib"
1461             finalize_command="$finalize_command $dir/$linklib"
1462           else
1463             case "$compile_command " in
1464             *" -L$dir "*) ;;
1465             *) compile_command="$compile_command -L$dir";;
1466             esac
1467             compile_command="$compile_command -l$name"
1468             case "$finalize_command " in
1469             *" -L$dir "*) ;;
1470             *) finalize_command="$finalize_command -L$dir";;
1471             esac
1472             finalize_command="$finalize_command -l$name"
1473           fi
1474         fi
1475
1476         # Add in any libraries that this one depends upon.
1477         compile_command="$compile_command$dependency_libs"
1478         finalize_command="$finalize_command$dependency_libs"
1479         continue
1480         ;;
1481
1482       # Some other compiler argument.
1483       *)
1484         # Unknown arguments in both finalize_command and compile_command need
1485         # to be aesthetically quoted because they are evaled later.
1486         arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1487         case "$arg" in
1488         *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \   ]*|*]*)
1489           arg="\"$arg\""
1490           ;;
1491         esac
1492         ;;
1493       esac
1494
1495       # Now actually substitute the argument into the commands.
1496       if test -n "$arg"; then
1497         compile_command="$compile_command $arg"
1498         finalize_command="$finalize_command $arg"
1499       fi
1500     done
1501
1502     if test -n "$prev"; then
1503       $echo "$modename: the \`$prevarg' option requires an argument" 1>&2
1504       $echo "$help" 1>&2
1505       exit 1
1506     fi
1507
1508     if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
1509       eval arg=\"$export_dynamic_flag_spec\"
1510       compile_command="$compile_command $arg"
1511       finalize_command="$finalize_command $arg"
1512     fi
1513
1514     oldlibs=
1515     # calculate the name of the file, without its directory
1516     outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'`
1517     libobjs_save="$libobjs"
1518
1519     case "$output" in
1520     "")
1521       $echo "$modename: you must specify an output file" 1>&2
1522       $echo "$help" 1>&2
1523       exit 1
1524       ;;
1525
1526     *.a | *.lib)
1527       if test -n "$link_against_libtool_libs"; then
1528         $echo "$modename: error: cannot link libtool libraries into archives" 1>&2
1529         exit 1
1530       fi
1531
1532       if test -n "$deplibs"; then
1533         $echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2
1534       fi
1535
1536       if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
1537         $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2
1538       fi
1539
1540       if test -n "$rpath"; then
1541         $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2
1542       fi
1543
1544       if test -n "$xrpath"; then
1545         $echo "$modename: warning: \`-R' is ignored for archives" 1>&2
1546       fi
1547
1548       if test -n "$vinfo"; then
1549         $echo "$modename: warning: \`-version-info' is ignored for archives" 1>&2
1550       fi
1551
1552       if test -n "$release"; then
1553         $echo "$modename: warning: \`-release' is ignored for archives" 1>&2
1554       fi
1555
1556       if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
1557         $echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2
1558       fi
1559
1560       # Now set the variables for building old libraries.
1561       build_libtool_libs=no
1562       oldlibs="$output"
1563       ;;
1564
1565     *.la)
1566       # Make sure we only generate libraries of the form `libNAME.la'.
1567       case "$outputname" in
1568       lib*)
1569         name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
1570         eval libname=\"$libname_spec\"
1571         ;;
1572       *)
1573         if test "$module" = no; then
1574           $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2
1575           $echo "$help" 1>&2
1576           exit 1
1577         fi
1578         if test "$need_lib_prefix" != no; then
1579           # Add the "lib" prefix for modules if required
1580           name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
1581           eval libname=\"$libname_spec\"
1582         else
1583           libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
1584         fi
1585         ;;
1586       esac
1587
1588       output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
1589       if test "X$output_objdir" = "X$output"; then
1590         output_objdir="$objdir"
1591       else
1592         output_objdir="$output_objdir/$objdir"
1593       fi
1594
1595       if test -n "$objs"; then
1596         $echo "$modename: cannot build libtool library \`$output' from non-libtool objects:$objs" 2>&1
1597         exit 1
1598       fi
1599
1600       # How the heck are we supposed to write a wrapper for a shared library?
1601       if test -n "$link_against_libtool_libs"; then
1602          $echo "$modename: error: cannot link shared libraries into libtool libraries" 1>&2
1603          exit 1
1604       fi
1605
1606       if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
1607         $echo "$modename: warning: \`-dlopen' is ignored for libtool libraries" 1>&2
1608       fi
1609
1610       set dummy $rpath
1611       if test $# -gt 2; then
1612         $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2
1613       fi
1614       install_libdir="$2"
1615
1616       oldlibs=
1617       if test -z "$rpath"; then
1618         if test "$build_libtool_libs" = yes; then
1619           # Building a libtool convenience library.
1620           libext=al
1621           oldlibs="$output_objdir/$libname.$libext $oldlibs"
1622           build_libtool_libs=convenience
1623           build_old_libs=yes
1624         fi
1625         dependency_libs="$deplibs"
1626
1627         if test -n "$vinfo"; then
1628           $echo "$modename: warning: \`-version-info' is ignored for convenience libraries" 1>&2
1629         fi
1630
1631         if test -n "$release"; then
1632           $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2
1633         fi
1634       else
1635
1636         # Parse the version information argument.
1637         IFS="${IFS=     }"; save_ifs="$IFS"; IFS=':'
1638         set dummy $vinfo 0 0 0
1639         IFS="$save_ifs"
1640
1641         if test -n "$8"; then
1642           $echo "$modename: too many parameters to \`-version-info'" 1>&2
1643           $echo "$help" 1>&2
1644           exit 1
1645         fi
1646
1647         current="$2"
1648         revision="$3"
1649         age="$4"
1650
1651         # Check that each of the things are valid numbers.
1652         case "$current" in
1653         0 | [1-9] | [1-9][0-9]*) ;;
1654         *)
1655           $echo "$modename: CURRENT \`$current' is not a nonnegative integer" 1>&2
1656           $echo "$modename: \`$vinfo' is not valid version information" 1>&2
1657           exit 1
1658           ;;
1659         esac
1660
1661         case "$revision" in
1662         0 | [1-9] | [1-9][0-9]*) ;;
1663         *)
1664           $echo "$modename: REVISION \`$revision' is not a nonnegative integer" 1>&2
1665           $echo "$modename: \`$vinfo' is not valid version information" 1>&2
1666           exit 1
1667           ;;
1668         esac
1669
1670         case "$age" in
1671         0 | [1-9] | [1-9][0-9]*) ;;
1672         *)
1673           $echo "$modename: AGE \`$age' is not a nonnegative integer" 1>&2
1674           $echo "$modename: \`$vinfo' is not valid version information" 1>&2
1675           exit 1
1676           ;;
1677         esac
1678
1679         if test $age -gt $current; then
1680           $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2
1681           $echo "$modename: \`$vinfo' is not valid version information" 1>&2
1682           exit 1
1683         fi
1684
1685         # Calculate the version variables.
1686         major=
1687         versuffix=
1688         verstring=
1689         case "$version_type" in
1690         none) ;;
1691
1692         irix)
1693           major=`expr $current - $age + 1`
1694           versuffix="$major.$revision"
1695           verstring="sgi$major.$revision"
1696
1697           # Add in all the interfaces that we are compatible with.
1698           loop=$revision
1699           while test $loop != 0; do
1700             iface=`expr $revision - $loop`
1701             loop=`expr $loop - 1`
1702             verstring="sgi$major.$iface:$verstring"
1703           done
1704           ;;
1705
1706         linux)
1707           major=.`expr $current - $age`
1708           versuffix="$major.$age.$revision"
1709           ;;
1710
1711         osf)
1712           major=`expr $current - $age`
1713           versuffix=".$current.$age.$revision"
1714           verstring="$current.$age.$revision"
1715
1716           # Add in all the interfaces that we are compatible with.
1717           loop=$age
1718           while test $loop != 0; do
1719             iface=`expr $current - $loop`
1720             loop=`expr $loop - 1`
1721             verstring="$verstring:${iface}.0"
1722           done
1723
1724           # Make executables depend on our current version.
1725           verstring="$verstring:${current}.0"
1726           ;;
1727
1728         sunos)
1729           major=".$current"
1730           versuffix=".$current.$revision"
1731           ;;
1732
1733         freebsd-aout)
1734           major=".$current"
1735           versuffix=".$current.$revision";
1736           ;;
1737
1738         freebsd-elf)
1739           major=".$current"
1740           versuffix=".$current";
1741           ;;
1742
1743         windows)
1744           # Like Linux, but with '-' rather than '.', since we only
1745           # want one extension on Windows 95.
1746           major=`expr $current - $age`
1747           versuffix="-$major-$age-$revision"
1748           ;;
1749
1750         *)
1751           $echo "$modename: unknown library version type \`$version_type'" 1>&2
1752           echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
1753           exit 1
1754           ;;
1755         esac
1756
1757         # Clear the version info if we defaulted, and they specified a release.
1758         if test -z "$vinfo" && test -n "$release"; then
1759           major=
1760           verstring="0.0"
1761           if test "$need_version" = no; then
1762             versuffix=
1763           else
1764             versuffix=".0.0"
1765           fi
1766         fi
1767
1768         # Remove version info from name if versioning should be avoided
1769         if test "$avoid_version" = yes && test "$need_version" = no; then
1770           major=
1771           versuffix=
1772           verstring=""
1773         fi
1774         
1775         # Check to see if the archive will have undefined symbols.
1776         if test "$allow_undefined" = yes; then
1777           if test "$allow_undefined_flag" = unsupported; then
1778             $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2
1779             build_libtool_libs=no
1780             build_old_libs=yes
1781           fi
1782         else
1783           # Don't allow undefined symbols.
1784           allow_undefined_flag="$no_undefined_flag"
1785         fi
1786
1787         dependency_libs="$deplibs"
1788         case "$host" in
1789         *-*-cygwin* | *-*-mingw* | *-*-os2* | *-*-beos*)
1790           # these systems don't actually have a c library (as such)!
1791           ;;
1792         *)
1793           # Add libc to deplibs on all other systems.
1794           deplibs="$deplibs -lc"
1795           ;;
1796         esac
1797       fi
1798
1799       # Create the output directory, or remove our outputs if we need to.
1800       if test -d $output_objdir; then
1801         $show "${rm}r $output_objdir/$outputname $output_objdir/$libname.* $output_objdir/${libname}${release}.*"
1802         $run ${rm}r $output_objdir/$outputname $output_objdir/$libname.* $output_objdir/${libname}${release}.*
1803       else
1804         $show "$mkdir $output_objdir"
1805         $run $mkdir $output_objdir
1806         status=$?
1807         if test $status -ne 0 && test ! -d $output_objdir; then
1808           exit $status
1809         fi
1810       fi
1811
1812       # Now set the variables for building old libraries.
1813       if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
1814         oldlibs="$oldlibs $output_objdir/$libname.$libext"
1815
1816         # Transform .lo files to .o files.
1817         oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
1818       fi
1819
1820       if test "$build_libtool_libs" = yes; then
1821         # Transform deplibs into only deplibs that can be linked in shared.
1822         name_save=$name
1823         libname_save=$libname
1824         release_save=$release
1825         versuffix_save=$versuffix
1826         major_save=$major
1827         # I'm not sure if I'm treating the release correctly.  I think
1828         # release should show up in the -l (ie -lgmp5) so we don't want to
1829         # add it in twice.  Is that correct?
1830         release=""
1831         versuffix=""
1832         major=""
1833         newdeplibs=
1834         droppeddeps=no
1835         case "$deplibs_check_method" in
1836         pass_all)
1837           # Don't check for shared/static.  Everything works.
1838           # This might be a little naive.  We might want to check
1839           # whether the library exists or not.  But this is on
1840           # osf3 & osf4 and I'm not really sure... Just
1841           # implementing what was already the behaviour.
1842           newdeplibs=$deplibs
1843           ;;
1844         test_compile)
1845           # This code stresses the "libraries are programs" paradigm to its
1846           # limits. Maybe even breaks it.  We compile a program, linking it
1847           # against the deplibs as a proxy for the library.  Then we can check
1848           # whether they linked in statically or dynamically with ldd.
1849           $rm conftest.c
1850           cat > conftest.c <<EOF
1851           int main() { return 0; }
1852 EOF
1853           $rm conftest
1854           $C_compiler -o conftest conftest.c $deplibs
1855           if test $? -eq 0 ; then
1856             ldd_output=`ldd conftest`
1857             for i in $deplibs; do
1858               name="`expr $i : '-l\(.*\)'`"
1859               # If $name is empty we are operating on a -L argument.
1860               if test "$name" != "" ; then
1861                 libname=`eval \\$echo \"$libname_spec\"`
1862                 deplib_matches=`eval \\$echo \"$library_names_spec\"`
1863                 set dummy $deplib_matches
1864                 deplib_match=$2
1865                 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
1866                   newdeplibs="$newdeplibs $i"
1867                 else
1868                   droppeddeps=yes
1869                   echo
1870                   echo "*** Warning: This library needs some functionality provided by $i."
1871                   echo "*** I have the capability to make that library automatically link in when"
1872                   echo "*** you link to this library.  But I can only do this if you have a"
1873                   echo "*** shared version of the library, which you do not appear to have."
1874                 fi
1875               else
1876                 newdeplibs="$newdeplibs $i"
1877               fi
1878             done
1879           else
1880             # Error occured in the first compile.  Let's try to salvage the situation:
1881             # Compile a seperate program for each library.
1882             for i in $deplibs; do
1883               name="`expr $i : '-l\(.*\)'`"
1884              # If $name is empty we are operating on a -L argument.
1885               if test "$name" != "" ; then
1886                 $rm conftest
1887                 $C_compiler -o conftest conftest.c $i
1888                 # Did it work?
1889                 if test $? -eq 0 ; then
1890                   ldd_output=`ldd conftest`
1891                   libname=`eval \\$echo \"$libname_spec\"`
1892                   deplib_matches=`eval \\$echo \"$library_names_spec\"`
1893                   set dummy $deplib_matches
1894                   deplib_match=$2
1895                   if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
1896                     newdeplibs="$newdeplibs $i"
1897                   else
1898                     droppeddeps=yes
1899                     echo
1900                     echo "*** Warning: This library needs some functionality provided by $i."
1901                     echo "*** I have the capability to make that library automatically link in when"
1902                     echo "*** you link to this library.  But I can only do this if you have a"
1903                     echo "*** shared version of the library, which you do not appear to have."
1904                   fi
1905                 else
1906                   droppeddeps=yes
1907                   echo
1908                   echo "*** Warning!  Library $i is needed by this library but I was not able to"
1909                   echo "***  make it link in!  You will probably need to install it or some"
1910                   echo "*** library that it depends on before this library will be fully"
1911                   echo "*** functional.  Installing it before continuing would be even better."
1912                 fi
1913               else
1914                 newdeplibs="$newdeplibs $i"
1915               fi
1916             done
1917           fi
1918           ;;
1919         file_magic*)
1920           set dummy $deplibs_check_method
1921           file_magic_regex="`expr \"$deplibs_check_method\" : \"$2 \(.*\)\"`"
1922           for a_deplib in $deplibs; do
1923             name="`expr $a_deplib : '-l\(.*\)'`"
1924             # If $name is empty we are operating on a -L argument.
1925             if test "$name" != "" ; then
1926               libname=`eval \\$echo \"$libname_spec\"`
1927               for i in $lib_search_path; do
1928                     potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
1929                     for potent_lib in $potential_libs; do
1930                       # Follow soft links.
1931                       if ls -lLd "$potent_lib" 2>/dev/null \
1932                          | grep " -> " >/dev/null; then
1933                         continue 
1934                       fi
1935                       # The statement above tries to avoid entering an
1936                       # endless loop below, in case of cyclic links.
1937                       # We might still enter an endless loop, since a link
1938                       # loop can be closed while we follow links,
1939                       # but so what?
1940                       potlib="$potent_lib"
1941                       while test -h "$potlib" 2>/dev/null; do
1942                         potliblink=`ls -ld $potlib | sed 's/.* -> //'`
1943                         case "$potliblink" in
1944                         [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
1945                         *) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
1946                         esac
1947                       done
1948                       if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \
1949                          | sed 10q \
1950                          | egrep "$file_magic_regex" > /dev/null; then
1951                         newdeplibs="$newdeplibs $a_deplib"
1952                         a_deplib=""
1953                         break 2
1954                       fi
1955                     done
1956               done
1957               if test -n "$a_deplib" ; then
1958                 droppeddeps=yes
1959                 echo
1960                 echo "*** Warning: This library needs some functionality provided by $a_deplib."
1961                 echo "*** I have the capability to make that library automatically link in when"
1962                 echo "*** you link to this library.  But I can only do this if you have a"
1963                 echo "*** shared version of the library, which you do not appear to have."
1964               fi
1965             else
1966               # Add a -L argument.
1967               newdeplibs="$newdeplibs $a_deplib"
1968             fi
1969           done # Gone through all deplibs.
1970           ;;
1971         none | unknown | *)
1972           newdeplibs=""
1973           if $echo "X $deplibs" | $Xsed -e 's/ -lc$//' \
1974                -e 's/ -[LR][^ ]*//g' -e 's/[    ]//g' |
1975              grep . >/dev/null; then
1976             echo
1977             if test "X$deplibs_check_method" = "Xnone"; then
1978               echo "*** Warning: inter-library dependencies are not supported in this platform."
1979             else
1980               echo "*** Warning: inter-library dependencies are not known to be supported."
1981             fi
1982             echo "*** All declared inter-library dependencies are being dropped."
1983             droppeddeps=yes
1984           fi
1985           ;;
1986         esac
1987         versuffix=$versuffix_save
1988         major=$major_save
1989         release=$release_save
1990         libname=$libname_save
1991         name=$name_save
1992
1993         if test "$droppeddeps" = yes; then
1994           if test "$module" = yes; then
1995             echo
1996             echo "*** Warning: libtool could not satisfy all declared inter-library"
1997             echo "*** dependencies of module $libname.  Therefore, libtool will create"
1998             echo "*** a static module, that should work as long as the dlopening"
1999             echo "*** application is linked with the -dlopen flag."
2000             if test -z "$global_symbol_pipe"; then
2001               echo
2002               echo "*** However, this would only work if libtool was able to extract symbol"
2003               echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
2004               echo "*** not find such a program.  So, this module is probably useless."
2005               echo "*** \`nm' from GNU binutils and a full rebuild may help."
2006             fi
2007             if test "$build_old_libs" = no; then
2008               oldlibs="$output_objdir/$libname.$libext"
2009               build_libtool_libs=module
2010               build_old_libs=yes
2011             else
2012               build_libtool_libs=no
2013             fi
2014           else
2015             echo "*** The inter-library dependencies that have been dropped here will be"
2016             echo "*** automatically added whenever a program is linked with this library"
2017             echo "*** or is declared to -dlopen it."
2018           fi
2019         fi
2020         # Done checking deplibs!
2021         deplibs=$newdeplibs
2022       fi
2023
2024       # All the library-specific variables (install_libdir is set above).
2025       library_names=
2026       old_library=
2027       dlname=
2028       
2029       # Test again, we may have decided not to build it any more
2030       if test "$build_libtool_libs" = yes; then
2031         # Get the real and link names of the library.
2032         eval library_names=\"$library_names_spec\"
2033         set dummy $library_names
2034         realname="$2"
2035         shift; shift
2036
2037         if test -n "$soname_spec"; then
2038           eval soname=\"$soname_spec\"
2039         else
2040           soname="$realname"
2041         fi
2042
2043         lib="$output_objdir/$realname"
2044         for link
2045         do
2046           linknames="$linknames $link"
2047         done
2048
2049         # Ensure that we have .o objects for linkers which dislike .lo
2050         # (e.g. aix) incase we are running --disable-static
2051         for obj in $libobjs; do
2052           oldobj=`$echo "X$obj" | $Xsed -e "$lo2o"`
2053           if test ! -f $oldobj; then
2054             $show "${LN_S} $obj $oldobj"
2055             $run ${LN_S} $obj $oldobj || exit $?
2056           fi
2057         done
2058
2059         # Use standard objects if they are pic
2060         test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
2061
2062         # Prepare the list of exported symbols
2063         if test -z "$export_symbols"; then
2064           if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
2065             $show "generating symbol list for \`$libname.la'"
2066             export_symbols="$output_objdir/$libname.exp"
2067             $run $rm $export_symbols
2068             eval cmds=\"$export_symbols_cmds\"
2069             IFS="${IFS=         }"; save_ifs="$IFS"; IFS='~'
2070             for cmd in $cmds; do
2071               IFS="$save_ifs"
2072               $show "$cmd"
2073               $run eval "$cmd" || exit $?
2074             done
2075             IFS="$save_ifs"
2076             if test -n "$export_symbols_regex"; then
2077               $show "egrep -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\""
2078               $run eval 'egrep -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
2079               $show "$mv \"${export_symbols}T\" \"$export_symbols\""
2080               $run eval '$mv "${export_symbols}T" "$export_symbols"'
2081             fi
2082           fi
2083         fi
2084
2085         if test -n "$export_symbols" && test -n "$include_expsyms"; then
2086           $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"'
2087         fi
2088
2089         if test -n "$convenience"; then
2090           if test -n "$whole_archive_flag_spec"; then
2091             eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
2092           else
2093             gentop="$output_objdir/${outputname}x"
2094             $show "${rm}r $gentop"
2095             $run ${rm}r "$gentop"
2096             $show "mkdir $gentop"
2097             $run mkdir "$gentop"
2098             status=$?
2099             if test $status -ne 0 && test ! -d "$gentop"; then
2100               exit $status
2101             fi
2102             generated="$generated $gentop"
2103
2104             for xlib in $convenience; do
2105               # Extract the objects.
2106               case "$xlib" in
2107               [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
2108               *) xabs=`pwd`"/$xlib" ;;
2109               esac
2110               xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
2111               xdir="$gentop/$xlib"
2112
2113               $show "${rm}r $xdir"
2114               $run ${rm}r "$xdir"
2115               $show "mkdir $xdir"
2116               $run mkdir "$xdir"
2117               status=$?
2118               if test $status -ne 0 && test ! -d "$xdir"; then
2119                 exit $status
2120               fi
2121               $show "(cd $xdir && $AR x $xabs)"
2122               $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
2123
2124               libobjs="$libobjs "`find $xdir -name \*.o -print -o -name \*.lo -print | $NL2SP`
2125             done
2126           fi
2127         fi
2128
2129         if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
2130           eval flag=\"$thread_safe_flag_spec\"
2131           linkopts="$linkopts $flag"
2132         fi
2133
2134         # Do each of the archive commands.
2135         if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
2136           eval cmds=\"$archive_expsym_cmds\"
2137         else
2138           eval cmds=\"$archive_cmds\"
2139         fi
2140         IFS="${IFS=     }"; save_ifs="$IFS"; IFS='~'
2141         for cmd in $cmds; do
2142           IFS="$save_ifs"
2143           $show "$cmd"
2144           $run eval "$cmd" || exit $?
2145         done
2146         IFS="$save_ifs"
2147
2148         # Create links to the real library.
2149         for linkname in $linknames; do
2150           if test "$realname" != "$linkname"; then
2151             $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)"
2152             $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $?
2153           fi
2154         done
2155
2156         # If -module or -export-dynamic was specified, set the dlname.
2157         if test "$module" = yes || test "$export_dynamic" = yes; then
2158           # On all known operating systems, these are identical.
2159           dlname="$soname"
2160         fi
2161       fi
2162       ;;
2163
2164     *.lo | *.o | *.obj)
2165       if test -n "$link_against_libtool_libs"; then
2166         $echo "$modename: error: cannot link libtool libraries into objects" 1>&2
2167         exit 1
2168       fi
2169
2170       if test -n "$deplibs"; then
2171         $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2
2172       fi
2173
2174       if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
2175         $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2
2176       fi
2177
2178       if test -n "$rpath"; then
2179         $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2
2180       fi
2181
2182       if test -n "$xrpath"; then
2183         $echo "$modename: warning: \`-R' is ignored for objects" 1>&2
2184       fi
2185
2186       if test -n "$vinfo"; then
2187         $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2
2188       fi
2189
2190       if test -n "$release"; then
2191         $echo "$modename: warning: \`-release' is ignored for objects" 1>&2
2192       fi
2193
2194       case "$output" in
2195       *.lo)
2196         if test -n "$objs"; then
2197           $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2
2198           exit 1
2199         fi
2200         libobj="$output"
2201         obj=`$echo "X$output" | $Xsed -e "$lo2o"`
2202         ;;
2203       *)
2204         libobj=
2205         obj="$output"
2206         ;;
2207       esac
2208
2209       # Delete the old objects.
2210       $run $rm $obj $libobj
2211
2212       # Objects from convenience libraries.  This assumes
2213       # single-version convenience libraries.  Whenever we create
2214       # different ones for PIC/non-PIC, this we'll have to duplicate
2215       # the extraction.
2216       reload_conv_objs=
2217       gentop=
2218       # reload_cmds runs $LD directly, so let us get rid of
2219       # -Wl from whole_archive_flag_spec
2220       wl= 
2221
2222       if test -n "$convenience"; then
2223         if test -n "$whole_archive_flag_spec"; then
2224           eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\"
2225         else
2226           gentop="$output_objdir/${obj}x"
2227           $show "${rm}r $gentop"
2228           $run ${rm}r "$gentop"
2229           $show "mkdir $gentop"
2230           $run mkdir "$gentop"
2231           status=$?
2232           if test $status -ne 0 && test ! -d "$gentop"; then
2233             exit $status
2234           fi
2235           generated="$generated $gentop"
2236
2237           for xlib in $convenience; do
2238             # Extract the objects.
2239             case "$xlib" in
2240             [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
2241             *) xabs=`pwd`"/$xlib" ;;
2242             esac
2243             xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
2244             xdir="$gentop/$xlib"
2245
2246             $show "${rm}r $xdir"
2247             $run ${rm}r "$xdir"
2248             $show "mkdir $xdir"
2249             $run mkdir "$xdir"
2250             status=$?
2251             if test $status -ne 0 && test ! -d "$xdir"; then
2252               exit $status
2253             fi
2254             $show "(cd $xdir && $AR x $xabs)"
2255             $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
2256
2257             reload_conv_objs="$reload_objs "`find $xdir -name \*.o -print -o -name \*.lo -print | $NL2SP`
2258           done
2259         fi
2260       fi
2261
2262       # Create the old-style object.
2263       reload_objs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs"
2264
2265       output="$obj"
2266       eval cmds=\"$reload_cmds\"
2267       IFS="${IFS=       }"; save_ifs="$IFS"; IFS='~'
2268       for cmd in $cmds; do
2269         IFS="$save_ifs"
2270         $show "$cmd"
2271         $run eval "$cmd" || exit $?
2272       done
2273       IFS="$save_ifs"
2274
2275       # Exit if we aren't doing a library object file.
2276       if test -z "$libobj"; then
2277         if test -n "$gentop"; then
2278           $show "${rm}r $gentop"
2279           $run ${rm}r $gentop
2280         fi
2281
2282         exit 0
2283       fi
2284
2285       if test "$build_libtool_libs" != yes; then
2286         if test -n "$gentop"; then
2287           $show "${rm}r $gentop"
2288           $run ${rm}r $gentop
2289         fi
2290
2291         # Create an invalid libtool object if no PIC, so that we don't
2292         # accidentally link it into a program.
2293         $show "echo timestamp > $libobj"
2294         $run eval "echo timestamp > $libobj" || exit $?
2295         exit 0
2296       fi
2297
2298       if test -n "$pic_flag"; then
2299         # Only do commands if we really have different PIC objects.
2300         reload_objs="$libobjs $reload_conv_objs"
2301         output="$libobj"
2302         eval cmds=\"$reload_cmds\"
2303         IFS="${IFS=     }"; save_ifs="$IFS"; IFS='~'
2304         for cmd in $cmds; do
2305           IFS="$save_ifs"
2306           $show "$cmd"
2307           $run eval "$cmd" || exit $?
2308         done
2309         IFS="$save_ifs"
2310       else
2311         # Just create a symlink.
2312         $show $rm $libobj
2313         $run $rm $libobj
2314         $show "$LN_S $obj $libobj"
2315         $run $LN_S $obj $libobj || exit $?
2316       fi
2317
2318       if test -n "$gentop"; then
2319         $show "${rm}r $gentop"
2320         $run ${rm}r $gentop
2321       fi
2322
2323       exit 0
2324       ;;
2325
2326     # Anything else should be a program.
2327     *)
2328       if test -n "$vinfo"; then
2329         $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2
2330       fi
2331
2332       if test -n "$release"; then
2333         $echo "$modename: warning: \`-release' is ignored for programs" 1>&2
2334       fi
2335
2336       if test "$preload" = yes; then
2337         if test "$dlopen" = unknown && test "$dlopen_self" = unknown &&
2338            test "$dlopen_self_static" = unknown; then
2339           $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support."
2340         fi 
2341       fi
2342     
2343       if test -n "$rpath$xrpath"; then
2344         # If the user specified any rpath flags, then add them.
2345         for libdir in $rpath $xrpath; do
2346           # This is the magic to use -rpath.
2347           case "$compile_rpath " in
2348           *" $libdir "*) ;;
2349           *) compile_rpath="$compile_rpath $libdir" ;;
2350           esac
2351           case "$finalize_rpath " in
2352           *" $libdir "*) ;;
2353           *) finalize_rpath="$finalize_rpath $libdir" ;;
2354           esac
2355         done
2356       fi
2357
2358       # Now hardcode the library paths
2359       rpath=
2360       hardcode_libdirs=
2361       for libdir in $compile_rpath $finalize_rpath; do
2362         if test -n "$hardcode_libdir_flag_spec"; then
2363           if test -n "$hardcode_libdir_separator"; then
2364             if test -z "$hardcode_libdirs"; then
2365               hardcode_libdirs="$libdir"
2366             else
2367               # Just accumulate the unique libdirs.
2368               case "$hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator" in
2369               *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
2370                 ;;
2371               *)
2372                 hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
2373                 ;;
2374               esac
2375             fi
2376           else
2377             eval flag=\"$hardcode_libdir_flag_spec\"
2378             rpath="$rpath $flag"
2379           fi
2380         elif test -n "$runpath_var"; then
2381           case "$perm_rpath " in
2382           *" $libdir "*) ;;
2383           *) perm_rpath="$perm_rpath $libdir" ;;
2384           esac
2385         fi
2386       done
2387       # Substitute the hardcoded libdirs into the rpath.
2388       if test -n "$hardcode_libdir_separator" &&
2389          test -n "$hardcode_libdirs"; then
2390         libdir="$hardcode_libdirs"
2391         eval rpath=\" $hardcode_libdir_flag_spec\"
2392       fi
2393       compile_rpath="$rpath"
2394
2395       rpath=
2396       hardcode_libdirs=
2397       for libdir in $finalize_rpath; do
2398         if test -n "$hardcode_libdir_flag_spec"; then
2399           if test -n "$hardcode_libdir_separator"; then
2400             if test -z "$hardcode_libdirs"; then
2401               hardcode_libdirs="$libdir"
2402             else
2403               # Just accumulate the unique libdirs.
2404               case "$hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator" in
2405               *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
2406                 ;;
2407               *)
2408                 hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
2409                 ;;
2410               esac
2411             fi
2412           else
2413             eval flag=\"$hardcode_libdir_flag_spec\"
2414             rpath="$rpath $flag"
2415           fi
2416         elif test -n "$runpath_var"; then
2417           case "$finalize_perm_rpath " in
2418           *" $libdir "*) ;;
2419           *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
2420           esac
2421         fi
2422       done
2423       # Substitute the hardcoded libdirs into the rpath.
2424       if test -n "$hardcode_libdir_separator" &&
2425          test -n "$hardcode_libdirs"; then
2426         libdir="$hardcode_libdirs"
2427         eval rpath=\" $hardcode_libdir_flag_spec\"
2428       fi
2429       finalize_rpath="$rpath"
2430
2431       output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
2432       if test "X$output_objdir" = "X$output"; then
2433         output_objdir="$objdir"
2434       else
2435         output_objdir="$output_objdir/$objdir"
2436       fi
2437
2438       # Create the binary in the object directory, then wrap it.
2439       if test ! -d $output_objdir; then
2440         $show "$mkdir $output_objdir"
2441         $run $mkdir $output_objdir
2442         status=$?
2443         if test $status -ne 0 && test ! -d $output_objdir; then
2444           exit $status
2445         fi
2446       fi
2447
2448       if test -n "$libobjs" && test "$build_old_libs" = yes; then
2449         # Transform all the library objects into standard objects.
2450         compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
2451         finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
2452       fi
2453
2454       dlsyms=
2455       if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
2456         if test -n "$NM" && test -n "$global_symbol_pipe"; then
2457           dlsyms="${outputname}S.c"
2458         else
2459           $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2
2460         fi
2461       fi
2462
2463       if test -n "$dlsyms"; then
2464         case "$dlsyms" in
2465         "") ;;
2466         *.c)
2467           # Discover the nlist of each of the dlfiles.
2468           nlist="$output_objdir/${outputname}.nm"
2469
2470           $show "$rm $nlist ${nlist}S ${nlist}T"
2471           $run $rm "$nlist" "${nlist}S" "${nlist}T"
2472
2473           # Parse the name list into a source file.
2474           $show "creating $output_objdir/$dlsyms"
2475
2476           test -z "$run" && $echo > "$output_objdir/$dlsyms" "\
2477 /* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */
2478 /* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */
2479
2480 #ifdef __cplusplus
2481 extern \"C\" {
2482 #endif
2483
2484 /* Prevent the only kind of declaration conflicts we can make. */
2485 #define lt_preloaded_symbols some_other_symbol
2486
2487 /* External symbol declarations for the compiler. */\
2488 "
2489
2490           if test "$dlself" = yes; then
2491             $show "generating symbol list for \`$output'"
2492
2493             test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist"
2494
2495             # Add our own program objects to the symbol list.
2496             progfiles=`$echo "X$objs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
2497             for arg in $progfiles; do
2498               $show "extracting global C symbols from \`$arg'"
2499               $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
2500             done
2501
2502             if test -n "$exclude_expsyms"; then
2503               $run eval 'egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
2504               $run eval '$mv "$nlist"T "$nlist"'
2505             fi
2506             
2507             if test -n "$export_symbols_regex"; then
2508               $run eval 'egrep -e "$export_symbols_regex" "$nlist" > "$nlist"T'
2509               $run eval '$mv "$nlist"T "$nlist"'
2510             fi
2511
2512             # Prepare the list of exported symbols
2513             if test -z "$export_symbols"; then
2514               export_symbols="$output_objdir/$output.exp"
2515               $run $rm $export_symbols
2516               $run eval "sed -n -e '/^: @PROGRAM@$/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
2517             else
2518               $run eval "sed -e 's/\([][.*^$]\)/\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$output.exp"'
2519               $run eval 'grep -f "$output_objdir/$output.exp" < "$nlist" > "$nlist"T'
2520               $run eval 'mv "$nlist"T "$nlist"'
2521             fi
2522           fi
2523
2524           for arg in $dlprefiles; do
2525             $show "extracting global C symbols from \`$arg'"
2526             name=`echo "$arg" | sed -e 's%^.*/%%'`
2527             $run eval 'echo ": $name " >> "$nlist"'
2528             $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
2529           done
2530
2531           if test -z "$run"; then
2532             # Make sure we have at least an empty file.
2533             test -f "$nlist" || : > "$nlist"
2534
2535             if test -n "$exclude_expsyms"; then
2536               egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
2537               $mv "$nlist"T "$nlist"
2538             fi
2539
2540             # Try sorting and uniquifying the output.
2541             if grep -v "^: " < "$nlist" | sort +2 | uniq > "$nlist"S; then
2542               :
2543             else
2544               grep -v "^: " < "$nlist" > "$nlist"S
2545             fi
2546
2547             if test -f "$nlist"S; then
2548               eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"'
2549             else
2550               echo '/* NONE */' >> "$output_objdir/$dlsyms"
2551             fi
2552
2553             $echo >> "$output_objdir/$dlsyms" "\
2554
2555 #undef lt_preloaded_symbols
2556
2557 #if defined (__STDC__) && __STDC__
2558 # define lt_ptr_t void *
2559 #else
2560 # define lt_ptr_t char *
2561 # define const
2562 #endif
2563
2564 /* The mapping between symbol names and symbols. */
2565 const struct {
2566   const char *name;
2567   lt_ptr_t address;
2568 }
2569 lt_preloaded_symbols[] =
2570 {\
2571 "
2572
2573             sed -n -e 's/^: \([^ ]*\) $/  {\"\1\", (lt_ptr_t) 0},/p' \
2574                 -e 's/^. \([^ ]*\) \([^ ]*\)$/  {"\2", (lt_ptr_t) \&\2},/p' \
2575                   < "$nlist" >> "$output_objdir/$dlsyms"
2576
2577             $echo >> "$output_objdir/$dlsyms" "\
2578   {0, (lt_ptr_t) 0}
2579 };
2580
2581 /* This works around a problem in FreeBSD linker */
2582 #ifdef FREEBSD_WORKAROUND
2583 static const void *lt_preloaded_setup() {
2584   return lt_preloaded_symbols;
2585 }
2586 #endif
2587
2588 #ifdef __cplusplus
2589 }
2590 #endif\
2591 "
2592           fi
2593
2594           pic_flag_for_symtable=
2595           case "$host" in
2596           # compiling the symbol table file with pic_flag works around
2597           # a FreeBSD bug that causes programs to crash when -lm is
2598           # linked before any other PIC object.  But we must not use
2599           # pic_flag when linking with -static.  The problem exists in
2600           # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
2601           *-*-freebsd2*|*-*-freebsd3.0*)
2602             case "$compile_command " in
2603             *" -static "*) ;;
2604             *) pic_flag_for_symtable=" $pic_flag -DPIC -DFREEBSD_WORKAROUND";;
2605             esac
2606           esac
2607
2608           # Now compile the dynamic symbol file.
2609           $show "(cd $output_objdir && $C_compiler -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")"
2610           $run eval '(cd $output_objdir && $C_compiler -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $?
2611
2612           # Clean up the generated files.
2613           $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T"
2614           $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T"
2615
2616           # Transform the symbol file into the correct name.
2617           compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
2618           finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
2619           ;;
2620         *)
2621           $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2
2622           exit 1
2623           ;;
2624         esac
2625       else
2626         # We keep going just in case the user didn't refer to
2627         # lt_preloaded_symbols.  The linker will fail if global_symbol_pipe
2628         # really was required.
2629
2630         # Nullify the symbol file.
2631         compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
2632         finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
2633       fi
2634
2635       if test -z "$link_against_libtool_libs" || test "$build_libtool_libs" != yes; then
2636         # Replace the output file specification.
2637         compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
2638         link_command="$compile_command$compile_rpath"
2639
2640         # We have no uninstalled library dependencies, so finalize right now.
2641         $show "$link_command"
2642         $run eval "$link_command"
2643         status=$?
2644         
2645         # Delete the generated files.
2646         if test -n "$dlsyms"; then
2647           $show "$rm $output_objdir/${outputname}S.${objext}"
2648           $run $rm "$output_objdir/${outputname}S.${objext}"
2649         fi
2650
2651         exit $status
2652       fi
2653
2654       if test -n "$shlibpath_var"; then
2655         # We should set the shlibpath_var
2656         rpath=
2657         for dir in $temp_rpath; do
2658           case "$dir" in
2659           [\\/]* | [A-Za-z]:[\\/]*)
2660             # Absolute path.
2661             rpath="$rpath$dir:"
2662             ;;
2663           *)
2664             # Relative path: add a thisdir entry.
2665             rpath="$rpath\$thisdir/$dir:"
2666             ;;
2667           esac
2668         done
2669         temp_rpath="$rpath"
2670       fi
2671
2672       if test -n "$compile_shlibpath$finalize_shlibpath"; then
2673         compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
2674       fi
2675       if test -n "$finalize_shlibpath"; then
2676         finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
2677       fi
2678
2679       compile_var=
2680       finalize_var=
2681       if test -n "$runpath_var"; then
2682         if test -n "$perm_rpath"; then
2683           # We should set the runpath_var.
2684           rpath=
2685           for dir in $perm_rpath; do
2686             rpath="$rpath$dir:"
2687           done
2688           compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
2689         fi
2690         if test -n "$finalize_perm_rpath"; then
2691           # We should set the runpath_var.
2692           rpath=
2693           for dir in $finalize_perm_rpath; do
2694             rpath="$rpath$dir:"
2695           done
2696           finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
2697         fi
2698       fi
2699
2700       if test "$hardcode_action" = relink; then
2701         # Fast installation is not supported
2702         link_command="$compile_var$compile_command$compile_rpath"
2703         relink_command="$finalize_var$finalize_command$finalize_rpath"
2704         
2705         $echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2
2706         $echo "$modename: \`$output' will be relinked during installation" 1>&2
2707       else
2708         if test "$fast_install" != no; then
2709           link_command="$finalize_var$compile_command$finalize_rpath"
2710           if test "$fast_install" = yes; then
2711             relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'`
2712           else
2713             # fast_install is set to needless
2714             relink_command=
2715           fi
2716         else
2717           link_command="$compile_var$compile_command$compile_rpath"
2718           relink_command="$finalize_var$finalize_command$finalize_rpath"
2719         fi
2720       fi
2721
2722       # Replace the output file specification.
2723       link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
2724       
2725       # Delete the old output files.
2726       $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname
2727
2728       $show "$link_command"
2729       $run eval "$link_command" || exit $?
2730
2731       # Now create the wrapper script.
2732       $show "creating $output"
2733
2734       # Quote the relink command for shipping.
2735       if test -n "$relink_command"; then
2736         relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
2737       fi
2738
2739       # Quote $echo for shipping.
2740       if test "X$echo" = "X$SHELL $0 --fallback-echo"; then
2741         case "$0" in
2742         [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $0 --fallback-echo";;
2743         *) qecho="$SHELL `pwd`/$0 --fallback-echo";;
2744         esac
2745         qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"`
2746       else
2747         qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"`
2748       fi
2749
2750       # Only actually do things if our run command is non-null.
2751       if test -z "$run"; then
2752         # win32 will think the script is a binary if it has
2753         # a .exe suffix, so we strip it off here.
2754         case $output in
2755           *.exe) output=`echo $output|sed 's,.exe$,,'` ;;
2756         esac
2757         $rm $output
2758         trap "$rm $output; exit 1" 1 2 15
2759
2760         $echo > $output "\
2761 #! $SHELL
2762
2763 # $output - temporary wrapper script for $objdir/$outputname
2764 # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
2765 #
2766 # The $output program cannot be directly executed until all the libtool
2767 # libraries that it depends on are installed.
2768 #
2769 # This wrapper script should never be moved out of the build directory.
2770 # If it is, it will not operate correctly.
2771
2772 # Sed substitution that helps us do robust quoting.  It backslashifies
2773 # metacharacters that are still active within double-quoted strings.
2774 Xsed='sed -e 1s/^X//'
2775 sed_quote_subst='$sed_quote_subst'
2776
2777 # The HP-UX ksh and POSIX shell print the target directory to stdout
2778 # if CDPATH is set.
2779 if test \"\${CDPATH+set}\" = set; then CDPATH=; export CDPATH; fi
2780
2781 relink_command=\"$relink_command\"
2782
2783 # This environment variable determines our operation mode.
2784 if test \"\$libtool_install_magic\" = \"$magic\"; then
2785   # install mode needs the following variable:
2786   link_against_libtool_libs='$link_against_libtool_libs'
2787 else
2788   # When we are sourced in execute mode, \$file and \$echo are already set.
2789   if test \"\$libtool_execute_magic\" != \"$magic\"; then
2790     echo=\"$qecho\"
2791     file=\"\$0\"
2792     # Make sure echo works.
2793     if test \"X\$1\" = X--no-reexec; then
2794       # Discard the --no-reexec flag, and continue.
2795       shift
2796     elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then
2797       # Yippee, \$echo works!
2798       :
2799     else
2800       # Restart under the correct shell, and then maybe \$echo will work.
2801       exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
2802     fi
2803   fi\
2804 "
2805         $echo >> $output "\
2806
2807   # Find the directory that this script lives in.
2808   thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
2809   test \"x\$thisdir\" = \"x\$file\" && thisdir=.
2810
2811   # Follow symbolic links until we get to the real thisdir.
2812   file=\`ls -ld \"\$file\" | sed -n 's/.*-> //p'\`
2813   while test -n \"\$file\"; do
2814     destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
2815
2816     # If there was a directory component, then change thisdir.
2817     if test \"x\$destdir\" != \"x\$file\"; then
2818       case \"\$destdir\" in
2819       [\\/]* | [A-Za-z]:[\\/]*) thisdir=\"\$destdir\" ;;
2820       *) thisdir=\"\$thisdir/\$destdir\" ;;
2821       esac
2822     fi
2823
2824     file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
2825     file=\`ls -ld \"\$thisdir/\$file\" | sed -n 's/.*-> //p'\`
2826   done
2827
2828   # Try to get the absolute directory name.
2829   absdir=\`cd \"\$thisdir\" && pwd\`
2830   test -n \"\$absdir\" && thisdir=\"\$absdir\"
2831 "
2832
2833         if test "$fast_install" = yes; then
2834           echo >> $output "\
2835   program=lt-'$outputname'
2836   progdir=\"\$thisdir/$objdir\"
2837   
2838   if test ! -f \"\$progdir/\$program\" || \\
2839      { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | sed 1q\`; \\
2840        test \"X\$file\" != \"X\$progdir/\$program\"; }; then
2841
2842     file=\"\$\$-\$program\"
2843
2844     if test ! -d \"\$progdir\"; then
2845       $mkdir \"\$progdir\"
2846     else
2847       $rm \"\$progdir/\$file\"
2848     fi"
2849
2850           echo >> $output "\
2851
2852     # relink executable if necessary
2853     if test -n \"\$relink_command\"; then
2854       if (cd \"\$thisdir\" && eval \$relink_command); then :
2855       else
2856         $rm \"\$progdir/\$file\"
2857         exit 1
2858       fi
2859     fi
2860
2861     $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
2862     { $rm \"\$progdir/\$program\";
2863       $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; }
2864     $rm \"\$progdir/\$file\"
2865   fi"
2866         else
2867           echo >> $output "\
2868   program='$outputname$exeext'
2869   progdir=\"\$thisdir/$objdir\"
2870 "
2871         fi
2872
2873         echo >> $output "\
2874
2875   if test -f \"\$progdir/\$program\"; then"
2876
2877         # Export our shlibpath_var if we have one.
2878         if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
2879           $echo >> $output "\
2880     # Add our own library path to $shlibpath_var
2881     $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
2882
2883     # Some systems cannot cope with colon-terminated $shlibpath_var
2884     # The second colon is a workaround for a bug in BeOS R4 sed
2885     $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
2886
2887     export $shlibpath_var
2888 "
2889         fi
2890
2891         # fixup the dll searchpath if we need to.
2892         if test -n "$dllsearchpath"; then
2893           $echo >> $output "\
2894     # Add the dll search path components to the executable PATH
2895     PATH=$dllsearchpath:\$PATH
2896 "
2897         fi
2898
2899         $echo >> $output "\
2900     if test \"\$libtool_execute_magic\" != \"$magic\"; then
2901       # Run the actual program with our arguments.
2902 "
2903         case $host in
2904         *-*-cygwin* | *-*-mingw | *-*-os2*)
2905           # win32 systems need to use the prog path for dll
2906           # lookup to work
2907           $echo >> $output "\
2908       exec \$progdir\\\\\$program \${1+\"\$@\"}
2909 "
2910           ;;
2911         *)
2912           $echo >> $output "\
2913       # Export the path to the program.
2914       PATH=\"\$progdir:\$PATH\"
2915       export PATH
2916
2917       exec \$program \${1+\"\$@\"}
2918 "
2919           ;;
2920         esac
2921         $echo >> $output "\
2922       \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\"
2923       exit 1
2924     fi
2925   else
2926     # The program doesn't exist.
2927     \$echo \"\$0: error: \$progdir/\$program does not exist\" 1>&2
2928     \$echo \"This script is just a wrapper for \$program.\" 1>&2
2929     echo \"See the $PACKAGE documentation for more information.\" 1>&2
2930     exit 1
2931   fi
2932 fi\
2933 "
2934         chmod +x $output
2935       fi
2936       exit 0
2937       ;;
2938     esac
2939
2940     # See if we need to build an old-fashioned archive.
2941     for oldlib in $oldlibs; do
2942
2943       if test "$build_libtool_libs" = convenience; then
2944         oldobjs="$libobjs_save"
2945         addlibs="$convenience"
2946         build_libtool_libs=no
2947       else
2948         if test "$build_libtool_libs" = module; then
2949           oldobjs="$libobjs_save"
2950           build_libtool_libs=no
2951         else
2952           oldobjs="$objs "`$echo "X$libobjs_save" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`
2953         fi
2954         addlibs="$old_convenience"
2955       fi
2956
2957       if test -n "$addlibs"; then
2958         gentop="$output_objdir/${outputname}x"
2959         $show "${rm}r $gentop"
2960         $run ${rm}r "$gentop"
2961         $show "mkdir $gentop"
2962         $run mkdir "$gentop"
2963         status=$?
2964         if test $status -ne 0 && test ! -d "$gentop"; then
2965           exit $status
2966         fi
2967         generated="$generated $gentop"
2968           
2969         # Add in members from convenience archives.
2970         for xlib in $addlibs; do
2971           # Extract the objects.
2972           case "$xlib" in
2973           [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
2974           *) xabs=`pwd`"/$xlib" ;;
2975           esac
2976           xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
2977           xdir="$gentop/$xlib"
2978
2979           $show "${rm}r $xdir"
2980           $run ${rm}r "$xdir"
2981           $show "mkdir $xdir"
2982           $run mkdir "$xdir"
2983           status=$?
2984           if test $status -ne 0 && test ! -d "$xdir"; then
2985             exit $status
2986           fi
2987           $show "(cd $xdir && $AR x $xabs)"
2988           $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
2989
2990           oldobjs="$oldobjs "`find $xdir -name \*.${objext} -print -o -name \*.lo -print | $NL2SP`
2991         done
2992       fi
2993
2994       # Do each command in the archive commands.
2995       if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
2996         eval cmds=\"$old_archive_from_new_cmds\"
2997       else
2998         # Ensure that we have .o objects in place incase we decided
2999         # not to build a shared library, and have fallen back to building
3000         # static libs even though --disable-static was passed!
3001         for oldobj in $oldobjs; do
3002           if test ! -f $oldobj; then
3003             obj=`$echo "X$oldobj" | $Xsed -e "$o2lo"`
3004             $show "${LN_S} $obj $oldobj"
3005             $run ${LN_S} $obj $oldobj || exit $?
3006           fi
3007         done
3008
3009         eval cmds=\"$old_archive_cmds\"
3010       fi
3011       IFS="${IFS=       }"; save_ifs="$IFS"; IFS='~'
3012       for cmd in $cmds; do
3013         IFS="$save_ifs"
3014         $show "$cmd"
3015         $run eval "$cmd" || exit $?
3016       done
3017       IFS="$save_ifs"
3018     done
3019
3020     if test -n "$generated"; then
3021       $show "${rm}r$generated"
3022       $run ${rm}r$generated
3023     fi
3024
3025     # Now create the libtool archive.
3026     case "$output" in
3027     *.la)
3028       old_library=
3029       test "$build_old_libs" = yes && old_library="$libname.$libext"
3030       $show "creating $output"
3031
3032       if test -n "$xrpath"; then
3033         temp_xrpath=
3034         for libdir in $xrpath; do
3035           temp_xrpath="$temp_xrpath -R$libdir"
3036         done
3037         dependency_libs="$temp_xrpath $dependency_libs"
3038       fi
3039
3040       # Only create the output if not a dry run.
3041       if test -z "$run"; then
3042         for installed in no yes; do
3043           if test "$installed" = yes; then
3044             if test -z "$install_libdir"; then
3045               break
3046             fi
3047             output="$output_objdir/$outputname"i
3048           fi
3049           $rm $output
3050           $echo > $output "\
3051 # $outputname - a libtool library file
3052 # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
3053 #
3054 # Please DO NOT delete this file!
3055 # It is necessary for linking the library.
3056
3057 # The name that we can dlopen(3).
3058 dlname='$dlname'
3059
3060 # Names of this library.
3061 library_names='$library_names'
3062
3063 # The name of the static archive.
3064 old_library='$old_library'
3065
3066 # Libraries that this one depends upon.
3067 dependency_libs='$dependency_libs'
3068
3069 # Version information for $libname.
3070 current=$current
3071 age=$age
3072 revision=$revision
3073
3074 # Is this an already installed library?
3075 installed=$installed
3076
3077 # Directory that this library needs to be installed in:
3078 libdir='$install_libdir'\
3079 "
3080         done
3081       fi
3082
3083       # Do a symbolic link so that the libtool archive can be found in
3084       # LD_LIBRARY_PATH before the program is installed.
3085       $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)"
3086       $run eval "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)" || exit $?
3087       ;;
3088     esac
3089     exit 0
3090     ;;
3091
3092   # libtool install mode
3093   install)
3094     modename="$modename: install"
3095
3096     # There may be an optional sh(1) argument at the beginning of
3097     # install_prog (especially on Windows NT).
3098     if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh; then
3099       # Aesthetically quote it.
3100       arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"`
3101       case "$arg" in
3102       *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \     ]*|*]*)
3103         arg="\"$arg\""
3104         ;;
3105       esac
3106       install_prog="$arg "
3107       arg="$1"
3108       shift
3109     else
3110       install_prog=
3111       arg="$nonopt"
3112     fi
3113
3114     # The real first argument should be the name of the installation program.
3115     # Aesthetically quote it.
3116     arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
3117     case "$arg" in
3118     *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \       ]*|*]*)
3119       arg="\"$arg\""
3120       ;;
3121     esac
3122     install_prog="$install_prog$arg"
3123
3124     # We need to accept at least all the BSD install flags.
3125     dest=
3126     files=
3127     opts=
3128     prev=
3129     install_type=
3130     isdir=no
3131     stripme=
3132     for arg
3133     do
3134       if test -n "$dest"; then
3135         files="$files $dest"
3136         dest="$arg"
3137         continue
3138       fi
3139
3140       case "$arg" in
3141       -d) isdir=yes ;;
3142       -f) prev="-f" ;;
3143       -g) prev="-g" ;;
3144       -m) prev="-m" ;;
3145       -o) prev="-o" ;;
3146       -s)
3147         stripme=" -s"
3148         continue
3149         ;;
3150       -*) ;;
3151
3152       *)
3153         # If the previous option needed an argument, then skip it.
3154         if test -n "$prev"; then
3155           prev=
3156         else
3157           dest="$arg"
3158           continue
3159         fi
3160         ;;
3161       esac
3162
3163       # Aesthetically quote the argument.
3164       arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
3165       case "$arg" in
3166       *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \     ]*|*]*)
3167         arg="\"$arg\""
3168         ;;
3169       esac
3170       install_prog="$install_prog $arg"
3171     done
3172
3173     if test -z "$install_prog"; then
3174       $echo "$modename: you must specify an install program" 1>&2
3175       $echo "$help" 1>&2
3176       exit 1
3177     fi
3178
3179     if test -n "$prev"; then
3180       $echo "$modename: the \`$prev' option requires an argument" 1>&2
3181       $echo "$help" 1>&2
3182       exit 1
3183     fi
3184
3185     if test -z "$files"; then
3186       if test -z "$dest"; then
3187         $echo "$modename: no file or destination specified" 1>&2
3188       else
3189         $echo "$modename: you must specify a destination" 1>&2
3190       fi
3191       $echo "$help" 1>&2
3192       exit 1
3193     fi
3194
3195     # Strip any trailing slash from the destination.
3196     dest=`$echo "X$dest" | $Xsed -e 's%/$%%'`
3197
3198     # Check to see that the destination is a directory.
3199     test -d "$dest" && isdir=yes
3200     if test "$isdir" = yes; then
3201       destdir="$dest"
3202       destname=
3203     else
3204       destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'`
3205       test "X$destdir" = "X$dest" && destdir=.
3206       destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'`
3207
3208       # Not a directory, so check to see that there is only one file specified.
3209       set dummy $files
3210       if test $# -gt 2; then
3211         $echo "$modename: \`$dest' is not a directory" 1>&2
3212         $echo "$help" 1>&2
3213         exit 1
3214       fi
3215     fi
3216     case "$destdir" in
3217     [\\/]* | [A-Za-z]:[\\/]*) ;;
3218     *)
3219       for file in $files; do
3220         case "$file" in
3221         *.lo) ;;
3222         *)
3223           $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2
3224           $echo "$help" 1>&2
3225           exit 1
3226           ;;
3227         esac
3228       done
3229       ;;
3230     esac
3231
3232     # This variable tells wrapper scripts just to set variables rather
3233     # than running their programs.
3234     libtool_install_magic="$magic"
3235
3236     staticlibs=
3237     future_libdirs=
3238     current_libdirs=
3239     for file in $files; do
3240
3241       # Do each installation.
3242       case "$file" in
3243       *.a | *.lib)
3244         # Do the static libraries later.
3245         staticlibs="$staticlibs $file"
3246         ;;
3247
3248       *.la)
3249         # Check to see that this really is a libtool archive.
3250         if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
3251         else
3252           $echo "$modename: \`$file' is not a valid libtool archive" 1>&2
3253           $echo "$help" 1>&2
3254           exit 1
3255         fi
3256
3257         library_names=
3258         old_library=
3259         # If there is no directory component, then add one.
3260         case "$file" in
3261         */* | *\\*) . $file ;;
3262         *) . ./$file ;;
3263         esac
3264
3265         # Add the libdir to current_libdirs if it is the destination.
3266         if test "X$destdir" = "X$libdir"; then
3267           case "$current_libdirs " in
3268           *" $libdir "*) ;;
3269           *) current_libdirs="$current_libdirs $libdir" ;;
3270           esac
3271         else
3272           # Note the libdir as a future libdir.
3273           case "$future_libdirs " in
3274           *" $libdir "*) ;;
3275           *) future_libdirs="$future_libdirs $libdir" ;;
3276           esac
3277         fi
3278
3279         dir="`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/"
3280         test "X$dir" = "X$file/" && dir=
3281         dir="$dir$objdir"
3282
3283         # See the names of the shared library.
3284         set dummy $library_names
3285         if test -n "$2"; then
3286           realname="$2"
3287           shift
3288           shift
3289
3290           # Install the shared library and build the symlinks.
3291           $show "$install_prog $dir/$realname $destdir/$realname"
3292           $run eval "$install_prog $dir/$realname $destdir/$realname" || exit $?
3293
3294           if test $# -gt 0; then
3295             # Delete the old symlinks, and create new ones.
3296             for linkname
3297             do
3298               if test "$linkname" != "$realname"; then
3299                 $show "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
3300                 $run eval "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
3301               fi
3302             done
3303           fi
3304
3305           # Do each command in the postinstall commands.
3306           lib="$destdir/$realname"
3307           eval cmds=\"$postinstall_cmds\"
3308           IFS="${IFS=   }"; save_ifs="$IFS"; IFS='~'
3309           for cmd in $cmds; do
3310             IFS="$save_ifs"
3311             $show "$cmd"
3312             $run eval "$cmd" || exit $?
3313           done
3314           IFS="$save_ifs"
3315         fi
3316
3317         # Install the pseudo-library for information purposes.
3318         name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
3319         instname="$dir/$name"i
3320         $show "$install_prog $instname $destdir/$name"
3321         $run eval "$install_prog $instname $destdir/$name" || exit $?
3322
3323         # Maybe install the static library, too.
3324         test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
3325         ;;
3326
3327       *.lo)
3328         # Install (i.e. copy) a libtool object.
3329
3330         # Figure out destination file name, if it wasn't already specified.
3331         if test -n "$destname"; then
3332           destfile="$destdir/$destname"
3333         else
3334           destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
3335           destfile="$destdir/$destfile"
3336         fi
3337
3338         # Deduce the name of the destination old-style object file.
3339         case "$destfile" in
3340         *.lo)
3341           staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"`
3342           ;;
3343         *.o | *.obj)
3344           staticdest="$destfile"
3345           destfile=
3346           ;;
3347         *)
3348           $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2
3349           $echo "$help" 1>&2
3350           exit 1
3351           ;;
3352         esac
3353
3354         # Install the libtool object if requested.
3355         if test -n "$destfile"; then
3356           $show "$install_prog $file $destfile"
3357           $run eval "$install_prog $file $destfile" || exit $?
3358         fi
3359
3360         # Install the old object if enabled.
3361         if test "$build_old_libs" = yes; then
3362           # Deduce the name of the old-style object file.
3363           staticobj=`$echo "X$file" | $Xsed -e "$lo2o"`
3364
3365           $show "$install_prog $staticobj $staticdest"
3366           $run eval "$install_prog \$staticobj \$staticdest" || exit $?
3367         fi
3368         exit 0
3369         ;;
3370
3371       *)
3372         # Figure out destination file name, if it wasn't already specified.
3373         if test -n "$destname"; then
3374           destfile="$destdir/$destname"
3375         else
3376           destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
3377           destfile="$destdir/$destfile"
3378         fi
3379
3380         # Do a test to see if this is really a libtool program.
3381         if (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
3382           link_against_libtool_libs=
3383           relink_command=
3384
3385           # If there is no directory component, then add one.
3386           case "$file" in
3387           */* | *\\*) . $file ;;
3388           *) . ./$file ;;
3389           esac
3390
3391           # Check the variables that should have been set.
3392           if test -z "$link_against_libtool_libs"; then
3393             $echo "$modename: invalid libtool wrapper script \`$file'" 1>&2
3394             exit 1
3395           fi
3396
3397           finalize=yes
3398           for lib in $link_against_libtool_libs; do
3399             # Check to see that each library is installed.
3400             libdir=
3401             if test -f "$lib"; then
3402               # If there is no directory component, then add one.
3403               case "$lib" in
3404               */* | *\\*) . $lib ;;
3405               *) . ./$lib ;;
3406               esac
3407             fi
3408             libfile="$libdir/`$echo "X$lib" | $Xsed -e 's%^.*/%%g'`"
3409             if test -n "$libdir" && test ! -f "$libfile"; then
3410               $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2
3411               finalize=no
3412             fi
3413           done
3414
3415           outputname=
3416           if test "$fast_install" = no && test -n "$relink_command"; then
3417             if test "$finalize" = yes && test -z "$run"; then
3418               tmpdir="/tmp"
3419               test -n "$TMPDIR" && tmpdir="$TMPDIR"
3420               tmpdir="$tmpdir/libtool-$$"
3421               if $mkdir -p "$tmpdir" && chmod 700 "$tmpdir"; then :
3422               else
3423                 $echo "$modename: error: cannot create temporary directory \`$tmpdir'" 1>&2
3424                 continue
3425               fi
3426               outputname="$tmpdir/$file"
3427               # Replace the output file specification.
3428               relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`
3429
3430               $show "$relink_command"
3431               if $run eval "$relink_command"; then :
3432               else
3433                 $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
3434                 ${rm}r "$tmpdir"
3435                 continue
3436               fi
3437               file="$outputname"
3438             else
3439               $echo "$modename: warning: cannot relink \`$file'" 1>&2
3440             fi
3441           else
3442             # Install the binary that we compiled earlier.
3443             file=`$echo "X$file" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
3444           fi
3445         fi
3446
3447         $show "$install_prog$stripme $file $destfile"
3448         $run eval "$install_prog\$stripme \$file \$destfile" || exit $?
3449         test -n "$outputname" && ${rm}r "$tmpdir"
3450         ;;
3451       esac
3452     done
3453
3454     for file in $staticlibs; do
3455       name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
3456
3457       # Set up the ranlib parameters.
3458       oldlib="$destdir/$name"
3459
3460       $show "$install_prog $file $oldlib"
3461       $run eval "$install_prog \$file \$oldlib" || exit $?
3462
3463       # Do each command in the postinstall commands.
3464       eval cmds=\"$old_postinstall_cmds\"
3465       IFS="${IFS=       }"; save_ifs="$IFS"; IFS='~'
3466       for cmd in $cmds; do
3467         IFS="$save_ifs"
3468         $show "$cmd"
3469         $run eval "$cmd" || exit $?
3470       done
3471       IFS="$save_ifs"
3472     done
3473
3474     if test -n "$future_libdirs"; then
3475       $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2
3476     fi
3477
3478     if test -n "$current_libdirs"; then
3479       # Maybe just do a dry run.
3480       test -n "$run" && current_libdirs=" -n$current_libdirs"
3481       exec $SHELL $0 --finish$current_libdirs
3482       exit 1
3483     fi
3484
3485     exit 0
3486     ;;
3487
3488   # libtool finish mode
3489   finish)
3490     modename="$modename: finish"
3491     libdirs="$nonopt"
3492     admincmds=
3493
3494     if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
3495       for dir
3496       do
3497         libdirs="$libdirs $dir"
3498       done
3499
3500       for libdir in $libdirs; do
3501         if test -n "$finish_cmds"; then
3502           # Do each command in the finish commands.
3503           eval cmds=\"$finish_cmds\"
3504           IFS="${IFS=   }"; save_ifs="$IFS"; IFS='~'
3505           for cmd in $cmds; do
3506             IFS="$save_ifs"
3507             $show "$cmd"
3508             $run eval "$cmd" || admincmds="$admincmds
3509        $cmd"
3510           done
3511           IFS="$save_ifs"
3512         fi
3513         if test -n "$finish_eval"; then
3514           # Do the single finish_eval.
3515           eval cmds=\"$finish_eval\"
3516           $run eval "$cmds" || admincmds="$admincmds
3517        $cmds"
3518         fi
3519       done
3520     fi
3521
3522     # Exit here if they wanted silent mode.
3523     test "$show" = : && exit 0
3524
3525     echo "----------------------------------------------------------------------"
3526     echo "Libraries have been installed in:"
3527     for libdir in $libdirs; do
3528       echo "   $libdir"
3529     done
3530     echo
3531     echo "If you ever happen to want to link against installed libraries"
3532     echo "in a given directory, LIBDIR, you must either use libtool, and"
3533     echo "specify the full pathname of the library, or use \`-LLIBDIR'"
3534     echo "flag during linking and do at least one of the following:"
3535     if test -n "$shlibpath_var"; then
3536       echo "   - add LIBDIR to the \`$shlibpath_var' environment variable"
3537       echo "     during execution"
3538     fi
3539     if test -n "$runpath_var"; then
3540       echo "   - add LIBDIR to the \`$runpath_var' environment variable"
3541       echo "     during linking"
3542     fi
3543     if test -n "$hardcode_libdir_flag_spec"; then
3544       libdir=LIBDIR
3545       eval flag=\"$hardcode_libdir_flag_spec\"
3546
3547       echo "   - use the \`$flag' linker flag"
3548     fi
3549     if test -n "$admincmds"; then
3550       echo "   - have your system administrator run these commands:$admincmds"
3551     fi
3552     if test -f /etc/ld.so.conf; then
3553       echo "   - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
3554     fi
3555     echo
3556     echo "See any operating system documentation about shared libraries for"
3557     echo "more information, such as the ld(1) and ld.so(8) manual pages."
3558     echo "----------------------------------------------------------------------"
3559     exit 0
3560     ;;
3561
3562   # libtool execute mode
3563   execute)
3564     modename="$modename: execute"
3565
3566     # The first argument is the command name.
3567     cmd="$nonopt"
3568     if test -z "$cmd"; then
3569       $echo "$modename: you must specify a COMMAND" 1>&2
3570       $echo "$help"
3571       exit 1
3572     fi
3573
3574     # Handle -dlopen flags immediately.
3575     for file in $execute_dlfiles; do
3576       if test ! -f "$file"; then
3577         $echo "$modename: \`$file' is not a file" 1>&2
3578         $echo "$help" 1>&2
3579         exit 1
3580       fi
3581
3582       dir=
3583       case "$file" in
3584       *.la)
3585         # Check to see that this really is a libtool archive.
3586         if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
3587         else
3588           $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
3589           $echo "$help" 1>&2
3590           exit 1
3591         fi
3592
3593         # Read the libtool library.
3594         dlname=
3595         library_names=
3596
3597         # If there is no directory component, then add one.
3598         case "$file" in
3599         */* | *\\*) . $file ;;
3600         *) . ./$file ;;
3601         esac
3602
3603         # Skip this library if it cannot be dlopened.
3604         if test -z "$dlname"; then
3605           # Warn if it was a shared library.
3606           test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'"
3607           continue
3608         fi
3609
3610         dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
3611         test "X$dir" = "X$file" && dir=.
3612
3613         if test -f "$dir/$objdir/$dlname"; then
3614           dir="$dir/$objdir"
3615         else
3616           $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2
3617           exit 1
3618         fi
3619         ;;
3620
3621       *.lo)
3622         # Just add the directory containing the .lo file.
3623         dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
3624         test "X$dir" = "X$file" && dir=.
3625         ;;
3626
3627       *)
3628         $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2
3629         continue
3630         ;;
3631       esac
3632
3633       # Get the absolute pathname.
3634       absdir=`cd "$dir" && pwd`
3635       test -n "$absdir" && dir="$absdir"
3636
3637       # Now add the directory to shlibpath_var.
3638       if eval "test -z \"\$$shlibpath_var\""; then
3639         eval "$shlibpath_var=\"\$dir\""
3640       else
3641         eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
3642       fi
3643     done
3644
3645     # This variable tells wrapper scripts just to set shlibpath_var
3646     # rather than running their programs.
3647     libtool_execute_magic="$magic"
3648
3649     # Check if any of the arguments is a wrapper script.
3650     args=
3651     for file
3652     do
3653       case "$file" in
3654       -*) ;;
3655       *)
3656         # Do a test to see if this is really a libtool program.
3657         if (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
3658           # If there is no directory component, then add one.
3659           case "$file" in
3660           */* | *\\*) . $file ;;
3661           *) . ./$file ;;
3662           esac
3663
3664           # Transform arg to wrapped name.
3665           file="$progdir/$program"
3666         fi
3667         ;;
3668       esac
3669       # Quote arguments (to preserve shell metacharacters).
3670       file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"`
3671       args="$args \"$file\""
3672     done
3673
3674     if test -z "$run"; then
3675       # Export the shlibpath_var.
3676       eval "export $shlibpath_var"
3677
3678       # Restore saved enviroment variables
3679       if test "${save_LC_ALL+set}" = set; then
3680         LC_ALL="$save_LC_ALL"; export LC_ALL
3681       fi
3682       if test "${save_LANG+set}" = set; then
3683         LANG="$save_LANG"; export LANG
3684       fi
3685
3686       # Now actually exec the command.
3687       eval "exec \$cmd$args"
3688
3689       $echo "$modename: cannot exec \$cmd$args"
3690       exit 1
3691     else
3692       # Display what would be done.
3693       eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\""
3694       $echo "export $shlibpath_var"
3695       $echo "$cmd$args"
3696       exit 0
3697     fi
3698     ;;
3699
3700   # libtool uninstall mode
3701   uninstall)
3702     modename="$modename: uninstall"
3703     rm="$nonopt"
3704     files=
3705
3706     for arg
3707     do
3708       case "$arg" in
3709       -*) rm="$rm $arg" ;;
3710       *) files="$files $arg" ;;
3711       esac
3712     done
3713
3714     if test -z "$rm"; then
3715       $echo "$modename: you must specify an RM program" 1>&2
3716       $echo "$help" 1>&2
3717       exit 1
3718     fi
3719
3720     for file in $files; do
3721       dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
3722       test "X$dir" = "X$file" && dir=.
3723       name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
3724
3725       rmfiles="$file"
3726
3727       case "$name" in
3728       *.la)
3729         # Possibly a libtool archive, so verify it.
3730         if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
3731           . $dir/$name
3732
3733           # Delete the libtool libraries and symlinks.
3734           for n in $library_names; do
3735             rmfiles="$rmfiles $dir/$n"
3736           done
3737           test -n "$old_library" && rmfiles="$rmfiles $dir/$old_library"
3738
3739           $show "$rm $rmfiles"
3740           $run $rm $rmfiles
3741
3742           if test -n "$library_names"; then
3743             # Do each command in the postuninstall commands.
3744             eval cmds=\"$postuninstall_cmds\"
3745             IFS="${IFS=         }"; save_ifs="$IFS"; IFS='~'
3746             for cmd in $cmds; do
3747               IFS="$save_ifs"
3748               $show "$cmd"
3749               $run eval "$cmd"
3750             done
3751             IFS="$save_ifs"
3752           fi
3753
3754           if test -n "$old_library"; then
3755             # Do each command in the old_postuninstall commands.
3756             eval cmds=\"$old_postuninstall_cmds\"
3757             IFS="${IFS=         }"; save_ifs="$IFS"; IFS='~'
3758             for cmd in $cmds; do
3759               IFS="$save_ifs"
3760               $show "$cmd"
3761               $run eval "$cmd"
3762             done
3763             IFS="$save_ifs"
3764           fi
3765
3766           # FIXME: should reinstall the best remaining shared library.
3767         fi
3768         ;;
3769
3770       *.lo)
3771         if test "$build_old_libs" = yes; then
3772           oldobj=`$echo "X$name" | $Xsed -e "$lo2o"`
3773           rmfiles="$rmfiles $dir/$oldobj"
3774         fi
3775         $show "$rm $rmfiles"
3776         $run $rm $rmfiles
3777         ;;
3778
3779       *)
3780         $show "$rm $rmfiles"
3781         $run $rm $rmfiles
3782         ;;
3783       esac
3784     done
3785     exit 0
3786     ;;
3787
3788   "")
3789     $echo "$modename: you must specify a MODE" 1>&2
3790     $echo "$generic_help" 1>&2
3791     exit 1
3792     ;;
3793   esac
3794
3795   $echo "$modename: invalid operation mode \`$mode'" 1>&2
3796   $echo "$generic_help" 1>&2
3797   exit 1
3798 fi # test -z "$show_help"
3799
3800 # We need to display help for each of the modes.
3801 case "$mode" in
3802 "") $echo \
3803 "Usage: $modename [OPTION]... [MODE-ARG]...
3804
3805 Provide generalized library-building support services.
3806
3807     --config          show all configuration variables
3808     --debug           enable verbose shell tracing
3809 -n, --dry-run         display commands without modifying any files
3810     --features        display basic configuration information and exit
3811     --finish          same as \`--mode=finish'
3812     --help            display this help message and exit
3813     --mode=MODE       use operation mode MODE [default=inferred from MODE-ARGS]
3814     --quiet           same as \`--silent'
3815     --silent          don't print informational messages
3816     --version         print version information
3817
3818 MODE must be one of the following:
3819
3820       compile         compile a source file into a libtool object
3821       execute         automatically set library path, then run a program
3822       finish          complete the installation of libtool libraries
3823       install         install libraries or executables
3824       link            create a library or an executable
3825       uninstall       remove libraries from an installed directory
3826
3827 MODE-ARGS vary depending on the MODE.  Try \`$modename --help --mode=MODE' for
3828 a more detailed description of MODE."
3829   exit 0
3830   ;;
3831
3832 compile)
3833   $echo \
3834 "Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
3835
3836 Compile a source file into a libtool library object.
3837
3838 This mode accepts the following additional options:
3839
3840   -o OUTPUT-FILE    set the output file name to OUTPUT-FILE
3841   -static           always build a \`.o' file suitable for static linking
3842
3843 COMPILE-COMMAND is a command to be used in creating a \`standard' object file
3844 from the given SOURCEFILE.
3845
3846 The output file name is determined by removing the directory component from
3847 SOURCEFILE, then substituting the C source code suffix \`.c' with the
3848 library object suffix, \`.lo'."
3849   ;;
3850
3851 execute)
3852   $echo \
3853 "Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]...
3854
3855 Automatically set library path, then run a program.
3856
3857 This mode accepts the following additional options:
3858
3859   -dlopen FILE      add the directory containing FILE to the library path
3860
3861 This mode sets the library path environment variable according to \`-dlopen'
3862 flags.
3863
3864 If any of the ARGS are libtool executable wrappers, then they are translated
3865 into their corresponding uninstalled binary, and any of their required library
3866 directories are added to the library path.
3867
3868 Then, COMMAND is executed, with ARGS as arguments."
3869   ;;
3870
3871 finish)
3872   $echo \
3873 "Usage: $modename [OPTION]... --mode=finish [LIBDIR]...
3874
3875 Complete the installation of libtool libraries.
3876
3877 Each LIBDIR is a directory that contains libtool libraries.
3878
3879 The commands that this mode executes may require superuser privileges.  Use
3880 the \`--dry-run' option if you just want to see what would be executed."
3881   ;;
3882
3883 install)
3884   $echo \
3885 "Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND...
3886
3887 Install executables or libraries.
3888
3889 INSTALL-COMMAND is the installation command.  The first component should be
3890 either the \`install' or \`cp' program.
3891
3892 The rest of the components are interpreted as arguments to that command (only
3893 BSD-compatible install options are recognized)."
3894   ;;
3895
3896 link)
3897   $echo \
3898 "Usage: $modename [OPTION]... --mode=link LINK-COMMAND...
3899
3900 Link object files or libraries together to form another library, or to
3901 create an executable program.
3902
3903 LINK-COMMAND is a command using the C compiler that you would use to create
3904 a program from several object files.
3905
3906 The following components of LINK-COMMAND are treated specially:
3907
3908   -all-static       do not do any dynamic linking at all
3909   -avoid-version    do not add a version suffix if possible
3910   -dlopen FILE      \`-dlpreopen' FILE if it cannot be dlopened at runtime
3911   -dlpreopen FILE   link in FILE and add its symbols to lt_preloaded_symbols
3912   -export-dynamic   allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
3913   -export-symbols SYMFILE
3914                     try to export only the symbols listed in SYMFILE
3915   -export-symbols-regex REGEX
3916                     try to export only the symbols matching REGEX
3917   -LLIBDIR          search LIBDIR for required installed libraries
3918   -lNAME            OUTPUT-FILE requires the installed library libNAME
3919   -module           build a library that can dlopened
3920   -no-undefined     declare that a library does not refer to external symbols
3921   -o OUTPUT-FILE    create OUTPUT-FILE from the specified objects
3922   -release RELEASE  specify package release information
3923   -rpath LIBDIR     the created library will eventually be installed in LIBDIR
3924   -R[ ]LIBDIR       add LIBDIR to the runtime path of programs and libraries
3925   -static           do not do any dynamic linking of libtool libraries
3926   -version-info CURRENT[:REVISION[:AGE]]
3927                     specify library version info [each variable defaults to 0]
3928
3929 All other options (arguments beginning with \`-') are ignored.
3930
3931 Every other argument is treated as a filename.  Files ending in \`.la' are
3932 treated as uninstalled libtool libraries, other files are standard or library
3933 object files.
3934
3935 If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
3936 only library objects (\`.lo' files) may be specified, and \`-rpath' is
3937 required, except when creating a convenience library.
3938
3939 If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
3940 using \`ar' and \`ranlib', or on Windows using \`lib'.
3941
3942 If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
3943 is created, otherwise an executable program is created."
3944   ;;
3945
3946 uninstall)
3947   $echo \
3948 "Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
3949
3950 Remove libraries from an installation directory.
3951
3952 RM is the name of the program to use to delete files associated with each FILE
3953 (typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
3954 to RM.
3955
3956 If FILE is a libtool library, all the files associated with it are deleted.
3957 Otherwise, only FILE itself is deleted using RM."
3958   ;;
3959
3960 *)
3961   $echo "$modename: invalid operation mode \`$mode'" 1>&2
3962   $echo "$help" 1>&2
3963   exit 1
3964   ;;
3965 esac
3966
3967 echo
3968 $echo "Try \`$modename --help' for more information about other modes."
3969
3970 exit 0
3971
3972 # Local Variables:
3973 # mode:shell-script
3974 # sh-indentation:2
3975 # End: