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