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