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