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