/[public]/psiconv/trunk/ltmain.sh
ViewVC logotype

Annotation of /psiconv/trunk/ltmain.sh

Parent Directory Parent Directory | Revision Log Revision Log


Revision 96 - (hide annotations)
Sun Jan 21 00:06:56 2001 UTC (23 years, 2 months ago) by frodo
File MIME type: application/x-sh
File size: 110767 byte(s)
(Frodo) Update to libtool 1.4

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

frodo@frodo.looijaard.name
ViewVC Help
Powered by ViewVC 1.1.26