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

Annotation of /psiconv/trunk/ltmain.sh

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2 - (hide annotations)
Sun Oct 3 21:10:47 1999 UTC (24 years, 6 months ago) by frodo
File MIME type: application/x-sh
File size: 109395 byte(s)
Imported sources

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

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