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