/[pcre]/code/trunk/ltmain.sh
ViewVC logotype

Contents of /code/trunk/ltmain.sh

Parent Directory Parent Directory | Revision Log Revision Log


Revision 41 - (hide annotations) (download) (as text)
Sat Feb 24 21:39:17 2007 UTC (6 years, 3 months ago) by nigel
File MIME type: application/x-sh
File size: 110534 byte(s)
Load pcre-2.08a into code/trunk.

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

webmaster@exim.org
ViewVC Help
Powered by ViewVC 1.1.12