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