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