Moved the "SmallExamples" out of the /projects directory and into a new
[oota-llvm.git] / examples / ModuleMaker / autoconf / 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, 2003
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 # The name of this program.
52 progname=`$echo "$0" | ${SED} 's%^.*/%%'`
53 modename="$progname"
54
55 # Constants.
56 PROGRAM=ltmain.sh
57 PACKAGE=libtool
58 VERSION=1.5
59 TIMESTAMP=" (1.1220 2003/04/05 19:32:58)"
60
61 default_mode=
62 help="Try \`$progname --help' for more information."
63 magic="%%%MAGIC variable%%%"
64 mkdir="mkdir"
65 mv="mv -f"
66 rm="rm -f"
67
68 # Sed substitution that helps us do robust quoting.  It backslashifies
69 # metacharacters that are still active within double-quoted strings.
70 Xsed="${SED}"' -e 1s/^X//'
71 sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g'
72 # test EBCDIC or ASCII
73 case `echo A|od -x` in
74  *[Cc]1*) # EBCDIC based system
75   SP2NL="tr '\100' '\n'"
76   NL2SP="tr '\r\n' '\100\100'"
77   ;;
78  *) # Assume ASCII based system
79   SP2NL="tr '\040' '\012'"
80   NL2SP="tr '\015\012' '\040\040'"
81   ;;
82 esac
83
84 # NLS nuisances.
85 # Only set LANG and LC_ALL to C if already set.
86 # These must not be set unconditionally because not all systems understand
87 # e.g. LANG=C (notably SCO).
88 # We save the old values to restore during execute mode.
89 if test "${LC_ALL+set}" = set; then
90   save_LC_ALL="$LC_ALL"; LC_ALL=C; export LC_ALL
91 fi
92 if test "${LANG+set}" = set; then
93   save_LANG="$LANG"; LANG=C; export LANG
94 fi
95
96 # Make sure IFS has a sensible default
97 : ${IFS="       "}
98
99 if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
100   $echo "$modename: not configured to build any kind of library" 1>&2
101   $echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
102   exit 1
103 fi
104
105 # Global variables.
106 mode=$default_mode
107 nonopt=
108 prev=
109 prevopt=
110 run=
111 show="$echo"
112 show_help=
113 execute_dlfiles=
114 lo2o="s/\\.lo\$/.${objext}/"
115 o2lo="s/\\.${objext}\$/.lo/"
116
117 #####################################
118 # Shell function definitions:
119 # This seems to be the best place for them
120
121 # Need a lot of goo to handle *both* DLLs and import libs
122 # Has to be a shell function in order to 'eat' the argument
123 # that is supplied when $file_magic_command is called.
124 win32_libid () {
125   win32_libid_type="unknown"
126   win32_fileres=`file -L $1 2>/dev/null`
127   case $win32_fileres in
128   *ar\ archive\ import\ library*) # definitely import
129     win32_libid_type="x86 archive import"
130     ;;
131   *ar\ archive*) # could be an import, or static
132     if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \
133       grep -E 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then
134       win32_nmres=`eval $NM -f posix -A $1 | \
135         sed -n -e '1,100{/ I /{x;/import/!{s/^/import/;h;p;};x;};}'`
136       if test "X$win32_nmres" = "Ximport" ; then
137         win32_libid_type="x86 archive import"
138       else
139         win32_libid_type="x86 archive static"
140       fi
141     fi
142     ;;
143   *DLL*) 
144     win32_libid_type="x86 DLL"
145     ;;
146   *executable*) # but shell scripts are "executable" too...
147     case $win32_fileres in
148     *MS\ Windows\ PE\ Intel*)
149       win32_libid_type="x86 DLL"
150       ;;
151     esac
152     ;;
153   esac
154   $echo $win32_libid_type
155 }
156
157 # End of Shell function definitions
158 #####################################
159
160 # Parse our command line options once, thoroughly.
161 while test "$#" -gt 0
162 do
163   arg="$1"
164   shift
165
166   case $arg in
167   -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;;
168   *) optarg= ;;
169   esac
170
171   # If the previous option needs an argument, assign it.
172   if test -n "$prev"; then
173     case $prev in
174     execute_dlfiles)
175       execute_dlfiles="$execute_dlfiles $arg"
176       ;;
177     tag)
178       tagname="$arg"
179
180       # Check whether tagname contains only valid characters
181       case $tagname in
182       *[!-_A-Za-z0-9,/]*)
183         $echo "$progname: invalid tag name: $tagname" 1>&2
184         exit 1
185         ;;
186       esac
187
188       case $tagname in
189       CC)
190         # Don't test for the "default" C tag, as we know, it's there, but
191         # not specially marked.
192         ;;
193       *)
194         if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$0" > /dev/null; then
195           taglist="$taglist $tagname"
196           # Evaluate the configuration.
197           eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $0`"
198         else
199           $echo "$progname: ignoring unknown tag $tagname" 1>&2
200         fi
201         ;;
202       esac
203       ;;
204     *)
205       eval "$prev=\$arg"
206       ;;
207     esac
208
209     prev=
210     prevopt=
211     continue
212   fi
213
214   # Have we seen a non-optional argument yet?
215   case $arg in
216   --help)
217     show_help=yes
218     ;;
219
220   --version)
221     $echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP"
222     $echo
223     $echo "Copyright (C) 2003  Free Software Foundation, Inc."
224     $echo "This is free software; see the source for copying conditions.  There is NO"
225     $echo "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
226     exit 0
227     ;;
228
229   --config)
230     ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $0
231     # Now print the configurations for the tags.
232     for tagname in $taglist; do
233       ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$0"
234     done
235     exit 0
236     ;;
237
238   --debug)
239     $echo "$progname: enabling shell trace mode"
240     set -x
241     ;;
242
243   --dry-run | -n)
244     run=:
245     ;;
246
247   --features)
248     $echo "host: $host"
249     if test "$build_libtool_libs" = yes; then
250       $echo "enable shared libraries"
251     else
252       $echo "disable shared libraries"
253     fi
254     if test "$build_old_libs" = yes; then
255       $echo "enable static libraries"
256     else
257       $echo "disable static libraries"
258     fi
259     exit 0
260     ;;
261
262   --finish) mode="finish" ;;
263
264   --mode) prevopt="--mode" prev=mode ;;
265   --mode=*) mode="$optarg" ;;
266
267   --preserve-dup-deps) duplicate_deps="yes" ;;
268
269   --quiet | --silent)
270     show=:
271     ;;
272
273   --tag) prevopt="--tag" prev=tag ;;
274   --tag=*)
275     set tag "$optarg" ${1+"$@"}
276     shift
277     prev=tag
278     ;;
279
280   -dlopen)
281     prevopt="-dlopen"
282     prev=execute_dlfiles
283     ;;
284
285   -*)
286     $echo "$modename: unrecognized option \`$arg'" 1>&2
287     $echo "$help" 1>&2
288     exit 1
289     ;;
290
291   *)
292     nonopt="$arg"
293     break
294     ;;
295   esac
296 done
297
298 if test -n "$prevopt"; then
299   $echo "$modename: option \`$prevopt' requires an argument" 1>&2
300   $echo "$help" 1>&2
301   exit 1
302 fi
303
304 # If this variable is set in any of the actions, the command in it
305 # will be execed at the end.  This prevents here-documents from being
306 # left over by shells.
307 exec_cmd=
308
309 if test -z "$show_help"; then
310
311   # Infer the operation mode.
312   if test -z "$mode"; then
313     $echo "*** Warning: inferring the mode of operation is deprecated." 1>&2
314     $echo "*** Future versions of Libtool will require -mode=MODE be specified." 1>&2
315     case $nonopt in
316     *cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*)
317       mode=link
318       for arg
319       do
320         case $arg in
321         -c)
322            mode=compile
323            break
324            ;;
325         esac
326       done
327       ;;
328     *db | *dbx | *strace | *truss)
329       mode=execute
330       ;;
331     *install*|cp|mv)
332       mode=install
333       ;;
334     *rm)
335       mode=uninstall
336       ;;
337     *)
338       # If we have no mode, but dlfiles were specified, then do execute mode.
339       test -n "$execute_dlfiles" && mode=execute
340
341       # Just use the default operation mode.
342       if test -z "$mode"; then
343         if test -n "$nonopt"; then
344           $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2
345         else
346           $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2
347         fi
348       fi
349       ;;
350     esac
351   fi
352
353   # Only execute mode is allowed to have -dlopen flags.
354   if test -n "$execute_dlfiles" && test "$mode" != execute; then
355     $echo "$modename: unrecognized option \`-dlopen'" 1>&2
356     $echo "$help" 1>&2
357     exit 1
358   fi
359
360   # Change the help message to a mode-specific one.
361   generic_help="$help"
362   help="Try \`$modename --help --mode=$mode' for more information."
363
364   # These modes are in order of execution frequency so that they run quickly.
365   case $mode in
366   # libtool compile mode
367   compile)
368     modename="$modename: compile"
369     # Get the compilation command and the source file.
370     base_compile=
371     srcfile="$nonopt"  #  always keep a non-empty value in "srcfile"
372     suppress_output=
373     arg_mode=normal
374     libobj=
375
376     for arg
377     do
378       case "$arg_mode" in
379       arg  )
380         # do not "continue".  Instead, add this to base_compile
381         lastarg="$arg"
382         arg_mode=normal
383         ;;
384
385       target )
386         libobj="$arg"
387         arg_mode=normal
388         continue
389         ;;
390
391       normal )
392         # Accept any command-line options.
393         case $arg in
394         -o)
395           if test -n "$libobj" ; then
396             $echo "$modename: you cannot specify \`-o' more than once" 1>&2
397             exit 1
398           fi
399           arg_mode=target
400           continue
401           ;;
402
403         -static)
404           build_old_libs=yes
405           continue
406           ;;
407
408         -prefer-pic)
409           pic_mode=yes
410           continue
411           ;;
412
413         -prefer-non-pic)
414           pic_mode=no
415           continue
416           ;;
417
418         -Xcompiler)
419           arg_mode=arg  #  the next one goes into the "base_compile" arg list
420           continue      #  The current "srcfile" will either be retained or
421           ;;            #  replaced later.  I would guess that would be a bug.
422
423         -Wc,*)
424           args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"`
425           lastarg=
426           save_ifs="$IFS"; IFS=','
427           for arg in $args; do
428             IFS="$save_ifs"
429
430             # Double-quote args containing other shell metacharacters.
431             # Many Bourne shells cannot handle close brackets correctly
432             # in scan sets, so we specify it separately.
433             case $arg in
434               *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \     ]*|*]*|"")
435               arg="\"$arg\""
436               ;;
437             esac
438             lastarg="$lastarg $arg"
439           done
440           IFS="$save_ifs"
441           lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"`
442
443           # Add the arguments to base_compile.
444           base_compile="$base_compile $lastarg"
445           continue
446           ;;
447
448         * )
449           # Accept the current argument as the source file.
450           # The previous "srcfile" becomes the current argument.
451           #
452           lastarg="$srcfile"
453           srcfile="$arg"
454           ;;
455         esac  #  case $arg
456         ;;
457       esac    #  case $arg_mode
458
459       # Aesthetically quote the previous argument.
460       lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"`
461
462       case $lastarg in
463       # Double-quote args containing other shell metacharacters.
464       # Many Bourne shells cannot handle close brackets correctly
465       # in scan sets, so we specify it separately.
466       *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \     ]*|*]*|"")
467         lastarg="\"$lastarg\""
468         ;;
469       esac
470
471       base_compile="$base_compile $lastarg"
472     done # for arg
473
474     case $arg_mode in
475     arg)
476       $echo "$modename: you must specify an argument for -Xcompile"
477       exit 1
478       ;;
479     target)
480       $echo "$modename: you must specify a target with \`-o'" 1>&2
481       exit 1
482       ;;
483     *)
484       # Get the name of the library object.
485       [ -z "$libobj" ] && libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'`
486       ;;
487     esac
488
489     # Recognize several different file suffixes.
490     # If the user specifies -o file.o, it is replaced with file.lo
491     xform='[cCFSifmso]'
492     case $libobj in
493     *.ada) xform=ada ;;
494     *.adb) xform=adb ;;
495     *.ads) xform=ads ;;
496     *.asm) xform=asm ;;
497     *.c++) xform=c++ ;;
498     *.cc) xform=cc ;;
499     *.ii) xform=ii ;;
500     *.class) xform=class ;;
501     *.cpp) xform=cpp ;;
502     *.cxx) xform=cxx ;;
503     *.f90) xform=f90 ;;
504     *.for) xform=for ;;
505     *.java) xform=java ;;
506     esac
507
508     libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
509
510     case $libobj in
511     *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;;
512     *)
513       $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2
514       exit 1
515       ;;
516     esac
517
518     # Infer tagged configuration to use if any are available and
519     # if one wasn't chosen via the "--tag" command line option.
520     # Only attempt this if the compiler in the base compile
521     # command doesn't match the default compiler.
522     if test -n "$available_tags" && test -z "$tagname"; then
523       case $base_compile in
524       # Blanks in the command may have been stripped by the calling shell,
525       # but not from the CC environment variable when configure was run.
526       " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "*) ;;
527       # Blanks at the start of $base_compile will cause this to fail
528       # if we don't check for them as well.
529       *)
530         for z in $available_tags; do
531           if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$0" > /dev/null; then
532             # Evaluate the configuration.
533             eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $0`"
534             case "$base_compile " in
535             "$CC "* | " $CC "* | "`$echo $CC` "* | " `$echo $CC` "*)
536               # The compiler in the base compile command matches
537               # the one in the tagged configuration.
538               # Assume this is the tagged configuration we want.
539               tagname=$z
540               break
541               ;;
542             esac
543           fi
544         done
545         # If $tagname still isn't set, then no tagged configuration
546         # was found and let the user know that the "--tag" command
547         # line option must be used.
548         if test -z "$tagname"; then
549           $echo "$modename: unable to infer tagged configuration"
550           $echo "$modename: specify a tag with \`--tag'" 1>&2
551           exit 1
552 #        else
553 #          $echo "$modename: using $tagname tagged configuration"
554         fi
555         ;;
556       esac
557     fi
558
559     objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
560     xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
561     if test "X$xdir" = "X$obj"; then
562       xdir=
563     else
564       xdir=$xdir/
565     fi
566     lobj=${xdir}$objdir/$objname
567
568     if test -z "$base_compile"; then
569       $echo "$modename: you must specify a compilation command" 1>&2
570       $echo "$help" 1>&2
571       exit 1
572     fi
573
574     # Delete any leftover library objects.
575     if test "$build_old_libs" = yes; then
576       removelist="$obj $lobj $libobj ${libobj}T"
577     else
578       removelist="$lobj $libobj ${libobj}T"
579     fi
580
581     $run $rm $removelist
582     trap "$run $rm $removelist; exit 1" 1 2 15
583
584     # On Cygwin there's no "real" PIC flag so we must build both object types
585     case $host_os in
586     cygwin* | mingw* | pw32* | os2*)
587       pic_mode=default
588       ;;
589     esac
590     if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then
591       # non-PIC code in shared libraries is not supported
592       pic_mode=default
593     fi
594
595     # Calculate the filename of the output object if compiler does
596     # not support -o with -c
597     if test "$compiler_c_o" = no; then
598       output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext}
599       lockfile="$output_obj.lock"
600       removelist="$removelist $output_obj $lockfile"
601       trap "$run $rm $removelist; exit 1" 1 2 15
602     else
603       output_obj=
604       need_locks=no
605       lockfile=
606     fi
607
608     # Lock this critical section if it is needed
609     # We use this script file to make the link, it avoids creating a new file
610     if test "$need_locks" = yes; then
611       until $run ln "$0" "$lockfile" 2>/dev/null; do
612         $show "Waiting for $lockfile to be removed"
613         sleep 2
614       done
615     elif test "$need_locks" = warn; then
616       if test -f "$lockfile"; then
617         $echo "\
618 *** ERROR, $lockfile exists and contains:
619 `cat $lockfile 2>/dev/null`
620
621 This indicates that another process is trying to use the same
622 temporary object file, and libtool could not work around it because
623 your compiler does not support \`-c' and \`-o' together.  If you
624 repeat this compilation, it may succeed, by chance, but you had better
625 avoid parallel builds (make -j) in this platform, or get a better
626 compiler."
627
628         $run $rm $removelist
629         exit 1
630       fi
631       $echo $srcfile > "$lockfile"
632     fi
633
634     if test -n "$fix_srcfile_path"; then
635       eval srcfile=\"$fix_srcfile_path\"
636     fi
637
638     $run $rm "$libobj" "${libobj}T"
639
640     # Create a libtool object file (analogous to a ".la" file),
641     # but don't create it if we're doing a dry run.
642     test -z "$run" && cat > ${libobj}T <<EOF
643 # $libobj - a libtool object file
644 # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
645 #
646 # Please DO NOT delete this file!
647 # It is necessary for linking the library.
648
649 # Name of the PIC object.
650 EOF
651
652     # Only build a PIC object if we are building libtool libraries.
653     if test "$build_libtool_libs" = yes; then
654       # Without this assignment, base_compile gets emptied.
655       fbsd_hideous_sh_bug=$base_compile
656
657       if test "$pic_mode" != no; then
658         command="$base_compile $srcfile $pic_flag"
659       else
660         # Don't build PIC code
661         command="$base_compile $srcfile"
662       fi
663
664       if test ! -d "${xdir}$objdir"; then
665         $show "$mkdir ${xdir}$objdir"
666         $run $mkdir ${xdir}$objdir
667         status=$?
668         if test "$status" -ne 0 && test ! -d "${xdir}$objdir"; then
669           exit $status
670         fi
671       fi
672
673       if test -z "$output_obj"; then
674         # Place PIC objects in $objdir
675         command="$command -o $lobj"
676       fi
677
678       $run $rm "$lobj" "$output_obj"
679
680       $show "$command"
681       if $run eval "$command"; then :
682       else
683         test -n "$output_obj" && $run $rm $removelist
684         exit 1
685       fi
686
687       if test "$need_locks" = warn &&
688          test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
689         $echo "\
690 *** ERROR, $lockfile contains:
691 `cat $lockfile 2>/dev/null`
692
693 but it should contain:
694 $srcfile
695
696 This indicates that another process is trying to use the same
697 temporary object file, and libtool could not work around it because
698 your compiler does not support \`-c' and \`-o' together.  If you
699 repeat this compilation, it may succeed, by chance, but you had better
700 avoid parallel builds (make -j) in this platform, or get a better
701 compiler."
702
703         $run $rm $removelist
704         exit 1
705       fi
706
707       # Just move the object if needed, then go on to compile the next one
708       if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then
709         $show "$mv $output_obj $lobj"
710         if $run $mv $output_obj $lobj; then :
711         else
712           error=$?
713           $run $rm $removelist
714           exit $error
715         fi
716       fi
717
718       # Append the name of the PIC object to the libtool object file.
719       test -z "$run" && cat >> ${libobj}T <<EOF
720 pic_object='$objdir/$objname'
721
722 EOF
723
724       # Allow error messages only from the first compilation.
725       suppress_output=' >/dev/null 2>&1'
726     else
727       # No PIC object so indicate it doesn't exist in the libtool
728       # object file.
729       test -z "$run" && cat >> ${libobj}T <<EOF
730 pic_object=none
731
732 EOF
733     fi
734
735     # Only build a position-dependent object if we build old libraries.
736     if test "$build_old_libs" = yes; then
737       if test "$pic_mode" != yes; then
738         # Don't build PIC code
739         command="$base_compile $srcfile"
740       else
741         command="$base_compile $srcfile $pic_flag"
742       fi
743       if test "$compiler_c_o" = yes; then
744         command="$command -o $obj"
745       fi
746
747       # Suppress compiler output if we already did a PIC compilation.
748       command="$command$suppress_output"
749       $run $rm "$obj" "$output_obj"
750       $show "$command"
751       if $run eval "$command"; then :
752       else
753         $run $rm $removelist
754         exit 1
755       fi
756
757       if test "$need_locks" = warn &&
758          test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
759         $echo "\
760 *** ERROR, $lockfile contains:
761 `cat $lockfile 2>/dev/null`
762
763 but it should contain:
764 $srcfile
765
766 This indicates that another process is trying to use the same
767 temporary object file, and libtool could not work around it because
768 your compiler does not support \`-c' and \`-o' together.  If you
769 repeat this compilation, it may succeed, by chance, but you had better
770 avoid parallel builds (make -j) in this platform, or get a better
771 compiler."
772
773         $run $rm $removelist
774         exit 1
775       fi
776
777       # Just move the object if needed
778       if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then
779         $show "$mv $output_obj $obj"
780         if $run $mv $output_obj $obj; then :
781         else
782           error=$?
783           $run $rm $removelist
784           exit $error
785         fi
786       fi
787
788       # Append the name of the non-PIC object the libtool object file.
789       # Only append if the libtool object file exists.
790       test -z "$run" && cat >> ${libobj}T <<EOF
791 # Name of the non-PIC object.
792 non_pic_object='$objname'
793
794 EOF
795     else
796       # Append the name of the non-PIC object the libtool object file.
797       # Only append if the libtool object file exists.
798       test -z "$run" && cat >> ${libobj}T <<EOF
799 # Name of the non-PIC object.
800 non_pic_object=none
801
802 EOF
803     fi
804
805     $run $mv "${libobj}T" "${libobj}"
806
807     # Unlock the critical section if it was locked
808     if test "$need_locks" != no; then
809       $run $rm "$lockfile"
810     fi
811
812     exit 0
813     ;;
814
815   # libtool link mode
816   link | relink)
817     modename="$modename: link"
818     case $host in
819     *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
820       # It is impossible to link a dll without this setting, and
821       # we shouldn't force the makefile maintainer to figure out
822       # which system we are compiling for in order to pass an extra
823       # flag for every libtool invocation.
824       # allow_undefined=no
825
826       # FIXME: Unfortunately, there are problems with the above when trying
827       # to make a dll which has undefined symbols, in which case not
828       # even a static library is built.  For now, we need to specify
829       # -no-undefined on the libtool link line when we can be certain
830       # that all symbols are satisfied, otherwise we get a static library.
831       allow_undefined=yes
832       ;;
833     *)
834       allow_undefined=yes
835       ;;
836     esac
837     libtool_args="$nonopt"
838     base_compile="$nonopt"
839     compile_command="$nonopt"
840     finalize_command="$nonopt"
841
842     compile_rpath=
843     finalize_rpath=
844     compile_shlibpath=
845     finalize_shlibpath=
846     convenience=
847     old_convenience=
848     deplibs=
849     old_deplibs=
850     compiler_flags=
851     linker_flags=
852     dllsearchpath=
853     lib_search_path=`pwd`
854     inst_prefix_dir=
855
856     avoid_version=no
857     dlfiles=
858     dlprefiles=
859     dlself=no
860     export_dynamic=no
861     export_symbols=
862     export_symbols_regex=
863     generated=
864     libobjs=
865     ltlibs=
866     module=no
867     no_install=no
868     objs=
869     non_pic_objects=
870     prefer_static_libs=no
871     preload=no
872     prev=
873     prevarg=
874     release=
875     rpath=
876     xrpath=
877     perm_rpath=
878     temp_rpath=
879     thread_safe=no
880     vinfo=
881     vinfo_number=no
882
883     # We need to know -static, to get the right output filenames.
884     for arg
885     do
886       case $arg in
887       -all-static | -static)
888         if test "X$arg" = "X-all-static"; then
889           if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
890             $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2
891           fi
892           if test -n "$link_static_flag"; then
893             dlopen_self=$dlopen_self_static
894           fi
895         else
896           if test -z "$pic_flag" && test -n "$link_static_flag"; then
897             dlopen_self=$dlopen_self_static
898           fi
899         fi
900         build_libtool_libs=no
901         build_old_libs=yes
902         prefer_static_libs=yes
903         break
904         ;;
905       esac
906     done
907
908     # See if our shared archives depend on static archives.
909     test -n "$old_archive_from_new_cmds" && build_old_libs=yes
910
911     # Go through the arguments, transforming them on the way.
912     while test "$#" -gt 0; do
913       arg="$1"
914       base_compile="$base_compile $arg"
915       shift
916       case $arg in
917       *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \     ]*|*]*|"")
918         qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test
919         ;;
920       *) qarg=$arg ;;
921       esac
922       libtool_args="$libtool_args $qarg"
923
924       # If the previous option needs an argument, assign it.
925       if test -n "$prev"; then
926         case $prev in
927         output)
928           compile_command="$compile_command @OUTPUT@"
929           finalize_command="$finalize_command @OUTPUT@"
930           ;;
931         esac
932
933         case $prev in
934         dlfiles|dlprefiles)
935           if test "$preload" = no; then
936             # Add the symbol object into the linking commands.
937             compile_command="$compile_command @SYMFILE@"
938             finalize_command="$finalize_command @SYMFILE@"
939             preload=yes
940           fi
941           case $arg in
942           *.la | *.lo) ;;  # We handle these cases below.
943           force)
944             if test "$dlself" = no; then
945               dlself=needless
946               export_dynamic=yes
947             fi
948             prev=
949             continue
950             ;;
951           self)
952             if test "$prev" = dlprefiles; then
953               dlself=yes
954             elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
955               dlself=yes
956             else
957               dlself=needless
958               export_dynamic=yes
959             fi
960             prev=
961             continue
962             ;;
963           *)
964             if test "$prev" = dlfiles; then
965               dlfiles="$dlfiles $arg"
966             else
967               dlprefiles="$dlprefiles $arg"
968             fi
969             prev=
970             continue
971             ;;
972           esac
973           ;;
974         expsyms)
975           export_symbols="$arg"
976           if test ! -f "$arg"; then
977             $echo "$modename: symbol file \`$arg' does not exist"
978             exit 1
979           fi
980           prev=
981           continue
982           ;;
983         expsyms_regex)
984           export_symbols_regex="$arg"
985           prev=
986           continue
987           ;;
988         inst_prefix)
989           inst_prefix_dir="$arg"
990           prev=
991           continue
992           ;;
993         release)
994           release="-$arg"
995           prev=
996           continue
997           ;;
998         objectlist)
999           if test -f "$arg"; then
1000             save_arg=$arg
1001             moreargs=
1002             for fil in `cat $save_arg`
1003             do
1004 #             moreargs="$moreargs $fil"
1005               arg=$fil
1006               # A libtool-controlled object.
1007
1008               # Check to see that this really is a libtool object.
1009               if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
1010                 pic_object=
1011                 non_pic_object=
1012
1013                 # Read the .lo file
1014                 # If there is no directory component, then add one.
1015                 case $arg in
1016                 */* | *\\*) . $arg ;;
1017                 *) . ./$arg ;;
1018                 esac
1019
1020                 if test -z "$pic_object" || \
1021                    test -z "$non_pic_object" ||
1022                    test "$pic_object" = none && \
1023                    test "$non_pic_object" = none; then
1024                   $echo "$modename: cannot find name of object for \`$arg'" 1>&2
1025                   exit 1
1026                 fi
1027
1028                 # Extract subdirectory from the argument.
1029                 xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
1030                 if test "X$xdir" = "X$arg"; then
1031                   xdir=
1032                 else
1033                   xdir="$xdir/"
1034                 fi
1035
1036                 if test "$pic_object" != none; then
1037                   # Prepend the subdirectory the object is found in.
1038                   pic_object="$xdir$pic_object"
1039
1040                   if test "$prev" = dlfiles; then
1041                     if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
1042                       dlfiles="$dlfiles $pic_object"
1043                       prev=
1044                       continue
1045                     else
1046                       # If libtool objects are unsupported, then we need to preload.
1047                       prev=dlprefiles
1048                     fi
1049                   fi
1050
1051                   # CHECK ME:  I think I busted this.  -Ossama
1052                   if test "$prev" = dlprefiles; then
1053                     # Preload the old-style object.
1054                     dlprefiles="$dlprefiles $pic_object"
1055                     prev=
1056                   fi
1057
1058                   # A PIC object.
1059                   libobjs="$libobjs $pic_object"
1060                   arg="$pic_object"
1061                 fi
1062
1063                 # Non-PIC object.
1064                 if test "$non_pic_object" != none; then
1065                   # Prepend the subdirectory the object is found in.
1066                   non_pic_object="$xdir$non_pic_object"
1067
1068                   # A standard non-PIC object
1069                   non_pic_objects="$non_pic_objects $non_pic_object"
1070                   if test -z "$pic_object" || test "$pic_object" = none ; then
1071                     arg="$non_pic_object"
1072                   fi
1073                 fi
1074               else
1075                 # Only an error if not doing a dry-run.
1076                 if test -z "$run"; then
1077                   $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
1078                   exit 1
1079                 else
1080                   # Dry-run case.
1081
1082                   # Extract subdirectory from the argument.
1083                   xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
1084                   if test "X$xdir" = "X$arg"; then
1085                     xdir=
1086                   else
1087                     xdir="$xdir/"
1088                   fi
1089
1090                   pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
1091                   non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
1092                   libobjs="$libobjs $pic_object"
1093                   non_pic_objects="$non_pic_objects $non_pic_object"
1094                 fi
1095               fi
1096             done
1097           else
1098             $echo "$modename: link input file \`$save_arg' does not exist"
1099             exit 1
1100           fi
1101           arg=$save_arg
1102           prev=
1103           continue
1104           ;;
1105         rpath | xrpath)
1106           # We need an absolute path.
1107           case $arg in
1108           [\\/]* | [A-Za-z]:[\\/]*) ;;
1109           *)
1110             $echo "$modename: only absolute run-paths are allowed" 1>&2
1111             exit 1
1112             ;;
1113           esac
1114           if test "$prev" = rpath; then
1115             case "$rpath " in
1116             *" $arg "*) ;;
1117             *) rpath="$rpath $arg" ;;
1118             esac
1119           else
1120             case "$xrpath " in
1121             *" $arg "*) ;;
1122             *) xrpath="$xrpath $arg" ;;
1123             esac
1124           fi
1125           prev=
1126           continue
1127           ;;
1128         xcompiler)
1129           compiler_flags="$compiler_flags $qarg"
1130           prev=
1131           compile_command="$compile_command $qarg"
1132           finalize_command="$finalize_command $qarg"
1133           continue
1134           ;;
1135         xlinker)
1136           linker_flags="$linker_flags $qarg"
1137           compiler_flags="$compiler_flags $wl$qarg"
1138           prev=
1139           compile_command="$compile_command $wl$qarg"
1140           finalize_command="$finalize_command $wl$qarg"
1141           continue
1142           ;;
1143         xcclinker)
1144           linker_flags="$linker_flags $qarg"
1145           compiler_flags="$compiler_flags $qarg"
1146           prev=
1147           compile_command="$compile_command $qarg"
1148           finalize_command="$finalize_command $qarg"
1149           continue
1150           ;;
1151         *)
1152           eval "$prev=\"\$arg\""
1153           prev=
1154           continue
1155           ;;
1156         esac
1157       fi # test -n "$prev"
1158
1159       prevarg="$arg"
1160
1161       case $arg in
1162       -all-static)
1163         if test -n "$link_static_flag"; then
1164           compile_command="$compile_command $link_static_flag"
1165           finalize_command="$finalize_command $link_static_flag"
1166         fi
1167         continue
1168         ;;
1169
1170       -allow-undefined)
1171         # FIXME: remove this flag sometime in the future.
1172         $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2
1173         continue
1174         ;;
1175
1176       -avoid-version)
1177         avoid_version=yes
1178         continue
1179         ;;
1180
1181       -dlopen)
1182         prev=dlfiles
1183         continue
1184         ;;
1185
1186       -dlpreopen)
1187         prev=dlprefiles
1188         continue
1189         ;;
1190
1191       -export-dynamic)
1192         export_dynamic=yes
1193         continue
1194         ;;
1195
1196       -export-symbols | -export-symbols-regex)
1197         if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
1198           $echo "$modename: more than one -exported-symbols argument is not allowed"
1199           exit 1
1200         fi
1201         if test "X$arg" = "X-export-symbols"; then
1202           prev=expsyms
1203         else
1204           prev=expsyms_regex
1205         fi
1206         continue
1207         ;;
1208
1209       -inst-prefix-dir)
1210         prev=inst_prefix
1211         continue
1212         ;;
1213
1214       # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
1215       # so, if we see these flags be careful not to treat them like -L
1216       -L[A-Z][A-Z]*:*)
1217         case $with_gcc/$host in
1218         no/*-*-irix* | /*-*-irix*)
1219           compile_command="$compile_command $arg"
1220           finalize_command="$finalize_command $arg"
1221           ;;
1222         esac
1223         continue
1224         ;;
1225
1226       -L*)
1227         dir=`$echo "X$arg" | $Xsed -e 's/^-L//'`
1228         # We need an absolute path.
1229         case $dir in
1230         [\\/]* | [A-Za-z]:[\\/]*) ;;
1231         *)
1232           absdir=`cd "$dir" && pwd`
1233           if test -z "$absdir"; then
1234             $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2
1235             exit 1
1236           fi
1237           dir="$absdir"
1238           ;;
1239         esac
1240         case "$deplibs " in
1241         *" -L$dir "*) ;;
1242         *)
1243           deplibs="$deplibs -L$dir"
1244           lib_search_path="$lib_search_path $dir"
1245           ;;
1246         esac
1247         case $host in
1248         *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
1249           case :$dllsearchpath: in
1250           *":$dir:"*) ;;
1251           *) dllsearchpath="$dllsearchpath:$dir";;
1252           esac
1253           ;;
1254         esac
1255         continue
1256         ;;
1257
1258       -l*)
1259         if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
1260           case $host in
1261           *-*-cygwin* | *-*-pw32* | *-*-beos*)
1262             # These systems don't actually have a C or math library (as such)
1263             continue
1264             ;;
1265           *-*-mingw* | *-*-os2*)
1266             # These systems don't actually have a C library (as such)
1267             test "X$arg" = "X-lc" && continue
1268             ;;
1269           *-*-openbsd* | *-*-freebsd*)
1270             # Do not include libc due to us having libc/libc_r.
1271             test "X$arg" = "X-lc" && continue
1272             ;;
1273           *-*-rhapsody* | *-*-darwin1.[012])
1274             # Rhapsody C and math libraries are in the System framework
1275             deplibs="$deplibs -framework System"
1276             continue
1277           esac
1278         elif test "X$arg" = "X-lc_r"; then
1279          case $host in
1280          *-*-openbsd* | *-*-freebsd*)
1281            # Do not include libc_r directly, use -pthread flag.
1282            continue
1283            ;;
1284          esac
1285         fi
1286         deplibs="$deplibs $arg"
1287         continue
1288         ;;
1289
1290       -module)
1291         module=yes
1292         continue
1293         ;;
1294
1295       # gcc -m* arguments should be passed to the linker via $compiler_flags
1296       # in order to pass architecture information to the linker
1297       # (e.g. 32 vs 64-bit).  This may also be accomplished via -Wl,-mfoo
1298       # but this is not reliable with gcc because gcc may use -mfoo to
1299       # select a different linker, different libraries, etc, while
1300       # -Wl,-mfoo simply passes -mfoo to the linker.
1301       -m*)
1302         # Unknown arguments in both finalize_command and compile_command need
1303         # to be aesthetically quoted because they are evaled later.
1304         arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1305         case $arg in
1306         *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \   ]*|*]*|"")
1307           arg="\"$arg\""
1308           ;;
1309         esac
1310         compile_command="$compile_command $arg"
1311         finalize_command="$finalize_command $arg"
1312         if test "$with_gcc" = "yes" ; then
1313           compiler_flags="$compiler_flags $arg"
1314         fi
1315         continue
1316         ;;
1317
1318       -shrext)
1319         prev=shrext
1320         continue
1321         ;;
1322
1323       -no-fast-install)
1324         fast_install=no
1325         continue
1326         ;;
1327
1328       -no-install)
1329         case $host in
1330         *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
1331           # The PATH hackery in wrapper scripts is required on Windows
1332           # in order for the loader to find any dlls it needs.
1333           $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2
1334           $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2
1335           fast_install=no
1336           ;;
1337         *) no_install=yes ;;
1338         esac
1339         continue
1340         ;;
1341
1342       -no-undefined)
1343         allow_undefined=no
1344         continue
1345         ;;
1346
1347       -objectlist)
1348         prev=objectlist
1349         continue
1350         ;;
1351
1352       -o) prev=output ;;
1353
1354       -release)
1355         prev=release
1356         continue
1357         ;;
1358
1359       -rpath)
1360         prev=rpath
1361         continue
1362         ;;
1363
1364       -R)
1365         prev=xrpath
1366         continue
1367         ;;
1368
1369       -R*)
1370         dir=`$echo "X$arg" | $Xsed -e 's/^-R//'`
1371         # We need an absolute path.
1372         case $dir in
1373         [\\/]* | [A-Za-z]:[\\/]*) ;;
1374         *)
1375           $echo "$modename: only absolute run-paths are allowed" 1>&2
1376           exit 1
1377           ;;
1378         esac
1379         case "$xrpath " in
1380         *" $dir "*) ;;
1381         *) xrpath="$xrpath $dir" ;;
1382         esac
1383         continue
1384         ;;
1385
1386       -static)
1387         # The effects of -static are defined in a previous loop.
1388         # We used to do the same as -all-static on platforms that
1389         # didn't have a PIC flag, but the assumption that the effects
1390         # would be equivalent was wrong.  It would break on at least
1391         # Digital Unix and AIX.
1392         continue
1393         ;;
1394
1395       -thread-safe)
1396         thread_safe=yes
1397         continue
1398         ;;
1399
1400       -version-info)
1401         prev=vinfo
1402         continue
1403         ;;
1404       -version-number)
1405         prev=vinfo
1406         vinfo_number=yes
1407         continue
1408         ;;
1409
1410       -Wc,*)
1411         args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'`
1412         arg=
1413         save_ifs="$IFS"; IFS=','
1414         for flag in $args; do
1415           IFS="$save_ifs"
1416           case $flag in
1417             *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \       ]*|*]*|"")
1418             flag="\"$flag\""
1419             ;;
1420           esac
1421           arg="$arg $wl$flag"
1422           compiler_flags="$compiler_flags $flag"
1423         done
1424         IFS="$save_ifs"
1425         arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
1426         ;;
1427
1428       -Wl,*)
1429         args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'`
1430         arg=
1431         save_ifs="$IFS"; IFS=','
1432         for flag in $args; do
1433           IFS="$save_ifs"
1434           case $flag in
1435             *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \       ]*|*]*|"")
1436             flag="\"$flag\""
1437             ;;
1438           esac
1439           arg="$arg $wl$flag"
1440           compiler_flags="$compiler_flags $wl$flag"
1441           linker_flags="$linker_flags $flag"
1442         done
1443         IFS="$save_ifs"
1444         arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
1445         ;;
1446
1447       -Xcompiler)
1448         prev=xcompiler
1449         continue
1450         ;;
1451
1452       -Xlinker)
1453         prev=xlinker
1454         continue
1455         ;;
1456
1457       -XCClinker)
1458         prev=xcclinker
1459         continue
1460         ;;
1461
1462       # Some other compiler flag.
1463       -* | +*)
1464         # Unknown arguments in both finalize_command and compile_command need
1465         # to be aesthetically quoted because they are evaled later.
1466         arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1467         case $arg in
1468         *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \   ]*|*]*|"")
1469           arg="\"$arg\""
1470           ;;
1471         esac
1472         ;;
1473
1474       *.$objext)
1475         # A standard object.
1476         objs="$objs $arg"
1477         ;;
1478
1479       *.lo)
1480         # A libtool-controlled object.
1481
1482         # Check to see that this really is a libtool object.
1483         if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
1484           pic_object=
1485           non_pic_object=
1486
1487           # Read the .lo file
1488           # If there is no directory component, then add one.
1489           case $arg in
1490           */* | *\\*) . $arg ;;
1491           *) . ./$arg ;;
1492           esac
1493
1494           if test -z "$pic_object" || \
1495              test -z "$non_pic_object" ||
1496              test "$pic_object" = none && \
1497              test "$non_pic_object" = none; then
1498             $echo "$modename: cannot find name of object for \`$arg'" 1>&2
1499             exit 1
1500           fi
1501
1502           # Extract subdirectory from the argument.
1503           xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
1504           if test "X$xdir" = "X$arg"; then
1505             xdir=
1506           else
1507             xdir="$xdir/"
1508           fi
1509
1510           if test "$pic_object" != none; then
1511             # Prepend the subdirectory the object is found in.
1512             pic_object="$xdir$pic_object"
1513
1514             if test "$prev" = dlfiles; then
1515               if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
1516                 dlfiles="$dlfiles $pic_object"
1517                 prev=
1518                 continue
1519               else
1520                 # If libtool objects are unsupported, then we need to preload.
1521                 prev=dlprefiles
1522               fi
1523             fi
1524
1525             # CHECK ME:  I think I busted this.  -Ossama
1526             if test "$prev" = dlprefiles; then
1527               # Preload the old-style object.
1528               dlprefiles="$dlprefiles $pic_object"
1529               prev=
1530             fi
1531
1532             # A PIC object.
1533             libobjs="$libobjs $pic_object"
1534             arg="$pic_object"
1535           fi
1536
1537           # Non-PIC object.
1538           if test "$non_pic_object" != none; then
1539             # Prepend the subdirectory the object is found in.
1540             non_pic_object="$xdir$non_pic_object"
1541
1542             # A standard non-PIC object
1543             non_pic_objects="$non_pic_objects $non_pic_object"
1544             if test -z "$pic_object" || test "$pic_object" = none ; then
1545               arg="$non_pic_object"
1546             fi
1547           fi
1548         else
1549           # Only an error if not doing a dry-run.
1550           if test -z "$run"; then
1551             $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
1552             exit 1
1553           else
1554             # Dry-run case.
1555
1556             # Extract subdirectory from the argument.
1557             xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
1558             if test "X$xdir" = "X$arg"; then
1559               xdir=
1560             else
1561               xdir="$xdir/"
1562             fi
1563
1564             pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
1565             non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
1566             libobjs="$libobjs $pic_object"
1567             non_pic_objects="$non_pic_objects $non_pic_object"
1568           fi
1569         fi
1570         ;;
1571
1572       *.$libext)
1573         # An archive.
1574         deplibs="$deplibs $arg"
1575         old_deplibs="$old_deplibs $arg"
1576         continue
1577         ;;
1578
1579       *.la)
1580         # A libtool-controlled library.
1581
1582         if test "$prev" = dlfiles; then
1583           # This library was specified with -dlopen.
1584           dlfiles="$dlfiles $arg"
1585           prev=
1586         elif test "$prev" = dlprefiles; then
1587           # The library was specified with -dlpreopen.
1588           dlprefiles="$dlprefiles $arg"
1589           prev=
1590         else
1591           deplibs="$deplibs $arg"
1592         fi
1593         continue
1594         ;;
1595
1596       # Some other compiler argument.
1597       *)
1598         # Unknown arguments in both finalize_command and compile_command need
1599         # to be aesthetically quoted because they are evaled later.
1600         arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1601         case $arg in
1602         *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \   ]*|*]*|"")
1603           arg="\"$arg\""
1604           ;;
1605         esac
1606         ;;
1607       esac # arg
1608
1609       # Now actually substitute the argument into the commands.
1610       if test -n "$arg"; then
1611         compile_command="$compile_command $arg"
1612         finalize_command="$finalize_command $arg"
1613       fi
1614     done # argument parsing loop
1615
1616     if test -n "$prev"; then
1617       $echo "$modename: the \`$prevarg' option requires an argument" 1>&2
1618       $echo "$help" 1>&2
1619       exit 1
1620     fi
1621
1622     # Infer tagged configuration to use if any are available and
1623     # if one wasn't chosen via the "--tag" command line option.
1624     # Only attempt this if the compiler in the base link
1625     # command doesn't match the default compiler.
1626     if test -n "$available_tags" && test -z "$tagname"; then
1627       case $base_compile in
1628       # Blanks in the command may have been stripped by the calling shell,
1629       # but not from the CC environment variable when configure was run.
1630       "$CC "* | " $CC "* | "`$echo $CC` "* | " `$echo $CC` "*) ;;
1631       # Blanks at the start of $base_compile will cause this to fail
1632       # if we don't check for them as well.
1633       *)
1634         for z in $available_tags; do
1635           if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$0" > /dev/null; then
1636             # Evaluate the configuration.
1637             eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $0`"
1638             case $base_compile in
1639             "$CC "* | " $CC "* | "`$echo $CC` "* | " `$echo $CC` "*)
1640               # The compiler in $compile_command matches
1641               # the one in the tagged configuration.
1642               # Assume this is the tagged configuration we want.
1643               tagname=$z
1644               break
1645               ;;
1646             esac
1647           fi
1648         done
1649         # If $tagname still isn't set, then no tagged configuration
1650         # was found and let the user know that the "--tag" command
1651         # line option must be used.
1652         if test -z "$tagname"; then
1653           $echo "$modename: unable to infer tagged configuration"
1654           $echo "$modename: specify a tag with \`--tag'" 1>&2
1655           exit 1
1656 #       else
1657 #         $echo "$modename: using $tagname tagged configuration"
1658         fi
1659         ;;
1660       esac
1661     fi
1662
1663     if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
1664       eval arg=\"$export_dynamic_flag_spec\"
1665       compile_command="$compile_command $arg"
1666       finalize_command="$finalize_command $arg"
1667     fi
1668
1669     oldlibs=
1670     # calculate the name of the file, without its directory
1671     outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'`
1672     libobjs_save="$libobjs"
1673
1674     if test -n "$shlibpath_var"; then
1675       # get the directories listed in $shlibpath_var
1676       eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
1677     else
1678       shlib_search_path=
1679     fi
1680     eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
1681     eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
1682
1683     output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
1684     if test "X$output_objdir" = "X$output"; then
1685       output_objdir="$objdir"
1686     else
1687       output_objdir="$output_objdir/$objdir"
1688     fi
1689     # Create the object directory.
1690     if test ! -d "$output_objdir"; then
1691       $show "$mkdir $output_objdir"
1692       $run $mkdir $output_objdir
1693       status=$?
1694       if test "$status" -ne 0 && test ! -d "$output_objdir"; then
1695         exit $status
1696       fi
1697     fi
1698
1699     # Determine the type of output
1700     case $output in
1701     "")
1702       $echo "$modename: you must specify an output file" 1>&2
1703       $echo "$help" 1>&2
1704       exit 1
1705       ;;
1706     *.$libext) linkmode=oldlib ;;
1707     *.lo | *.$objext) linkmode=obj ;;
1708     *.la) linkmode=lib ;;
1709     *) linkmode=prog ;; # Anything else should be a program.
1710     esac
1711
1712     case $host in
1713     *cygwin* | *mingw* | *pw32*)
1714       # don't eliminate duplcations in $postdeps and $predeps
1715       duplicate_compiler_generated_deps=yes
1716       ;;
1717     *)
1718       duplicate_compiler_generated_deps=$duplicate_deps
1719       ;;
1720     esac
1721     specialdeplibs=
1722
1723     libs=
1724     # Find all interdependent deplibs by searching for libraries
1725     # that are linked more than once (e.g. -la -lb -la)
1726     for deplib in $deplibs; do
1727       if test "X$duplicate_deps" = "Xyes" ; then
1728         case "$libs " in
1729         *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
1730         esac
1731       fi
1732       libs="$libs $deplib"
1733     done
1734
1735     if test "$linkmode" = lib; then
1736       libs="$predeps $libs $compiler_lib_search_path $postdeps"
1737
1738       # Compute libraries that are listed more than once in $predeps
1739       # $postdeps and mark them as special (i.e., whose duplicates are
1740       # not to be eliminated).
1741       pre_post_deps=
1742       if test "X$duplicate_compiler_generated_deps" = "Xyes" ; then
1743         for pre_post_dep in $predeps $postdeps; do
1744           case "$pre_post_deps " in
1745           *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;;
1746           esac
1747           pre_post_deps="$pre_post_deps $pre_post_dep"
1748         done
1749       fi
1750       pre_post_deps=
1751     fi
1752
1753     deplibs=
1754     newdependency_libs=
1755     newlib_search_path=
1756     need_relink=no # whether we're linking any uninstalled libtool libraries
1757     notinst_deplibs= # not-installed libtool libraries
1758     notinst_path= # paths that contain not-installed libtool libraries
1759     case $linkmode in
1760     lib)
1761         passes="conv link"
1762         for file in $dlfiles $dlprefiles; do
1763           case $file in
1764           *.la) ;;
1765           *)
1766             $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2
1767             exit 1
1768             ;;
1769           esac
1770         done
1771         ;;
1772     prog)
1773         compile_deplibs=
1774         finalize_deplibs=
1775         alldeplibs=no
1776         newdlfiles=
1777         newdlprefiles=
1778         passes="conv scan dlopen dlpreopen link"
1779         ;;
1780     *)  passes="conv"
1781         ;;
1782     esac
1783     for pass in $passes; do
1784       if test "$linkmode,$pass" = "lib,link" ||
1785          test "$linkmode,$pass" = "prog,scan"; then
1786         libs="$deplibs"
1787         deplibs=
1788       fi
1789       if test "$linkmode" = prog; then
1790         case $pass in
1791         dlopen) libs="$dlfiles" ;;
1792         dlpreopen) libs="$dlprefiles" ;;
1793         link) libs="$deplibs %DEPLIBS% $dependency_libs" ;;
1794         esac
1795       fi
1796       if test "$pass" = dlopen; then
1797         # Collect dlpreopened libraries
1798         save_deplibs="$deplibs"
1799         deplibs=
1800       fi
1801       for deplib in $libs; do
1802         lib=
1803         found=no
1804         case $deplib in
1805         -l*)
1806           if test "$linkmode" != lib && test "$linkmode" != prog; then
1807             $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2
1808             continue
1809           fi
1810           if test "$pass" = conv; then
1811             deplibs="$deplib $deplibs"
1812             continue
1813           fi
1814           name=`$echo "X$deplib" | $Xsed -e 's/^-l//'`
1815           for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do
1816             # Search the libtool library
1817             lib="$searchdir/lib${name}.la"
1818             if test -f "$lib"; then
1819               found=yes
1820               break
1821             fi
1822           done
1823           if test "$found" != yes; then
1824             # deplib doesn't seem to be a libtool library
1825             if test "$linkmode,$pass" = "prog,link"; then
1826               compile_deplibs="$deplib $compile_deplibs"
1827               finalize_deplibs="$deplib $finalize_deplibs"
1828             else
1829               deplibs="$deplib $deplibs"
1830               test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
1831             fi
1832             continue
1833           else # deplib is a libtool library
1834             # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib,
1835             # We need to do some special things here, and not later.
1836             if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
1837               case " $predeps $postdeps " in
1838               *" $deplib "*)
1839                 if (${SED} -e '2q' $lib |
1840                     grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
1841                   library_names=
1842                   old_library=
1843                   case $lib in
1844                   */* | *\\*) . $lib ;;
1845                   *) . ./$lib ;;
1846                   esac
1847                   for l in $old_library $library_names; do
1848                     ll="$l"
1849                   done
1850                   if test "X$ll" = "X$old_library" ; then # only static version available
1851                     found=no
1852                     ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
1853                     test "X$ladir" = "X$lib" && ladir="."
1854                     lib=$ladir/$old_library
1855                     if test "$linkmode,$pass" = "prog,link"; then
1856                       compile_deplibs="$deplib $compile_deplibs"
1857                       finalize_deplibs="$deplib $finalize_deplibs"
1858                     else
1859                       deplibs="$deplib $deplibs"
1860                       test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
1861                     fi
1862                     continue
1863                   fi
1864                 fi
1865                 ;;
1866               *) ;;
1867               esac
1868             fi
1869           fi
1870           ;; # -l
1871         -L*)
1872           case $linkmode in
1873           lib)
1874             deplibs="$deplib $deplibs"
1875             test "$pass" = conv && continue
1876             newdependency_libs="$deplib $newdependency_libs"
1877             newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
1878             ;;
1879           prog)
1880             if test "$pass" = conv; then
1881               deplibs="$deplib $deplibs"
1882               continue
1883             fi
1884             if test "$pass" = scan; then
1885               deplibs="$deplib $deplibs"
1886               newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
1887             else
1888               compile_deplibs="$deplib $compile_deplibs"
1889               finalize_deplibs="$deplib $finalize_deplibs"
1890             fi
1891             ;;
1892           *)
1893             $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2
1894             ;;
1895           esac # linkmode
1896           continue
1897           ;; # -L
1898         -R*)
1899           if test "$pass" = link; then
1900             dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'`
1901             # Make sure the xrpath contains only unique directories.
1902             case "$xrpath " in
1903             *" $dir "*) ;;
1904             *) xrpath="$xrpath $dir" ;;
1905             esac
1906           fi
1907           deplibs="$deplib $deplibs"
1908           continue
1909           ;;
1910         *.la) lib="$deplib" ;;
1911         *.$libext)
1912           if test "$pass" = conv; then
1913             deplibs="$deplib $deplibs"
1914             continue
1915           fi
1916           case $linkmode in
1917           lib)
1918             if test "$deplibs_check_method" != pass_all; then
1919               $echo
1920               $echo "*** Warning: Trying to link with static lib archive $deplib."
1921               $echo "*** I have the capability to make that library automatically link in when"
1922               $echo "*** you link to this library.  But I can only do this if you have a"
1923               $echo "*** shared version of the library, which you do not appear to have"
1924               $echo "*** because the file extensions .$libext of this argument makes me believe"
1925               $echo "*** that it is just a static archive that I should not used here."
1926             else
1927               $echo
1928               $echo "*** Warning: Linking the shared library $output against the"
1929               $echo "*** static library $deplib is not portable!"
1930               deplibs="$deplib $deplibs"
1931             fi
1932             continue
1933             ;;
1934           prog)
1935             if test "$pass" != link; then
1936               deplibs="$deplib $deplibs"
1937             else
1938               compile_deplibs="$deplib $compile_deplibs"
1939               finalize_deplibs="$deplib $finalize_deplibs"
1940             fi
1941             continue
1942             ;;
1943           esac # linkmode
1944           ;; # *.$libext
1945         *.lo | *.$objext)
1946           if test "$pass" = conv; then
1947             deplibs="$deplib $deplibs"
1948           elif test "$linkmode" = prog; then
1949             if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
1950               # If there is no dlopen support or we're linking statically,
1951               # we need to preload.
1952               newdlprefiles="$newdlprefiles $deplib"
1953               compile_deplibs="$deplib $compile_deplibs"
1954               finalize_deplibs="$deplib $finalize_deplibs"
1955             else
1956               newdlfiles="$newdlfiles $deplib"
1957             fi
1958           fi
1959           continue
1960           ;;
1961         %DEPLIBS%)
1962           alldeplibs=yes
1963           continue
1964           ;;
1965         esac # case $deplib
1966         if test "$found" = yes || test -f "$lib"; then :
1967         else
1968           $echo "$modename: cannot find the library \`$lib'" 1>&2
1969           exit 1
1970         fi
1971
1972         # Check to see that this really is a libtool archive.
1973         if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
1974         else
1975           $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
1976           exit 1
1977         fi
1978
1979         ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
1980         test "X$ladir" = "X$lib" && ladir="."
1981
1982         dlname=
1983         dlopen=
1984         dlpreopen=
1985         libdir=
1986         library_names=
1987         old_library=
1988         # If the library was installed with an old release of libtool,
1989         # it will not redefine variables installed, or shouldnotlink
1990         installed=yes
1991         shouldnotlink=no
1992
1993         # Read the .la file
1994         case $lib in
1995         */* | *\\*) . $lib ;;
1996         *) . ./$lib ;;
1997         esac
1998
1999         if test "$linkmode,$pass" = "lib,link" ||
2000            test "$linkmode,$pass" = "prog,scan" ||
2001            { test "$linkmode" != prog && test "$linkmode" != lib; }; then
2002           test -n "$dlopen" && dlfiles="$dlfiles $dlopen"
2003           test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen"
2004         fi
2005
2006         if test "$pass" = conv; then
2007           # Only check for convenience libraries
2008           deplibs="$lib $deplibs"
2009           if test -z "$libdir"; then
2010             if test -z "$old_library"; then
2011               $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
2012               exit 1
2013             fi
2014             # It is a libtool convenience library, so add in its objects.
2015             convenience="$convenience $ladir/$objdir/$old_library"
2016             old_convenience="$old_convenience $ladir/$objdir/$old_library"
2017             tmp_libs=
2018             for deplib in $dependency_libs; do
2019               deplibs="$deplib $deplibs"
2020               if test "X$duplicate_deps" = "Xyes" ; then
2021                 case "$tmp_libs " in
2022                 *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
2023                 esac
2024               fi
2025               tmp_libs="$tmp_libs $deplib"
2026             done
2027           elif test "$linkmode" != prog && test "$linkmode" != lib; then
2028             $echo "$modename: \`$lib' is not a convenience library" 1>&2
2029             exit 1
2030           fi
2031           continue
2032         fi # $pass = conv
2033
2034     
2035         # Get the name of the library we link against.
2036         linklib=
2037         for l in $old_library $library_names; do
2038           linklib="$l"
2039         done
2040         if test -z "$linklib"; then
2041           $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
2042           exit 1
2043         fi
2044
2045         # This library was specified with -dlopen.
2046         if test "$pass" = dlopen; then
2047           if test -z "$libdir"; then
2048             $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2
2049             exit 1
2050           fi
2051           if test -z "$dlname" || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
2052             # If there is no dlname, no dlopen support or we're linking
2053             # statically, we need to preload.  We also need to preload any
2054             # dependent libraries so libltdl's deplib preloader doesn't
2055             # bomb out in the load deplibs phase.
2056             dlprefiles="$dlprefiles $lib $dependency_libs"
2057           else
2058             newdlfiles="$newdlfiles $lib"
2059           fi
2060           continue
2061         fi # $pass = dlopen
2062
2063         # We need an absolute path.
2064         case $ladir in
2065         [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;;
2066         *)
2067           abs_ladir=`cd "$ladir" && pwd`
2068           if test -z "$abs_ladir"; then
2069             $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2
2070             $echo "$modename: passing it literally to the linker, although it might fail" 1>&2
2071             abs_ladir="$ladir"
2072           fi
2073           ;;
2074         esac
2075         laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
2076
2077         # Find the relevant object directory and library name.
2078         if test "X$installed" = Xyes; then
2079           if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
2080             $echo "$modename: warning: library \`$lib' was moved." 1>&2
2081             dir="$ladir"
2082             absdir="$abs_ladir"
2083             libdir="$abs_ladir"
2084           else
2085             dir="$libdir"
2086             absdir="$libdir"
2087           fi
2088         else
2089           dir="$ladir/$objdir"
2090           absdir="$abs_ladir/$objdir"
2091           # Remove this search path later
2092           notinst_path="$notinst_path $abs_ladir"
2093         fi # $installed = yes
2094         name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
2095
2096         # This library was specified with -dlpreopen.
2097         if test "$pass" = dlpreopen; then
2098           if test -z "$libdir"; then
2099             $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2
2100             exit 1
2101           fi
2102           # Prefer using a static library (so that no silly _DYNAMIC symbols
2103           # are required to link).
2104           if test -n "$old_library"; then
2105             newdlprefiles="$newdlprefiles $dir/$old_library"
2106           # Otherwise, use the dlname, so that lt_dlopen finds it.
2107           elif test -n "$dlname"; then
2108             newdlprefiles="$newdlprefiles $dir/$dlname"
2109           else
2110             newdlprefiles="$newdlprefiles $dir/$linklib"
2111           fi
2112         fi # $pass = dlpreopen
2113
2114         if test -z "$libdir"; then
2115           # Link the convenience library
2116           if test "$linkmode" = lib; then
2117             deplibs="$dir/$old_library $deplibs"
2118           elif test "$linkmode,$pass" = "prog,link"; then
2119             compile_deplibs="$dir/$old_library $compile_deplibs"
2120             finalize_deplibs="$dir/$old_library $finalize_deplibs"
2121           else
2122             deplibs="$lib $deplibs" # used for prog,scan pass
2123           fi
2124           continue
2125         fi
2126
2127     
2128         if test "$linkmode" = prog && test "$pass" != link; then
2129           newlib_search_path="$newlib_search_path $ladir"
2130           deplibs="$lib $deplibs"
2131
2132           linkalldeplibs=no
2133           if test "$link_all_deplibs" != no || test -z "$library_names" ||
2134              test "$build_libtool_libs" = no; then
2135             linkalldeplibs=yes
2136           fi
2137
2138           tmp_libs=
2139           for deplib in $dependency_libs; do
2140             case $deplib in
2141             -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test
2142             esac
2143             # Need to link against all dependency_libs?
2144             if test "$linkalldeplibs" = yes; then
2145               deplibs="$deplib $deplibs"
2146             else
2147               # Need to hardcode shared library paths
2148               # or/and link against static libraries
2149               newdependency_libs="$deplib $newdependency_libs"
2150             fi
2151             if test "X$duplicate_deps" = "Xyes" ; then
2152               case "$tmp_libs " in
2153               *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
2154               esac
2155             fi
2156             tmp_libs="$tmp_libs $deplib"
2157           done # for deplib
2158           continue
2159         fi # $linkmode = prog...
2160
2161         if test "$linkmode,$pass" = "prog,link"; then
2162           if test -n "$library_names" &&
2163              { test "$prefer_static_libs" = no || test -z "$old_library"; }; then
2164             # We need to hardcode the library path
2165             if test -n "$shlibpath_var"; then
2166               # Make sure the rpath contains only unique directories.
2167               case "$temp_rpath " in
2168               *" $dir "*) ;;
2169               *" $absdir "*) ;;
2170               *) temp_rpath="$temp_rpath $dir" ;;
2171               esac
2172             fi
2173
2174             # Hardcode the library path.
2175             # Skip directories that are in the system default run-time
2176             # search path.
2177             case " $sys_lib_dlsearch_path " in
2178             *" $absdir "*) ;;
2179             *)
2180               case "$compile_rpath " in
2181               *" $absdir "*) ;;
2182               *) compile_rpath="$compile_rpath $absdir"
2183               esac
2184               ;;
2185             esac
2186             case " $sys_lib_dlsearch_path " in
2187             *" $libdir "*) ;;
2188             *)
2189               case "$finalize_rpath " in
2190               *" $libdir "*) ;;
2191               *) finalize_rpath="$finalize_rpath $libdir"
2192               esac
2193               ;;
2194             esac
2195           fi # $linkmode,$pass = prog,link...
2196
2197           if test "$alldeplibs" = yes &&
2198              { test "$deplibs_check_method" = pass_all ||
2199                { test "$build_libtool_libs" = yes &&
2200                  test -n "$library_names"; }; }; then
2201             # We only need to search for static libraries
2202             continue
2203           fi
2204         fi
2205
2206         link_static=no # Whether the deplib will be linked statically
2207         if test -n "$library_names" &&
2208            { test "$prefer_static_libs" = no || test -z "$old_library"; }; then
2209           if test "$installed" = no; then
2210             notinst_deplibs="$notinst_deplibs $lib"
2211             need_relink=yes
2212           fi
2213           # This is a shared library
2214         
2215       # Warn about portability, can't link against -module's on some systems (darwin)
2216       if test "$shouldnotlink" = yes && test "$pass" = link ; then
2217             $echo
2218             if test "$linkmode" = prog; then
2219               $echo "*** Warning: Linking the executable $output against the loadable module"
2220             else
2221               $echo "*** Warning: Linking the shared library $output against the loadable module"
2222             fi
2223             $echo "*** $linklib is not portable!"    
2224       fi          
2225           if test "$linkmode" = lib &&
2226              test "$hardcode_into_libs" = yes; then
2227             # Hardcode the library path.
2228             # Skip directories that are in the system default run-time
2229             # search path.
2230             case " $sys_lib_dlsearch_path " in
2231             *" $absdir "*) ;;
2232             *)
2233               case "$compile_rpath " in
2234               *" $absdir "*) ;;
2235               *) compile_rpath="$compile_rpath $absdir"
2236               esac
2237               ;;
2238             esac
2239             case " $sys_lib_dlsearch_path " in
2240             *" $libdir "*) ;;
2241             *)
2242               case "$finalize_rpath " in
2243               *" $libdir "*) ;;
2244               *) finalize_rpath="$finalize_rpath $libdir"
2245               esac
2246               ;;
2247             esac
2248           fi
2249
2250           if test -n "$old_archive_from_expsyms_cmds"; then
2251             # figure out the soname
2252             set dummy $library_names
2253             realname="$2"
2254             shift; shift
2255             libname=`eval \\$echo \"$libname_spec\"`
2256             # use dlname if we got it. it's perfectly good, no?
2257             if test -n "$dlname"; then
2258               soname="$dlname"
2259             elif test -n "$soname_spec"; then
2260               # bleh windows
2261               case $host in
2262               *cygwin* | mingw*)
2263                 major=`expr $current - $age`
2264                 versuffix="-$major"
2265                 ;;
2266               esac
2267               eval soname=\"$soname_spec\"
2268             else
2269               soname="$realname"
2270             fi
2271
2272             # Make a new name for the extract_expsyms_cmds to use
2273             soroot="$soname"
2274             soname=`$echo $soroot | ${SED} -e 's/^.*\///'`
2275             newlib="libimp-`$echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a"
2276
2277             # If the library has no export list, then create one now
2278             if test -f "$output_objdir/$soname-def"; then :
2279             else
2280               $show "extracting exported symbol list from \`$soname'"
2281               save_ifs="$IFS"; IFS='~'
2282               eval cmds=\"$extract_expsyms_cmds\"
2283               for cmd in $cmds; do
2284                 IFS="$save_ifs"
2285                 $show "$cmd"
2286                 $run eval "$cmd" || exit $?
2287               done
2288               IFS="$save_ifs"
2289             fi
2290
2291             # Create $newlib
2292             if test -f "$output_objdir/$newlib"; then :; else
2293               $show "generating import library for \`$soname'"
2294               save_ifs="$IFS"; IFS='~'
2295               eval cmds=\"$old_archive_from_expsyms_cmds\"
2296               for cmd in $cmds; do
2297                 IFS="$save_ifs"
2298                 $show "$cmd"
2299                 $run eval "$cmd" || exit $?
2300               done
2301               IFS="$save_ifs"
2302             fi
2303             # make sure the library variables are pointing to the new library
2304             dir=$output_objdir
2305             linklib=$newlib
2306           fi # test -n "$old_archive_from_expsyms_cmds"
2307
2308           if test "$linkmode" = prog || test "$mode" != relink; then
2309             add_shlibpath=
2310             add_dir=
2311             add=
2312             lib_linked=yes
2313             case $hardcode_action in
2314             immediate | unsupported)
2315               if test "$hardcode_direct" = no; then
2316                 add="$dir/$linklib"
2317                 case $host in
2318                   *-*-sco3.2v5* ) add_dir="-L$dir" ;;
2319                   *-*-darwin* )
2320                     # if the lib is a module then we can not link against it, someone
2321                     # is ignoring the new warnings I added
2322                     if /usr/bin/file -L $add 2> /dev/null | grep "bundle" >/dev/null ; then
2323                       $echo "** Warning, lib $linklib is a module, not a shared library"
2324                       if test -z "$old_library" ; then
2325                         $echo
2326                         $echo "** And there doesn't seem to be a static archive available"
2327                         $echo "** The link will probably fail, sorry"
2328                       else
2329                         add="$dir/$old_library"
2330                       fi 
2331                     fi
2332                 esac
2333               elif test "$hardcode_minus_L" = no; then
2334                 case $host in
2335                 *-*-sunos*) add_shlibpath="$dir" ;;
2336                 esac
2337                 add_dir="-L$dir"
2338                 add="-l$name"
2339               elif test "$hardcode_shlibpath_var" = no; then
2340                 add_shlibpath="$dir"
2341                 add="-l$name"
2342               else
2343                 lib_linked=no
2344               fi
2345               ;;
2346             relink)
2347               if test "$hardcode_direct" = yes; then
2348                 add="$dir/$linklib"
2349               elif test "$hardcode_minus_L" = yes; then
2350                 add_dir="-L$dir"
2351                 # Try looking first in the location we're being installed to.
2352                 if test -n "$inst_prefix_dir"; then
2353                   case "$libdir" in
2354                     [\\/]*)
2355                       add_dir="-L$inst_prefix_dir$libdir $add_dir"
2356                       ;;
2357                   esac
2358                 fi
2359                 add="-l$name"
2360               elif test "$hardcode_shlibpath_var" = yes; then
2361                 add_shlibpath="$dir"
2362                 add="-l$name"
2363               else
2364                 lib_linked=no
2365               fi
2366               ;;
2367             *) lib_linked=no ;;
2368             esac
2369
2370             if test "$lib_linked" != yes; then
2371               $echo "$modename: configuration error: unsupported hardcode properties"
2372               exit 1
2373             fi
2374
2375             if test -n "$add_shlibpath"; then
2376               case :$compile_shlibpath: in
2377               *":$add_shlibpath:"*) ;;
2378               *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;;
2379               esac
2380             fi
2381             if test "$linkmode" = prog; then
2382               test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
2383               test -n "$add" && compile_deplibs="$add $compile_deplibs"
2384             else
2385               test -n "$add_dir" && deplibs="$add_dir $deplibs"
2386               test -n "$add" && deplibs="$add $deplibs"
2387               if test "$hardcode_direct" != yes && \
2388                  test "$hardcode_minus_L" != yes && \
2389                  test "$hardcode_shlibpath_var" = yes; then
2390                 case :$finalize_shlibpath: in
2391                 *":$libdir:"*) ;;
2392                 *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
2393                 esac
2394               fi
2395             fi
2396           fi
2397
2398           if test "$linkmode" = prog || test "$mode" = relink; then
2399             add_shlibpath=
2400             add_dir=
2401             add=
2402             # Finalize command for both is simple: just hardcode it.
2403             if test "$hardcode_direct" = yes; then
2404               add="$libdir/$linklib"
2405             elif test "$hardcode_minus_L" = yes; then
2406               add_dir="-L$libdir"
2407               add="-l$name"
2408             elif test "$hardcode_shlibpath_var" = yes; then
2409               case :$finalize_shlibpath: in
2410               *":$libdir:"*) ;;
2411               *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
2412               esac
2413               add="-l$name"
2414             elif test "$hardcode_automatic" = yes; then
2415               if test -n "$inst_prefix_dir" && test -f "$inst_prefix_dir$libdir/$linklib" ; then
2416                 add="$inst_prefix_dir$libdir/$linklib"
2417               else
2418                 add="$libdir/$linklib"
2419               fi
2420             else
2421               # We cannot seem to hardcode it, guess we'll fake it.
2422               add_dir="-L$libdir"
2423               # Try looking first in the location we're being installed to.
2424               if test -n "$inst_prefix_dir"; then
2425                 case "$libdir" in
2426                   [\\/]*)
2427                     add_dir="-L$inst_prefix_dir$libdir $add_dir"
2428                     ;;
2429                 esac
2430               fi
2431               add="-l$name"
2432             fi
2433
2434             if test "$linkmode" = prog; then
2435               test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
2436               test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
2437             else
2438               test -n "$add_dir" && deplibs="$add_dir $deplibs"
2439               test -n "$add" && deplibs="$add $deplibs"
2440             fi
2441           fi
2442         elif test "$linkmode" = prog; then
2443           # Here we assume that one of hardcode_direct or hardcode_minus_L
2444           # is not unsupported.  This is valid on all known static and
2445           # shared platforms.
2446           if test "$hardcode_direct" != unsupported; then
2447             test -n "$old_library" && linklib="$old_library"
2448             compile_deplibs="$dir/$linklib $compile_deplibs"
2449             finalize_deplibs="$dir/$linklib $finalize_deplibs"
2450           else
2451             compile_deplibs="-l$name -L$dir $compile_deplibs"
2452             finalize_deplibs="-l$name -L$dir $finalize_deplibs"
2453           fi
2454         elif test "$build_libtool_libs" = yes; then
2455           # Not a shared library
2456           if test "$deplibs_check_method" != pass_all; then
2457             # We're trying link a shared library against a static one
2458             # but the system doesn't support it.
2459
2460             # Just print a warning and add the library to dependency_libs so
2461             # that the program can be linked against the static library.
2462             $echo
2463             $echo "*** Warning: This system can not link to static lib archive $lib."
2464             $echo "*** I have the capability to make that library automatically link in when"
2465             $echo "*** you link to this library.  But I can only do this if you have a"
2466             $echo "*** shared version of the library, which you do not appear to have."
2467             if test "$module" = yes; then
2468               $echo "*** But as you try to build a module library, libtool will still create "
2469               $echo "*** a static module, that should work as long as the dlopening application"
2470               $echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
2471               if test -z "$global_symbol_pipe"; then
2472                 $echo
2473                 $echo "*** However, this would only work if libtool was able to extract symbol"
2474                 $echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
2475                 $echo "*** not find such a program.  So, this module is probably useless."
2476                 $echo "*** \`nm' from GNU binutils and a full rebuild may help."
2477               fi
2478               if test "$build_old_libs" = no; then
2479                 build_libtool_libs=module
2480                 build_old_libs=yes
2481               else
2482                 build_libtool_libs=no
2483               fi
2484             fi
2485           else
2486             convenience="$convenience $dir/$old_library"
2487             old_convenience="$old_convenience $dir/$old_library"
2488             deplibs="$dir/$old_library $deplibs"
2489             link_static=yes
2490           fi
2491         fi # link shared/static library?
2492
2493         if test "$linkmode" = lib; then
2494           if test -n "$dependency_libs" &&
2495              { test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes ||
2496                test "$link_static" = yes; }; then
2497             # Extract -R from dependency_libs
2498             temp_deplibs=
2499             for libdir in $dependency_libs; do
2500               case $libdir in
2501               -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'`
2502                    case " $xrpath " in
2503                    *" $temp_xrpath "*) ;;
2504                    *) xrpath="$xrpath $temp_xrpath";;
2505                    esac;;
2506               *) temp_deplibs="$temp_deplibs $libdir";;
2507               esac
2508             done
2509             dependency_libs="$temp_deplibs"
2510           fi
2511
2512           newlib_search_path="$newlib_search_path $absdir"
2513           # Link against this library
2514           test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
2515           # ... and its dependency_libs
2516           tmp_libs=
2517           for deplib in $dependency_libs; do
2518             newdependency_libs="$deplib $newdependency_libs"
2519             if test "X$duplicate_deps" = "Xyes" ; then
2520               case "$tmp_libs " in
2521               *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
2522               esac
2523             fi
2524             tmp_libs="$tmp_libs $deplib"
2525           done
2526
2527           if test "$link_all_deplibs" != no; then
2528             # Add the search paths of all dependency libraries
2529             for deplib in $dependency_libs; do
2530               case $deplib in
2531               -L*) path="$deplib" ;;
2532               *.la)
2533                 dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'`
2534                 test "X$dir" = "X$deplib" && dir="."
2535                 # We need an absolute path.
2536                 case $dir in
2537                 [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
2538                 *)
2539                   absdir=`cd "$dir" && pwd`
2540                   if test -z "$absdir"; then
2541                     $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2
2542                     absdir="$dir"
2543                   fi
2544                   ;;
2545                 esac
2546                 if grep "^installed=no" $deplib > /dev/null; then
2547                   path="$absdir/$objdir"
2548                 else
2549                   eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
2550                   if test -z "$libdir"; then
2551                     $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
2552                     exit 1
2553                   fi
2554                   if test "$absdir" != "$libdir"; then
2555                     $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2
2556                   fi
2557                   path="$absdir"
2558                 fi
2559                 depdepl=
2560                 case $host in
2561                 *-*-darwin*)
2562                   # we do not want to link against static libs, but need to link against shared
2563                   eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
2564                   if test -n "$deplibrary_names" ; then
2565                     for tmp in $deplibrary_names ; do
2566                       depdepl=$tmp
2567                     done
2568                     if test -f "$path/$depdepl" ; then
2569                       depdepl="$path/$depdepl"
2570                    fi
2571                     newlib_search_path="$newlib_search_path $path"
2572                     path=""
2573                   fi
2574                   ;;
2575                 *)
2576                 path="-L$path"
2577                 ;;
2578                 esac 
2579                 
2580                 ;;
2581                   -l*)
2582                 case $host in
2583                 *-*-darwin*)
2584                  # Again, we only want to link against shared libraries
2585                  eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"`
2586                  for tmp in $newlib_search_path ; do
2587                      if test -f "$tmp/lib$tmp_libs.dylib" ; then
2588                        eval depdepl="$tmp/lib$tmp_libs.dylib"
2589                        break
2590                      fi  
2591          done
2592          path=""
2593                   ;;
2594                 *) continue ;;
2595                 esac              
2596                 ;;
2597               *) continue ;;
2598               esac
2599               case " $deplibs " in
2600               *" $depdepl "*) ;;
2601               *) deplibs="$deplibs $depdepl" ;;
2602               esac            
2603               case " $deplibs " in
2604               *" $path "*) ;;
2605               *) deplibs="$deplibs $path" ;;
2606               esac
2607             done
2608           fi # link_all_deplibs != no
2609         fi # linkmode = lib
2610       done # for deplib in $libs
2611       dependency_libs="$newdependency_libs"
2612       if test "$pass" = dlpreopen; then
2613         # Link the dlpreopened libraries before other libraries
2614         for deplib in $save_deplibs; do
2615           deplibs="$deplib $deplibs"
2616         done
2617       fi
2618       if test "$pass" != dlopen; then
2619         if test "$pass" != conv; then
2620           # Make sure lib_search_path contains only unique directories.
2621           lib_search_path=
2622           for dir in $newlib_search_path; do
2623             case "$lib_search_path " in
2624             *" $dir "*) ;;
2625             *) lib_search_path="$lib_search_path $dir" ;;
2626             esac
2627           done
2628           newlib_search_path=
2629         fi
2630
2631         if test "$linkmode,$pass" != "prog,link"; then
2632           vars="deplibs"
2633         else
2634           vars="compile_deplibs finalize_deplibs"
2635         fi
2636         for var in $vars dependency_libs; do
2637           # Add libraries to $var in reverse order
2638           eval tmp_libs=\"\$$var\"
2639           new_libs=
2640           for deplib in $tmp_libs; do
2641             # FIXME: Pedantically, this is the right thing to do, so
2642             #        that some nasty dependency loop isn't accidentally
2643             #        broken:
2644             #new_libs="$deplib $new_libs"
2645             # Pragmatically, this seems to cause very few problems in
2646             # practice:
2647             case $deplib in
2648             -L*) new_libs="$deplib $new_libs" ;;
2649             -R*) ;;
2650             *)
2651               # And here is the reason: when a library appears more
2652               # than once as an explicit dependence of a library, or
2653               # is implicitly linked in more than once by the
2654               # compiler, it is considered special, and multiple
2655               # occurrences thereof are not removed.  Compare this
2656               # with having the same library being listed as a
2657               # dependency of multiple other libraries: in this case,
2658               # we know (pedantically, we assume) the library does not
2659               # need to be listed more than once, so we keep only the
2660               # last copy.  This is not always right, but it is rare
2661               # enough that we require users that really mean to play
2662               # such unportable linking tricks to link the library
2663               # using -Wl,-lname, so that libtool does not consider it
2664               # for duplicate removal.
2665               case " $specialdeplibs " in
2666               *" $deplib "*) new_libs="$deplib $new_libs" ;;
2667               *)
2668                 case " $new_libs " in
2669                 *" $deplib "*) ;;
2670                 *) new_libs="$deplib $new_libs" ;;
2671                 esac
2672                 ;;
2673               esac
2674               ;;
2675             esac
2676           done
2677           tmp_libs=
2678           for deplib in $new_libs; do
2679             case $deplib in
2680             -L*)
2681               case " $tmp_libs " in
2682               *" $deplib "*) ;;
2683               *) tmp_libs="$tmp_libs $deplib" ;;
2684               esac
2685               ;;
2686             *) tmp_libs="$tmp_libs $deplib" ;;
2687             esac
2688           done
2689           eval $var=\"$tmp_libs\"
2690         done # for var
2691       fi
2692       # Last step: remove runtime libs from dependency_libs (they stay in deplibs)
2693       tmp_libs=
2694       for i in $dependency_libs ; do
2695         case " $predeps $postdeps $compiler_lib_search_path " in
2696         *" $i "*)
2697           i=""
2698           ;;
2699         esac
2700         if test -n "$i" ; then
2701           tmp_libs="$tmp_libs $i"
2702         fi
2703       done
2704       dependency_libs=$tmp_libs
2705     done # for pass
2706     if test "$linkmode" = prog; then
2707       dlfiles="$newdlfiles"
2708       dlprefiles="$newdlprefiles"
2709     fi
2710
2711     case $linkmode in
2712     oldlib)
2713       if test -n "$deplibs"; then
2714         $echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2
2715       fi
2716
2717       if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
2718         $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2
2719       fi
2720
2721       if test -n "$rpath"; then
2722         $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2
2723       fi
2724
2725       if test -n "$xrpath"; then
2726         $echo "$modename: warning: \`-R' is ignored for archives" 1>&2
2727       fi
2728
2729       if test -n "$vinfo"; then
2730         $echo "$modename: warning: \`-version-info/-version-number' is ignored for archives" 1>&2
2731       fi
2732
2733       if test -n "$release"; then
2734         $echo "$modename: warning: \`-release' is ignored for archives" 1>&2
2735       fi
2736
2737       if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
2738         $echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2
2739       fi
2740
2741       # Now set the variables for building old libraries.
2742       build_libtool_libs=no
2743       oldlibs="$output"
2744       objs="$objs$old_deplibs"
2745       ;;
2746
2747     lib)
2748       # Make sure we only generate libraries of the form `libNAME.la'.
2749       case $outputname in
2750       lib*)
2751         name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
2752         eval shared_ext=\"$shrext\"
2753         eval libname=\"$libname_spec\"
2754         ;;
2755       *)
2756         if test "$module" = no; then
2757           $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2
2758           $echo "$help" 1>&2
2759           exit 1
2760         fi
2761         if test "$need_lib_prefix" != no; then
2762           # Add the "lib" prefix for modules if required
2763           name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
2764           eval shared_ext=\"$shrext\"
2765           eval libname=\"$libname_spec\"
2766         else
2767           libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
2768         fi
2769         ;;
2770       esac
2771
2772       if test -n "$objs"; then
2773         if test "$deplibs_check_method" != pass_all; then
2774           $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1
2775           exit 1
2776         else
2777           $echo
2778           $echo "*** Warning: Linking the shared library $output against the non-libtool"
2779           $echo "*** objects $objs is not portable!"
2780           libobjs="$libobjs $objs"
2781         fi
2782       fi
2783
2784       if test "$dlself" != no; then
2785         $echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2
2786       fi
2787
2788       set dummy $rpath
2789       if test "$#" -gt 2; then
2790         $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2
2791       fi
2792       install_libdir="$2"
2793
2794       oldlibs=
2795       if test -z "$rpath"; then
2796         if test "$build_libtool_libs" = yes; then
2797           # Building a libtool convenience library.
2798           # Some compilers have problems with a `.al' extension so
2799           # convenience libraries should have the same extension an
2800           # archive normally would.
2801           oldlibs="$output_objdir/$libname.$libext $oldlibs"
2802           build_libtool_libs=convenience
2803           build_old_libs=yes
2804         fi
2805
2806         if test -n "$vinfo"; then
2807           $echo "$modename: warning: \`-version-info/-version-number' is ignored for convenience libraries" 1>&2
2808         fi
2809
2810         if test -n "$release"; then
2811           $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2
2812         fi
2813       else
2814
2815         # Parse the version information argument.
2816         save_ifs="$IFS"; IFS=':'
2817         set dummy $vinfo 0 0 0
2818         IFS="$save_ifs"
2819
2820         if test -n "$8"; then
2821           $echo "$modename: too many parameters to \`-version-info'" 1>&2
2822           $echo "$help" 1>&2
2823           exit 1
2824         fi
2825
2826         # convert absolute version numbers to libtool ages
2827         # this retains compatibility with .la files and attempts
2828         # to make the code below a bit more comprehensible
2829         
2830         case $vinfo_number in
2831         yes)
2832           number_major="$2"
2833           number_minor="$3"
2834           number_revision="$4"
2835           #
2836           # There are really only two kinds -- those that
2837           # use the current revision as the major version
2838           # and those that subtract age and use age as
2839           # a minor version.  But, then there is irix
2840           # which has an extra 1 added just for fun
2841           #
2842           case $version_type in
2843           darwin|linux|osf|windows)
2844             current=`expr $number_major + $number_minor`
2845             age="$number_minor"
2846             revision="$number_revision"
2847             ;;
2848           freebsd-aout|freebsd-elf|sunos)
2849             current="$number_major"
2850             revision="$number_minor"
2851             age="0"
2852             ;;
2853           irix|nonstopux)
2854             current=`expr $number_major + $number_minor - 1`
2855             age="$number_minor"
2856             revision="$number_minor"
2857             ;;
2858           esac
2859           ;;
2860         no)
2861           current="$2"
2862           revision="$3"
2863           age="$4"
2864           ;;
2865         esac
2866
2867         # Check that each of the things are valid numbers.
2868         case $current in
2869         0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;;
2870         *)
2871           $echo "$modename: CURRENT \`$current' is not a nonnegative integer" 1>&2
2872           $echo "$modename: \`$vinfo' is not valid version information" 1>&2
2873           exit 1
2874           ;;
2875         esac
2876
2877         case $revision in
2878         0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;;
2879         *)
2880           $echo "$modename: REVISION \`$revision' is not a nonnegative integer" 1>&2
2881           $echo "$modename: \`$vinfo' is not valid version information" 1>&2
2882           exit 1
2883           ;;
2884         esac
2885
2886         case $age in
2887         0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;;
2888         *)
2889           $echo "$modename: AGE \`$age' is not a nonnegative integer" 1>&2
2890           $echo "$modename: \`$vinfo' is not valid version information" 1>&2
2891           exit 1
2892           ;;
2893         esac
2894
2895         if test "$age" -gt "$current"; then
2896           $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2
2897           $echo "$modename: \`$vinfo' is not valid version information" 1>&2
2898           exit 1
2899         fi
2900
2901         # Calculate the version variables.
2902         major=
2903         versuffix=
2904         verstring=
2905         case $version_type in
2906         none) ;;
2907
2908         darwin)
2909           # Like Linux, but with the current version available in
2910           # verstring for coding it into the library header
2911           major=.`expr $current - $age`
2912           versuffix="$major.$age.$revision"
2913           # Darwin ld doesn't like 0 for these options...
2914           minor_current=`expr $current + 1`
2915           verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
2916           ;;
2917
2918         freebsd-aout)
2919           major=".$current"
2920           versuffix=".$current.$revision";
2921           ;;
2922
2923         freebsd-elf)
2924           major=".$current"
2925           versuffix=".$current";
2926           ;;
2927
2928         irix | nonstopux)
2929           major=`expr $current - $age + 1`
2930
2931           case $version_type in
2932             nonstopux) verstring_prefix=nonstopux ;;
2933             *)         verstring_prefix=sgi ;;
2934           esac
2935           verstring="$verstring_prefix$major.$revision"
2936
2937           # Add in all the interfaces that we are compatible with.
2938           loop=$revision
2939           while test "$loop" -ne 0; do
2940             iface=`expr $revision - $loop`
2941             loop=`expr $loop - 1`
2942             verstring="$verstring_prefix$major.$iface:$verstring"
2943           done
2944
2945           # Before this point, $major must not contain `.'.
2946           major=.$major
2947           versuffix="$major.$revision"
2948           ;;
2949
2950         linux)
2951           major=.`expr $current - $age`
2952           versuffix="$major.$age.$revision"
2953           ;;
2954
2955         osf)
2956           major=.`expr $current - $age`
2957           versuffix=".$current.$age.$revision"
2958           verstring="$current.$age.$revision"
2959
2960           # Add in all the interfaces that we are compatible with.
2961           loop=$age
2962           while test "$loop" -ne 0; do
2963             iface=`expr $current - $loop`
2964             loop=`expr $loop - 1`
2965             verstring="$verstring:${iface}.0"
2966           done
2967
2968           # Make executables depend on our current version.
2969           verstring="$verstring:${current}.0"
2970           ;;
2971
2972         sunos)
2973           major=".$current"
2974           versuffix=".$current.$revision"
2975           ;;
2976
2977         windows)
2978           # Use '-' rather than '.', since we only want one
2979           # extension on DOS 8.3 filesystems.
2980           major=`expr $current - $age`
2981           versuffix="-$major"
2982           ;;
2983
2984         *)
2985           $echo "$modename: unknown library version type \`$version_type'" 1>&2
2986           $echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
2987           exit 1
2988           ;;
2989         esac
2990
2991         # Clear the version info if we defaulted, and they specified a release.
2992         if test -z "$vinfo" && test -n "$release"; then
2993           major=
2994           case $version_type in
2995           darwin)
2996             # we can't check for "0.0" in archive_cmds due to quoting
2997             # problems, so we reset it completely
2998             verstring=
2999             ;;
3000           *)
3001             verstring="0.0"
3002             ;;
3003           esac
3004           if test "$need_version" = no; then
3005             versuffix=
3006           else
3007             versuffix=".0.0"
3008           fi
3009         fi
3010
3011         # Remove version info from name if versioning should be avoided
3012         if test "$avoid_version" = yes && test "$need_version" = no; then
3013           major=
3014           versuffix=
3015           verstring=""
3016         fi
3017
3018         # Check to see if the archive will have undefined symbols.
3019         if test "$allow_undefined" = yes; then
3020           if test "$allow_undefined_flag" = unsupported; then
3021             $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2
3022             build_libtool_libs=no
3023             build_old_libs=yes
3024           fi
3025         else
3026           # Don't allow undefined symbols.
3027           allow_undefined_flag="$no_undefined_flag"
3028         fi
3029       fi
3030
3031       if test "$mode" != relink; then
3032         # Remove our outputs, but don't remove object files since they
3033         # may have been created when compiling PIC objects.
3034         removelist=
3035         tempremovelist=`$echo "$output_objdir/*"`
3036         for p in $tempremovelist; do
3037           case $p in
3038             *.$objext)
3039                ;;
3040             $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*)
3041                removelist="$removelist $p"
3042                ;;
3043             *) ;;
3044           esac
3045         done
3046         if test -n "$removelist"; then
3047           $show "${rm}r $removelist"
3048           $run ${rm}r $removelist
3049         fi
3050       fi
3051
3052       # Now set the variables for building old libraries.
3053       if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
3054         oldlibs="$oldlibs $output_objdir/$libname.$libext"
3055
3056         # Transform .lo files to .o files.
3057         oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
3058       fi
3059
3060       # Eliminate all temporary directories.
3061       for path in $notinst_path; do
3062         lib_search_path=`$echo "$lib_search_path " | ${SED} -e 's% $path % %g'`
3063         deplibs=`$echo "$deplibs " | ${SED} -e 's% -L$path % %g'`
3064         dependency_libs=`$echo "$dependency_libs " | ${SED} -e 's% -L$path % %g'`
3065       done
3066
3067       if test -n "$xrpath"; then
3068         # If the user specified any rpath flags, then add them.
3069         temp_xrpath=
3070         for libdir in $xrpath; do
3071           temp_xrpath="$temp_xrpath -R$libdir"
3072           case "$finalize_rpath " in
3073           *" $libdir "*) ;;
3074           *) finalize_rpath="$finalize_rpath $libdir" ;;
3075           esac
3076         done
3077         if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
3078           dependency_libs="$temp_xrpath $dependency_libs"
3079         fi
3080       fi
3081
3082       # Make sure dlfiles contains only unique files that won't be dlpreopened
3083       old_dlfiles="$dlfiles"
3084       dlfiles=
3085       for lib in $old_dlfiles; do
3086         case " $dlprefiles $dlfiles " in
3087         *" $lib "*) ;;
3088         *) dlfiles="$dlfiles $lib" ;;
3089         esac
3090       done
3091
3092       # Make sure dlprefiles contains only unique files
3093       old_dlprefiles="$dlprefiles"
3094       dlprefiles=
3095       for lib in $old_dlprefiles; do
3096         case "$dlprefiles " in
3097         *" $lib "*) ;;
3098         *) dlprefiles="$dlprefiles $lib" ;;
3099         esac
3100       done
3101
3102       if test "$build_libtool_libs" = yes; then
3103         if test -n "$rpath"; then
3104           case $host in
3105           *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*)
3106             # these systems don't actually have a c library (as such)!
3107             ;;
3108           *-*-rhapsody* | *-*-darwin1.[012])
3109             # Rhapsody C library is in the System framework
3110             deplibs="$deplibs -framework System"
3111             ;;
3112           *-*-netbsd*)
3113             # Don't link with libc until the a.out ld.so is fixed.
3114             ;;
3115           *-*-openbsd* | *-*-freebsd*)
3116             # Do not include libc due to us having libc/libc_r.
3117             test "X$arg" = "X-lc" && continue
3118             ;;
3119           *)
3120             # Add libc to deplibs on all other systems if necessary.
3121             if test "$build_libtool_need_lc" = "yes"; then
3122               deplibs="$deplibs -lc"
3123             fi
3124             ;;
3125           esac
3126         fi
3127
3128         # Transform deplibs into only deplibs that can be linked in shared.
3129         name_save=$name
3130         libname_save=$libname
3131         release_save=$release
3132         versuffix_save=$versuffix
3133         major_save=$major
3134         # I'm not sure if I'm treating the release correctly.  I think
3135         # release should show up in the -l (ie -lgmp5) so we don't want to
3136         # add it in twice.  Is that correct?
3137         release=""
3138         versuffix=""
3139         major=""
3140         newdeplibs=
3141         droppeddeps=no
3142         case $deplibs_check_method in
3143         pass_all)
3144           # Don't check for shared/static.  Everything works.
3145           # This might be a little naive.  We might want to check
3146           # whether the library exists or not.  But this is on
3147           # osf3 & osf4 and I'm not really sure... Just
3148           # implementing what was already the behavior.
3149           newdeplibs=$deplibs
3150           ;;
3151         test_compile)
3152           # This code stresses the "libraries are programs" paradigm to its
3153           # limits. Maybe even breaks it.  We compile a program, linking it
3154           # against the deplibs as a proxy for the library.  Then we can check
3155           # whether they linked in statically or dynamically with ldd.
3156           $rm conftest.c
3157           cat > conftest.c <<EOF
3158           int main() { return 0; }
3159 EOF
3160           $rm conftest
3161           $LTCC -o conftest conftest.c $deplibs
3162           if test "$?" -eq 0 ; then
3163             ldd_output=`ldd conftest`
3164             for i in $deplibs; do
3165               name="`expr $i : '-l\(.*\)'`"
3166               # If $name is empty we are operating on a -L argument.
3167               if test "$name" != "" && test "$name" -ne "0"; then
3168                 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3169                   case " $predeps $postdeps " in
3170                   *" $i "*)
3171                     newdeplibs="$newdeplibs $i"
3172                     i=""
3173                     ;;
3174                   esac
3175                 fi
3176                 if test -n "$i" ; then
3177                   libname=`eval \\$echo \"$libname_spec\"`
3178                   deplib_matches=`eval \\$echo \"$library_names_spec\"`
3179                   set dummy $deplib_matches
3180                   deplib_match=$2
3181                   if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
3182                     newdeplibs="$newdeplibs $i"
3183                   else
3184                     droppeddeps=yes
3185                     $echo
3186                     $echo "*** Warning: dynamic linker does not accept needed library $i."
3187                     $echo "*** I have the capability to make that library automatically link in when"
3188                     $echo "*** you link to this library.  But I can only do this if you have a"
3189                     $echo "*** shared version of the library, which I believe you do not have"
3190                     $echo "*** because a test_compile did reveal that the linker did not use it for"
3191                     $echo "*** its dynamic dependency list that programs get resolved with at runtime."
3192                   fi
3193                 fi
3194               else
3195                 newdeplibs="$newdeplibs $i"
3196               fi
3197             done
3198           else
3199             # Error occurred in the first compile.  Let's try to salvage
3200             # the situation: Compile a separate program for each library.
3201             for i in $deplibs; do
3202               name="`expr $i : '-l\(.*\)'`"
3203               # If $name is empty we are operating on a -L argument.
3204               if test "$name" != "" && test "$name" != "0"; then
3205                 $rm conftest
3206                 $LTCC -o conftest conftest.c $i
3207                 # Did it work?
3208                 if test "$?" -eq 0 ; then
3209                   ldd_output=`ldd conftest`
3210                   if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3211                     case " $predeps $postdeps " in
3212                     *" $i "*)
3213                       newdeplibs="$newdeplibs $i"
3214                       i=""
3215                       ;;
3216                     esac
3217                   fi
3218                   if test -n "$i" ; then
3219                     libname=`eval \\$echo \"$libname_spec\"`
3220                     deplib_matches=`eval \\$echo \"$library_names_spec\"`
3221                     set dummy $deplib_matches
3222                     deplib_match=$2
3223                     if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
3224                       newdeplibs="$newdeplibs $i"
3225                     else
3226                       droppeddeps=yes
3227                       $echo
3228                       $echo "*** Warning: dynamic linker does not accept needed library $i."
3229                       $echo "*** I have the capability to make that library automatically link in when"
3230                       $echo "*** you link to this library.  But I can only do this if you have a"
3231                       $echo "*** shared version of the library, which you do not appear to have"
3232                       $echo "*** because a test_compile did reveal that the linker did not use this one"
3233                       $echo "*** as a dynamic dependency that programs can get resolved with at runtime."
3234                     fi
3235                   fi
3236                 else
3237                   droppeddeps=yes
3238                   $echo
3239                   $echo "*** Warning!  Library $i is needed by this library but I was not able to"
3240                   $echo "***  make it link in!  You will probably need to install it or some"
3241                   $echo "*** library that it depends on before this library will be fully"
3242                   $echo "*** functional.  Installing it before continuing would be even better."
3243                 fi
3244               else
3245                 newdeplibs="$newdeplibs $i"
3246               fi
3247             done
3248           fi
3249           ;;
3250         file_magic*)
3251           set dummy $deplibs_check_method
3252           file_magic_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
3253           for a_deplib in $deplibs; do
3254             name="`expr $a_deplib : '-l\(.*\)'`"
3255             # If $name is empty we are operating on a -L argument.
3256             if test "$name" != "" && test  "$name" != "0"; then
3257               if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3258                 case " $predeps $postdeps " in
3259                 *" $a_deplib "*)
3260                   newdeplibs="$newdeplibs $a_deplib"
3261                   a_deplib=""
3262                   ;;
3263                 esac
3264               fi
3265               if test -n "$a_deplib" ; then
3266                 libname=`eval \\$echo \"$libname_spec\"`
3267                 for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
3268                   potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
3269                   for potent_lib in $potential_libs; do
3270                       # Follow soft links.
3271                       if ls -lLd "$potent_lib" 2>/dev/null \
3272                          | grep " -> " >/dev/null; then
3273                         continue
3274                       fi
3275                       # The statement above tries to avoid entering an
3276                       # endless loop below, in case of cyclic links.
3277                       # We might still enter an endless loop, since a link
3278                       # loop can be closed while we follow links,
3279                       # but so what?
3280                       potlib="$potent_lib"
3281                       while test -h "$potlib" 2>/dev/null; do
3282                         potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
3283                         case $potliblink in
3284                         [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
3285                         *) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
3286                         esac
3287                       done
3288                       if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \
3289                          | ${SED} 10q \
3290                          | $EGREP "$file_magic_regex" > /dev/null; then
3291                         newdeplibs="$newdeplibs $a_deplib"
3292                         a_deplib=""
3293                         break 2
3294                       fi
3295                   done
3296                 done
3297               fi
3298               if test -n "$a_deplib" ; then
3299                 droppeddeps=yes
3300                 $echo
3301                 $echo "*** Warning: linker path does not have real file for library $a_deplib."
3302                 $echo "*** I have the capability to make that library automatically link in when"
3303                 $echo "*** you link to this library.  But I can only do this if you have a"
3304                 $echo "*** shared version of the library, which you do not appear to have"
3305                 $echo "*** because I did check the linker path looking for a file starting"
3306                 if test -z "$potlib" ; then
3307                   $echo "*** with $libname but no candidates were found. (...for file magic test)"
3308                 else
3309                   $echo "*** with $libname and none of the candidates passed a file format test"
3310                   $echo "*** using a file magic. Last file checked: $potlib"
3311                 fi
3312               fi
3313             else
3314               # Add a -L argument.
3315               newdeplibs="$newdeplibs $a_deplib"
3316             fi
3317           done # Gone through all deplibs.
3318           ;;
3319         match_pattern*)
3320           set dummy $deplibs_check_method
3321           match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
3322           for a_deplib in $deplibs; do
3323             name="`expr $a_deplib : '-l\(.*\)'`"
3324             # If $name is empty we are operating on a -L argument.
3325             if test -n "$name" && test "$name" != "0"; then
3326               if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3327                 case " $predeps $postdeps " in
3328                 *" $a_deplib "*)
3329                   newdeplibs="$newdeplibs $a_deplib"
3330                   a_deplib=""
3331                   ;;
3332                 esac
3333               fi
3334               if test -n "$a_deplib" ; then
3335                 libname=`eval \\$echo \"$libname_spec\"`
3336                 for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
3337                   potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
3338                   for potent_lib in $potential_libs; do
3339                     potlib="$potent_lib" # see symlink-check above in file_magic test
3340                     if eval $echo \"$potent_lib\" 2>/dev/null \
3341                         | ${SED} 10q \
3342                         | $EGREP "$match_pattern_regex" > /dev/null; then
3343                       newdeplibs="$newdeplibs $a_deplib"
3344                       a_deplib=""
3345                       break 2
3346                     fi
3347                   done
3348                 done
3349               fi
3350               if test -n "$a_deplib" ; then
3351                 droppeddeps=yes
3352                 $echo
3353                 $echo "*** Warning: linker path does not have real file for library $a_deplib."
3354                 $echo "*** I have the capability to make that library automatically link in when"
3355                 $echo "*** you link to this library.  But I can only do this if you have a"
3356                 $echo "*** shared version of the library, which you do not appear to have"
3357                 $echo "*** because I did check the linker path looking for a file starting"
3358                 if test -z "$potlib" ; then
3359                   $echo "*** with $libname but no candidates were found. (...for regex pattern test)"
3360                 else
3361                   $echo "*** with $libname and none of the candidates passed a file format test"
3362                   $echo "*** using a regex pattern. Last file checked: $potlib"
3363                 fi
3364               fi
3365             else
3366               # Add a -L argument.
3367               newdeplibs="$newdeplibs $a_deplib"
3368             fi
3369           done # Gone through all deplibs.
3370           ;;
3371         none | unknown | *)
3372           newdeplibs=""
3373           tmp_deplibs=`$echo "X $deplibs" | $Xsed -e 's/ -lc$//' \
3374             -e 's/ -[LR][^ ]*//g'`
3375           if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3376             for i in $predeps $postdeps ; do
3377               # can't use Xsed below, because $i might contain '/'
3378               tmp_deplibs=`$echo "X $tmp_deplibs" | ${SED} -e "1s,^X,," -e "s,$i,,"`
3379             done
3380           fi
3381           if $echo "X $tmp_deplibs" | $Xsed -e 's/[     ]//g' \
3382             | grep . >/dev/null; then
3383             $echo
3384             if test "X$deplibs_check_method" = "Xnone"; then
3385               $echo "*** Warning: inter-library dependencies are not supported in this platform."
3386             else
3387               $echo "*** Warning: inter-library dependencies are not known to be supported."
3388             fi
3389             $echo "*** All declared inter-library dependencies are being dropped."
3390             droppeddeps=yes
3391           fi
3392           ;;
3393         esac
3394         versuffix=$versuffix_save
3395         major=$major_save
3396         release=$release_save
3397         libname=$libname_save
3398         name=$name_save
3399
3400         case $host in
3401         *-*-rhapsody* | *-*-darwin1.[012])
3402           # On Rhapsody replace the C library is the System framework
3403           newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'`
3404           ;;
3405         esac
3406
3407         if test "$droppeddeps" = yes; then
3408           if test "$module" = yes; then
3409             $echo
3410             $echo "*** Warning: libtool could not satisfy all declared inter-library"
3411             $echo "*** dependencies of module $libname.  Therefore, libtool will create"
3412             $echo "*** a static module, that should work as long as the dlopening"
3413             $echo "*** application is linked with the -dlopen flag."
3414             if test -z "$global_symbol_pipe"; then
3415               $echo
3416               $echo "*** However, this would only work if libtool was able to extract symbol"
3417               $echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
3418               $echo "*** not find such a program.  So, this module is probably useless."
3419               $echo "*** \`nm' from GNU binutils and a full rebuild may help."
3420             fi
3421             if test "$build_old_libs" = no; then
3422               oldlibs="$output_objdir/$libname.$libext"
3423               build_libtool_libs=module
3424               build_old_libs=yes
3425             else
3426               build_libtool_libs=no
3427             fi
3428           else
3429             $echo "*** The inter-library dependencies that have been dropped here will be"
3430             $echo "*** automatically added whenever a program is linked with this library"
3431             $echo "*** or is declared to -dlopen it."
3432
3433             if test "$allow_undefined" = no; then
3434               $echo
3435               $echo "*** Since this library must not contain undefined symbols,"
3436               $echo "*** because either the platform does not support them or"
3437               $echo "*** it was explicitly requested with -no-undefined,"
3438               $echo "*** libtool will only create a static version of it."
3439               if test "$build_old_libs" = no; then
3440                 oldlibs="$output_objdir/$libname.$libext"
3441                 build_libtool_libs=module
3442                 build_old_libs=yes
3443               else
3444                 build_libtool_libs=no
3445               fi
3446             fi
3447           fi
3448         fi
3449         # Done checking deplibs!
3450         deplibs=$newdeplibs
3451       fi
3452
3453       # All the library-specific variables (install_libdir is set above).
3454       library_names=
3455       old_library=
3456       dlname=
3457
3458       # Test again, we may have decided not to build it any more
3459       if test "$build_libtool_libs" = yes; then
3460         if test "$hardcode_into_libs" = yes; then
3461           # Hardcode the library paths
3462           hardcode_libdirs=
3463           dep_rpath=
3464           rpath="$finalize_rpath"
3465           test "$mode" != relink && rpath="$compile_rpath$rpath"
3466           for libdir in $rpath; do
3467             if test -n "$hardcode_libdir_flag_spec"; then
3468               if test -n "$hardcode_libdir_separator"; then
3469                 if test -z "$hardcode_libdirs"; then
3470                   hardcode_libdirs="$libdir"
3471                 else
3472                   # Just accumulate the unique libdirs.
3473                   case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
3474                   *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
3475                     ;;
3476                   *)
3477                     hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
3478                     ;;
3479                   esac
3480                 fi
3481               else
3482                 eval flag=\"$hardcode_libdir_flag_spec\"
3483                 dep_rpath="$dep_rpath $flag"
3484               fi
3485             elif test -n "$runpath_var"; then
3486               case "$perm_rpath " in
3487               *" $libdir "*) ;;
3488               *) perm_rpath="$perm_rpath $libdir" ;;
3489               esac
3490             fi
3491           done
3492           # Substitute the hardcoded libdirs into the rpath.
3493           if test -n "$hardcode_libdir_separator" &&
3494              test -n "$hardcode_libdirs"; then
3495             libdir="$hardcode_libdirs"
3496             if test -n "$hardcode_libdir_flag_spec_ld"; then
3497               eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\"
3498             else
3499               eval dep_rpath=\"$hardcode_libdir_flag_spec\"
3500             fi
3501           fi
3502           if test -n "$runpath_var" && test -n "$perm_rpath"; then
3503             # We should set the runpath_var.
3504             rpath=
3505             for dir in $perm_rpath; do
3506               rpath="$rpath$dir:"
3507             done
3508             eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
3509           fi
3510           test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
3511         fi
3512
3513         shlibpath="$finalize_shlibpath"
3514         test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
3515         if test -n "$shlibpath"; then
3516           eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
3517         fi
3518
3519         # Get the real and link names of the library.
3520         eval shared_ext=\"$shrext\"
3521         eval library_names=\"$library_names_spec\"
3522         set dummy $library_names
3523         realname="$2"
3524         shift; shift
3525
3526         if test -n "$soname_spec"; then
3527           eval soname=\"$soname_spec\"
3528         else
3529           soname="$realname"
3530         fi
3531         if test -z "$dlname"; then
3532           dlname=$soname
3533         fi
3534
3535         lib="$output_objdir/$realname"
3536         for link
3537         do
3538           linknames="$linknames $link"
3539         done
3540
3541         # Use standard objects if they are pic
3542         test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
3543
3544         # Prepare the list of exported symbols
3545         if test -z "$export_symbols"; then
3546           if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
3547             $show "generating symbol list for \`$libname.la'"
3548             export_symbols="$output_objdir/$libname.exp"
3549             $run $rm $export_symbols
3550             eval cmds=\"$export_symbols_cmds\"
3551             save_ifs="$IFS"; IFS='~'
3552             for cmd in $cmds; do
3553               IFS="$save_ifs"
3554               if len=`expr "X$cmd" : ".*"` &&
3555                test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
3556                 $show "$cmd"
3557                 $run eval "$cmd" || exit $?
3558                 skipped_export=false
3559               else
3560                 # The command line is too long to execute in one step.
3561                 $show "using reloadable object file for export list..."
3562                 skipped_export=:
3563               fi
3564             done
3565             IFS="$save_ifs"
3566             if test -n "$export_symbols_regex"; then
3567               $show "$EGREP -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\""
3568               $run eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
3569               $show "$mv \"${export_symbols}T\" \"$export_symbols\""
3570               $run eval '$mv "${export_symbols}T" "$export_symbols"'
3571             fi
3572           fi
3573         fi
3574
3575         if test -n "$export_symbols" && test -n "$include_expsyms"; then
3576           $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"'
3577         fi
3578
3579         tmp_deplibs=
3580         for test_deplib in $deplibs; do
3581                 case " $convenience " in
3582                 *" $test_deplib "*) ;;
3583                 *) 
3584                         tmp_deplibs="$tmp_deplibs $test_deplib"
3585                         ;;
3586                 esac
3587         done
3588         deplibs="$tmp_deplibs" 
3589
3590         if test -n "$convenience"; then
3591           if test -n "$whole_archive_flag_spec"; then
3592             save_libobjs=$libobjs
3593             eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
3594           else
3595             gentop="$output_objdir/${outputname}x"
3596             $show "${rm}r $gentop"
3597             $run ${rm}r "$gentop"
3598             $show "$mkdir $gentop"
3599             $run $mkdir "$gentop"
3600             status=$?
3601             if test "$status" -ne 0 && test ! -d "$gentop"; then
3602               exit $status
3603             fi
3604             generated="$generated $gentop"
3605
3606             for xlib in $convenience; do
3607               # Extract the objects.
3608               case $xlib in
3609               [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
3610               *) xabs=`pwd`"/$xlib" ;;
3611               esac
3612               xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
3613               xdir="$gentop/$xlib"
3614
3615               $show "${rm}r $xdir"
3616               $run ${rm}r "$xdir"
3617               $show "$mkdir $xdir"
3618               $run $mkdir "$xdir"
3619               status=$?
3620               if test "$status" -ne 0 && test ! -d "$xdir"; then
3621                 exit $status
3622               fi
3623               # We will extract separately just the conflicting names and we will no
3624               # longer touch any unique names. It is faster to leave these extract
3625               # automatically by $AR in one run.
3626               $show "(cd $xdir && $AR x $xabs)"
3627               $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
3628               if ($AR t "$xabs" | sort | sort -uc >/dev/null 2>&1); then
3629                 :
3630               else
3631                 $echo "$modename: warning: object name conflicts; renaming object files" 1>&2
3632                 $echo "$modename: warning: to ensure that they will not overwrite" 1>&2
3633                 $AR t "$xabs" | sort | uniq -cd | while read -r count name
3634                 do
3635                   i=1
3636                   while test "$i" -le "$count"
3637                   do
3638                    # Put our $i before any first dot (extension)
3639                    # Never overwrite any file
3640                    name_to="$name"
3641                    while test "X$name_to" = "X$name" || test -f "$xdir/$name_to"
3642                    do
3643                      name_to=`$echo "X$name_to" | $Xsed -e "s/\([^.]*\)/\1-$i/"`
3644                    done
3645                    $show "(cd $xdir && $AR xN $i $xabs '$name' && $mv '$name' '$name_to')"
3646                    $run eval "(cd \$xdir && $AR xN $i \$xabs '$name' && $mv '$name' '$name_to')" || exit $?
3647                    i=`expr $i + 1`
3648                   done
3649                 done
3650               fi
3651
3652               libobjs="$libobjs "`find $xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
3653             done
3654           fi
3655         fi
3656
3657         if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
3658           eval flag=\"$thread_safe_flag_spec\"
3659           linker_flags="$linker_flags $flag"
3660         fi
3661
3662         # Make a backup of the uninstalled library when relinking
3663         if test "$mode" = relink; then
3664           $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $?
3665         fi
3666
3667         # Do each of the archive commands.
3668         if test "$module" = yes && test -n "$module_cmds" ; then
3669           if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
3670             eval cmds=\"$module_expsym_cmds\"
3671           else
3672             eval cmds=\"$module_cmds\"
3673           fi
3674         else
3675         if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
3676           eval cmds=\"$archive_expsym_cmds\"
3677         else
3678           eval cmds=\"$archive_cmds\"
3679           fi
3680         fi
3681
3682         if test "X$skipped_export" != "X:" && len=`expr "X$cmds" : ".*"` &&
3683            test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
3684           :
3685         else
3686           # The command line is too long to link in one step, link piecewise.
3687           $echo "creating reloadable object files..."
3688
3689           # Save the value of $output and $libobjs because we want to
3690           # use them later.  If we have whole_archive_flag_spec, we
3691           # want to use save_libobjs as it was before
3692           # whole_archive_flag_spec was expanded, because we can't
3693           # assume the linker understands whole_archive_flag_spec.
3694           # This may have to be revisited, in case too many
3695           # convenience libraries get linked in and end up exceeding
3696           # the spec.
3697           if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then
3698             save_libobjs=$libobjs
3699           fi
3700           save_output=$output
3701
3702           # Clear the reloadable object creation command queue and
3703           # initialize k to one.
3704           test_cmds=
3705           concat_cmds=
3706           objlist=
3707           delfiles=
3708           last_robj=
3709           k=1
3710           output=$output_objdir/$save_output-${k}.$objext
3711           # Loop over the list of objects to be linked.
3712           for obj in $save_libobjs
3713           do
3714             eval test_cmds=\"$reload_cmds $objlist $last_robj\"
3715             if test "X$objlist" = X ||
3716                { len=`expr "X$test_cmds" : ".*"` &&
3717                  test "$len" -le "$max_cmd_len"; }; then
3718               objlist="$objlist $obj"
3719             else
3720               # The command $test_cmds is almost too long, add a
3721               # command to the queue.
3722               if test "$k" -eq 1 ; then
3723                 # The first file doesn't have a previous command to add.
3724                 eval concat_cmds=\"$reload_cmds $objlist $last_robj\"
3725               else
3726                 # All subsequent reloadable object files will link in
3727                 # the last one created.
3728                 eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\"
3729               fi
3730               last_robj=$output_objdir/$save_output-${k}.$objext
3731               k=`expr $k + 1`
3732               output=$output_objdir/$save_output-${k}.$objext
3733               objlist=$obj
3734               len=1
3735             fi
3736           done
3737           # Handle the remaining objects by creating one last
3738           # reloadable object file.  All subsequent reloadable object
3739           # files will link in the last one created.
3740           test -z "$concat_cmds" || concat_cmds=$concat_cmds~
3741           eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\"
3742
3743           if ${skipped_export-false}; then
3744             $show "generating symbol list for \`$libname.la'"
3745             export_symbols="$output_objdir/$libname.exp"
3746             $run $rm $export_symbols
3747             libobjs=$output
3748             # Append the command to create the export file.
3749             eval concat_cmds=\"\$concat_cmds~$export_symbols_cmds\"
3750           fi
3751
3752           # Set up a command to remove the reloadale object files
3753           # after they are used.
3754           i=0
3755           while test "$i" -lt "$k"
3756           do
3757             i=`expr $i + 1`
3758             delfiles="$delfiles $output_objdir/$save_output-${i}.$objext"
3759           done
3760
3761           $echo "creating a temporary reloadable object file: $output"
3762
3763           # Loop through the commands generated above and execute them.
3764           save_ifs="$IFS"; IFS='~'
3765           for cmd in $concat_cmds; do
3766             IFS="$save_ifs"
3767             $show "$cmd"
3768             $run eval "$cmd" || exit $?
3769           done
3770           IFS="$save_ifs"
3771
3772           libobjs=$output
3773           # Restore the value of output.
3774           output=$save_output
3775
3776           if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then
3777             eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
3778           fi
3779           # Expand the library linking commands again to reset the
3780           # value of $libobjs for piecewise linking.
3781
3782           # Do each of the archive commands.
3783           if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
3784             eval cmds=\"$archive_expsym_cmds\"
3785           else
3786             eval cmds=\"$archive_cmds\"
3787           fi
3788
3789           # Append the command to remove the reloadable object files
3790           # to the just-reset $cmds.
3791           eval cmds=\"\$cmds~$rm $delfiles\"
3792         fi
3793         save_ifs="$IFS"; IFS='~'
3794         for cmd in $cmds; do
3795           IFS="$save_ifs"
3796           $show "$cmd"
3797           $run eval "$cmd" || exit $?
3798         done
3799         IFS="$save_ifs"
3800
3801         # Restore the uninstalled library and exit
3802         if test "$mode" = relink; then
3803           $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $?
3804           exit 0
3805         fi
3806
3807         # Create links to the real library.
3808         for linkname in $linknames; do
3809           if test "$realname" != "$linkname"; then
3810             $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)"
3811             $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $?
3812           fi
3813         done
3814
3815         # If -module or -export-dynamic was specified, set the dlname.
3816         if test "$module" = yes || test "$export_dynamic" = yes; then
3817           # On all known operating systems, these are identical.
3818           dlname="$soname"
3819         fi
3820       fi
3821       ;;
3822
3823     obj)
3824       if test -n "$deplibs"; then
3825         $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2
3826       fi
3827
3828       if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
3829         $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2
3830       fi
3831
3832       if test -n "$rpath"; then
3833         $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2
3834       fi
3835
3836       if test -n "$xrpath"; then
3837         $echo "$modename: warning: \`-R' is ignored for objects" 1>&2
3838       fi
3839
3840       if test -n "$vinfo"; then
3841         $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2
3842       fi
3843
3844       if test -n "$release"; then
3845         $echo "$modename: warning: \`-release' is ignored for objects" 1>&2
3846       fi
3847
3848       case $output in
3849       *.lo)
3850         if test -n "$objs$old_deplibs"; then
3851           $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2
3852           exit 1
3853         fi
3854         libobj="$output"
3855         obj=`$echo "X$output" | $Xsed -e "$lo2o"`
3856         ;;
3857       *)
3858         libobj=
3859         obj="$output"
3860         ;;
3861       esac
3862
3863       # Delete the old objects.
3864       $run $rm $obj $libobj
3865
3866       # Objects from convenience libraries.  This assumes
3867       # single-version convenience libraries.  Whenever we create
3868       # different ones for PIC/non-PIC, this we'll have to duplicate
3869       # the extraction.
3870       reload_conv_objs=
3871       gentop=
3872       # reload_cmds runs $LD directly, so let us get rid of
3873       # -Wl from whole_archive_flag_spec
3874       wl=
3875
3876       if test -n "$convenience"; then
3877         if test -n "$whole_archive_flag_spec"; then
3878           eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\"
3879         else
3880           gentop="$output_objdir/${obj}x"
3881           $show "${rm}r $gentop"
3882           $run ${rm}r "$gentop"
3883           $show "$mkdir $gentop"
3884           $run $mkdir "$gentop"
3885           status=$?
3886           if test "$status" -ne 0 && test ! -d "$gentop"; then
3887             exit $status
3888           fi
3889           generated="$generated $gentop"
3890
3891           for xlib in $convenience; do
3892             # Extract the objects.
3893             case $xlib in
3894             [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
3895             *) xabs=`pwd`"/$xlib" ;;
3896             esac
3897             xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
3898             xdir="$gentop/$xlib"
3899
3900             $show "${rm}r $xdir"
3901             $run ${rm}r "$xdir"
3902             $show "$mkdir $xdir"
3903             $run $mkdir "$xdir"
3904             status=$?
3905             if test "$status" -ne 0 && test ! -d "$xdir"; then
3906               exit $status
3907             fi
3908             # We will extract separately just the conflicting names and we will no
3909             # longer touch any unique names. It is faster to leave these extract
3910             # automatically by $AR in one run.
3911             $show "(cd $xdir && $AR x $xabs)"
3912             $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
3913             if ($AR t "$xabs" | sort | sort -uc >/dev/null 2>&1); then
3914               :
3915             else
3916               $echo "$modename: warning: object name conflicts; renaming object files" 1>&2
3917               $echo "$modename: warning: to ensure that they will not overwrite" 1>&2
3918               $AR t "$xabs" | sort | uniq -cd | while read -r count name
3919               do
3920                 i=1
3921                 while test "$i" -le "$count"
3922                 do
3923                  # Put our $i before any first dot (extension)
3924                  # Never overwrite any file
3925                  name_to="$name"
3926                  while test "X$name_to" = "X$name" || test -f "$xdir/$name_to"
3927                  do
3928                    name_to=`$echo "X$name_to" | $Xsed -e "s/\([^.]*\)/\1-$i/"`
3929                  done
3930                  $show "(cd $xdir && $AR xN $i $xabs '$name' && $mv '$name' '$name_to')"
3931                  $run eval "(cd \$xdir && $AR xN $i \$xabs '$name' && $mv '$name' '$name_to')" || exit $?
3932                  i=`expr $i + 1`
3933                 done
3934               done
3935             fi
3936
3937             reload_conv_objs="$reload_objs "`find $xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
3938           done
3939         fi
3940       fi
3941
3942       # Create the old-style object.
3943       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
3944
3945       output="$obj"
3946       eval cmds=\"$reload_cmds\"
3947       save_ifs="$IFS"; IFS='~'
3948       for cmd in $cmds; do
3949         IFS="$save_ifs"
3950         $show "$cmd"
3951         $run eval "$cmd" || exit $?
3952       done
3953       IFS="$save_ifs"
3954
3955       # Exit if we aren't doing a library object file.
3956       if test -z "$libobj"; then
3957         if test -n "$gentop"; then
3958           $show "${rm}r $gentop"
3959           $run ${rm}r $gentop
3960         fi
3961
3962         exit 0
3963       fi
3964
3965       if test "$build_libtool_libs" != yes; then
3966         if test -n "$gentop"; then
3967           $show "${rm}r $gentop"
3968           $run ${rm}r $gentop
3969         fi
3970
3971         # Create an invalid libtool object if no PIC, so that we don't
3972         # accidentally link it into a program.
3973         # $show "echo timestamp > $libobj"
3974         # $run eval "echo timestamp > $libobj" || exit $?
3975         exit 0
3976       fi
3977
3978       if test -n "$pic_flag" || test "$pic_mode" != default; then
3979         # Only do commands if we really have different PIC objects.
3980         reload_objs="$libobjs $reload_conv_objs"
3981         output="$libobj"
3982         eval cmds=\"$reload_cmds\"
3983         save_ifs="$IFS"; IFS='~'
3984         for cmd in $cmds; do
3985           IFS="$save_ifs"
3986           $show "$cmd"
3987           $run eval "$cmd" || exit $?
3988         done
3989         IFS="$save_ifs"
3990       fi
3991
3992       if test -n "$gentop"; then
3993         $show "${rm}r $gentop"
3994         $run ${rm}r $gentop
3995       fi
3996
3997       exit 0
3998       ;;
3999
4000     prog)
4001       case $host in
4002         *cygwin*) output=`$echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;;
4003       esac
4004       if test -n "$vinfo"; then
4005         $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2
4006       fi
4007
4008       if test -n "$release"; then
4009         $echo "$modename: warning: \`-release' is ignored for programs" 1>&2
4010       fi
4011
4012       if test "$preload" = yes; then
4013         if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown &&
4014            test "$dlopen_self_static" = unknown; then
4015           $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support."
4016         fi
4017       fi
4018
4019       case $host in
4020       *-*-rhapsody* | *-*-darwin1.[012])
4021         # On Rhapsody replace the C library is the System framework
4022         compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
4023         finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
4024         ;;
4025       esac
4026
4027       case $host in
4028       *darwin*)
4029         # Don't allow lazy linking, it breaks C++ global constructors
4030         if test "$tagname" = CXX ; then
4031         compile_command="$compile_command ${wl}-bind_at_load"
4032         finalize_command="$finalize_command ${wl}-bind_at_load"
4033         fi
4034         ;;
4035       esac
4036
4037       compile_command="$compile_command $compile_deplibs"
4038       finalize_command="$finalize_command $finalize_deplibs"
4039
4040       if test -n "$rpath$xrpath"; then
4041         # If the user specified any rpath flags, then add them.
4042         for libdir in $rpath $xrpath; do
4043           # This is the magic to use -rpath.
4044           case "$finalize_rpath " in
4045           *" $libdir "*) ;;
4046           *) finalize_rpath="$finalize_rpath $libdir" ;;
4047           esac
4048         done
4049       fi
4050
4051       # Now hardcode the library paths
4052       rpath=
4053       hardcode_libdirs=
4054       for libdir in $compile_rpath $finalize_rpath; do
4055         if test -n "$hardcode_libdir_flag_spec"; then
4056           if test -n "$hardcode_libdir_separator"; then
4057             if test -z "$hardcode_libdirs"; then
4058               hardcode_libdirs="$libdir"
4059             else
4060               # Just accumulate the unique libdirs.
4061               case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
4062               *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
4063                 ;;
4064               *)
4065                 hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
4066                 ;;
4067               esac
4068             fi
4069           else
4070             eval flag=\"$hardcode_libdir_flag_spec\"
4071             rpath="$rpath $flag"
4072           fi
4073         elif test -n "$runpath_var"; then
4074           case "$perm_rpath " in
4075           *" $libdir "*) ;;
4076           *) perm_rpath="$perm_rpath $libdir" ;;
4077           esac
4078         fi
4079         case $host in
4080         *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
4081           case :$dllsearchpath: in
4082           *":$libdir:"*) ;;
4083           *) dllsearchpath="$dllsearchpath:$libdir";;
4084           esac
4085           ;;
4086         esac
4087       done
4088       # Substitute the hardcoded libdirs into the rpath.
4089       if test -n "$hardcode_libdir_separator" &&
4090          test -n "$hardcode_libdirs"; then
4091         libdir="$hardcode_libdirs"
4092         eval rpath=\" $hardcode_libdir_flag_spec\"
4093       fi
4094       compile_rpath="$rpath"
4095
4096       rpath=
4097       hardcode_libdirs=
4098       for libdir in $finalize_rpath; do
4099         if test -n "$hardcode_libdir_flag_spec"; then
4100           if test -n "$hardcode_libdir_separator"; then
4101             if test -z "$hardcode_libdirs"; then
4102               hardcode_libdirs="$libdir"
4103             else
4104               # Just accumulate the unique libdirs.
4105               case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
4106               *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
4107                 ;;
4108               *)
4109                 hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
4110                 ;;
4111               esac
4112             fi
4113           else
4114             eval flag=\"$hardcode_libdir_flag_spec\"
4115             rpath="$rpath $flag"
4116           fi
4117         elif test -n "$runpath_var"; then
4118           case "$finalize_perm_rpath " in
4119           *" $libdir "*) ;;
4120           *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
4121           esac
4122         fi
4123       done
4124       # Substitute the hardcoded libdirs into the rpath.
4125       if test -n "$hardcode_libdir_separator" &&
4126          test -n "$hardcode_libdirs"; then
4127         libdir="$hardcode_libdirs"
4128         eval rpath=\" $hardcode_libdir_flag_spec\"
4129       fi
4130       finalize_rpath="$rpath"
4131
4132       if test -n "$libobjs" && test "$build_old_libs" = yes; then
4133         # Transform all the library objects into standard objects.
4134         compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
4135         finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
4136       fi
4137
4138       dlsyms=
4139       if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
4140         if test -n "$NM" && test -n "$global_symbol_pipe"; then
4141           dlsyms="${outputname}S.c"
4142         else
4143           $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2
4144         fi
4145       fi
4146
4147       if test -n "$dlsyms"; then
4148         case $dlsyms in
4149         "") ;;
4150         *.c)
4151           # Discover the nlist of each of the dlfiles.
4152           nlist="$output_objdir/${outputname}.nm"
4153
4154           $show "$rm $nlist ${nlist}S ${nlist}T"
4155           $run $rm "$nlist" "${nlist}S" "${nlist}T"
4156
4157           # Parse the name list into a source file.
4158           $show "creating $output_objdir/$dlsyms"
4159
4160           test -z "$run" && $echo > "$output_objdir/$dlsyms" "\
4161 /* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */
4162 /* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */
4163
4164 #ifdef __cplusplus
4165 extern \"C\" {
4166 #endif
4167
4168 /* Prevent the only kind of declaration conflicts we can make. */
4169 #define lt_preloaded_symbols some_other_symbol
4170
4171 /* External symbol declarations for the compiler. */\
4172 "
4173
4174           if test "$dlself" = yes; then
4175             $show "generating symbol list for \`$output'"
4176
4177             test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist"
4178
4179             # Add our own program objects to the symbol list.
4180             progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
4181             for arg in $progfiles; do
4182               $show "extracting global C symbols from \`$arg'"
4183               $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
4184             done
4185
4186             if test -n "$exclude_expsyms"; then
4187               $run eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
4188               $run eval '$mv "$nlist"T "$nlist"'
4189             fi
4190
4191             if test -n "$export_symbols_regex"; then
4192               $run eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T'
4193               $run eval '$mv "$nlist"T "$nlist"'
4194             fi
4195
4196             # Prepare the list of exported symbols
4197             if test -z "$export_symbols"; then
4198               export_symbols="$output_objdir/$output.exp"
4199               $run $rm $export_symbols
4200               $run eval "${SED} -n -e '/^: @PROGRAM@$/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
4201             else
4202               $run eval "${SED} -e 's/\([][.*^$]\)/\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$output.exp"'
4203               $run eval 'grep -f "$output_objdir/$output.exp" < "$nlist" > "$nlist"T'
4204               $run eval 'mv "$nlist"T "$nlist"'
4205             fi
4206           fi
4207
4208           for arg in $dlprefiles; do
4209             $show "extracting global C symbols from \`$arg'"
4210             name=`$echo "$arg" | ${SED} -e 's%^.*/%%'`
4211             $run eval '$echo ": $name " >> "$nlist"'
4212             $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
4213           done
4214
4215           if test -z "$run"; then
4216             # Make sure we have at least an empty file.
4217             test -f "$nlist" || : > "$nlist"
4218
4219             if test -n "$exclude_expsyms"; then
4220               $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
4221               $mv "$nlist"T "$nlist"
4222             fi
4223
4224             # Try sorting and uniquifying the output.
4225             if grep -v "^: " < "$nlist" |
4226                 if sort -k 3 </dev/null >/dev/null 2>&1; then
4227                   sort -k 3
4228                 else
4229                   sort +2
4230                 fi |
4231                 uniq > "$nlist"S; then
4232               :
4233             else
4234               grep -v "^: " < "$nlist" > "$nlist"S
4235             fi
4236
4237             if test -f "$nlist"S; then
4238               eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"'
4239             else
4240               $echo '/* NONE */' >> "$output_objdir/$dlsyms"
4241             fi
4242
4243             $echo >> "$output_objdir/$dlsyms" "\
4244
4245 #undef lt_preloaded_symbols
4246
4247 #if defined (__STDC__) && __STDC__
4248 # define lt_ptr void *
4249 #else
4250 # define lt_ptr char *
4251 # define const
4252 #endif
4253
4254 /* The mapping between symbol names and symbols. */
4255 const struct {
4256   const char *name;
4257   lt_ptr address;
4258 }
4259 lt_preloaded_symbols[] =
4260 {\
4261 "
4262
4263             eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms"
4264
4265             $echo >> "$output_objdir/$dlsyms" "\
4266   {0, (lt_ptr) 0}
4267 };
4268
4269 /* This works around a problem in FreeBSD linker */
4270 #ifdef FREEBSD_WORKAROUND
4271 static const void *lt_preloaded_setup() {
4272   return lt_preloaded_symbols;
4273 }
4274 #endif
4275
4276 #ifdef __cplusplus
4277 }
4278 #endif\
4279 "
4280           fi
4281
4282           pic_flag_for_symtable=
4283           case $host in
4284           # compiling the symbol table file with pic_flag works around
4285           # a FreeBSD bug that causes programs to crash when -lm is
4286           # linked before any other PIC object.  But we must not use
4287           # pic_flag when linking with -static.  The problem exists in
4288           # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
4289           *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
4290             case "$compile_command " in
4291             *" -static "*) ;;
4292             *) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND";;
4293             esac;;
4294           *-*-hpux*)
4295             case "$compile_command " in
4296             *" -static "*) ;;
4297             *) pic_flag_for_symtable=" $pic_flag";;
4298             esac
4299           esac
4300
4301           # Now compile the dynamic symbol file.
4302           $show "(cd $output_objdir && $LTCC -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")"
4303           $run eval '(cd $output_objdir && $LTCC -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $?
4304
4305           # Clean up the generated files.
4306           $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T"
4307           $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T"
4308
4309           # Transform the symbol file into the correct name.
4310           compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
4311           finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
4312           ;;
4313         *)
4314           $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2
4315           exit 1
4316           ;;
4317         esac
4318       else
4319         # We keep going just in case the user didn't refer to
4320         # lt_preloaded_symbols.  The linker will fail if global_symbol_pipe
4321         # really was required.
4322
4323         # Nullify the symbol file.
4324         compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
4325         finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
4326       fi
4327
4328       if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
4329         # Replace the output file specification.
4330         compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
4331         link_command="$compile_command$compile_rpath"
4332
4333         # We have no uninstalled library dependencies, so finalize right now.
4334         $show "$link_command"
4335         $run eval "$link_command"
4336         status=$?
4337
4338         # Delete the generated files.
4339         if test -n "$dlsyms"; then
4340           $show "$rm $output_objdir/${outputname}S.${objext}"
4341           $run $rm "$output_objdir/${outputname}S.${objext}"
4342         fi
4343
4344         exit $status
4345       fi
4346
4347       if test -n "$shlibpath_var"; then
4348         # We should set the shlibpath_var
4349         rpath=
4350         for dir in $temp_rpath; do
4351           case $dir in
4352           [\\/]* | [A-Za-z]:[\\/]*)
4353             # Absolute path.
4354             rpath="$rpath$dir:"
4355             ;;
4356           *)
4357             # Relative path: add a thisdir entry.
4358             rpath="$rpath\$thisdir/$dir:"
4359             ;;
4360           esac
4361         done
4362         temp_rpath="$rpath"
4363       fi
4364
4365       if test -n "$compile_shlibpath$finalize_shlibpath"; then
4366         compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
4367       fi
4368       if test -n "$finalize_shlibpath"; then
4369         finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
4370       fi
4371
4372       compile_var=
4373       finalize_var=
4374       if test -n "$runpath_var"; then
4375         if test -n "$perm_rpath"; then
4376           # We should set the runpath_var.
4377           rpath=
4378           for dir in $perm_rpath; do
4379             rpath="$rpath$dir:"
4380           done
4381           compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
4382         fi
4383         if test -n "$finalize_perm_rpath"; then
4384           # We should set the runpath_var.
4385           rpath=
4386           for dir in $finalize_perm_rpath; do
4387             rpath="$rpath$dir:"
4388           done
4389           finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
4390         fi
4391       fi
4392
4393       if test "$no_install" = yes; then
4394         # We don't need to create a wrapper script.
4395         link_command="$compile_var$compile_command$compile_rpath"
4396         # Replace the output file specification.
4397         link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
4398         # Delete the old output file.
4399         $run $rm $output
4400         # Link the executable and exit
4401         $show "$link_command"
4402         $run eval "$link_command" || exit $?
4403         exit 0
4404       fi
4405
4406       if test "$hardcode_action" = relink; then
4407         # Fast installation is not supported
4408         link_command="$compile_var$compile_command$compile_rpath"
4409         relink_command="$finalize_var$finalize_command$finalize_rpath"
4410
4411         $echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2
4412         $echo "$modename: \`$output' will be relinked during installation" 1>&2
4413       else
4414         if test "$fast_install" != no; then
4415           link_command="$finalize_var$compile_command$finalize_rpath"
4416           if test "$fast_install" = yes; then
4417             relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'`
4418           else
4419             # fast_install is set to needless
4420             relink_command=
4421           fi
4422         else
4423           link_command="$compile_var$compile_command$compile_rpath"
4424           relink_command="$finalize_var$finalize_command$finalize_rpath"
4425         fi
4426       fi
4427
4428       # Replace the output file specification.
4429       link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
4430
4431       # Delete the old output files.
4432       $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname
4433
4434       $show "$link_command"
4435       $run eval "$link_command" || exit $?
4436
4437       # Now create the wrapper script.
4438       $show "creating $output"
4439
4440       # Quote the relink command for shipping.
4441       if test -n "$relink_command"; then
4442         # Preserve any variables that may affect compiler behavior
4443         for var in $variables_saved_for_relink; do
4444           if eval test -z \"\${$var+set}\"; then
4445             relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
4446           elif eval var_value=\$$var; test -z "$var_value"; then
4447             relink_command="$var=; export $var; $relink_command"
4448           else
4449             var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
4450             relink_command="$var=\"$var_value\"; export $var; $relink_command"
4451           fi
4452         done
4453         relink_command="(cd `pwd`; $relink_command)"
4454         relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
4455       fi
4456
4457       # Quote $echo for shipping.
4458       if test "X$echo" = "X$SHELL $0 --fallback-echo"; then
4459         case $0 in
4460         [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $0 --fallback-echo";;
4461         *) qecho="$SHELL `pwd`/$0 --fallback-echo";;
4462         esac
4463         qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"`
4464       else
4465         qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"`
4466       fi
4467
4468       # Only actually do things if our run command is non-null.
4469       if test -z "$run"; then
4470         # win32 will think the script is a binary if it has
4471         # a .exe suffix, so we strip it off here.
4472         case $output in
4473           *.exe) output=`$echo $output|${SED} 's,.exe$,,'` ;;
4474         esac
4475         # test for cygwin because mv fails w/o .exe extensions
4476         case $host in
4477           *cygwin*)
4478             exeext=.exe
4479             outputname=`$echo $outputname|${SED} 's,.exe$,,'` ;;
4480           *) exeext= ;;
4481         esac
4482         case $host in
4483           *cygwin* | *mingw* )
4484             cwrappersource=`$echo ${objdir}/lt-${output}.c`
4485             cwrapper=`$echo ${output}.exe`
4486             $rm $cwrappersource $cwrapper
4487             trap "$rm $cwrappersource $cwrapper; exit 1" 1 2 15
4488
4489             cat > $cwrappersource <<EOF
4490
4491 /* $cwrappersource - temporary wrapper executable for $objdir/$outputname
4492    Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
4493
4494    The $output program cannot be directly executed until all the libtool
4495    libraries that it depends on are installed.
4496    
4497    This wrapper executable should never be moved out of the build directory.
4498    If it is, it will not operate correctly.
4499
4500    Currently, it simply execs the wrapper *script* "/bin/sh $output",
4501    but could eventually absorb all of the scripts functionality and
4502    exec $objdir/$outputname directly.
4503 */
4504 EOF
4505             cat >> $cwrappersource<<"EOF"
4506 #include <stdio.h>
4507 #include <stdlib.h>
4508 #include <unistd.h>
4509 #include <malloc.h>
4510 #include <stdarg.h>
4511 #include <assert.h>
4512
4513 #if defined(PATH_MAX)
4514 # define LT_PATHMAX PATH_MAX
4515 #elif defined(MAXPATHLEN)
4516 # define LT_PATHMAX MAXPATHLEN
4517 #else
4518 # define LT_PATHMAX 1024
4519 #endif
4520
4521 #ifndef DIR_SEPARATOR
4522 #define DIR_SEPARATOR '/'
4523 #endif
4524
4525 #if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \
4526   defined (__OS2__)
4527 #define HAVE_DOS_BASED_FILE_SYSTEM
4528 #ifndef DIR_SEPARATOR_2 
4529 #define DIR_SEPARATOR_2 '\\'
4530 #endif
4531 #endif
4532
4533 #ifndef DIR_SEPARATOR_2
4534 # define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR)
4535 #else /* DIR_SEPARATOR_2 */
4536 # define IS_DIR_SEPARATOR(ch) \
4537         (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))
4538 #endif /* DIR_SEPARATOR_2 */
4539
4540 #define XMALLOC(type, num)      ((type *) xmalloc ((num) * sizeof(type)))
4541 #define XFREE(stale) do { \
4542   if (stale) { free ((void *) stale); stale = 0; } \
4543 } while (0)
4544
4545 const char *program_name = NULL;
4546
4547 void * xmalloc (size_t num);
4548 char * xstrdup (const char *string);
4549 char * basename (const char *name);
4550 char * fnqualify(const char *path);
4551 char * strendzap(char *str, const char *pat);
4552 void lt_fatal (const char *message, ...);
4553
4554 int
4555 main (int argc, char *argv[])
4556 {
4557   char **newargz;
4558   int i;
4559   
4560   program_name = (char *) xstrdup ((char *) basename (argv[0]));
4561   newargz = XMALLOC(char *, argc+2);
4562 EOF
4563
4564             cat >> $cwrappersource <<EOF
4565   newargz[0] = "$SHELL";
4566 EOF
4567
4568             cat >> $cwrappersource <<"EOF"
4569   newargz[1] = fnqualify(argv[0]);
4570   /* we know the script has the same name, without the .exe */
4571   /* so make sure newargz[1] doesn't end in .exe */
4572   strendzap(newargz[1],".exe"); 
4573   for (i = 1; i < argc; i++)
4574     newargz[i+1] = xstrdup(argv[i]);
4575   newargz[argc+1] = NULL;
4576 EOF
4577
4578             cat >> $cwrappersource <<EOF
4579   execv("$SHELL",newargz);
4580 EOF
4581
4582             cat >> $cwrappersource <<"EOF"
4583 }
4584
4585 void *
4586 xmalloc (size_t num)
4587 {
4588   void * p = (void *) malloc (num);
4589   if (!p)
4590     lt_fatal ("Memory exhausted");
4591
4592   return p;
4593 }
4594
4595 char * 
4596 xstrdup (const char *string)
4597 {
4598   return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL
4599 ;
4600 }
4601
4602 char *
4603 basename (const char *name)
4604 {
4605   const char *base;
4606
4607 #if defined (HAVE_DOS_BASED_FILE_SYSTEM)
4608   /* Skip over the disk name in MSDOS pathnames. */
4609   if (isalpha (name[0]) && name[1] == ':') 
4610     name += 2;
4611 #endif
4612
4613   for (base = name; *name; name++)
4614     if (IS_DIR_SEPARATOR (*name))
4615       base = name + 1;
4616   return (char *) base;
4617 }
4618
4619 char * 
4620 fnqualify(const char *path)
4621 {
4622   size_t size;
4623   char *p;
4624   char tmp[LT_PATHMAX + 1];
4625
4626   assert(path != NULL);
4627
4628   /* Is it qualified already? */
4629 #if defined (HAVE_DOS_BASED_FILE_SYSTEM)
4630   if (isalpha (path[0]) && path[1] == ':')
4631     return xstrdup (path);
4632 #endif
4633   if (IS_DIR_SEPARATOR (path[0]))
4634     return xstrdup (path);
4635
4636   /* prepend the current directory */
4637   /* doesn't handle '~' */
4638   if (getcwd (tmp, LT_PATHMAX) == NULL)
4639     lt_fatal ("getcwd failed");
4640   size = strlen(tmp) + 1 + strlen(path) + 1; /* +2 for '/' and '\0' */
4641   p = XMALLOC(char, size);
4642   sprintf(p, "%s%c%s", tmp, DIR_SEPARATOR, path);
4643   return p;
4644 }
4645
4646 char *
4647 strendzap(char *str, const char *pat) 
4648 {
4649   size_t len, patlen;
4650
4651   assert(str != NULL);
4652   assert(pat != NULL);
4653
4654   len = strlen(str);
4655   patlen = strlen(pat);
4656
4657   if (patlen <= len)
4658   {
4659     str += len - patlen;
4660     if (strcmp(str, pat) == 0)
4661       *str = '\0';
4662   }
4663   return str;
4664 }
4665
4666 static void
4667 lt_error_core (int exit_status, const char * mode, 
4668           const char * message, va_list ap)
4669 {
4670   fprintf (stderr, "%s: %s: ", program_name, mode);
4671   vfprintf (stderr, message, ap);
4672   fprintf (stderr, ".\n");
4673
4674   if (exit_status >= 0)
4675     exit (exit_status);
4676 }
4677
4678 void
4679 lt_fatal (const char *message, ...)
4680 {
4681   va_list ap;
4682   va_start (ap, message);
4683   lt_error_core (EXIT_FAILURE, "FATAL", message, ap);
4684   va_end (ap);
4685 }
4686 EOF
4687           # we should really use a build-platform specific compiler
4688           # here, but OTOH, the wrappers (shell script and this C one)
4689           # are only useful if you want to execute the "real" binary.
4690           # Since the "real" binary is built for $host, then this
4691           # wrapper might as well be built for $host, too.
4692           $run $LTCC -s -o $cwrapper $cwrappersource
4693           ;;
4694         esac
4695         $rm $output
4696         trap "$rm $output; exit 1" 1 2 15
4697
4698         $echo > $output "\
4699 #! $SHELL
4700
4701 # $output - temporary wrapper script for $objdir/$outputname
4702 # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
4703 #
4704 # The $output program cannot be directly executed until all the libtool
4705 # libraries that it depends on are installed.
4706 #
4707 # This wrapper script should never be moved out of the build directory.
4708 # If it is, it will not operate correctly.
4709
4710 # Sed substitution that helps us do robust quoting.  It backslashifies
4711 # metacharacters that are still active within double-quoted strings.
4712 Xsed='${SED} -e 1s/^X//'
4713 sed_quote_subst='$sed_quote_subst'
4714
4715 # The HP-UX ksh and POSIX shell print the target directory to stdout
4716 # if CDPATH is set.
4717 if test \"\${CDPATH+set}\" = set; then CDPATH=:; export CDPATH; fi
4718
4719 relink_command=\"$relink_command\"
4720
4721 # This environment variable determines our operation mode.
4722 if test \"\$libtool_install_magic\" = \"$magic\"; then
4723   # install mode needs the following variable:
4724   notinst_deplibs='$notinst_deplibs'
4725 else
4726   # When we are sourced in execute mode, \$file and \$echo are already set.
4727   if test \"\$libtool_execute_magic\" != \"$magic\"; then
4728     echo=\"$qecho\"
4729     file=\"\$0\"
4730     # Make sure echo works.
4731     if test \"X\$1\" = X--no-reexec; then
4732       # Discard the --no-reexec flag, and continue.
4733       shift
4734     elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then
4735       # Yippee, \$echo works!
4736       :
4737     else
4738       # Restart under the correct shell, and then maybe \$echo will work.
4739       exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
4740     fi
4741   fi\
4742 "
4743         $echo >> $output "\
4744
4745   # Find the directory that this script lives in.
4746   thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
4747   test \"x\$thisdir\" = \"x\$file\" && thisdir=.
4748
4749   # Follow symbolic links until we get to the real thisdir.
4750   file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\`
4751   while test -n \"\$file\"; do
4752     destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
4753
4754     # If there was a directory component, then change thisdir.
4755     if test \"x\$destdir\" != \"x\$file\"; then
4756       case \"\$destdir\" in
4757       [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
4758       *) thisdir=\"\$thisdir/\$destdir\" ;;
4759       esac
4760     fi
4761
4762     file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
4763     file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\`
4764   done
4765
4766   # Try to get the absolute directory name.
4767   absdir=\`cd \"\$thisdir\" && pwd\`
4768   test -n \"\$absdir\" && thisdir=\"\$absdir\"
4769 "
4770
4771         if test "$fast_install" = yes; then
4772           $echo >> $output "\
4773   program=lt-'$outputname'$exeext
4774   progdir=\"\$thisdir/$objdir\"
4775
4776   if test ! -f \"\$progdir/\$program\" || \\
4777      { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\
4778        test \"X\$file\" != \"X\$progdir/\$program\"; }; then
4779
4780     file=\"\$\$-\$program\"
4781
4782     if test ! -d \"\$progdir\"; then
4783       $mkdir \"\$progdir\"
4784     else
4785       $rm \"\$progdir/\$file\"
4786     fi"
4787
4788           $echo >> $output "\
4789
4790     # relink executable if necessary
4791     if test -n \"\$relink_command\"; then
4792       if relink_command_output=\`eval \$relink_command 2>&1\`; then :
4793       else
4794         $echo \"\$relink_command_output\" >&2
4795         $rm \"\$progdir/\$file\"
4796         exit 1
4797       fi
4798     fi
4799
4800     $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
4801     { $rm \"\$progdir/\$program\";
4802       $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; }
4803     $rm \"\$progdir/\$file\"
4804   fi"
4805         else
4806           $echo >> $output "\
4807   program='$outputname'
4808   progdir=\"\$thisdir/$objdir\"
4809 "
4810         fi
4811
4812         $echo >> $output "\
4813
4814   if test -f \"\$progdir/\$program\"; then"
4815
4816         # Export our shlibpath_var if we have one.
4817         if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
4818           $echo >> $output "\
4819     # Add our own library path to $shlibpath_var
4820     $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
4821
4822     # Some systems cannot cope with colon-terminated $shlibpath_var
4823     # The second colon is a workaround for a bug in BeOS R4 sed
4824     $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
4825
4826     export $shlibpath_var
4827 "
4828         fi
4829
4830         # fixup the dll searchpath if we need to.
4831         if test -n "$dllsearchpath"; then
4832           $echo >> $output "\
4833     # Add the dll search path components to the executable PATH
4834     PATH=$dllsearchpath:\$PATH
4835 "
4836         fi
4837
4838         $echo >> $output "\
4839     if test \"\$libtool_execute_magic\" != \"$magic\"; then
4840       # Run the actual program with our arguments.
4841 "
4842         case $host in
4843         # Backslashes separate directories on plain windows
4844         *-*-mingw | *-*-os2*)
4845           $echo >> $output "\
4846       exec \$progdir\\\\\$program \${1+\"\$@\"}
4847 "
4848           ;;
4849
4850         *)
4851           $echo >> $output "\
4852       exec \$progdir/\$program \${1+\"\$@\"}
4853 "
4854           ;;
4855         esac
4856         $echo >> $output "\
4857       \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\"
4858       exit 1
4859     fi
4860   else
4861     # The program doesn't exist.
4862     \$echo \"\$0: error: \$progdir/\$program does not exist\" 1>&2
4863     \$echo \"This script is just a wrapper for \$program.\" 1>&2
4864     $echo \"See the $PACKAGE documentation for more information.\" 1>&2
4865     exit 1
4866   fi
4867 fi\
4868 "
4869         chmod +x $output
4870       fi
4871       exit 0
4872       ;;
4873     esac
4874
4875     # See if we need to build an old-fashioned archive.
4876     for oldlib in $oldlibs; do
4877
4878       if test "$build_libtool_libs" = convenience; then
4879         oldobjs="$libobjs_save"
4880         addlibs="$convenience"
4881         build_libtool_libs=no
4882       else
4883         if test "$build_libtool_libs" = module; then
4884           oldobjs="$libobjs_save"
4885           build_libtool_libs=no
4886         else
4887           oldobjs="$old_deplibs $non_pic_objects"
4888         fi
4889         addlibs="$old_convenience"
4890       fi
4891
4892       if test -n "$addlibs"; then
4893         gentop="$output_objdir/${outputname}x"
4894         $show "${rm}r $gentop"
4895         $run ${rm}r "$gentop"
4896         $show "$mkdir $gentop"
4897         $run $mkdir "$gentop"
4898         status=$?
4899         if test "$status" -ne 0 && test ! -d "$gentop"; then
4900           exit $status
4901         fi
4902         generated="$generated $gentop"
4903
4904         # Add in members from convenience archives.
4905         for xlib in $addlibs; do
4906           # Extract the objects.
4907           case $xlib in
4908           [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
4909           *) xabs=`pwd`"/$xlib" ;;
4910           esac
4911           xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
4912           xdir="$gentop/$xlib"
4913
4914           $show "${rm}r $xdir"
4915           $run ${rm}r "$xdir"
4916           $show "$mkdir $xdir"
4917           $run $mkdir "$xdir"
4918           status=$?
4919           if test "$status" -ne 0 && test ! -d "$xdir"; then
4920             exit $status
4921           fi
4922           # We will extract separately just the conflicting names and we will no
4923           # longer touch any unique names. It is faster to leave these extract
4924           # automatically by $AR in one run.
4925           $show "(cd $xdir && $AR x $xabs)"
4926           $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
4927           if ($AR t "$xabs" | sort | sort -uc >/dev/null 2>&1); then
4928             :
4929           else
4930             $echo "$modename: warning: object name conflicts; renaming object files" 1>&2
4931             $echo "$modename: warning: to ensure that they will not overwrite" 1>&2
4932             $AR t "$xabs" | sort | uniq -cd | while read -r count name
4933             do
4934               i=1
4935               while test "$i" -le "$count"
4936               do
4937                # Put our $i before any first dot (extension)
4938                # Never overwrite any file
4939                name_to="$name"
4940                while test "X$name_to" = "X$name" || test -f "$xdir/$name_to"
4941                do
4942                  name_to=`$echo "X$name_to" | $Xsed -e "s/\([^.]*\)/\1-$i/"`
4943                done
4944                $show "(cd $xdir && $AR xN $i $xabs '$name' && $mv '$name' '$name_to')"
4945                $run eval "(cd \$xdir && $AR xN $i \$xabs '$name' && $mv '$name' '$name_to')" || exit $?
4946                i=`expr $i + 1`
4947               done
4948             done
4949           fi
4950
4951           oldobjs="$oldobjs "`find $xdir -name \*.${objext} -print -o -name \*.lo -print | $NL2SP`
4952         done
4953       fi
4954
4955       # Do each command in the archive commands.
4956       if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
4957         eval cmds=\"$old_archive_from_new_cmds\"
4958       else
4959         eval cmds=\"$old_archive_cmds\"
4960
4961         if len=`expr "X$cmds" : ".*"` &&
4962              test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
4963           :
4964         else
4965           # the command line is too long to link in one step, link in parts
4966           $echo "using piecewise archive linking..."
4967           save_RANLIB=$RANLIB
4968           RANLIB=:
4969           objlist=
4970           concat_cmds=
4971           save_oldobjs=$oldobjs
4972           # GNU ar 2.10+ was changed to match POSIX; thus no paths are
4973           # encoded into archives.  This makes 'ar r' malfunction in
4974           # this piecewise linking case whenever conflicting object
4975           # names appear in distinct ar calls; check, warn and compensate.
4976             if (for obj in $save_oldobjs
4977             do
4978               $echo "X$obj" | $Xsed -e 's%^.*/%%'
4979             done | sort | sort -uc >/dev/null 2>&1); then
4980             :
4981           else
4982             $echo "$modename: warning: object name conflicts; overriding AR_FLAGS to 'cq'" 1>&2
4983             $echo "$modename: warning: to ensure that POSIX-compatible ar will work" 1>&2
4984             AR_FLAGS=cq
4985           fi
4986           # Is there a better way of finding the last object in the list?
4987           for obj in $save_oldobjs
4988           do
4989             last_oldobj=$obj
4990           done  
4991           for obj in $save_oldobjs
4992           do
4993             oldobjs="$objlist $obj"
4994             objlist="$objlist $obj"
4995             eval test_cmds=\"$old_archive_cmds\"
4996             if len=`expr "X$test_cmds" : ".*"` &&
4997                test "$len" -le "$max_cmd_len"; then
4998               :
4999             else
5000               # the above command should be used before it gets too long
5001               oldobjs=$objlist
5002               if test "$obj" = "$last_oldobj" ; then
5003                 RANLIB=$save_RANLIB
5004               fi  
5005               test -z "$concat_cmds" || concat_cmds=$concat_cmds~
5006               eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\"
5007               objlist=
5008             fi
5009           done
5010           RANLIB=$save_RANLIB
5011           oldobjs=$objlist
5012           if test "X$oldobjs" = "X" ; then
5013             eval cmds=\"\$concat_cmds\"
5014           else
5015             eval cmds=\"\$concat_cmds~$old_archive_cmds\"
5016           fi
5017         fi
5018       fi
5019       save_ifs="$IFS"; IFS='~'
5020       for cmd in $cmds; do
5021         IFS="$save_ifs"
5022         $show "$cmd"
5023         $run eval "$cmd" || exit $?
5024       done
5025       IFS="$save_ifs"
5026     done
5027
5028     if test -n "$generated"; then
5029       $show "${rm}r$generated"
5030       $run ${rm}r$generated
5031     fi
5032
5033     # Now create the libtool archive.
5034     case $output in
5035     *.la)
5036       old_library=
5037       test "$build_old_libs" = yes && old_library="$libname.$libext"
5038       $show "creating $output"
5039
5040       # Preserve any variables that may affect compiler behavior
5041       for var in $variables_saved_for_relink; do
5042         if eval test -z \"\${$var+set}\"; then
5043           relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
5044         elif eval var_value=\$$var; test -z "$var_value"; then
5045           relink_command="$var=; export $var; $relink_command"
5046         else
5047           var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
5048           relink_command="$var=\"$var_value\"; export $var; $relink_command"
5049         fi
5050       done
5051       # Quote the link command for shipping.
5052       relink_command="(cd `pwd`; $SHELL $0 --mode=relink $libtool_args @inst_prefix_dir@)"
5053       relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
5054
5055       # Only create the output if not a dry run.
5056       if test -z "$run"; then
5057         for installed in no yes; do
5058           if test "$installed" = yes; then
5059             if test -z "$install_libdir"; then
5060               break
5061             fi
5062             output="$output_objdir/$outputname"i
5063             # Replace all uninstalled libtool libraries with the installed ones
5064             newdependency_libs=
5065             for deplib in $dependency_libs; do
5066               case $deplib in
5067               *.la)
5068                 name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'`
5069                 eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
5070                 if test -z "$libdir"; then
5071                   $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
5072                   exit 1
5073                 fi
5074                 newdependency_libs="$newdependency_libs $libdir/$name"
5075                 ;;
5076               *) newdependency_libs="$newdependency_libs $deplib" ;;
5077               esac
5078             done
5079             dependency_libs="$newdependency_libs"
5080             newdlfiles=
5081             for lib in $dlfiles; do
5082               name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
5083               eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
5084               if test -z "$libdir"; then
5085                 $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
5086                 exit 1
5087               fi
5088               newdlfiles="$newdlfiles $libdir/$name"
5089             done
5090             dlfiles="$newdlfiles"
5091             newdlprefiles=
5092             for lib in $dlprefiles; do
5093               name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
5094               eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
5095               if test -z "$libdir"; then
5096                 $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
5097                 exit 1
5098               fi
5099               newdlprefiles="$newdlprefiles $libdir/$name"
5100             done
5101             dlprefiles="$newdlprefiles"
5102           fi
5103           $rm $output
5104           # place dlname in correct position for cygwin
5105           tdlname=$dlname
5106           case $host,$output,$installed,$module,$dlname in
5107             *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;;
5108           esac
5109           $echo > $output "\
5110 # $outputname - a libtool library file
5111 # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
5112 #
5113 # Please DO NOT delete this file!
5114 # It is necessary for linking the library.
5115
5116 # The name that we can dlopen(3).
5117 dlname='$tdlname'
5118
5119 # Names of this library.
5120 library_names='$library_names'
5121
5122 # The name of the static archive.
5123 old_library='$old_library'
5124
5125 # Libraries that this one depends upon.
5126 dependency_libs='$dependency_libs'
5127
5128 # Version information for $libname.
5129 current=$current
5130 age=$age
5131 revision=$revision
5132
5133 # Is this an already installed library?
5134 installed=$installed
5135
5136 # Should we warn about portability when linking against -modules?
5137 shouldnotlink=$module
5138
5139 # Files to dlopen/dlpreopen
5140 dlopen='$dlfiles'
5141 dlpreopen='$dlprefiles'
5142
5143 # Directory that this library needs to be installed in:
5144 libdir='$install_libdir'"
5145           if test "$installed" = no && test "$need_relink" = yes; then
5146             $echo >> $output "\
5147 relink_command=\"$relink_command\""
5148           fi
5149         done
5150       fi
5151
5152       # Do a symbolic link so that the libtool archive can be found in
5153       # LD_LIBRARY_PATH before the program is installed.
5154       $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)"
5155       $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $?
5156       ;;
5157     esac
5158     exit 0
5159     ;;
5160
5161   # libtool install mode
5162   install)
5163     modename="$modename: install"
5164
5165     # There may be an optional sh(1) argument at the beginning of
5166     # install_prog (especially on Windows NT).
5167     if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
5168        # Allow the use of GNU shtool's install command.
5169        $echo "X$nonopt" | $Xsed | grep shtool > /dev/null; then
5170       # Aesthetically quote it.
5171       arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"`
5172       case $arg in
5173       *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \     ]*|*]*)
5174         arg="\"$arg\""
5175         ;;
5176       esac
5177       install_prog="$arg "
5178       arg="$1"
5179       shift
5180     else
5181       install_prog=
5182       arg="$nonopt"
5183     fi
5184
5185     # The real first argument should be the name of the installation program.
5186     # Aesthetically quote it.
5187     arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
5188     case $arg in
5189     *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \       ]*|*]*)
5190       arg="\"$arg\""
5191       ;;
5192     esac
5193     install_prog="$install_prog$arg"
5194
5195     # We need to accept at least all the BSD install flags.
5196     dest=
5197     files=
5198     opts=
5199     prev=
5200     install_type=
5201     isdir=no
5202     stripme=
5203     for arg
5204     do
5205       if test -n "$dest"; then
5206         files="$files $dest"
5207         dest="$arg"
5208         continue
5209       fi
5210
5211       case $arg in
5212       -d) isdir=yes ;;
5213       -f) prev="-f" ;;
5214       -g) prev="-g" ;;
5215       -m) prev="-m" ;;
5216       -o) prev="-o" ;;
5217       -s)
5218         stripme=" -s"
5219         continue
5220         ;;
5221       -*) ;;
5222
5223       *)
5224         # If the previous option needed an argument, then skip it.
5225         if test -n "$prev"; then
5226           prev=
5227         else
5228           dest="$arg"
5229           continue
5230         fi
5231         ;;
5232       esac
5233
5234       # Aesthetically quote the argument.
5235       arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
5236       case $arg in
5237       *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \     ]*|*]*)
5238         arg="\"$arg\""
5239         ;;
5240       esac
5241       install_prog="$install_prog $arg"
5242     done
5243
5244     if test -z "$install_prog"; then
5245       $echo "$modename: you must specify an install program" 1>&2
5246       $echo "$help" 1>&2
5247       exit 1
5248     fi
5249
5250     if test -n "$prev"; then
5251       $echo "$modename: the \`$prev' option requires an argument" 1>&2
5252       $echo "$help" 1>&2
5253       exit 1
5254     fi
5255
5256     if test -z "$files"; then
5257       if test -z "$dest"; then
5258         $echo "$modename: no file or destination specified" 1>&2
5259       else
5260         $echo "$modename: you must specify a destination" 1>&2
5261       fi
5262       $echo "$help" 1>&2
5263       exit 1
5264     fi
5265
5266     # Strip any trailing slash from the destination.
5267     dest=`$echo "X$dest" | $Xsed -e 's%/$%%'`
5268
5269     # Check to see that the destination is a directory.
5270     test -d "$dest" && isdir=yes
5271     if test "$isdir" = yes; then
5272       destdir="$dest"
5273       destname=
5274     else
5275       destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'`
5276       test "X$destdir" = "X$dest" && destdir=.
5277       destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'`
5278
5279       # Not a directory, so check to see that there is only one file specified.
5280       set dummy $files
5281       if test "$#" -gt 2; then
5282         $echo "$modename: \`$dest' is not a directory" 1>&2
5283         $echo "$help" 1>&2
5284         exit 1
5285       fi
5286     fi
5287     case $destdir in
5288     [\\/]* | [A-Za-z]:[\\/]*) ;;
5289     *)
5290       for file in $files; do
5291         case $file in
5292         *.lo) ;;
5293         *)
5294           $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2
5295           $echo "$help" 1>&2
5296           exit 1
5297           ;;
5298         esac
5299       done
5300       ;;
5301     esac
5302
5303     # This variable tells wrapper scripts just to set variables rather
5304     # than running their programs.
5305     libtool_install_magic="$magic"
5306
5307     staticlibs=
5308     future_libdirs=
5309     current_libdirs=
5310     for file in $files; do
5311
5312       # Do each installation.
5313       case $file in
5314       *.$libext)
5315         # Do the static libraries later.
5316         staticlibs="$staticlibs $file"
5317         ;;
5318
5319       *.la)
5320         # Check to see that this really is a libtool archive.
5321         if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
5322         else
5323           $echo "$modename: \`$file' is not a valid libtool archive" 1>&2
5324           $echo "$help" 1>&2
5325           exit 1
5326         fi
5327
5328         library_names=
5329         old_library=
5330         relink_command=
5331         # If there is no directory component, then add one.
5332         case $file in
5333         */* | *\\*) . $file ;;
5334         *) . ./$file ;;
5335         esac
5336
5337         # Add the libdir to current_libdirs if it is the destination.
5338         if test "X$destdir" = "X$libdir"; then
5339           case "$current_libdirs " in
5340           *" $libdir "*) ;;
5341           *) current_libdirs="$current_libdirs $libdir" ;;
5342           esac
5343         else
5344           # Note the libdir as a future libdir.
5345           case "$future_libdirs " in
5346           *" $libdir "*) ;;
5347           *) future_libdirs="$future_libdirs $libdir" ;;
5348           esac
5349         fi
5350
5351         dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/
5352         test "X$dir" = "X$file/" && dir=
5353         dir="$dir$objdir"
5354
5355         if test -n "$relink_command"; then
5356           # Determine the prefix the user has applied to our future dir.
5357           inst_prefix_dir=`$echo "$destdir" | $SED "s%$libdir\$%%"`
5358
5359           # Don't allow the user to place us outside of our expected
5360           # location b/c this prevents finding dependent libraries that
5361           # are installed to the same prefix.
5362           # At present, this check doesn't affect windows .dll's that
5363           # are installed into $libdir/../bin (currently, that works fine)
5364           # but it's something to keep an eye on.
5365           if test "$inst_prefix_dir" = "$destdir"; then
5366             $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2
5367             exit 1
5368           fi
5369
5370           if test -n "$inst_prefix_dir"; then
5371             # Stick the inst_prefix_dir data into the link command.
5372             relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
5373           else
5374             relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%%"`
5375           fi
5376
5377           $echo "$modename: warning: relinking \`$file'" 1>&2
5378           $show "$relink_command"
5379           if $run eval "$relink_command"; then :
5380           else
5381             $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
5382             exit 1
5383           fi
5384         fi
5385
5386         # See the names of the shared library.
5387         set dummy $library_names
5388         if test -n "$2"; then
5389           realname="$2"
5390           shift
5391           shift
5392
5393           srcname="$realname"
5394           test -n "$relink_command" && srcname="$realname"T
5395
5396           # Install the shared library and build the symlinks.
5397           $show "$install_prog $dir/$srcname $destdir/$realname"
5398           $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $?
5399           if test -n "$stripme" && test -n "$striplib"; then
5400             $show "$striplib $destdir/$realname"
5401             $run eval "$striplib $destdir/$realname" || exit $?
5402           fi
5403
5404           if test "$#" -gt 0; then
5405             # Delete the old symlinks, and create new ones.
5406             for linkname
5407             do
5408               if test "$linkname" != "$realname"; then
5409                 $show "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
5410                 $run eval "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
5411               fi
5412             done
5413           fi
5414
5415           # Do each command in the postinstall commands.
5416           lib="$destdir/$realname"
5417           eval cmds=\"$postinstall_cmds\"
5418           save_ifs="$IFS"; IFS='~'
5419           for cmd in $cmds; do
5420             IFS="$save_ifs"
5421             $show "$cmd"
5422             $run eval "$cmd" || exit $?
5423           done
5424           IFS="$save_ifs"
5425         fi
5426
5427         # Install the pseudo-library for information purposes.
5428         name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
5429         instname="$dir/$name"i
5430         $show "$install_prog $instname $destdir/$name"
5431         $run eval "$install_prog $instname $destdir/$name" || exit $?
5432
5433         # Maybe install the static library, too.
5434         test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
5435         ;;
5436
5437       *.lo)
5438         # Install (i.e. copy) a libtool object.
5439
5440         # Figure out destination file name, if it wasn't already specified.
5441         if test -n "$destname"; then
5442           destfile="$destdir/$destname"
5443         else
5444           destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
5445           destfile="$destdir/$destfile"
5446         fi
5447
5448         # Deduce the name of the destination old-style object file.
5449         case $destfile in
5450         *.lo)
5451           staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"`
5452           ;;
5453         *.$objext)
5454           staticdest="$destfile"
5455           destfile=
5456           ;;
5457         *)
5458           $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2
5459           $echo "$help" 1>&2
5460           exit 1
5461           ;;
5462         esac
5463
5464         # Install the libtool object if requested.
5465         if test -n "$destfile"; then
5466           $show "$install_prog $file $destfile"
5467           $run eval "$install_prog $file $destfile" || exit $?
5468         fi
5469
5470         # Install the old object if enabled.
5471         if test "$build_old_libs" = yes; then
5472           # Deduce the name of the old-style object file.
5473           staticobj=`$echo "X$file" | $Xsed -e "$lo2o"`
5474
5475           $show "$install_prog $staticobj $staticdest"
5476           $run eval "$install_prog \$staticobj \$staticdest" || exit $?
5477         fi
5478         exit 0
5479         ;;
5480
5481       *)
5482         # Figure out destination file name, if it wasn't already specified.
5483         if test -n "$destname"; then
5484           destfile="$destdir/$destname"
5485         else
5486           destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
5487           destfile="$destdir/$destfile"
5488         fi
5489
5490         # If the file is missing, and there is a .exe on the end, strip it
5491         # because it is most likely a libtool script we actually want to
5492         # install
5493         stripped_ext=""
5494         case $file in
5495           *.exe)
5496             if test ! -f "$file"; then
5497               file=`$echo $file|${SED} 's,.exe$,,'`
5498               stripped_ext=".exe"
5499             fi
5500             ;;
5501         esac
5502
5503         # Do a test to see if this is really a libtool program.
5504         case $host in
5505         *cygwin*|*mingw*)
5506             wrapper=`$echo $file | ${SED} -e 's,.exe$,,'`
5507             ;;
5508         *)
5509             wrapper=$file
5510             ;;
5511         esac
5512         if (${SED} -e '4q' $wrapper | grep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then
5513           notinst_deplibs=
5514           relink_command=
5515
5516           # To insure that "foo" is sourced, and not "foo.exe",
5517           # finese the cygwin/MSYS system by explicitly sourcing "foo."
5518           # which disallows the automatic-append-.exe behavior.
5519           case $build in
5520           *cygwin* | *mingw*) wrapperdot=${wrapper}. ;;
5521           *) wrapperdot=${wrapper} ;;
5522           esac
5523           # If there is no directory component, then add one.
5524           case $file in
5525           */* | *\\*) . ${wrapperdot} ;;
5526           *) . ./${wrapperdot} ;;
5527           esac
5528
5529           # Check the variables that should have been set.
5530           if test -z "$notinst_deplibs"; then
5531             $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2
5532             exit 1
5533           fi
5534
5535           finalize=yes
5536           for lib in $notinst_deplibs; do
5537             # Check to see that each library is installed.
5538             libdir=
5539             if test -f "$lib"; then
5540               # If there is no directory component, then add one.
5541               case $lib in
5542               */* | *\\*) . $lib ;;
5543               *) . ./$lib ;;
5544               esac
5545             fi
5546             libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test
5547             if test -n "$libdir" && test ! -f "$libfile"; then
5548               $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2
5549               finalize=no
5550             fi
5551           done
5552
5553           relink_command=
5554           # To insure that "foo" is sourced, and not "foo.exe",
5555           # finese the cygwin/MSYS system by explicitly sourcing "foo."
5556           # which disallows the automatic-append-.exe behavior.
5557           case $build in
5558           *cygwin* | *mingw*) wrapperdot=${wrapper}. ;;
5559           *) wrapperdot=${wrapper} ;;
5560           esac
5561           # If there is no directory component, then add one.
5562           case $file in
5563           */* | *\\*) . ${wrapperdot} ;;
5564           *) . ./${wrapperdot} ;;
5565           esac
5566
5567           outputname=
5568           if test "$fast_install" = no && test -n "$relink_command"; then
5569             if test "$finalize" = yes && test -z "$run"; then
5570               tmpdir="/tmp"
5571               test -n "$TMPDIR" && tmpdir="$TMPDIR"
5572               tmpdir="$tmpdir/libtool-$$"
5573               if $mkdir -p "$tmpdir" && chmod 700 "$tmpdir"; then :
5574               else
5575                 $echo "$modename: error: cannot create temporary directory \`$tmpdir'" 1>&2
5576                 continue
5577               fi
5578               file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'`
5579               outputname="$tmpdir/$file"
5580               # Replace the output file specification.
5581               relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`
5582
5583               $show "$relink_command"
5584               if $run eval "$relink_command"; then :
5585               else
5586                 $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
5587                 ${rm}r "$tmpdir"
5588                 continue
5589               fi
5590               file="$outputname"
5591             else
5592               $echo "$modename: warning: cannot relink \`$file'" 1>&2
5593             fi
5594           else
5595             # Install the binary that we compiled earlier.
5596             file=`$echo "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
5597           fi
5598         fi
5599
5600         # remove .exe since cygwin /usr/bin/install will append another
5601         # one anyways
5602         case $install_prog,$host in
5603         */usr/bin/install*,*cygwin*)
5604           case $file:$destfile in
5605           *.exe:*.exe)
5606             # this is ok
5607             ;;
5608           *.exe:*)
5609             destfile=$destfile.exe
5610             ;;
5611           *:*.exe)
5612             destfile=`$echo $destfile | ${SED} -e 's,.exe$,,'`
5613             ;;
5614           esac
5615           ;;
5616         esac
5617         $show "$install_prog$stripme $file $destfile"
5618         $run eval "$install_prog\$stripme \$file \$destfile" || exit $?
5619         test -n "$outputname" && ${rm}r "$tmpdir"
5620         ;;
5621       esac
5622     done
5623
5624     for file in $staticlibs; do
5625       name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
5626
5627       # Set up the ranlib parameters.
5628       oldlib="$destdir/$name"
5629
5630       $show "$install_prog $file $oldlib"
5631       $run eval "$install_prog \$file \$oldlib" || exit $?
5632
5633       if test -n "$stripme" && test -n "$striplib"; then
5634         $show "$old_striplib $oldlib"
5635         $run eval "$old_striplib $oldlib" || exit $?
5636       fi
5637
5638       # Do each command in the postinstall commands.
5639       eval cmds=\"$old_postinstall_cmds\"
5640       save_ifs="$IFS"; IFS='~'
5641       for cmd in $cmds; do
5642         IFS="$save_ifs"
5643         $show "$cmd"
5644         $run eval "$cmd" || exit $?
5645       done
5646       IFS="$save_ifs"
5647     done
5648
5649     if test -n "$future_libdirs"; then
5650       $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2
5651     fi
5652
5653     if test -n "$current_libdirs"; then
5654       # Maybe just do a dry run.
5655       test -n "$run" && current_libdirs=" -n$current_libdirs"
5656       exec_cmd='$SHELL $0 --finish$current_libdirs'
5657     else
5658       exit 0
5659     fi
5660     ;;
5661
5662   # libtool finish mode
5663   finish)
5664     modename="$modename: finish"
5665     libdirs="$nonopt"
5666     admincmds=
5667
5668     if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
5669       for dir
5670       do
5671         libdirs="$libdirs $dir"
5672       done
5673
5674       for libdir in $libdirs; do
5675         if test -n "$finish_cmds"; then
5676           # Do each command in the finish commands.
5677           eval cmds=\"$finish_cmds\"
5678           save_ifs="$IFS"; IFS='~'
5679           for cmd in $cmds; do
5680             IFS="$save_ifs"
5681             $show "$cmd"
5682             $run eval "$cmd" || admincmds="$admincmds
5683        $cmd"
5684           done
5685           IFS="$save_ifs"
5686         fi
5687         if test -n "$finish_eval"; then
5688           # Do the single finish_eval.
5689           eval cmds=\"$finish_eval\"
5690           $run eval "$cmds" || admincmds="$admincmds
5691        $cmds"
5692         fi
5693       done
5694     fi
5695
5696     # Exit here if they wanted silent mode.
5697     test "$show" = : && exit 0
5698
5699     $echo "----------------------------------------------------------------------"
5700     $echo "Libraries have been installed in:"
5701     for libdir in $libdirs; do
5702       $echo "   $libdir"
5703     done
5704     $echo
5705     $echo "If you ever happen to want to link against installed libraries"
5706     $echo "in a given directory, LIBDIR, you must either use libtool, and"
5707     $echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
5708     $echo "flag during linking and do at least one of the following:"
5709     if test -n "$shlibpath_var"; then
5710       $echo "   - add LIBDIR to the \`$shlibpath_var' environment variable"
5711       $echo "     during execution"
5712     fi
5713     if test -n "$runpath_var"; then
5714       $echo "   - add LIBDIR to the \`$runpath_var' environment variable"
5715       $echo "     during linking"
5716     fi
5717     if test -n "$hardcode_libdir_flag_spec"; then
5718       libdir=LIBDIR
5719       eval flag=\"$hardcode_libdir_flag_spec\"
5720
5721       $echo "   - use the \`$flag' linker flag"
5722     fi
5723     if test -n "$admincmds"; then
5724       $echo "   - have your system administrator run these commands:$admincmds"
5725     fi
5726     if test -f /etc/ld.so.conf; then
5727       $echo "   - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
5728     fi
5729     $echo
5730     $echo "See any operating system documentation about shared libraries for"
5731     $echo "more information, such as the ld(1) and ld.so(8) manual pages."
5732     $echo "----------------------------------------------------------------------"
5733     exit 0
5734     ;;
5735
5736   # libtool execute mode
5737   execute)
5738     modename="$modename: execute"
5739
5740     # The first argument is the command name.
5741     cmd="$nonopt"
5742     if test -z "$cmd"; then
5743       $echo "$modename: you must specify a COMMAND" 1>&2
5744       $echo "$help"
5745       exit 1
5746     fi
5747
5748     # Handle -dlopen flags immediately.
5749     for file in $execute_dlfiles; do
5750       if test ! -f "$file"; then
5751         $echo "$modename: \`$file' is not a file" 1>&2
5752         $echo "$help" 1>&2
5753         exit 1
5754       fi
5755
5756       dir=
5757       case $file in
5758       *.la)
5759         # Check to see that this really is a libtool archive.
5760         if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
5761         else
5762           $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
5763           $echo "$help" 1>&2
5764           exit 1
5765         fi
5766
5767         # Read the libtool library.
5768         dlname=
5769         library_names=
5770
5771         # If there is no directory component, then add one.
5772         case $file in
5773         */* | *\\*) . $file ;;
5774         *) . ./$file ;;
5775         esac
5776
5777         # Skip this library if it cannot be dlopened.
5778         if test -z "$dlname"; then
5779           # Warn if it was a shared library.
5780           test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'"
5781           continue
5782         fi
5783
5784         dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
5785         test "X$dir" = "X$file" && dir=.
5786
5787         if test -f "$dir/$objdir/$dlname"; then
5788           dir="$dir/$objdir"
5789         else
5790           $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2
5791           exit 1
5792         fi
5793         ;;
5794
5795       *.lo)
5796         # Just add the directory containing the .lo file.
5797         dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
5798         test "X$dir" = "X$file" && dir=.
5799         ;;
5800
5801       *)
5802         $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2
5803         continue
5804         ;;
5805       esac
5806
5807       # Get the absolute pathname.
5808       absdir=`cd "$dir" && pwd`
5809       test -n "$absdir" && dir="$absdir"
5810
5811       # Now add the directory to shlibpath_var.
5812       if eval "test -z \"\$$shlibpath_var\""; then
5813         eval "$shlibpath_var=\"\$dir\""
5814       else
5815         eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
5816       fi
5817     done
5818
5819     # This variable tells wrapper scripts just to set shlibpath_var
5820     # rather than running their programs.
5821     libtool_execute_magic="$magic"
5822
5823     # Check if any of the arguments is a wrapper script.
5824     args=
5825     for file
5826     do
5827       case $file in
5828       -*) ;;
5829       *)
5830         # Do a test to see if this is really a libtool program.
5831         if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
5832           # If there is no directory component, then add one.
5833           case $file in
5834           */* | *\\*) . $file ;;
5835           *) . ./$file ;;
5836           esac
5837
5838           # Transform arg to wrapped name.
5839           file="$progdir/$program"
5840         fi
5841         ;;
5842       esac
5843       # Quote arguments (to preserve shell metacharacters).
5844       file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"`
5845       args="$args \"$file\""
5846     done
5847
5848     if test -z "$run"; then
5849       if test -n "$shlibpath_var"; then
5850         # Export the shlibpath_var.
5851         eval "export $shlibpath_var"
5852       fi
5853
5854       # Restore saved environment variables
5855       if test "${save_LC_ALL+set}" = set; then
5856         LC_ALL="$save_LC_ALL"; export LC_ALL
5857       fi
5858       if test "${save_LANG+set}" = set; then
5859         LANG="$save_LANG"; export LANG
5860       fi
5861
5862       # Now prepare to actually exec the command.
5863       exec_cmd="\$cmd$args"
5864     else
5865       # Display what would be done.
5866       if test -n "$shlibpath_var"; then
5867         eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\""
5868         $echo "export $shlibpath_var"
5869       fi
5870       $echo "$cmd$args"
5871       exit 0
5872     fi
5873     ;;
5874
5875   # libtool clean and uninstall mode
5876   clean | uninstall)
5877     modename="$modename: $mode"
5878     rm="$nonopt"
5879     files=
5880     rmforce=
5881     exit_status=0
5882
5883     # This variable tells wrapper scripts just to set variables rather
5884     # than running their programs.
5885     libtool_install_magic="$magic"
5886
5887     for arg
5888     do
5889       case $arg in
5890       -f) rm="$rm $arg"; rmforce=yes ;;
5891       -*) rm="$rm $arg" ;;
5892       *) files="$files $arg" ;;
5893       esac
5894     done
5895
5896     if test -z "$rm"; then
5897       $echo "$modename: you must specify an RM program" 1>&2
5898       $echo "$help" 1>&2
5899       exit 1
5900     fi
5901
5902     rmdirs=
5903
5904     origobjdir="$objdir"
5905     for file in $files; do
5906       dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
5907       if test "X$dir" = "X$file"; then
5908         dir=.
5909         objdir="$origobjdir"
5910       else
5911         objdir="$dir/$origobjdir"
5912       fi
5913       name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
5914       test "$mode" = uninstall && objdir="$dir"
5915
5916       # Remember objdir for removal later, being careful to avoid duplicates
5917       if test "$mode" = clean; then
5918         case " $rmdirs " in
5919           *" $objdir "*) ;;
5920           *) rmdirs="$rmdirs $objdir" ;;
5921         esac
5922       fi
5923
5924       # Don't error if the file doesn't exist and rm -f was used.
5925       if (test -L "$file") >/dev/null 2>&1 \
5926         || (test -h "$file") >/dev/null 2>&1 \
5927         || test -f "$file"; then
5928         :
5929       elif test -d "$file"; then
5930         exit_status=1
5931         continue
5932       elif test "$rmforce" = yes; then
5933         continue
5934       fi
5935
5936       rmfiles="$file"
5937
5938       case $name in
5939       *.la)
5940         # Possibly a libtool archive, so verify it.
5941         if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
5942           . $dir/$name
5943
5944           # Delete the libtool libraries and symlinks.
5945           for n in $library_names; do
5946             rmfiles="$rmfiles $objdir/$n"
5947           done
5948           test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library"
5949           test "$mode" = clean && rmfiles="$rmfiles $objdir/$name $objdir/${name}i"
5950
5951           if test "$mode" = uninstall; then
5952             if test -n "$library_names"; then
5953               # Do each command in the postuninstall commands.
5954               eval cmds=\"$postuninstall_cmds\"
5955               save_ifs="$IFS"; IFS='~'
5956               for cmd in $cmds; do
5957                 IFS="$save_ifs"
5958                 $show "$cmd"
5959                 $run eval "$cmd"
5960                 if test "$?" -ne 0 && test "$rmforce" != yes; then
5961                   exit_status=1
5962                 fi
5963               done
5964               IFS="$save_ifs"
5965             fi
5966
5967             if test -n "$old_library"; then
5968               # Do each command in the old_postuninstall commands.
5969               eval cmds=\"$old_postuninstall_cmds\"
5970               save_ifs="$IFS"; IFS='~'
5971               for cmd in $cmds; do
5972                 IFS="$save_ifs"
5973                 $show "$cmd"
5974                 $run eval "$cmd"
5975                 if test "$?" -ne 0 && test "$rmforce" != yes; then
5976                   exit_status=1
5977                 fi
5978               done
5979               IFS="$save_ifs"
5980             fi
5981             # FIXME: should reinstall the best remaining shared library.
5982           fi
5983         fi
5984         ;;
5985
5986       *.lo)
5987         # Possibly a libtool object, so verify it.
5988         if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
5989
5990           # Read the .lo file
5991           . $dir/$name
5992
5993           # Add PIC object to the list of files to remove.
5994           if test -n "$pic_object" \
5995              && test "$pic_object" != none; then
5996             rmfiles="$rmfiles $dir/$pic_object"
5997           fi
5998
5999           # Add non-PIC object to the list of files to remove.
6000           if test -n "$non_pic_object" \
6001              && test "$non_pic_object" != none; then
6002             rmfiles="$rmfiles $dir/$non_pic_object"
6003           fi
6004         fi
6005         ;;
6006
6007       *)
6008         if test "$mode" = clean ; then
6009           noexename=$name
6010           case $file in
6011           *.exe) 
6012             file=`$echo $file|${SED} 's,.exe$,,'`
6013             noexename=`$echo $name|${SED} 's,.exe$,,'`
6014             # $file with .exe has already been added to rmfiles,
6015             # add $file without .exe
6016             rmfiles="$rmfiles $file"
6017             ;;
6018           esac
6019           # Do a test to see if this is a libtool program.
6020           if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
6021             relink_command=
6022             . $dir/$noexename
6023
6024             # note $name still contains .exe if it was in $file originally
6025             # as does the version of $file that was added into $rmfiles
6026             rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}"
6027             if test "$fast_install" = yes && test -n "$relink_command"; then
6028               rmfiles="$rmfiles $objdir/lt-$name"
6029             fi
6030             if test "X$noexename" != "X$name" ; then
6031               rmfiles="$rmfiles $objdir/lt-${noexename}.c"
6032             fi
6033           fi
6034         fi
6035         ;;
6036       esac
6037       $show "$rm $rmfiles"
6038       $run $rm $rmfiles || exit_status=1
6039     done
6040     objdir="$origobjdir"
6041
6042     # Try to remove the ${objdir}s in the directories where we deleted files
6043     for dir in $rmdirs; do
6044       if test -d "$dir"; then
6045         $show "rmdir $dir"
6046         $run rmdir $dir >/dev/null 2>&1
6047       fi
6048     done
6049
6050     exit $exit_status
6051     ;;
6052
6053   "")
6054     $echo "$modename: you must specify a MODE" 1>&2
6055     $echo "$generic_help" 1>&2
6056     exit 1
6057     ;;
6058   esac
6059
6060   if test -z "$exec_cmd"; then
6061     $echo "$modename: invalid operation mode \`$mode'" 1>&2
6062     $echo "$generic_help" 1>&2
6063     exit 1
6064   fi
6065 fi # test -z "$show_help"
6066
6067 if test -n "$exec_cmd"; then
6068   eval exec $exec_cmd
6069   exit 1
6070 fi
6071
6072 # We need to display help for each of the modes.
6073 case $mode in
6074 "") $echo \
6075 "Usage: $modename [OPTION]... [MODE-ARG]...
6076
6077 Provide generalized library-building support services.
6078
6079     --config          show all configuration variables
6080     --debug           enable verbose shell tracing
6081 -n, --dry-run         display commands without modifying any files
6082     --features        display basic configuration information and exit
6083     --finish          same as \`--mode=finish'
6084     --help            display this help message and exit
6085     --mode=MODE       use operation mode MODE [default=inferred from MODE-ARGS]
6086     --quiet           same as \`--silent'
6087     --silent          don't print informational messages
6088     --tag=TAG         use configuration variables from tag TAG
6089     --version         print version information
6090
6091 MODE must be one of the following:
6092
6093       clean           remove files from the build directory
6094       compile         compile a source file into a libtool object
6095       execute         automatically set library path, then run a program
6096       finish          complete the installation of libtool libraries
6097       install         install libraries or executables
6098       link            create a library or an executable
6099       uninstall       remove libraries from an installed directory
6100
6101 MODE-ARGS vary depending on the MODE.  Try \`$modename --help --mode=MODE' for
6102 a more detailed description of MODE.
6103
6104 Report bugs to <bug-libtool@gnu.org>."
6105   exit 0
6106   ;;
6107
6108 clean)
6109   $echo \
6110 "Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
6111
6112 Remove files from the build directory.
6113
6114 RM is the name of the program to use to delete files associated with each FILE
6115 (typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
6116 to RM.
6117
6118 If FILE is a libtool library, object or program, all the files associated
6119 with it are deleted. Otherwise, only FILE itself is deleted using RM."
6120   ;;
6121
6122 compile)
6123   $echo \
6124 "Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
6125
6126 Compile a source file into a libtool library object.
6127
6128 This mode accepts the following additional options:
6129
6130   -o OUTPUT-FILE    set the output file name to OUTPUT-FILE
6131   -prefer-pic       try to building PIC objects only
6132   -prefer-non-pic   try to building non-PIC objects only
6133   -static           always build a \`.o' file suitable for static linking
6134
6135 COMPILE-COMMAND is a command to be used in creating a \`standard' object file
6136 from the given SOURCEFILE.
6137
6138 The output file name is determined by removing the directory component from
6139 SOURCEFILE, then substituting the C source code suffix \`.c' with the
6140 library object suffix, \`.lo'."
6141   ;;
6142
6143 execute)
6144   $echo \
6145 "Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]...
6146
6147 Automatically set library path, then run a program.
6148
6149 This mode accepts the following additional options:
6150
6151   -dlopen FILE      add the directory containing FILE to the library path
6152
6153 This mode sets the library path environment variable according to \`-dlopen'
6154 flags.
6155
6156 If any of the ARGS are libtool executable wrappers, then they are translated
6157 into their corresponding uninstalled binary, and any of their required library
6158 directories are added to the library path.
6159
6160 Then, COMMAND is executed, with ARGS as arguments."
6161   ;;
6162
6163 finish)
6164   $echo \
6165 "Usage: $modename [OPTION]... --mode=finish [LIBDIR]...
6166
6167 Complete the installation of libtool libraries.
6168
6169 Each LIBDIR is a directory that contains libtool libraries.
6170
6171 The commands that this mode executes may require superuser privileges.  Use
6172 the \`--dry-run' option if you just want to see what would be executed."
6173   ;;
6174
6175 install)
6176   $echo \
6177 "Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND...
6178
6179 Install executables or libraries.
6180
6181 INSTALL-COMMAND is the installation command.  The first component should be
6182 either the \`install' or \`cp' program.
6183
6184 The rest of the components are interpreted as arguments to that command (only
6185 BSD-compatible install options are recognized)."
6186   ;;
6187
6188 link)
6189   $echo \
6190 "Usage: $modename [OPTION]... --mode=link LINK-COMMAND...
6191
6192 Link object files or libraries together to form another library, or to
6193 create an executable program.
6194
6195 LINK-COMMAND is a command using the C compiler that you would use to create
6196 a program from several object files.
6197
6198 The following components of LINK-COMMAND are treated specially:
6199
6200   -all-static       do not do any dynamic linking at all
6201   -avoid-version    do not add a version suffix if possible
6202   -dlopen FILE      \`-dlpreopen' FILE if it cannot be dlopened at runtime
6203   -dlpreopen FILE   link in FILE and add its symbols to lt_preloaded_symbols
6204   -export-dynamic   allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
6205   -export-symbols SYMFILE
6206                     try to export only the symbols listed in SYMFILE
6207   -export-symbols-regex REGEX
6208                     try to export only the symbols matching REGEX
6209   -LLIBDIR          search LIBDIR for required installed libraries
6210   -lNAME            OUTPUT-FILE requires the installed library libNAME
6211   -module           build a library that can dlopened
6212   -no-fast-install  disable the fast-install mode
6213   -no-install       link a not-installable executable
6214   -no-undefined     declare that a library does not refer to external symbols
6215   -o OUTPUT-FILE    create OUTPUT-FILE from the specified objects
6216   -objectlist FILE  Use a list of object files found in FILE to specify objects
6217   -release RELEASE  specify package release information
6218   -rpath LIBDIR     the created library will eventually be installed in LIBDIR
6219   -R[ ]LIBDIR       add LIBDIR to the runtime path of programs and libraries
6220   -static           do not do any dynamic linking of libtool libraries
6221   -version-info CURRENT[:REVISION[:AGE]]
6222                     specify library version info [each variable defaults to 0]
6223
6224 All other options (arguments beginning with \`-') are ignored.
6225
6226 Every other argument is treated as a filename.  Files ending in \`.la' are
6227 treated as uninstalled libtool libraries, other files are standard or library
6228 object files.
6229
6230 If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
6231 only library objects (\`.lo' files) may be specified, and \`-rpath' is
6232 required, except when creating a convenience library.
6233
6234 If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
6235 using \`ar' and \`ranlib', or on Windows using \`lib'.
6236
6237 If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
6238 is created, otherwise an executable program is created."
6239   ;;
6240
6241 uninstall)
6242   $echo \
6243 "Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
6244
6245 Remove libraries from an installation directory.
6246
6247 RM is the name of the program to use to delete files associated with each FILE
6248 (typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
6249 to RM.
6250
6251 If FILE is a libtool library, all the files associated with it are deleted.
6252 Otherwise, only FILE itself is deleted using RM."
6253   ;;
6254
6255 *)
6256   $echo "$modename: invalid operation mode \`$mode'" 1>&2
6257   $echo "$help" 1>&2
6258   exit 1
6259   ;;
6260 esac
6261
6262 $echo
6263 $echo "Try \`$modename --help' for more information about other modes."
6264
6265 exit 0
6266
6267 # The TAGs below are defined such that we never get into a situation
6268 # in which we disable both kinds of libraries.  Given conflicting
6269 # choices, we go for a static library, that is the most portable,
6270 # since we can't tell whether shared libraries were disabled because
6271 # the user asked for that or because the platform doesn't support
6272 # them.  This is particularly important on AIX, because we don't
6273 # support having both static and shared libraries enabled at the same
6274 # time on that platform, so we default to a shared-only configuration.
6275 # If a disable-shared tag is given, we'll fallback to a static-only
6276 # configuration.  But we'll never go from static-only to shared-only.
6277
6278 # ### BEGIN LIBTOOL TAG CONFIG: disable-shared
6279 build_libtool_libs=no
6280 build_old_libs=yes
6281 # ### END LIBTOOL TAG CONFIG: disable-shared
6282
6283 # ### BEGIN LIBTOOL TAG CONFIG: disable-static
6284 build_old_libs=`case $build_libtool_libs in yes) $echo no;; *) $echo yes;; esac`
6285 # ### END LIBTOOL TAG CONFIG: disable-static
6286
6287 # Local Variables:
6288 # mode:shell-script
6289 # sh-indentation:2
6290 # End: