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