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