1#! /usr/bin/env sh
2## DO NOT EDIT - This file generated from ./build-aux/ltmain.in
3##               by inline-source v2019-02-19.15
4
5# libtool (GNU libtool) 2.4.7
6# Provide generalized library-building support services.
7# Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
8
9# Copyright (C) 1996-2019, 2021-2022 Free Software Foundation, Inc.
10# This is free software; see the source for copying conditions.  There is NO
11# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
12
13# GNU Libtool is free software; you can redistribute it and/or modify
14# it under the terms of the GNU General Public License as published by
15# the Free Software Foundation; either version 2 of the License, or
16# (at your option) any later version.
17#
18# As a special exception to the GNU General Public License,
19# if you distribute this file as part of a program or library that
20# is built using GNU Libtool, you may include this file under the
21# same distribution terms that you use for the rest of that program.
22#
23# GNU Libtool is distributed in the hope that it will be useful, but
24# WITHOUT ANY WARRANTY; without even the implied warranty of
25# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
26# General Public License for more details.
27#
28# You should have received a copy of the GNU General Public License
29# along with this program.  If not, see <http://www.gnu.org/licenses/>.
30
31
32PROGRAM=libtool
33PACKAGE=libtool
34VERSION=2.4.7
35package_revision=2.4.7
36
37
38## ------ ##
39## Usage. ##
40## ------ ##
41
42# Run './libtool --help' for help with using this script from the
43# command line.
44
45
46## ------------------------------- ##
47## User overridable command paths. ##
48## ------------------------------- ##
49
50# After configure completes, it has a better idea of some of the
51# shell tools we need than the defaults used by the functions shared
52# with bootstrap, so set those here where they can still be over-
53# ridden by the user, but otherwise take precedence.
54
55: ${AUTOCONF="autoconf"}
56: ${AUTOMAKE="automake"}
57
58
59## -------------------------- ##
60## Source external libraries. ##
61## -------------------------- ##
62
63# Much of our low-level functionality needs to be sourced from external
64# libraries, which are installed to $pkgauxdir.
65
66# Set a version string for this script.
67scriptversion=2019-02-19.15; # UTC
68
69# General shell script boiler plate, and helper functions.
70# Written by Gary V. Vaughan, 2004
71
72# This is free software.  There is NO warranty; not even for
73# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
74#
75# Copyright (C) 2004-2019, 2021 Bootstrap Authors
76#
77# This file is dual licensed under the terms of the MIT license
78# <https://opensource.org/license/MIT>, and GPL version 2 or later
79# <http://www.gnu.org/licenses/gpl-2.0.html>.  You must apply one of
80# these licenses when using or redistributing this software or any of
81# the files within it.  See the URLs above, or the file `LICENSE`
82# included in the Bootstrap distribution for the full license texts.
83
84# Please report bugs or propose patches to:
85# <https://github.com/gnulib-modules/bootstrap/issues>
86
87
88## ------ ##
89## Usage. ##
90## ------ ##
91
92# Evaluate this file near the top of your script to gain access to
93# the functions and variables defined here:
94#
95#   . `echo "$0" | ${SED-sed} 's|[^/]*$||'`/build-aux/funclib.sh
96#
97# If you need to override any of the default environment variable
98# settings, do that before evaluating this file.
99
100
101## -------------------- ##
102## Shell normalisation. ##
103## -------------------- ##
104
105# Some shells need a little help to be as Bourne compatible as possible.
106# Before doing anything else, make sure all that help has been provided!
107
108DUALCASE=1; export DUALCASE # for MKS sh
109if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
110  emulate sh
111  NULLCMD=:
112  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
113  # is contrary to our usage.  Disable this feature.
114  alias -g '${1+"$@"}'='"$@"'
115  setopt NO_GLOB_SUBST
116else
117  case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac
118fi
119
120# NLS nuisances: We save the old values in case they are required later.
121_G_user_locale=
122_G_safe_locale=
123for _G_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
124do
125  eval "if test set = \"\${$_G_var+set}\"; then
126          save_$_G_var=\$$_G_var
127          $_G_var=C
128	  export $_G_var
129	  _G_user_locale=\"$_G_var=\\\$save_\$_G_var; \$_G_user_locale\"
130	  _G_safe_locale=\"$_G_var=C; \$_G_safe_locale\"
131	fi"
132done
133# These NLS vars are set unconditionally (bootstrap issue #24).  Unset those
134# in case the environment reset is needed later and the $save_* variant is not
135# defined (see the code above).
136LC_ALL=C
137LANGUAGE=C
138export LANGUAGE LC_ALL
139
140# Make sure IFS has a sensible default
141sp=' '
142nl='
143'
144IFS="$sp	$nl"
145
146# There are apparently some retarded systems that use ';' as a PATH separator!
147if test "${PATH_SEPARATOR+set}" != set; then
148  PATH_SEPARATOR=:
149  (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
150    (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
151      PATH_SEPARATOR=';'
152  }
153fi
154
155
156# func_unset VAR
157# --------------
158# Portably unset VAR.
159# In some shells, an 'unset VAR' statement leaves a non-zero return
160# status if VAR is already unset, which might be problematic if the
161# statement is used at the end of a function (thus poisoning its return
162# value) or when 'set -e' is active (causing even a spurious abort of
163# the script in this case).
164func_unset ()
165{
166    { eval $1=; (eval unset $1) >/dev/null 2>&1 && eval unset $1 || : ; }
167}
168
169
170# Make sure CDPATH doesn't cause `cd` commands to output the target dir.
171func_unset CDPATH
172
173# Make sure ${,E,F}GREP behave sanely.
174func_unset GREP_OPTIONS
175
176
177## ------------------------- ##
178## Locate command utilities. ##
179## ------------------------- ##
180
181
182# func_executable_p FILE
183# ----------------------
184# Check that FILE is an executable regular file.
185func_executable_p ()
186{
187    test -f "$1" && test -x "$1"
188}
189
190
191# func_path_progs PROGS_LIST CHECK_FUNC [PATH]
192# --------------------------------------------
193# Search for either a program that responds to --version with output
194# containing "GNU", or else returned by CHECK_FUNC otherwise, by
195# trying all the directories in PATH with each of the elements of
196# PROGS_LIST.
197#
198# CHECK_FUNC should accept the path to a candidate program, and
199# set $func_check_prog_result if it truncates its output less than
200# $_G_path_prog_max characters.
201func_path_progs ()
202{
203    _G_progs_list=$1
204    _G_check_func=$2
205    _G_PATH=${3-"$PATH"}
206
207    _G_path_prog_max=0
208    _G_path_prog_found=false
209    _G_save_IFS=$IFS; IFS=${PATH_SEPARATOR-:}
210    for _G_dir in $_G_PATH; do
211      IFS=$_G_save_IFS
212      test -z "$_G_dir" && _G_dir=.
213      for _G_prog_name in $_G_progs_list; do
214        for _exeext in '' .EXE; do
215          _G_path_prog=$_G_dir/$_G_prog_name$_exeext
216          func_executable_p "$_G_path_prog" || continue
217          case `"$_G_path_prog" --version 2>&1` in
218            *GNU*) func_path_progs_result=$_G_path_prog _G_path_prog_found=: ;;
219            *)     $_G_check_func $_G_path_prog
220		   func_path_progs_result=$func_check_prog_result
221		   ;;
222          esac
223          $_G_path_prog_found && break 3
224        done
225      done
226    done
227    IFS=$_G_save_IFS
228    test -z "$func_path_progs_result" && {
229      echo "no acceptable sed could be found in \$PATH" >&2
230      exit 1
231    }
232}
233
234
235# We want to be able to use the functions in this file before configure
236# has figured out where the best binaries are kept, which means we have
237# to search for them ourselves - except when the results are already set
238# where we skip the searches.
239
240# Unless the user overrides by setting SED, search the path for either GNU
241# sed, or the sed that truncates its output the least.
242test -z "$SED" && {
243  _G_sed_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
244  for _G_i in 1 2 3 4 5 6 7; do
245    _G_sed_script=$_G_sed_script$nl$_G_sed_script
246  done
247  echo "$_G_sed_script" 2>/dev/null | sed 99q >conftest.sed
248  _G_sed_script=
249
250  func_check_prog_sed ()
251  {
252    _G_path_prog=$1
253
254    _G_count=0
255    printf 0123456789 >conftest.in
256    while :
257    do
258      cat conftest.in conftest.in >conftest.tmp
259      mv conftest.tmp conftest.in
260      cp conftest.in conftest.nl
261      echo '' >> conftest.nl
262      "$_G_path_prog" -f conftest.sed <conftest.nl >conftest.out 2>/dev/null || break
263      diff conftest.out conftest.nl >/dev/null 2>&1 || break
264      _G_count=`expr $_G_count + 1`
265      if test "$_G_count" -gt "$_G_path_prog_max"; then
266        # Best one so far, save it but keep looking for a better one
267        func_check_prog_result=$_G_path_prog
268        _G_path_prog_max=$_G_count
269      fi
270      # 10*(2^10) chars as input seems more than enough
271      test 10 -lt "$_G_count" && break
272    done
273    rm -f conftest.in conftest.tmp conftest.nl conftest.out
274  }
275
276  func_path_progs "sed gsed" func_check_prog_sed "$PATH:/usr/xpg4/bin"
277  rm -f conftest.sed
278  SED=$func_path_progs_result
279}
280
281
282# Unless the user overrides by setting GREP, search the path for either GNU
283# grep, or the grep that truncates its output the least.
284test -z "$GREP" && {
285  func_check_prog_grep ()
286  {
287    _G_path_prog=$1
288
289    _G_count=0
290    _G_path_prog_max=0
291    printf 0123456789 >conftest.in
292    while :
293    do
294      cat conftest.in conftest.in >conftest.tmp
295      mv conftest.tmp conftest.in
296      cp conftest.in conftest.nl
297      echo 'GREP' >> conftest.nl
298      "$_G_path_prog" -e 'GREP$' -e '-(cannot match)-' <conftest.nl >conftest.out 2>/dev/null || break
299      diff conftest.out conftest.nl >/dev/null 2>&1 || break
300      _G_count=`expr $_G_count + 1`
301      if test "$_G_count" -gt "$_G_path_prog_max"; then
302        # Best one so far, save it but keep looking for a better one
303        func_check_prog_result=$_G_path_prog
304        _G_path_prog_max=$_G_count
305      fi
306      # 10*(2^10) chars as input seems more than enough
307      test 10 -lt "$_G_count" && break
308    done
309    rm -f conftest.in conftest.tmp conftest.nl conftest.out
310  }
311
312  func_path_progs "grep ggrep" func_check_prog_grep "$PATH:/usr/xpg4/bin"
313  GREP=$func_path_progs_result
314}
315
316
317## ------------------------------- ##
318## User overridable command paths. ##
319## ------------------------------- ##
320
321# All uppercase variable names are used for environment variables.  These
322# variables can be overridden by the user before calling a script that
323# uses them if a suitable command of that name is not already available
324# in the command search PATH.
325
326: ${CP="cp -f"}
327: ${ECHO="printf %s\n"}
328: ${EGREP="$GREP -E"}
329: ${FGREP="$GREP -F"}
330: ${LN_S="ln -s"}
331: ${MAKE="make"}
332: ${MKDIR="mkdir"}
333: ${MV="mv -f"}
334: ${RM="rm -f"}
335: ${SHELL="${CONFIG_SHELL-/bin/sh}"}
336
337
338## -------------------- ##
339## Useful sed snippets. ##
340## -------------------- ##
341
342sed_dirname='s|/[^/]*$||'
343sed_basename='s|^.*/||'
344
345# Sed substitution that helps us do robust quoting.  It backslashifies
346# metacharacters that are still active within double-quoted strings.
347sed_quote_subst='s|\([`"$\\]\)|\\\1|g'
348
349# Same as above, but do not quote variable references.
350sed_double_quote_subst='s/\(["`\\]\)/\\\1/g'
351
352# Sed substitution that turns a string into a regex matching for the
353# string literally.
354sed_make_literal_regex='s|[].[^$\\*\/]|\\&|g'
355
356# Sed substitution that converts a w32 file name or path
357# that contains forward slashes, into one that contains
358# (escaped) backslashes.  A very naive implementation.
359sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
360
361# Re-'\' parameter expansions in output of sed_double_quote_subst that
362# were '\'-ed in input to the same.  If an odd number of '\' preceded a
363# '$' in input to sed_double_quote_subst, that '$' was protected from
364# expansion.  Since each input '\' is now two '\'s, look for any number
365# of runs of four '\'s followed by two '\'s and then a '$'.  '\' that '$'.
366_G_bs='\\'
367_G_bs2='\\\\'
368_G_bs4='\\\\\\\\'
369_G_dollar='\$'
370sed_double_backslash="\
371  s/$_G_bs4/&\\
372/g
373  s/^$_G_bs2$_G_dollar/$_G_bs&/
374  s/\\([^$_G_bs]\\)$_G_bs2$_G_dollar/\\1$_G_bs2$_G_bs$_G_dollar/g
375  s/\n//g"
376
377# require_check_ifs_backslash
378# ---------------------------
379# Check if we can use backslash as IFS='\' separator, and set
380# $check_ifs_backshlash_broken to ':' or 'false'.
381require_check_ifs_backslash=func_require_check_ifs_backslash
382func_require_check_ifs_backslash ()
383{
384  _G_save_IFS=$IFS
385  IFS='\'
386  _G_check_ifs_backshlash='a\\b'
387  for _G_i in $_G_check_ifs_backshlash
388  do
389  case $_G_i in
390  a)
391    check_ifs_backshlash_broken=false
392    ;;
393  '')
394    break
395    ;;
396  *)
397    check_ifs_backshlash_broken=:
398    break
399    ;;
400  esac
401  done
402  IFS=$_G_save_IFS
403  require_check_ifs_backslash=:
404}
405
406
407## ----------------- ##
408## Global variables. ##
409## ----------------- ##
410
411# Except for the global variables explicitly listed below, the following
412# functions in the '^func_' namespace, and the '^require_' namespace
413# variables initialised in the 'Resource management' section, sourcing
414# this file will not pollute your global namespace with anything
415# else. There's no portable way to scope variables in Bourne shell
416# though, so actually running these functions will sometimes place
417# results into a variable named after the function, and often use
418# temporary variables in the '^_G_' namespace. If you are careful to
419# avoid using those namespaces casually in your sourcing script, things
420# should continue to work as you expect. And, of course, you can freely
421# overwrite any of the functions or variables defined here before
422# calling anything to customize them.
423
424EXIT_SUCCESS=0
425EXIT_FAILURE=1
426EXIT_MISMATCH=63  # $? = 63 is used to indicate version mismatch to missing.
427EXIT_SKIP=77	  # $? = 77 is used to indicate a skipped test to automake.
428
429# Allow overriding, eg assuming that you follow the convention of
430# putting '$debug_cmd' at the start of all your functions, you can get
431# bash to show function call trace with:
432#
433#    debug_cmd='eval echo "${FUNCNAME[0]} $*" >&2' bash your-script-name
434debug_cmd=${debug_cmd-":"}
435exit_cmd=:
436
437# By convention, finish your script with:
438#
439#    exit $exit_status
440#
441# so that you can set exit_status to non-zero if you want to indicate
442# something went wrong during execution without actually bailing out at
443# the point of failure.
444exit_status=$EXIT_SUCCESS
445
446# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
447# is ksh but when the shell is invoked as "sh" and the current value of
448# the _XPG environment variable is not equal to 1 (one), the special
449# positional parameter $0, within a function call, is the name of the
450# function.
451progpath=$0
452
453# The name of this program.
454progname=`$ECHO "$progpath" |$SED "$sed_basename"`
455
456# Make sure we have an absolute progpath for reexecution:
457case $progpath in
458  [\\/]*|[A-Za-z]:\\*) ;;
459  *[\\/]*)
460     progdir=`$ECHO "$progpath" |$SED "$sed_dirname"`
461     progdir=`cd "$progdir" && pwd`
462     progpath=$progdir/$progname
463     ;;
464  *)
465     _G_IFS=$IFS
466     IFS=${PATH_SEPARATOR-:}
467     for progdir in $PATH; do
468       IFS=$_G_IFS
469       test -x "$progdir/$progname" && break
470     done
471     IFS=$_G_IFS
472     test -n "$progdir" || progdir=`pwd`
473     progpath=$progdir/$progname
474     ;;
475esac
476
477
478## ----------------- ##
479## Standard options. ##
480## ----------------- ##
481
482# The following options affect the operation of the functions defined
483# below, and should be set appropriately depending on run-time para-
484# meters passed on the command line.
485
486opt_dry_run=false
487opt_quiet=false
488opt_verbose=false
489
490# Categories 'all' and 'none' are always available.  Append any others
491# you will pass as the first argument to func_warning from your own
492# code.
493warning_categories=
494
495# By default, display warnings according to 'opt_warning_types'.  Set
496# 'warning_func'  to ':' to elide all warnings, or func_fatal_error to
497# treat the next displayed warning as a fatal error.
498warning_func=func_warn_and_continue
499
500# Set to 'all' to display all warnings, 'none' to suppress all
501# warnings, or a space delimited list of some subset of
502# 'warning_categories' to display only the listed warnings.
503opt_warning_types=all
504
505
506## -------------------- ##
507## Resource management. ##
508## -------------------- ##
509
510# This section contains definitions for functions that each ensure a
511# particular resource (a file, or a non-empty configuration variable for
512# example) is available, and if appropriate to extract default values
513# from pertinent package files. Call them using their associated
514# 'require_*' variable to ensure that they are executed, at most, once.
515#
516# It's entirely deliberate that calling these functions can set
517# variables that don't obey the namespace limitations obeyed by the rest
518# of this file, in order that that they be as useful as possible to
519# callers.
520
521
522# require_term_colors
523# -------------------
524# Allow display of bold text on terminals that support it.
525require_term_colors=func_require_term_colors
526func_require_term_colors ()
527{
528    $debug_cmd
529
530    test -t 1 && {
531      # COLORTERM and USE_ANSI_COLORS environment variables take
532      # precedence, because most terminfo databases neglect to describe
533      # whether color sequences are supported.
534      test -n "${COLORTERM+set}" && : ${USE_ANSI_COLORS="1"}
535
536      if test 1 = "$USE_ANSI_COLORS"; then
537        # Standard ANSI escape sequences
538        tc_reset='[0m'
539        tc_bold='[1m';   tc_standout='[7m'
540        tc_red='[31m';   tc_green='[32m'
541        tc_blue='[34m';  tc_cyan='[36m'
542      else
543        # Otherwise trust the terminfo database after all.
544        test -n "`tput sgr0 2>/dev/null`" && {
545          tc_reset=`tput sgr0`
546          test -n "`tput bold 2>/dev/null`" && tc_bold=`tput bold`
547          tc_standout=$tc_bold
548          test -n "`tput smso 2>/dev/null`" && tc_standout=`tput smso`
549          test -n "`tput setaf 1 2>/dev/null`" && tc_red=`tput setaf 1`
550          test -n "`tput setaf 2 2>/dev/null`" && tc_green=`tput setaf 2`
551          test -n "`tput setaf 4 2>/dev/null`" && tc_blue=`tput setaf 4`
552          test -n "`tput setaf 5 2>/dev/null`" && tc_cyan=`tput setaf 5`
553        }
554      fi
555    }
556
557    require_term_colors=:
558}
559
560
561## ----------------- ##
562## Function library. ##
563## ----------------- ##
564
565# This section contains a variety of useful functions to call in your
566# scripts. Take note of the portable wrappers for features provided by
567# some modern shells, which will fall back to slower equivalents on
568# less featureful shells.
569
570
571# func_append VAR VALUE
572# ---------------------
573# Append VALUE onto the existing contents of VAR.
574
575  # We should try to minimise forks, especially on Windows where they are
576  # unreasonably slow, so skip the feature probes when bash or zsh are
577  # being used:
578  if test set = "${BASH_VERSION+set}${ZSH_VERSION+set}"; then
579    : ${_G_HAVE_ARITH_OP="yes"}
580    : ${_G_HAVE_XSI_OPS="yes"}
581    # The += operator was introduced in bash 3.1
582    case $BASH_VERSION in
583      [12].* | 3.0 | 3.0*) ;;
584      *)
585        : ${_G_HAVE_PLUSEQ_OP="yes"}
586        ;;
587    esac
588  fi
589
590  # _G_HAVE_PLUSEQ_OP
591  # Can be empty, in which case the shell is probed, "yes" if += is
592  # useable or anything else if it does not work.
593  test -z "$_G_HAVE_PLUSEQ_OP" \
594    && (eval 'x=a; x+=" b"; test "a b" = "$x"') 2>/dev/null \
595    && _G_HAVE_PLUSEQ_OP=yes
596
597if test yes = "$_G_HAVE_PLUSEQ_OP"
598then
599  # This is an XSI compatible shell, allowing a faster implementation...
600  eval 'func_append ()
601  {
602    $debug_cmd
603
604    eval "$1+=\$2"
605  }'
606else
607  # ...otherwise fall back to using expr, which is often a shell builtin.
608  func_append ()
609  {
610    $debug_cmd
611
612    eval "$1=\$$1\$2"
613  }
614fi
615
616
617# func_append_quoted VAR VALUE
618# ----------------------------
619# Quote VALUE and append to the end of shell variable VAR, separated
620# by a space.
621if test yes = "$_G_HAVE_PLUSEQ_OP"; then
622  eval 'func_append_quoted ()
623  {
624    $debug_cmd
625
626    func_quote_arg pretty "$2"
627    eval "$1+=\\ \$func_quote_arg_result"
628  }'
629else
630  func_append_quoted ()
631  {
632    $debug_cmd
633
634    func_quote_arg pretty "$2"
635    eval "$1=\$$1\\ \$func_quote_arg_result"
636  }
637fi
638
639
640# func_append_uniq VAR VALUE
641# --------------------------
642# Append unique VALUE onto the existing contents of VAR, assuming
643# entries are delimited by the first character of VALUE.  For example:
644#
645#   func_append_uniq options " --another-option option-argument"
646#
647# will only append to $options if " --another-option option-argument "
648# is not already present somewhere in $options already (note spaces at
649# each end implied by leading space in second argument).
650func_append_uniq ()
651{
652    $debug_cmd
653
654    eval _G_current_value='`$ECHO $'$1'`'
655    _G_delim=`expr "$2" : '\(.\)'`
656
657    case $_G_delim$_G_current_value$_G_delim in
658      *"$2$_G_delim"*) ;;
659      *) func_append "$@" ;;
660    esac
661}
662
663
664# func_arith TERM...
665# ------------------
666# Set func_arith_result to the result of evaluating TERMs.
667  test -z "$_G_HAVE_ARITH_OP" \
668    && (eval 'test 2 = $(( 1 + 1 ))') 2>/dev/null \
669    && _G_HAVE_ARITH_OP=yes
670
671if test yes = "$_G_HAVE_ARITH_OP"; then
672  eval 'func_arith ()
673  {
674    $debug_cmd
675
676    func_arith_result=$(( $* ))
677  }'
678else
679  func_arith ()
680  {
681    $debug_cmd
682
683    func_arith_result=`expr "$@"`
684  }
685fi
686
687
688# func_basename FILE
689# ------------------
690# Set func_basename_result to FILE with everything up to and including
691# the last / stripped.
692if test yes = "$_G_HAVE_XSI_OPS"; then
693  # If this shell supports suffix pattern removal, then use it to avoid
694  # forking. Hide the definitions single quotes in case the shell chokes
695  # on unsupported syntax...
696  _b='func_basename_result=${1##*/}'
697  _d='case $1 in
698        */*) func_dirname_result=${1%/*}$2 ;;
699        *  ) func_dirname_result=$3        ;;
700      esac'
701
702else
703  # ...otherwise fall back to using sed.
704  _b='func_basename_result=`$ECHO "$1" |$SED "$sed_basename"`'
705  _d='func_dirname_result=`$ECHO "$1"  |$SED "$sed_dirname"`
706      if test "X$func_dirname_result" = "X$1"; then
707        func_dirname_result=$3
708      else
709        func_append func_dirname_result "$2"
710      fi'
711fi
712
713eval 'func_basename ()
714{
715    $debug_cmd
716
717    '"$_b"'
718}'
719
720
721# func_dirname FILE APPEND NONDIR_REPLACEMENT
722# -------------------------------------------
723# Compute the dirname of FILE.  If nonempty, add APPEND to the result,
724# otherwise set result to NONDIR_REPLACEMENT.
725eval 'func_dirname ()
726{
727    $debug_cmd
728
729    '"$_d"'
730}'
731
732
733# func_dirname_and_basename FILE APPEND NONDIR_REPLACEMENT
734# --------------------------------------------------------
735# Perform func_basename and func_dirname in a single function
736# call:
737#   dirname:  Compute the dirname of FILE.  If nonempty,
738#             add APPEND to the result, otherwise set result
739#             to NONDIR_REPLACEMENT.
740#             value returned in "$func_dirname_result"
741#   basename: Compute filename of FILE.
742#             value retuned in "$func_basename_result"
743# For efficiency, we do not delegate to the functions above but instead
744# duplicate the functionality here.
745eval 'func_dirname_and_basename ()
746{
747    $debug_cmd
748
749    '"$_b"'
750    '"$_d"'
751}'
752
753
754# func_echo ARG...
755# ----------------
756# Echo program name prefixed message.
757func_echo ()
758{
759    $debug_cmd
760
761    _G_message=$*
762
763    func_echo_IFS=$IFS
764    IFS=$nl
765    for _G_line in $_G_message; do
766      IFS=$func_echo_IFS
767      $ECHO "$progname: $_G_line"
768    done
769    IFS=$func_echo_IFS
770}
771
772
773# func_echo_all ARG...
774# --------------------
775# Invoke $ECHO with all args, space-separated.
776func_echo_all ()
777{
778    $ECHO "$*"
779}
780
781
782# func_echo_infix_1 INFIX ARG...
783# ------------------------------
784# Echo program name, followed by INFIX on the first line, with any
785# additional lines not showing INFIX.
786func_echo_infix_1 ()
787{
788    $debug_cmd
789
790    $require_term_colors
791
792    _G_infix=$1; shift
793    _G_indent=$_G_infix
794    _G_prefix="$progname: $_G_infix: "
795    _G_message=$*
796
797    # Strip color escape sequences before counting printable length
798    for _G_tc in "$tc_reset" "$tc_bold" "$tc_standout" "$tc_red" "$tc_green" "$tc_blue" "$tc_cyan"
799    do
800      test -n "$_G_tc" && {
801        _G_esc_tc=`$ECHO "$_G_tc" | $SED "$sed_make_literal_regex"`
802        _G_indent=`$ECHO "$_G_indent" | $SED "s|$_G_esc_tc||g"`
803      }
804    done
805    _G_indent="$progname: "`echo "$_G_indent" | $SED 's|.| |g'`"  " ## exclude from sc_prohibit_nested_quotes
806
807    func_echo_infix_1_IFS=$IFS
808    IFS=$nl
809    for _G_line in $_G_message; do
810      IFS=$func_echo_infix_1_IFS
811      $ECHO "$_G_prefix$tc_bold$_G_line$tc_reset" >&2
812      _G_prefix=$_G_indent
813    done
814    IFS=$func_echo_infix_1_IFS
815}
816
817
818# func_error ARG...
819# -----------------
820# Echo program name prefixed message to standard error.
821func_error ()
822{
823    $debug_cmd
824
825    $require_term_colors
826
827    func_echo_infix_1 "  $tc_standout${tc_red}error$tc_reset" "$*" >&2
828}
829
830
831# func_fatal_error ARG...
832# -----------------------
833# Echo program name prefixed message to standard error, and exit.
834func_fatal_error ()
835{
836    $debug_cmd
837
838    func_error "$*"
839    exit $EXIT_FAILURE
840}
841
842
843# func_grep EXPRESSION FILENAME
844# -----------------------------
845# Check whether EXPRESSION matches any line of FILENAME, without output.
846func_grep ()
847{
848    $debug_cmd
849
850    $GREP "$1" "$2" >/dev/null 2>&1
851}
852
853
854# func_len STRING
855# ---------------
856# Set func_len_result to the length of STRING. STRING may not
857# start with a hyphen.
858  test -z "$_G_HAVE_XSI_OPS" \
859    && (eval 'x=a/b/c;
860      test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \
861    && _G_HAVE_XSI_OPS=yes
862
863if test yes = "$_G_HAVE_XSI_OPS"; then
864  eval 'func_len ()
865  {
866    $debug_cmd
867
868    func_len_result=${#1}
869  }'
870else
871  func_len ()
872  {
873    $debug_cmd
874
875    func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len`
876  }
877fi
878
879
880# func_mkdir_p DIRECTORY-PATH
881# ---------------------------
882# Make sure the entire path to DIRECTORY-PATH is available.
883func_mkdir_p ()
884{
885    $debug_cmd
886
887    _G_directory_path=$1
888    _G_dir_list=
889
890    if test -n "$_G_directory_path" && test : != "$opt_dry_run"; then
891
892      # Protect directory names starting with '-'
893      case $_G_directory_path in
894        -*) _G_directory_path=./$_G_directory_path ;;
895      esac
896
897      # While some portion of DIR does not yet exist...
898      while test ! -d "$_G_directory_path"; do
899        # ...make a list in topmost first order.  Use a colon delimited
900	# list incase some portion of path contains whitespace.
901        _G_dir_list=$_G_directory_path:$_G_dir_list
902
903        # If the last portion added has no slash in it, the list is done
904        case $_G_directory_path in */*) ;; *) break ;; esac
905
906        # ...otherwise throw away the child directory and loop
907        _G_directory_path=`$ECHO "$_G_directory_path" | $SED -e "$sed_dirname"`
908      done
909      _G_dir_list=`$ECHO "$_G_dir_list" | $SED 's|:*$||'`
910
911      func_mkdir_p_IFS=$IFS; IFS=:
912      for _G_dir in $_G_dir_list; do
913	IFS=$func_mkdir_p_IFS
914        # mkdir can fail with a 'File exist' error if two processes
915        # try to create one of the directories concurrently.  Don't
916        # stop in that case!
917        $MKDIR "$_G_dir" 2>/dev/null || :
918      done
919      IFS=$func_mkdir_p_IFS
920
921      # Bail out if we (or some other process) failed to create a directory.
922      test -d "$_G_directory_path" || \
923        func_fatal_error "Failed to create '$1'"
924    fi
925}
926
927
928# func_mktempdir [BASENAME]
929# -------------------------
930# Make a temporary directory that won't clash with other running
931# libtool processes, and avoids race conditions if possible.  If
932# given, BASENAME is the basename for that directory.
933func_mktempdir ()
934{
935    $debug_cmd
936
937    _G_template=${TMPDIR-/tmp}/${1-$progname}
938
939    if test : = "$opt_dry_run"; then
940      # Return a directory name, but don't create it in dry-run mode
941      _G_tmpdir=$_G_template-$$
942    else
943
944      # If mktemp works, use that first and foremost
945      _G_tmpdir=`mktemp -d "$_G_template-XXXXXXXX" 2>/dev/null`
946
947      if test ! -d "$_G_tmpdir"; then
948        # Failing that, at least try and use $RANDOM to avoid a race
949        _G_tmpdir=$_G_template-${RANDOM-0}$$
950
951        func_mktempdir_umask=`umask`
952        umask 0077
953        $MKDIR "$_G_tmpdir"
954        umask $func_mktempdir_umask
955      fi
956
957      # If we're not in dry-run mode, bomb out on failure
958      test -d "$_G_tmpdir" || \
959        func_fatal_error "cannot create temporary directory '$_G_tmpdir'"
960    fi
961
962    $ECHO "$_G_tmpdir"
963}
964
965
966# func_normal_abspath PATH
967# ------------------------
968# Remove doubled-up and trailing slashes, "." path components,
969# and cancel out any ".." path components in PATH after making
970# it an absolute path.
971func_normal_abspath ()
972{
973    $debug_cmd
974
975    # These SED scripts presuppose an absolute path with a trailing slash.
976    _G_pathcar='s|^/\([^/]*\).*$|\1|'
977    _G_pathcdr='s|^/[^/]*||'
978    _G_removedotparts=':dotsl
979		s|/\./|/|g
980		t dotsl
981		s|/\.$|/|'
982    _G_collapseslashes='s|/\{1,\}|/|g'
983    _G_finalslash='s|/*$|/|'
984
985    # Start from root dir and reassemble the path.
986    func_normal_abspath_result=
987    func_normal_abspath_tpath=$1
988    func_normal_abspath_altnamespace=
989    case $func_normal_abspath_tpath in
990      "")
991        # Empty path, that just means $cwd.
992        func_stripname '' '/' "`pwd`"
993        func_normal_abspath_result=$func_stripname_result
994        return
995        ;;
996      # The next three entries are used to spot a run of precisely
997      # two leading slashes without using negated character classes;
998      # we take advantage of case's first-match behaviour.
999      ///*)
1000        # Unusual form of absolute path, do nothing.
1001        ;;
1002      //*)
1003        # Not necessarily an ordinary path; POSIX reserves leading '//'
1004        # and for example Cygwin uses it to access remote file shares
1005        # over CIFS/SMB, so we conserve a leading double slash if found.
1006        func_normal_abspath_altnamespace=/
1007        ;;
1008      /*)
1009        # Absolute path, do nothing.
1010        ;;
1011      *)
1012        # Relative path, prepend $cwd.
1013        func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath
1014        ;;
1015    esac
1016
1017    # Cancel out all the simple stuff to save iterations.  We also want
1018    # the path to end with a slash for ease of parsing, so make sure
1019    # there is one (and only one) here.
1020    func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \
1021          -e "$_G_removedotparts" -e "$_G_collapseslashes" -e "$_G_finalslash"`
1022    while :; do
1023      # Processed it all yet?
1024      if test / = "$func_normal_abspath_tpath"; then
1025        # If we ascended to the root using ".." the result may be empty now.
1026        if test -z "$func_normal_abspath_result"; then
1027          func_normal_abspath_result=/
1028        fi
1029        break
1030      fi
1031      func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \
1032          -e "$_G_pathcar"`
1033      func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \
1034          -e "$_G_pathcdr"`
1035      # Figure out what to do with it
1036      case $func_normal_abspath_tcomponent in
1037        "")
1038          # Trailing empty path component, ignore it.
1039          ;;
1040        ..)
1041          # Parent dir; strip last assembled component from result.
1042          func_dirname "$func_normal_abspath_result"
1043          func_normal_abspath_result=$func_dirname_result
1044          ;;
1045        *)
1046          # Actual path component, append it.
1047          func_append func_normal_abspath_result "/$func_normal_abspath_tcomponent"
1048          ;;
1049      esac
1050    done
1051    # Restore leading double-slash if one was found on entry.
1052    func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result
1053}
1054
1055
1056# func_notquiet ARG...
1057# --------------------
1058# Echo program name prefixed message only when not in quiet mode.
1059func_notquiet ()
1060{
1061    $debug_cmd
1062
1063    $opt_quiet || func_echo ${1+"$@"}
1064
1065    # A bug in bash halts the script if the last line of a function
1066    # fails when set -e is in force, so we need another command to
1067    # work around that:
1068    :
1069}
1070
1071
1072# func_relative_path SRCDIR DSTDIR
1073# --------------------------------
1074# Set func_relative_path_result to the relative path from SRCDIR to DSTDIR.
1075func_relative_path ()
1076{
1077    $debug_cmd
1078
1079    func_relative_path_result=
1080    func_normal_abspath "$1"
1081    func_relative_path_tlibdir=$func_normal_abspath_result
1082    func_normal_abspath "$2"
1083    func_relative_path_tbindir=$func_normal_abspath_result
1084
1085    # Ascend the tree starting from libdir
1086    while :; do
1087      # check if we have found a prefix of bindir
1088      case $func_relative_path_tbindir in
1089        $func_relative_path_tlibdir)
1090          # found an exact match
1091          func_relative_path_tcancelled=
1092          break
1093          ;;
1094        $func_relative_path_tlibdir*)
1095          # found a matching prefix
1096          func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir"
1097          func_relative_path_tcancelled=$func_stripname_result
1098          if test -z "$func_relative_path_result"; then
1099            func_relative_path_result=.
1100          fi
1101          break
1102          ;;
1103        *)
1104          func_dirname $func_relative_path_tlibdir
1105          func_relative_path_tlibdir=$func_dirname_result
1106          if test -z "$func_relative_path_tlibdir"; then
1107            # Have to descend all the way to the root!
1108            func_relative_path_result=../$func_relative_path_result
1109            func_relative_path_tcancelled=$func_relative_path_tbindir
1110            break
1111          fi
1112          func_relative_path_result=../$func_relative_path_result
1113          ;;
1114      esac
1115    done
1116
1117    # Now calculate path; take care to avoid doubling-up slashes.
1118    func_stripname '' '/' "$func_relative_path_result"
1119    func_relative_path_result=$func_stripname_result
1120    func_stripname '/' '/' "$func_relative_path_tcancelled"
1121    if test -n "$func_stripname_result"; then
1122      func_append func_relative_path_result "/$func_stripname_result"
1123    fi
1124
1125    # Normalisation. If bindir is libdir, return '.' else relative path.
1126    if test -n "$func_relative_path_result"; then
1127      func_stripname './' '' "$func_relative_path_result"
1128      func_relative_path_result=$func_stripname_result
1129    fi
1130
1131    test -n "$func_relative_path_result" || func_relative_path_result=.
1132
1133    :
1134}
1135
1136
1137# func_quote_portable EVAL ARG
1138# ----------------------------
1139# Internal function to portably implement func_quote_arg.  Note that we still
1140# keep attention to performance here so we as much as possible try to avoid
1141# calling sed binary (so far O(N) complexity as long as func_append is O(1)).
1142func_quote_portable ()
1143{
1144    $debug_cmd
1145
1146    $require_check_ifs_backslash
1147
1148    func_quote_portable_result=$2
1149
1150    # one-time-loop (easy break)
1151    while true
1152    do
1153      if $1; then
1154        func_quote_portable_result=`$ECHO "$2" | $SED \
1155          -e "$sed_double_quote_subst" -e "$sed_double_backslash"`
1156        break
1157      fi
1158
1159      # Quote for eval.
1160      case $func_quote_portable_result in
1161        *[\\\`\"\$]*)
1162          # Fallback to sed for $func_check_bs_ifs_broken=:, or when the string
1163          # contains the shell wildcard characters.
1164          case $check_ifs_backshlash_broken$func_quote_portable_result in
1165            :*|*[\[\*\?]*)
1166              func_quote_portable_result=`$ECHO "$func_quote_portable_result" \
1167                  | $SED "$sed_quote_subst"`
1168              break
1169              ;;
1170          esac
1171
1172          func_quote_portable_old_IFS=$IFS
1173          for _G_char in '\' '`' '"' '$'
1174          do
1175            # STATE($1) PREV($2) SEPARATOR($3)
1176            set start "" ""
1177            func_quote_portable_result=dummy"$_G_char$func_quote_portable_result$_G_char"dummy
1178            IFS=$_G_char
1179            for _G_part in $func_quote_portable_result
1180            do
1181              case $1 in
1182              quote)
1183                func_append func_quote_portable_result "$3$2"
1184                set quote "$_G_part" "\\$_G_char"
1185                ;;
1186              start)
1187                set first "" ""
1188                func_quote_portable_result=
1189                ;;
1190              first)
1191                set quote "$_G_part" ""
1192                ;;
1193              esac
1194            done
1195          done
1196          IFS=$func_quote_portable_old_IFS
1197          ;;
1198        *) ;;
1199      esac
1200      break
1201    done
1202
1203    func_quote_portable_unquoted_result=$func_quote_portable_result
1204    case $func_quote_portable_result in
1205      # double-quote args containing shell metacharacters to delay
1206      # word splitting, command substitution and variable expansion
1207      # for a subsequent eval.
1208      # many bourne shells cannot handle close brackets correctly
1209      # in scan sets, so we specify it separately.
1210      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
1211        func_quote_portable_result=\"$func_quote_portable_result\"
1212        ;;
1213    esac
1214}
1215
1216
1217# func_quotefast_eval ARG
1218# -----------------------
1219# Quote one ARG (internal).  This is equivalent to 'func_quote_arg eval ARG',
1220# but optimized for speed.  Result is stored in $func_quotefast_eval.
1221if test xyes = `(x=; printf -v x %q yes; echo x"$x") 2>/dev/null`; then
1222  printf -v _GL_test_printf_tilde %q '~'
1223  if test '\~' = "$_GL_test_printf_tilde"; then
1224    func_quotefast_eval ()
1225    {
1226      printf -v func_quotefast_eval_result %q "$1"
1227    }
1228  else
1229    # Broken older Bash implementations.  Make those faster too if possible.
1230    func_quotefast_eval ()
1231    {
1232      case $1 in
1233        '~'*)
1234          func_quote_portable false "$1"
1235          func_quotefast_eval_result=$func_quote_portable_result
1236          ;;
1237        *)
1238          printf -v func_quotefast_eval_result %q "$1"
1239          ;;
1240      esac
1241    }
1242  fi
1243else
1244  func_quotefast_eval ()
1245  {
1246    func_quote_portable false "$1"
1247    func_quotefast_eval_result=$func_quote_portable_result
1248  }
1249fi
1250
1251
1252# func_quote_arg MODEs ARG
1253# ------------------------
1254# Quote one ARG to be evaled later.  MODEs argument may contain zero or more
1255# specifiers listed below separated by ',' character.  This function returns two
1256# values:
1257#   i) func_quote_arg_result
1258#      double-quoted (when needed), suitable for a subsequent eval
1259#  ii) func_quote_arg_unquoted_result
1260#      has all characters that are still active within double
1261#      quotes backslashified.  Available only if 'unquoted' is specified.
1262#
1263# Available modes:
1264# ----------------
1265# 'eval' (default)
1266#       - escape shell special characters
1267# 'expand'
1268#       - the same as 'eval';  but do not quote variable references
1269# 'pretty'
1270#       - request aesthetic output, i.e. '"a b"' instead of 'a\ b'.  This might
1271#         be used later in func_quote to get output like: 'echo "a b"' instead
1272#         of 'echo a\ b'.  This is slower than default on some shells.
1273# 'unquoted'
1274#       - produce also $func_quote_arg_unquoted_result which does not contain
1275#         wrapping double-quotes.
1276#
1277# Examples for 'func_quote_arg pretty,unquoted string':
1278#
1279#   string      | *_result              | *_unquoted_result
1280#   ------------+-----------------------+-------------------
1281#   "           | \"                    | \"
1282#   a b         | "a b"                 | a b
1283#   "a b"       | "\"a b\""             | \"a b\"
1284#   *           | "*"                   | *
1285#   z="${x-$y}" | "z=\"\${x-\$y}\""     | z=\"\${x-\$y}\"
1286#
1287# Examples for 'func_quote_arg pretty,unquoted,expand string':
1288#
1289#   string        |   *_result          |  *_unquoted_result
1290#   --------------+---------------------+--------------------
1291#   z="${x-$y}"   | "z=\"${x-$y}\""     | z=\"${x-$y}\"
1292func_quote_arg ()
1293{
1294    _G_quote_expand=false
1295    case ,$1, in
1296      *,expand,*)
1297        _G_quote_expand=:
1298        ;;
1299    esac
1300
1301    case ,$1, in
1302      *,pretty,*|*,expand,*|*,unquoted,*)
1303        func_quote_portable $_G_quote_expand "$2"
1304        func_quote_arg_result=$func_quote_portable_result
1305        func_quote_arg_unquoted_result=$func_quote_portable_unquoted_result
1306        ;;
1307      *)
1308        # Faster quote-for-eval for some shells.
1309        func_quotefast_eval "$2"
1310        func_quote_arg_result=$func_quotefast_eval_result
1311        ;;
1312    esac
1313}
1314
1315
1316# func_quote MODEs ARGs...
1317# ------------------------
1318# Quote all ARGs to be evaled later and join them into single command.  See
1319# func_quote_arg's description for more info.
1320func_quote ()
1321{
1322    $debug_cmd
1323    _G_func_quote_mode=$1 ; shift
1324    func_quote_result=
1325    while test 0 -lt $#; do
1326      func_quote_arg "$_G_func_quote_mode" "$1"
1327      if test -n "$func_quote_result"; then
1328        func_append func_quote_result " $func_quote_arg_result"
1329      else
1330        func_append func_quote_result "$func_quote_arg_result"
1331      fi
1332      shift
1333    done
1334}
1335
1336
1337# func_stripname PREFIX SUFFIX NAME
1338# ---------------------------------
1339# strip PREFIX and SUFFIX from NAME, and store in func_stripname_result.
1340# PREFIX and SUFFIX must not contain globbing or regex special
1341# characters, hashes, percent signs, but SUFFIX may contain a leading
1342# dot (in which case that matches only a dot).
1343if test yes = "$_G_HAVE_XSI_OPS"; then
1344  eval 'func_stripname ()
1345  {
1346    $debug_cmd
1347
1348    # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are
1349    # positional parameters, so assign one to ordinary variable first.
1350    func_stripname_result=$3
1351    func_stripname_result=${func_stripname_result#"$1"}
1352    func_stripname_result=${func_stripname_result%"$2"}
1353  }'
1354else
1355  func_stripname ()
1356  {
1357    $debug_cmd
1358
1359    case $2 in
1360      .*) func_stripname_result=`$ECHO "$3" | $SED -e "s%^$1%%" -e "s%\\\\$2\$%%"`;;
1361      *)  func_stripname_result=`$ECHO "$3" | $SED -e "s%^$1%%" -e "s%$2\$%%"`;;
1362    esac
1363  }
1364fi
1365
1366
1367# func_show_eval CMD [FAIL_EXP]
1368# -----------------------------
1369# Unless opt_quiet is true, then output CMD.  Then, if opt_dryrun is
1370# not true, evaluate CMD.  If the evaluation of CMD fails, and FAIL_EXP
1371# is given, then evaluate it.
1372func_show_eval ()
1373{
1374    $debug_cmd
1375
1376    _G_cmd=$1
1377    _G_fail_exp=${2-':'}
1378
1379    func_quote_arg pretty,expand "$_G_cmd"
1380    eval "func_notquiet $func_quote_arg_result"
1381
1382    $opt_dry_run || {
1383      eval "$_G_cmd"
1384      _G_status=$?
1385      if test 0 -ne "$_G_status"; then
1386	eval "(exit $_G_status); $_G_fail_exp"
1387      fi
1388    }
1389}
1390
1391
1392# func_show_eval_locale CMD [FAIL_EXP]
1393# ------------------------------------
1394# Unless opt_quiet is true, then output CMD.  Then, if opt_dryrun is
1395# not true, evaluate CMD.  If the evaluation of CMD fails, and FAIL_EXP
1396# is given, then evaluate it.  Use the saved locale for evaluation.
1397func_show_eval_locale ()
1398{
1399    $debug_cmd
1400
1401    _G_cmd=$1
1402    _G_fail_exp=${2-':'}
1403
1404    $opt_quiet || {
1405      func_quote_arg expand,pretty "$_G_cmd"
1406      eval "func_echo $func_quote_arg_result"
1407    }
1408
1409    $opt_dry_run || {
1410      eval "$_G_user_locale
1411	    $_G_cmd"
1412      _G_status=$?
1413      eval "$_G_safe_locale"
1414      if test 0 -ne "$_G_status"; then
1415	eval "(exit $_G_status); $_G_fail_exp"
1416      fi
1417    }
1418}
1419
1420
1421# func_tr_sh
1422# ----------
1423# Turn $1 into a string suitable for a shell variable name.
1424# Result is stored in $func_tr_sh_result.  All characters
1425# not in the set a-zA-Z0-9_ are replaced with '_'. Further,
1426# if $1 begins with a digit, a '_' is prepended as well.
1427func_tr_sh ()
1428{
1429    $debug_cmd
1430
1431    case $1 in
1432    [0-9]* | *[!a-zA-Z0-9_]*)
1433      func_tr_sh_result=`$ECHO "$1" | $SED -e 's/^\([0-9]\)/_\1/' -e 's/[^a-zA-Z0-9_]/_/g'`
1434      ;;
1435    * )
1436      func_tr_sh_result=$1
1437      ;;
1438    esac
1439}
1440
1441
1442# func_verbose ARG...
1443# -------------------
1444# Echo program name prefixed message in verbose mode only.
1445func_verbose ()
1446{
1447    $debug_cmd
1448
1449    $opt_verbose && func_echo "$*"
1450
1451    :
1452}
1453
1454
1455# func_warn_and_continue ARG...
1456# -----------------------------
1457# Echo program name prefixed warning message to standard error.
1458func_warn_and_continue ()
1459{
1460    $debug_cmd
1461
1462    $require_term_colors
1463
1464    func_echo_infix_1 "${tc_red}warning$tc_reset" "$*" >&2
1465}
1466
1467
1468# func_warning CATEGORY ARG...
1469# ----------------------------
1470# Echo program name prefixed warning message to standard error. Warning
1471# messages can be filtered according to CATEGORY, where this function
1472# elides messages where CATEGORY is not listed in the global variable
1473# 'opt_warning_types'.
1474func_warning ()
1475{
1476    $debug_cmd
1477
1478    # CATEGORY must be in the warning_categories list!
1479    case " $warning_categories " in
1480      *" $1 "*) ;;
1481      *) func_internal_error "invalid warning category '$1'" ;;
1482    esac
1483
1484    _G_category=$1
1485    shift
1486
1487    case " $opt_warning_types " in
1488      *" $_G_category "*) $warning_func ${1+"$@"} ;;
1489    esac
1490}
1491
1492
1493# func_sort_ver VER1 VER2
1494# -----------------------
1495# 'sort -V' is not generally available.
1496# Note this deviates from the version comparison in automake
1497# in that it treats 1.5 < 1.5.0, and treats 1.4.4a < 1.4-p3a
1498# but this should suffice as we won't be specifying old
1499# version formats or redundant trailing .0 in bootstrap.conf.
1500# If we did want full compatibility then we should probably
1501# use m4_version_compare from autoconf.
1502func_sort_ver ()
1503{
1504    $debug_cmd
1505
1506    printf '%s\n%s\n' "$1" "$2" \
1507      | sort -t. -k 1,1n -k 2,2n -k 3,3n -k 4,4n -k 5,5n -k 6,6n -k 7,7n -k 8,8n -k 9,9n
1508}
1509
1510# func_lt_ver PREV CURR
1511# ---------------------
1512# Return true if PREV and CURR are in the correct order according to
1513# func_sort_ver, otherwise false.  Use it like this:
1514#
1515#  func_lt_ver "$prev_ver" "$proposed_ver" || func_fatal_error "..."
1516func_lt_ver ()
1517{
1518    $debug_cmd
1519
1520    test "x$1" = x`func_sort_ver "$1" "$2" | $SED 1q`
1521}
1522
1523
1524# Local variables:
1525# mode: shell-script
1526# sh-indentation: 2
1527# eval: (add-hook 'before-save-hook 'time-stamp)
1528# time-stamp-pattern: "10/scriptversion=%:y-%02m-%02d.%02H; # UTC"
1529# time-stamp-time-zone: "UTC"
1530# End:
1531#! /bin/sh
1532
1533# A portable, pluggable option parser for Bourne shell.
1534# Written by Gary V. Vaughan, 2010
1535
1536# This is free software.  There is NO warranty; not even for
1537# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
1538#
1539# Copyright (C) 2010-2019, 2021 Bootstrap Authors
1540#
1541# This file is dual licensed under the terms of the MIT license
1542# <https://opensource.org/license/MIT>, and GPL version 2 or later
1543# <http://www.gnu.org/licenses/gpl-2.0.html>.  You must apply one of
1544# these licenses when using or redistributing this software or any of
1545# the files within it.  See the URLs above, or the file `LICENSE`
1546# included in the Bootstrap distribution for the full license texts.
1547
1548# Please report bugs or propose patches to:
1549# <https://github.com/gnulib-modules/bootstrap/issues>
1550
1551# Set a version string for this script.
1552scriptversion=2019-02-19.15; # UTC
1553
1554
1555## ------ ##
1556## Usage. ##
1557## ------ ##
1558
1559# This file is a library for parsing options in your shell scripts along
1560# with assorted other useful supporting features that you can make use
1561# of too.
1562#
1563# For the simplest scripts you might need only:
1564#
1565#   #!/bin/sh
1566#   . relative/path/to/funclib.sh
1567#   . relative/path/to/options-parser
1568#   scriptversion=1.0
1569#   func_options ${1+"$@"}
1570#   eval set dummy "$func_options_result"; shift
1571#   ...rest of your script...
1572#
1573# In order for the '--version' option to work, you will need to have a
1574# suitably formatted comment like the one at the top of this file
1575# starting with '# Written by ' and ending with '# Copyright'.
1576#
1577# For '-h' and '--help' to work, you will also need a one line
1578# description of your script's purpose in a comment directly above the
1579# '# Written by ' line, like the one at the top of this file.
1580#
1581# The default options also support '--debug', which will turn on shell
1582# execution tracing (see the comment above debug_cmd below for another
1583# use), and '--verbose' and the func_verbose function to allow your script
1584# to display verbose messages only when your user has specified
1585# '--verbose'.
1586#
1587# After sourcing this file, you can plug in processing for additional
1588# options by amending the variables from the 'Configuration' section
1589# below, and following the instructions in the 'Option parsing'
1590# section further down.
1591
1592## -------------- ##
1593## Configuration. ##
1594## -------------- ##
1595
1596# You should override these variables in your script after sourcing this
1597# file so that they reflect the customisations you have added to the
1598# option parser.
1599
1600# The usage line for option parsing errors and the start of '-h' and
1601# '--help' output messages. You can embed shell variables for delayed
1602# expansion at the time the message is displayed, but you will need to
1603# quote other shell meta-characters carefully to prevent them being
1604# expanded when the contents are evaled.
1605usage='$progpath [OPTION]...'
1606
1607# Short help message in response to '-h' and '--help'.  Add to this or
1608# override it after sourcing this library to reflect the full set of
1609# options your script accepts.
1610usage_message="\
1611       --debug        enable verbose shell tracing
1612   -W, --warnings=CATEGORY
1613                      report the warnings falling in CATEGORY [all]
1614   -v, --verbose      verbosely report processing
1615       --version      print version information and exit
1616   -h, --help         print short or long help message and exit
1617"
1618
1619# Additional text appended to 'usage_message' in response to '--help'.
1620long_help_message="
1621Warning categories include:
1622       'all'          show all warnings
1623       'none'         turn off all the warnings
1624       'error'        warnings are treated as fatal errors"
1625
1626# Help message printed before fatal option parsing errors.
1627fatal_help="Try '\$progname --help' for more information."
1628
1629
1630
1631## ------------------------- ##
1632## Hook function management. ##
1633## ------------------------- ##
1634
1635# This section contains functions for adding, removing, and running hooks
1636# in the main code.  A hook is just a list of function names that can be
1637# run in order later on.
1638
1639# func_hookable FUNC_NAME
1640# -----------------------
1641# Declare that FUNC_NAME will run hooks added with
1642# 'func_add_hook FUNC_NAME ...'.
1643func_hookable ()
1644{
1645    $debug_cmd
1646
1647    func_append hookable_fns " $1"
1648}
1649
1650
1651# func_add_hook FUNC_NAME HOOK_FUNC
1652# ---------------------------------
1653# Request that FUNC_NAME call HOOK_FUNC before it returns.  FUNC_NAME must
1654# first have been declared "hookable" by a call to 'func_hookable'.
1655func_add_hook ()
1656{
1657    $debug_cmd
1658
1659    case " $hookable_fns " in
1660      *" $1 "*) ;;
1661      *) func_fatal_error "'$1' does not accept hook functions." ;;
1662    esac
1663
1664    eval func_append ${1}_hooks '" $2"'
1665}
1666
1667
1668# func_remove_hook FUNC_NAME HOOK_FUNC
1669# ------------------------------------
1670# Remove HOOK_FUNC from the list of hook functions to be called by
1671# FUNC_NAME.
1672func_remove_hook ()
1673{
1674    $debug_cmd
1675
1676    eval ${1}_hooks='`$ECHO "\$'$1'_hooks" |$SED "s| '$2'||"`'
1677}
1678
1679
1680# func_propagate_result FUNC_NAME_A FUNC_NAME_B
1681# ---------------------------------------------
1682# If the *_result variable of FUNC_NAME_A _is set_, assign its value to
1683# *_result variable of FUNC_NAME_B.
1684func_propagate_result ()
1685{
1686    $debug_cmd
1687
1688    func_propagate_result_result=:
1689    if eval "test \"\${${1}_result+set}\" = set"
1690    then
1691      eval "${2}_result=\$${1}_result"
1692    else
1693      func_propagate_result_result=false
1694    fi
1695}
1696
1697
1698# func_run_hooks FUNC_NAME [ARG]...
1699# ---------------------------------
1700# Run all hook functions registered to FUNC_NAME.
1701# It's assumed that the list of hook functions contains nothing more
1702# than a whitespace-delimited list of legal shell function names, and
1703# no effort is wasted trying to catch shell meta-characters or preserve
1704# whitespace.
1705func_run_hooks ()
1706{
1707    $debug_cmd
1708
1709    case " $hookable_fns " in
1710      *" $1 "*) ;;
1711      *) func_fatal_error "'$1' does not support hook functions." ;;
1712    esac
1713
1714    eval _G_hook_fns=\$$1_hooks; shift
1715
1716    for _G_hook in $_G_hook_fns; do
1717      func_unset "${_G_hook}_result"
1718      eval $_G_hook '${1+"$@"}'
1719      func_propagate_result $_G_hook func_run_hooks
1720      if $func_propagate_result_result; then
1721        eval set dummy "$func_run_hooks_result"; shift
1722      fi
1723    done
1724}
1725
1726
1727
1728## --------------- ##
1729## Option parsing. ##
1730## --------------- ##
1731
1732# In order to add your own option parsing hooks, you must accept the
1733# full positional parameter list from your hook function.  You may remove
1734# or edit any options that you action, and then pass back the remaining
1735# unprocessed options in '<hooked_function_name>_result', escaped
1736# suitably for 'eval'.
1737#
1738# The '<hooked_function_name>_result' variable is automatically unset
1739# before your hook gets called; for best performance, only set the
1740# *_result variable when necessary (i.e. don't call the 'func_quote'
1741# function unnecessarily because it can be an expensive operation on some
1742# machines).
1743#
1744# Like this:
1745#
1746#    my_options_prep ()
1747#    {
1748#        $debug_cmd
1749#
1750#        # Extend the existing usage message.
1751#        usage_message=$usage_message'
1752#      -s, --silent       don'\''t print informational messages
1753#    '
1754#        # No change in '$@' (ignored completely by this hook).  Leave
1755#        # my_options_prep_result variable intact.
1756#    }
1757#    func_add_hook func_options_prep my_options_prep
1758#
1759#
1760#    my_silent_option ()
1761#    {
1762#        $debug_cmd
1763#
1764#        args_changed=false
1765#
1766#        # Note that, for efficiency, we parse as many options as we can
1767#        # recognise in a loop before passing the remainder back to the
1768#        # caller on the first unrecognised argument we encounter.
1769#        while test $# -gt 0; do
1770#          opt=$1; shift
1771#          case $opt in
1772#            --silent|-s) opt_silent=:
1773#                         args_changed=:
1774#                         ;;
1775#            # Separate non-argument short options:
1776#            -s*)         func_split_short_opt "$_G_opt"
1777#                         set dummy "$func_split_short_opt_name" \
1778#                             "-$func_split_short_opt_arg" ${1+"$@"}
1779#                         shift
1780#                         args_changed=:
1781#                         ;;
1782#            *)           # Make sure the first unrecognised option "$_G_opt"
1783#                         # is added back to "$@" in case we need it later,
1784#                         # if $args_changed was set to 'true'.
1785#                         set dummy "$_G_opt" ${1+"$@"}; shift; break ;;
1786#          esac
1787#        done
1788#
1789#        # Only call 'func_quote' here if we processed at least one argument.
1790#        if $args_changed; then
1791#          func_quote eval ${1+"$@"}
1792#          my_silent_option_result=$func_quote_result
1793#        fi
1794#    }
1795#    func_add_hook func_parse_options my_silent_option
1796#
1797#
1798#    my_option_validation ()
1799#    {
1800#        $debug_cmd
1801#
1802#        $opt_silent && $opt_verbose && func_fatal_help "\
1803#    '--silent' and '--verbose' options are mutually exclusive."
1804#    }
1805#    func_add_hook func_validate_options my_option_validation
1806#
1807# You'll also need to manually amend $usage_message to reflect the extra
1808# options you parse.  It's preferable to append if you can, so that
1809# multiple option parsing hooks can be added safely.
1810
1811
1812# func_options_finish [ARG]...
1813# ----------------------------
1814# Finishing the option parse loop (call 'func_options' hooks ATM).
1815func_options_finish ()
1816{
1817    $debug_cmd
1818
1819    func_run_hooks func_options ${1+"$@"}
1820    func_propagate_result func_run_hooks func_options_finish
1821}
1822
1823
1824# func_options [ARG]...
1825# ---------------------
1826# All the functions called inside func_options are hookable. See the
1827# individual implementations for details.
1828func_hookable func_options
1829func_options ()
1830{
1831    $debug_cmd
1832
1833    _G_options_quoted=false
1834
1835    for my_func in options_prep parse_options validate_options options_finish
1836    do
1837      func_unset func_${my_func}_result
1838      func_unset func_run_hooks_result
1839      eval func_$my_func '${1+"$@"}'
1840      func_propagate_result func_$my_func func_options
1841      if $func_propagate_result_result; then
1842        eval set dummy "$func_options_result"; shift
1843        _G_options_quoted=:
1844      fi
1845    done
1846
1847    $_G_options_quoted || {
1848      # As we (func_options) are top-level options-parser function and
1849      # nobody quoted "$@" for us yet, we need to do it explicitly for
1850      # caller.
1851      func_quote eval ${1+"$@"}
1852      func_options_result=$func_quote_result
1853    }
1854}
1855
1856
1857# func_options_prep [ARG]...
1858# --------------------------
1859# All initialisations required before starting the option parse loop.
1860# Note that when calling hook functions, we pass through the list of
1861# positional parameters.  If a hook function modifies that list, and
1862# needs to propagate that back to rest of this script, then the complete
1863# modified list must be put in 'func_run_hooks_result' before returning.
1864func_hookable func_options_prep
1865func_options_prep ()
1866{
1867    $debug_cmd
1868
1869    # Option defaults:
1870    opt_verbose=false
1871    opt_warning_types=
1872
1873    func_run_hooks func_options_prep ${1+"$@"}
1874    func_propagate_result func_run_hooks func_options_prep
1875}
1876
1877
1878# func_parse_options [ARG]...
1879# ---------------------------
1880# The main option parsing loop.
1881func_hookable func_parse_options
1882func_parse_options ()
1883{
1884    $debug_cmd
1885
1886    _G_parse_options_requote=false
1887    # this just eases exit handling
1888    while test $# -gt 0; do
1889      # Defer to hook functions for initial option parsing, so they
1890      # get priority in the event of reusing an option name.
1891      func_run_hooks func_parse_options ${1+"$@"}
1892      func_propagate_result func_run_hooks func_parse_options
1893      if $func_propagate_result_result; then
1894        eval set dummy "$func_parse_options_result"; shift
1895        # Even though we may have changed "$@", we passed the "$@" array
1896        # down into the hook and it quoted it for us (because we are in
1897        # this if-branch).  No need to quote it again.
1898        _G_parse_options_requote=false
1899      fi
1900
1901      # Break out of the loop if we already parsed every option.
1902      test $# -gt 0 || break
1903
1904      # We expect that one of the options parsed in this function matches
1905      # and thus we remove _G_opt from "$@" and need to re-quote.
1906      _G_match_parse_options=:
1907      _G_opt=$1
1908      shift
1909      case $_G_opt in
1910        --debug|-x)   debug_cmd='set -x'
1911                      func_echo "enabling shell trace mode" >&2
1912                      $debug_cmd
1913                      ;;
1914
1915        --no-warnings|--no-warning|--no-warn)
1916                      set dummy --warnings none ${1+"$@"}
1917                      shift
1918		      ;;
1919
1920        --warnings|--warning|-W)
1921                      if test $# = 0 && func_missing_arg $_G_opt; then
1922                        _G_parse_options_requote=:
1923                        break
1924                      fi
1925                      case " $warning_categories $1" in
1926                        *" $1 "*)
1927                          # trailing space prevents matching last $1 above
1928                          func_append_uniq opt_warning_types " $1"
1929                          ;;
1930                        *all)
1931                          opt_warning_types=$warning_categories
1932                          ;;
1933                        *none)
1934                          opt_warning_types=none
1935                          warning_func=:
1936                          ;;
1937                        *error)
1938                          opt_warning_types=$warning_categories
1939                          warning_func=func_fatal_error
1940                          ;;
1941                        *)
1942                          func_fatal_error \
1943                             "unsupported warning category: '$1'"
1944                          ;;
1945                      esac
1946                      shift
1947                      ;;
1948
1949        --verbose|-v) opt_verbose=: ;;
1950        --version)    func_version ;;
1951        -\?|-h)       func_usage ;;
1952        --help)       func_help ;;
1953
1954	# Separate optargs to long options (plugins may need this):
1955	--*=*)        func_split_equals "$_G_opt"
1956	              set dummy "$func_split_equals_lhs" \
1957                          "$func_split_equals_rhs" ${1+"$@"}
1958                      shift
1959                      ;;
1960
1961       # Separate optargs to short options:
1962        -W*)
1963                      func_split_short_opt "$_G_opt"
1964                      set dummy "$func_split_short_opt_name" \
1965                          "$func_split_short_opt_arg" ${1+"$@"}
1966                      shift
1967                      ;;
1968
1969        # Separate non-argument short options:
1970        -\?*|-h*|-v*|-x*)
1971                      func_split_short_opt "$_G_opt"
1972                      set dummy "$func_split_short_opt_name" \
1973                          "-$func_split_short_opt_arg" ${1+"$@"}
1974                      shift
1975                      ;;
1976
1977        --)           _G_parse_options_requote=: ; break ;;
1978        -*)           func_fatal_help "unrecognised option: '$_G_opt'" ;;
1979        *)            set dummy "$_G_opt" ${1+"$@"}; shift
1980                      _G_match_parse_options=false
1981                      break
1982                      ;;
1983      esac
1984
1985      if $_G_match_parse_options; then
1986        _G_parse_options_requote=:
1987      fi
1988    done
1989
1990    if $_G_parse_options_requote; then
1991      # save modified positional parameters for caller
1992      func_quote eval ${1+"$@"}
1993      func_parse_options_result=$func_quote_result
1994    fi
1995}
1996
1997
1998# func_validate_options [ARG]...
1999# ------------------------------
2000# Perform any sanity checks on option settings and/or unconsumed
2001# arguments.
2002func_hookable func_validate_options
2003func_validate_options ()
2004{
2005    $debug_cmd
2006
2007    # Display all warnings if -W was not given.
2008    test -n "$opt_warning_types" || opt_warning_types=" $warning_categories"
2009
2010    func_run_hooks func_validate_options ${1+"$@"}
2011    func_propagate_result func_run_hooks func_validate_options
2012
2013    # Bail if the options were screwed!
2014    $exit_cmd $EXIT_FAILURE
2015}
2016
2017
2018
2019## ----------------- ##
2020## Helper functions. ##
2021## ----------------- ##
2022
2023# This section contains the helper functions used by the rest of the
2024# hookable option parser framework in ascii-betical order.
2025
2026
2027# func_fatal_help ARG...
2028# ----------------------
2029# Echo program name prefixed message to standard error, followed by
2030# a help hint, and exit.
2031func_fatal_help ()
2032{
2033    $debug_cmd
2034
2035    eval \$ECHO \""Usage: $usage"\"
2036    eval \$ECHO \""$fatal_help"\"
2037    func_error ${1+"$@"}
2038    exit $EXIT_FAILURE
2039}
2040
2041
2042# func_help
2043# ---------
2044# Echo long help message to standard output and exit.
2045func_help ()
2046{
2047    $debug_cmd
2048
2049    func_usage_message
2050    $ECHO "$long_help_message"
2051    exit 0
2052}
2053
2054
2055# func_missing_arg ARGNAME
2056# ------------------------
2057# Echo program name prefixed message to standard error and set global
2058# exit_cmd.
2059func_missing_arg ()
2060{
2061    $debug_cmd
2062
2063    func_error "Missing argument for '$1'."
2064    exit_cmd=exit
2065}
2066
2067
2068# func_split_equals STRING
2069# ------------------------
2070# Set func_split_equals_lhs and func_split_equals_rhs shell variables
2071# after splitting STRING at the '=' sign.
2072test -z "$_G_HAVE_XSI_OPS" \
2073    && (eval 'x=a/b/c;
2074      test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \
2075    && _G_HAVE_XSI_OPS=yes
2076
2077if test yes = "$_G_HAVE_XSI_OPS"
2078then
2079  # This is an XSI compatible shell, allowing a faster implementation...
2080  eval 'func_split_equals ()
2081  {
2082      $debug_cmd
2083
2084      func_split_equals_lhs=${1%%=*}
2085      func_split_equals_rhs=${1#*=}
2086      if test "x$func_split_equals_lhs" = "x$1"; then
2087        func_split_equals_rhs=
2088      fi
2089  }'
2090else
2091  # ...otherwise fall back to using expr, which is often a shell builtin.
2092  func_split_equals ()
2093  {
2094      $debug_cmd
2095
2096      func_split_equals_lhs=`expr "x$1" : 'x\([^=]*\)'`
2097      func_split_equals_rhs=
2098      test "x$func_split_equals_lhs=" = "x$1" \
2099        || func_split_equals_rhs=`expr "x$1" : 'x[^=]*=\(.*\)$'`
2100  }
2101fi #func_split_equals
2102
2103
2104# func_split_short_opt SHORTOPT
2105# -----------------------------
2106# Set func_split_short_opt_name and func_split_short_opt_arg shell
2107# variables after splitting SHORTOPT after the 2nd character.
2108if test yes = "$_G_HAVE_XSI_OPS"
2109then
2110  # This is an XSI compatible shell, allowing a faster implementation...
2111  eval 'func_split_short_opt ()
2112  {
2113      $debug_cmd
2114
2115      func_split_short_opt_arg=${1#??}
2116      func_split_short_opt_name=${1%"$func_split_short_opt_arg"}
2117  }'
2118else
2119  # ...otherwise fall back to using expr, which is often a shell builtin.
2120  func_split_short_opt ()
2121  {
2122      $debug_cmd
2123
2124      func_split_short_opt_name=`expr "x$1" : 'x\(-.\)'`
2125      func_split_short_opt_arg=`expr "x$1" : 'x-.\(.*\)$'`
2126  }
2127fi #func_split_short_opt
2128
2129
2130# func_usage
2131# ----------
2132# Echo short help message to standard output and exit.
2133func_usage ()
2134{
2135    $debug_cmd
2136
2137    func_usage_message
2138    $ECHO "Run '$progname --help |${PAGER-more}' for full usage"
2139    exit 0
2140}
2141
2142
2143# func_usage_message
2144# ------------------
2145# Echo short help message to standard output.
2146func_usage_message ()
2147{
2148    $debug_cmd
2149
2150    eval \$ECHO \""Usage: $usage"\"
2151    echo
2152    $SED -n 's|^# ||
2153        /^Written by/{
2154          x;p;x
2155        }
2156	h
2157	/^Written by/q' < "$progpath"
2158    echo
2159    eval \$ECHO \""$usage_message"\"
2160}
2161
2162
2163# func_version
2164# ------------
2165# Echo version message to standard output and exit.
2166# The version message is extracted from the calling file's header
2167# comments, with leading '# ' stripped:
2168#   1. First display the progname and version
2169#   2. Followed by the header comment line matching  /^# Written by /
2170#   3. Then a blank line followed by the first following line matching
2171#      /^# Copyright /
2172#   4. Immediately followed by any lines between the previous matches,
2173#      except lines preceding the intervening completely blank line.
2174# For example, see the header comments of this file.
2175func_version ()
2176{
2177    $debug_cmd
2178
2179    printf '%s\n' "$progname $scriptversion"
2180    $SED -n '
2181        /^# Written by /!b
2182        s|^# ||; p; n
2183
2184        :fwd2blnk
2185        /./ {
2186          n
2187          b fwd2blnk
2188        }
2189        p; n
2190
2191        :holdwrnt
2192        s|^# ||
2193        s|^# *$||
2194        /^Copyright /!{
2195          /./H
2196          n
2197          b holdwrnt
2198        }
2199
2200        s|\((C)\)[ 0-9,-]*[ ,-]\([1-9][0-9]* \)|\1 \2|
2201        G
2202        s|\(\n\)\n*|\1|g
2203        p; q' < "$progpath"
2204
2205    exit $?
2206}
2207
2208
2209# Local variables:
2210# mode: shell-script
2211# sh-indentation: 2
2212# eval: (add-hook 'before-save-hook 'time-stamp)
2213# time-stamp-pattern: "30/scriptversion=%:y-%02m-%02d.%02H; # UTC"
2214# time-stamp-time-zone: "UTC"
2215# End:
2216
2217# Set a version string.
2218scriptversion='(GNU libtool) 2.4.7'
2219
2220
2221# func_echo ARG...
2222# ----------------
2223# Libtool also displays the current mode in messages, so override
2224# funclib.sh func_echo with this custom definition.
2225func_echo ()
2226{
2227    $debug_cmd
2228
2229    _G_message=$*
2230
2231    func_echo_IFS=$IFS
2232    IFS=$nl
2233    for _G_line in $_G_message; do
2234      IFS=$func_echo_IFS
2235      $ECHO "$progname${opt_mode+: $opt_mode}: $_G_line"
2236    done
2237    IFS=$func_echo_IFS
2238}
2239
2240
2241# func_warning ARG...
2242# -------------------
2243# Libtool warnings are not categorized, so override funclib.sh
2244# func_warning with this simpler definition.
2245func_warning ()
2246{
2247    $debug_cmd
2248
2249    $warning_func ${1+"$@"}
2250}
2251
2252
2253## ---------------- ##
2254## Options parsing. ##
2255## ---------------- ##
2256
2257# Hook in the functions to make sure our own options are parsed during
2258# the option parsing loop.
2259
2260usage='$progpath [OPTION]... [MODE-ARG]...'
2261
2262# Short help message in response to '-h'.
2263usage_message="Options:
2264       --config             show all configuration variables
2265       --debug              enable verbose shell tracing
2266   -n, --dry-run            display commands without modifying any files
2267       --features           display basic configuration information and exit
2268       --mode=MODE          use operation mode MODE
2269       --no-warnings        equivalent to '-Wnone'
2270       --preserve-dup-deps  don't remove duplicate dependency libraries
2271       --quiet, --silent    don't print informational messages
2272       --tag=TAG            use configuration variables from tag TAG
2273   -v, --verbose            print more informational messages than default
2274       --version            print version information
2275   -W, --warnings=CATEGORY  report the warnings falling in CATEGORY [all]
2276   -h, --help, --help-all   print short, long, or detailed help message
2277"
2278
2279# Additional text appended to 'usage_message' in response to '--help'.
2280func_help ()
2281{
2282    $debug_cmd
2283
2284    func_usage_message
2285    $ECHO "$long_help_message
2286
2287MODE must be one of the following:
2288
2289       clean           remove files from the build directory
2290       compile         compile a source file into a libtool object
2291       execute         automatically set library path, then run a program
2292       finish          complete the installation of libtool libraries
2293       install         install libraries or executables
2294       link            create a library or an executable
2295       uninstall       remove libraries from an installed directory
2296
2297MODE-ARGS vary depending on the MODE.  When passed as first option,
2298'--mode=MODE' may be abbreviated as 'MODE' or a unique abbreviation of that.
2299Try '$progname --help --mode=MODE' for a more detailed description of MODE.
2300
2301When reporting a bug, please describe a test case to reproduce it and
2302include the following information:
2303
2304       host-triplet:   $host
2305       shell:          $SHELL
2306       compiler:       $LTCC
2307       compiler flags: $LTCFLAGS
2308       linker:         $LD (gnu? $with_gnu_ld)
2309       version:        $progname (GNU libtool) 2.4.7
2310       automake:       `($AUTOMAKE --version) 2>/dev/null |$SED 1q`
2311       autoconf:       `($AUTOCONF --version) 2>/dev/null |$SED 1q`
2312
2313Report bugs to <bug-libtool@gnu.org>.
2314GNU libtool home page: <http://www.gnu.org/software/libtool/>.
2315General help using GNU software: <http://www.gnu.org/gethelp/>."
2316    exit 0
2317}
2318
2319
2320# func_lo2o OBJECT-NAME
2321# ---------------------
2322# Transform OBJECT-NAME from a '.lo' suffix to the platform specific
2323# object suffix.
2324
2325lo2o=s/\\.lo\$/.$objext/
2326o2lo=s/\\.$objext\$/.lo/
2327
2328if test yes = "$_G_HAVE_XSI_OPS"; then
2329  eval 'func_lo2o ()
2330  {
2331    case $1 in
2332      *.lo) func_lo2o_result=${1%.lo}.$objext ;;
2333      *   ) func_lo2o_result=$1               ;;
2334    esac
2335  }'
2336
2337  # func_xform LIBOBJ-OR-SOURCE
2338  # ---------------------------
2339  # Transform LIBOBJ-OR-SOURCE from a '.o' or '.c' (or otherwise)
2340  # suffix to a '.lo' libtool-object suffix.
2341  eval 'func_xform ()
2342  {
2343    func_xform_result=${1%.*}.lo
2344  }'
2345else
2346  # ...otherwise fall back to using sed.
2347  func_lo2o ()
2348  {
2349    func_lo2o_result=`$ECHO "$1" | $SED "$lo2o"`
2350  }
2351
2352  func_xform ()
2353  {
2354    func_xform_result=`$ECHO "$1" | $SED 's|\.[^.]*$|.lo|'`
2355  }
2356fi
2357
2358
2359# func_fatal_configuration ARG...
2360# -------------------------------
2361# Echo program name prefixed message to standard error, followed by
2362# a configuration failure hint, and exit.
2363func_fatal_configuration ()
2364{
2365    func_fatal_error ${1+"$@"} \
2366      "See the $PACKAGE documentation for more information." \
2367      "Fatal configuration error."
2368}
2369
2370
2371# func_config
2372# -----------
2373# Display the configuration for all the tags in this script.
2374func_config ()
2375{
2376    re_begincf='^# ### BEGIN LIBTOOL'
2377    re_endcf='^# ### END LIBTOOL'
2378
2379    # Default configuration.
2380    $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath"
2381
2382    # Now print the configurations for the tags.
2383    for tagname in $taglist; do
2384      $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath"
2385    done
2386
2387    exit $?
2388}
2389
2390
2391# func_features
2392# -------------
2393# Display the features supported by this script.
2394func_features ()
2395{
2396    echo "host: $host"
2397    if test yes = "$build_libtool_libs"; then
2398      echo "enable shared libraries"
2399    else
2400      echo "disable shared libraries"
2401    fi
2402    if test yes = "$build_old_libs"; then
2403      echo "enable static libraries"
2404    else
2405      echo "disable static libraries"
2406    fi
2407
2408    exit $?
2409}
2410
2411
2412# func_enable_tag TAGNAME
2413# -----------------------
2414# Verify that TAGNAME is valid, and either flag an error and exit, or
2415# enable the TAGNAME tag.  We also add TAGNAME to the global $taglist
2416# variable here.
2417func_enable_tag ()
2418{
2419    # Global variable:
2420    tagname=$1
2421
2422    re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$"
2423    re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$"
2424    sed_extractcf=/$re_begincf/,/$re_endcf/p
2425
2426    # Validate tagname.
2427    case $tagname in
2428      *[!-_A-Za-z0-9,/]*)
2429        func_fatal_error "invalid tag name: $tagname"
2430        ;;
2431    esac
2432
2433    # Don't test for the "default" C tag, as we know it's
2434    # there but not specially marked.
2435    case $tagname in
2436        CC) ;;
2437    *)
2438        if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then
2439	  taglist="$taglist $tagname"
2440
2441	  # Evaluate the configuration.  Be careful to quote the path
2442	  # and the sed script, to avoid splitting on whitespace, but
2443	  # also don't use non-portable quotes within backquotes within
2444	  # quotes we have to do it in 2 steps:
2445	  extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"`
2446	  eval "$extractedcf"
2447        else
2448	  func_error "ignoring unknown tag $tagname"
2449        fi
2450        ;;
2451    esac
2452}
2453
2454
2455# func_check_version_match
2456# ------------------------
2457# Ensure that we are using m4 macros, and libtool script from the same
2458# release of libtool.
2459func_check_version_match ()
2460{
2461    if test "$package_revision" != "$macro_revision"; then
2462      if test "$VERSION" != "$macro_version"; then
2463        if test -z "$macro_version"; then
2464          cat >&2 <<_LT_EOF
2465$progname: Version mismatch error.  This is $PACKAGE $VERSION, but the
2466$progname: definition of this LT_INIT comes from an older release.
2467$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
2468$progname: and run autoconf again.
2469_LT_EOF
2470        else
2471          cat >&2 <<_LT_EOF
2472$progname: Version mismatch error.  This is $PACKAGE $VERSION, but the
2473$progname: definition of this LT_INIT comes from $PACKAGE $macro_version.
2474$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
2475$progname: and run autoconf again.
2476_LT_EOF
2477        fi
2478      else
2479        cat >&2 <<_LT_EOF
2480$progname: Version mismatch error.  This is $PACKAGE $VERSION, revision $package_revision,
2481$progname: but the definition of this LT_INIT comes from revision $macro_revision.
2482$progname: You should recreate aclocal.m4 with macros from revision $package_revision
2483$progname: of $PACKAGE $VERSION and run autoconf again.
2484_LT_EOF
2485      fi
2486
2487      exit $EXIT_MISMATCH
2488    fi
2489}
2490
2491
2492# libtool_options_prep [ARG]...
2493# -----------------------------
2494# Preparation for options parsed by libtool.
2495libtool_options_prep ()
2496{
2497    $debug_mode
2498
2499    # Option defaults:
2500    opt_config=false
2501    opt_dlopen=
2502    opt_dry_run=false
2503    opt_help=false
2504    opt_mode=
2505    opt_preserve_dup_deps=false
2506    opt_quiet=false
2507
2508    nonopt=
2509    preserve_args=
2510
2511    _G_rc_lt_options_prep=:
2512
2513    # Shorthand for --mode=foo, only valid as the first argument
2514    case $1 in
2515    clean|clea|cle|cl)
2516      shift; set dummy --mode clean ${1+"$@"}; shift
2517      ;;
2518    compile|compil|compi|comp|com|co|c)
2519      shift; set dummy --mode compile ${1+"$@"}; shift
2520      ;;
2521    execute|execut|execu|exec|exe|ex|e)
2522      shift; set dummy --mode execute ${1+"$@"}; shift
2523      ;;
2524    finish|finis|fini|fin|fi|f)
2525      shift; set dummy --mode finish ${1+"$@"}; shift
2526      ;;
2527    install|instal|insta|inst|ins|in|i)
2528      shift; set dummy --mode install ${1+"$@"}; shift
2529      ;;
2530    link|lin|li|l)
2531      shift; set dummy --mode link ${1+"$@"}; shift
2532      ;;
2533    uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u)
2534      shift; set dummy --mode uninstall ${1+"$@"}; shift
2535      ;;
2536    *)
2537      _G_rc_lt_options_prep=false
2538      ;;
2539    esac
2540
2541    if $_G_rc_lt_options_prep; then
2542      # Pass back the list of options.
2543      func_quote eval ${1+"$@"}
2544      libtool_options_prep_result=$func_quote_result
2545    fi
2546}
2547func_add_hook func_options_prep libtool_options_prep
2548
2549
2550# libtool_parse_options [ARG]...
2551# ---------------------------------
2552# Provide handling for libtool specific options.
2553libtool_parse_options ()
2554{
2555    $debug_cmd
2556
2557    _G_rc_lt_parse_options=false
2558
2559    # Perform our own loop to consume as many options as possible in
2560    # each iteration.
2561    while test $# -gt 0; do
2562      _G_match_lt_parse_options=:
2563      _G_opt=$1
2564      shift
2565      case $_G_opt in
2566        --dry-run|--dryrun|-n)
2567                        opt_dry_run=:
2568                        ;;
2569
2570        --config)       func_config ;;
2571
2572        --dlopen|-dlopen)
2573                        opt_dlopen="${opt_dlopen+$opt_dlopen
2574}$1"
2575                        shift
2576                        ;;
2577
2578        --preserve-dup-deps)
2579                        opt_preserve_dup_deps=: ;;
2580
2581        --features)     func_features ;;
2582
2583        --finish)       set dummy --mode finish ${1+"$@"}; shift ;;
2584
2585        --help)         opt_help=: ;;
2586
2587        --help-all)     opt_help=': help-all' ;;
2588
2589        --mode)         test $# = 0 && func_missing_arg $_G_opt && break
2590                        opt_mode=$1
2591                        case $1 in
2592                          # Valid mode arguments:
2593                          clean|compile|execute|finish|install|link|relink|uninstall) ;;
2594
2595                          # Catch anything else as an error
2596                          *) func_error "invalid argument for $_G_opt"
2597                             exit_cmd=exit
2598                             break
2599                             ;;
2600                        esac
2601                        shift
2602                        ;;
2603
2604        --no-silent|--no-quiet)
2605                        opt_quiet=false
2606                        func_append preserve_args " $_G_opt"
2607                        ;;
2608
2609        --no-warnings|--no-warning|--no-warn)
2610                        opt_warning=false
2611                        func_append preserve_args " $_G_opt"
2612                        ;;
2613
2614        --no-verbose)
2615                        opt_verbose=false
2616                        func_append preserve_args " $_G_opt"
2617                        ;;
2618
2619        --silent|--quiet)
2620                        opt_quiet=:
2621                        opt_verbose=false
2622                        func_append preserve_args " $_G_opt"
2623                        ;;
2624
2625        --tag)          test $# = 0 && func_missing_arg $_G_opt && break
2626                        opt_tag=$1
2627                        func_append preserve_args " $_G_opt $1"
2628                        func_enable_tag "$1"
2629                        shift
2630                        ;;
2631
2632        --verbose|-v)   opt_quiet=false
2633                        opt_verbose=:
2634                        func_append preserve_args " $_G_opt"
2635                        ;;
2636
2637        # An option not handled by this hook function:
2638        *)              set dummy "$_G_opt" ${1+"$@"} ; shift
2639                        _G_match_lt_parse_options=false
2640                        break
2641                        ;;
2642      esac
2643      $_G_match_lt_parse_options && _G_rc_lt_parse_options=:
2644    done
2645
2646    if $_G_rc_lt_parse_options; then
2647      # save modified positional parameters for caller
2648      func_quote eval ${1+"$@"}
2649      libtool_parse_options_result=$func_quote_result
2650    fi
2651}
2652func_add_hook func_parse_options libtool_parse_options
2653
2654
2655
2656# libtool_validate_options [ARG]...
2657# ---------------------------------
2658# Perform any sanity checks on option settings and/or unconsumed
2659# arguments.
2660libtool_validate_options ()
2661{
2662    # save first non-option argument
2663    if test 0 -lt $#; then
2664      nonopt=$1
2665      shift
2666    fi
2667
2668    # preserve --debug
2669    test : = "$debug_cmd" || func_append preserve_args " --debug"
2670
2671    case $host in
2672      # Solaris2 added to fix http://debbugs.gnu.org/cgi/bugreport.cgi?bug=16452
2673      # see also: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59788
2674      *cygwin* | *mingw* | *pw32* | *cegcc* | *solaris2* | *os2*)
2675        # don't eliminate duplications in $postdeps and $predeps
2676        opt_duplicate_compiler_generated_deps=:
2677        ;;
2678      *)
2679        opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps
2680        ;;
2681    esac
2682
2683    $opt_help || {
2684      # Sanity checks first:
2685      func_check_version_match
2686
2687      test yes != "$build_libtool_libs" \
2688        && test yes != "$build_old_libs" \
2689        && func_fatal_configuration "not configured to build any kind of library"
2690
2691      # Darwin sucks
2692      eval std_shrext=\"$shrext_cmds\"
2693
2694      # Only execute mode is allowed to have -dlopen flags.
2695      if test -n "$opt_dlopen" && test execute != "$opt_mode"; then
2696        func_error "unrecognized option '-dlopen'"
2697        $ECHO "$help" 1>&2
2698        exit $EXIT_FAILURE
2699      fi
2700
2701      # Change the help message to a mode-specific one.
2702      generic_help=$help
2703      help="Try '$progname --help --mode=$opt_mode' for more information."
2704    }
2705
2706    # Pass back the unparsed argument list
2707    func_quote eval ${1+"$@"}
2708    libtool_validate_options_result=$func_quote_result
2709}
2710func_add_hook func_validate_options libtool_validate_options
2711
2712
2713# Process options as early as possible so that --help and --version
2714# can return quickly.
2715func_options ${1+"$@"}
2716eval set dummy "$func_options_result"; shift
2717
2718
2719
2720## ----------- ##
2721##    Main.    ##
2722## ----------- ##
2723
2724magic='%%%MAGIC variable%%%'
2725magic_exe='%%%MAGIC EXE variable%%%'
2726
2727# Global variables.
2728extracted_archives=
2729extracted_serial=0
2730
2731# If this variable is set in any of the actions, the command in it
2732# will be execed at the end.  This prevents here-documents from being
2733# left over by shells.
2734exec_cmd=
2735
2736
2737# A function that is used when there is no print builtin or printf.
2738func_fallback_echo ()
2739{
2740  eval 'cat <<_LTECHO_EOF
2741$1
2742_LTECHO_EOF'
2743}
2744
2745# func_generated_by_libtool
2746# True iff stdin has been generated by Libtool. This function is only
2747# a basic sanity check; it will hardly flush out determined imposters.
2748func_generated_by_libtool_p ()
2749{
2750  $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1
2751}
2752
2753# func_lalib_p file
2754# True iff FILE is a libtool '.la' library or '.lo' object file.
2755# This function is only a basic sanity check; it will hardly flush out
2756# determined imposters.
2757func_lalib_p ()
2758{
2759    test -f "$1" &&
2760      $SED -e 4q "$1" 2>/dev/null | func_generated_by_libtool_p
2761}
2762
2763# func_lalib_unsafe_p file
2764# True iff FILE is a libtool '.la' library or '.lo' object file.
2765# This function implements the same check as func_lalib_p without
2766# resorting to external programs.  To this end, it redirects stdin and
2767# closes it afterwards, without saving the original file descriptor.
2768# As a safety measure, use it only where a negative result would be
2769# fatal anyway.  Works if 'file' does not exist.
2770func_lalib_unsafe_p ()
2771{
2772    lalib_p=no
2773    if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then
2774	for lalib_p_l in 1 2 3 4
2775	do
2776	    read lalib_p_line
2777	    case $lalib_p_line in
2778		\#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;;
2779	    esac
2780	done
2781	exec 0<&5 5<&-
2782    fi
2783    test yes = "$lalib_p"
2784}
2785
2786# func_ltwrapper_script_p file
2787# True iff FILE is a libtool wrapper script
2788# This function is only a basic sanity check; it will hardly flush out
2789# determined imposters.
2790func_ltwrapper_script_p ()
2791{
2792    test -f "$1" &&
2793      $lt_truncate_bin < "$1" 2>/dev/null | func_generated_by_libtool_p
2794}
2795
2796# func_ltwrapper_executable_p file
2797# True iff FILE is a libtool wrapper executable
2798# This function is only a basic sanity check; it will hardly flush out
2799# determined imposters.
2800func_ltwrapper_executable_p ()
2801{
2802    func_ltwrapper_exec_suffix=
2803    case $1 in
2804    *.exe) ;;
2805    *) func_ltwrapper_exec_suffix=.exe ;;
2806    esac
2807    $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1
2808}
2809
2810# func_ltwrapper_scriptname file
2811# Assumes file is an ltwrapper_executable
2812# uses $file to determine the appropriate filename for a
2813# temporary ltwrapper_script.
2814func_ltwrapper_scriptname ()
2815{
2816    func_dirname_and_basename "$1" "" "."
2817    func_stripname '' '.exe' "$func_basename_result"
2818    func_ltwrapper_scriptname_result=$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper
2819}
2820
2821# func_ltwrapper_p file
2822# True iff FILE is a libtool wrapper script or wrapper executable
2823# This function is only a basic sanity check; it will hardly flush out
2824# determined imposters.
2825func_ltwrapper_p ()
2826{
2827    func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1"
2828}
2829
2830
2831# func_execute_cmds commands fail_cmd
2832# Execute tilde-delimited COMMANDS.
2833# If FAIL_CMD is given, eval that upon failure.
2834# FAIL_CMD may read-access the current command in variable CMD!
2835func_execute_cmds ()
2836{
2837    $debug_cmd
2838
2839    save_ifs=$IFS; IFS='~'
2840    for cmd in $1; do
2841      IFS=$sp$nl
2842      eval cmd=\"$cmd\"
2843      IFS=$save_ifs
2844      func_show_eval "$cmd" "${2-:}"
2845    done
2846    IFS=$save_ifs
2847}
2848
2849
2850# func_source file
2851# Source FILE, adding directory component if necessary.
2852# Note that it is not necessary on cygwin/mingw to append a dot to
2853# FILE even if both FILE and FILE.exe exist: automatic-append-.exe
2854# behavior happens only for exec(3), not for open(2)!  Also, sourcing
2855# 'FILE.' does not work on cygwin managed mounts.
2856func_source ()
2857{
2858    $debug_cmd
2859
2860    case $1 in
2861    */* | *\\*)	. "$1" ;;
2862    *)		. "./$1" ;;
2863    esac
2864}
2865
2866
2867# func_resolve_sysroot PATH
2868# Replace a leading = in PATH with a sysroot.  Store the result into
2869# func_resolve_sysroot_result
2870func_resolve_sysroot ()
2871{
2872  func_resolve_sysroot_result=$1
2873  case $func_resolve_sysroot_result in
2874  =*)
2875    func_stripname '=' '' "$func_resolve_sysroot_result"
2876    func_resolve_sysroot_result=$lt_sysroot$func_stripname_result
2877    ;;
2878  esac
2879}
2880
2881# func_replace_sysroot PATH
2882# If PATH begins with the sysroot, replace it with = and
2883# store the result into func_replace_sysroot_result.
2884func_replace_sysroot ()
2885{
2886  case $lt_sysroot:$1 in
2887  ?*:"$lt_sysroot"*)
2888    func_stripname "$lt_sysroot" '' "$1"
2889    func_replace_sysroot_result='='$func_stripname_result
2890    ;;
2891  *)
2892    # Including no sysroot.
2893    func_replace_sysroot_result=$1
2894    ;;
2895  esac
2896}
2897
2898# func_infer_tag arg
2899# Infer tagged configuration to use if any are available and
2900# if one wasn't chosen via the "--tag" command line option.
2901# Only attempt this if the compiler in the base compile
2902# command doesn't match the default compiler.
2903# arg is usually of the form 'gcc ...'
2904func_infer_tag ()
2905{
2906    $debug_cmd
2907
2908    if test -n "$available_tags" && test -z "$tagname"; then
2909      CC_quoted=
2910      for arg in $CC; do
2911	func_append_quoted CC_quoted "$arg"
2912      done
2913      CC_expanded=`func_echo_all $CC`
2914      CC_quoted_expanded=`func_echo_all $CC_quoted`
2915      case $@ in
2916      # Blanks in the command may have been stripped by the calling shell,
2917      # but not from the CC environment variable when configure was run.
2918      " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \
2919      " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;;
2920      # Blanks at the start of $base_compile will cause this to fail
2921      # if we don't check for them as well.
2922      *)
2923	for z in $available_tags; do
2924	  if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then
2925	    # Evaluate the configuration.
2926	    eval "`$SED -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"
2927	    CC_quoted=
2928	    for arg in $CC; do
2929	      # Double-quote args containing other shell metacharacters.
2930	      func_append_quoted CC_quoted "$arg"
2931	    done
2932	    CC_expanded=`func_echo_all $CC`
2933	    CC_quoted_expanded=`func_echo_all $CC_quoted`
2934	    case "$@ " in
2935	    " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \
2936	    " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*)
2937	      # The compiler in the base compile command matches
2938	      # the one in the tagged configuration.
2939	      # Assume this is the tagged configuration we want.
2940	      tagname=$z
2941	      break
2942	      ;;
2943	    esac
2944	  fi
2945	done
2946	# If $tagname still isn't set, then no tagged configuration
2947	# was found and let the user know that the "--tag" command
2948	# line option must be used.
2949	if test -z "$tagname"; then
2950	  func_echo "unable to infer tagged configuration"
2951	  func_fatal_error "specify a tag with '--tag'"
2952#	else
2953#	  func_verbose "using $tagname tagged configuration"
2954	fi
2955	;;
2956      esac
2957    fi
2958}
2959
2960
2961
2962# func_write_libtool_object output_name pic_name nonpic_name
2963# Create a libtool object file (analogous to a ".la" file),
2964# but don't create it if we're doing a dry run.
2965func_write_libtool_object ()
2966{
2967    write_libobj=$1
2968    if test yes = "$build_libtool_libs"; then
2969      write_lobj=\'$2\'
2970    else
2971      write_lobj=none
2972    fi
2973
2974    if test yes = "$build_old_libs"; then
2975      write_oldobj=\'$3\'
2976    else
2977      write_oldobj=none
2978    fi
2979
2980    $opt_dry_run || {
2981      cat >${write_libobj}T <<EOF
2982# $write_libobj - a libtool object file
2983# Generated by $PROGRAM (GNU $PACKAGE) $VERSION
2984#
2985# Please DO NOT delete this file!
2986# It is necessary for linking the library.
2987
2988# Name of the PIC object.
2989pic_object=$write_lobj
2990
2991# Name of the non-PIC object
2992non_pic_object=$write_oldobj
2993
2994EOF
2995      $MV "${write_libobj}T" "$write_libobj"
2996    }
2997}
2998
2999
3000##################################################
3001# FILE NAME AND PATH CONVERSION HELPER FUNCTIONS #
3002##################################################
3003
3004# func_convert_core_file_wine_to_w32 ARG
3005# Helper function used by file name conversion functions when $build is *nix,
3006# and $host is mingw, cygwin, or some other w32 environment. Relies on a
3007# correctly configured wine environment available, with the winepath program
3008# in $build's $PATH.
3009#
3010# ARG is the $build file name to be converted to w32 format.
3011# Result is available in $func_convert_core_file_wine_to_w32_result, and will
3012# be empty on error (or when ARG is empty)
3013func_convert_core_file_wine_to_w32 ()
3014{
3015  $debug_cmd
3016
3017  func_convert_core_file_wine_to_w32_result=$1
3018  if test -n "$1"; then
3019    # Unfortunately, winepath does not exit with a non-zero error code, so we
3020    # are forced to check the contents of stdout. On the other hand, if the
3021    # command is not found, the shell will set an exit code of 127 and print
3022    # *an error message* to stdout. So we must check for both error code of
3023    # zero AND non-empty stdout, which explains the odd construction:
3024    func_convert_core_file_wine_to_w32_tmp=`winepath -w "$1" 2>/dev/null`
3025    if test "$?" -eq 0 && test -n "$func_convert_core_file_wine_to_w32_tmp"; then
3026      func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" |
3027        $SED -e "$sed_naive_backslashify"`
3028    else
3029      func_convert_core_file_wine_to_w32_result=
3030    fi
3031  fi
3032}
3033# end: func_convert_core_file_wine_to_w32
3034
3035
3036# func_convert_core_path_wine_to_w32 ARG
3037# Helper function used by path conversion functions when $build is *nix, and
3038# $host is mingw, cygwin, or some other w32 environment. Relies on a correctly
3039# configured wine environment available, with the winepath program in $build's
3040# $PATH. Assumes ARG has no leading or trailing path separator characters.
3041#
3042# ARG is path to be converted from $build format to win32.
3043# Result is available in $func_convert_core_path_wine_to_w32_result.
3044# Unconvertible file (directory) names in ARG are skipped; if no directory names
3045# are convertible, then the result may be empty.
3046func_convert_core_path_wine_to_w32 ()
3047{
3048  $debug_cmd
3049
3050  # unfortunately, winepath doesn't convert paths, only file names
3051  func_convert_core_path_wine_to_w32_result=
3052  if test -n "$1"; then
3053    oldIFS=$IFS
3054    IFS=:
3055    for func_convert_core_path_wine_to_w32_f in $1; do
3056      IFS=$oldIFS
3057      func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f"
3058      if test -n "$func_convert_core_file_wine_to_w32_result"; then
3059        if test -z "$func_convert_core_path_wine_to_w32_result"; then
3060          func_convert_core_path_wine_to_w32_result=$func_convert_core_file_wine_to_w32_result
3061        else
3062          func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result"
3063        fi
3064      fi
3065    done
3066    IFS=$oldIFS
3067  fi
3068}
3069# end: func_convert_core_path_wine_to_w32
3070
3071
3072# func_cygpath ARGS...
3073# Wrapper around calling the cygpath program via LT_CYGPATH. This is used when
3074# when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2)
3075# $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or
3076# (2), returns the Cygwin file name or path in func_cygpath_result (input
3077# file name or path is assumed to be in w32 format, as previously converted
3078# from $build's *nix or MSYS format). In case (3), returns the w32 file name
3079# or path in func_cygpath_result (input file name or path is assumed to be in
3080# Cygwin format). Returns an empty string on error.
3081#
3082# ARGS are passed to cygpath, with the last one being the file name or path to
3083# be converted.
3084#
3085# Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH
3086# environment variable; do not put it in $PATH.
3087func_cygpath ()
3088{
3089  $debug_cmd
3090
3091  if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then
3092    func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null`
3093    if test "$?" -ne 0; then
3094      # on failure, ensure result is empty
3095      func_cygpath_result=
3096    fi
3097  else
3098    func_cygpath_result=
3099    func_error "LT_CYGPATH is empty or specifies non-existent file: '$LT_CYGPATH'"
3100  fi
3101}
3102#end: func_cygpath
3103
3104
3105# func_convert_core_msys_to_w32 ARG
3106# Convert file name or path ARG from MSYS format to w32 format.  Return
3107# result in func_convert_core_msys_to_w32_result.
3108func_convert_core_msys_to_w32 ()
3109{
3110  $debug_cmd
3111
3112  # awkward: cmd appends spaces to result
3113  func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null |
3114    $SED -e 's/[ ]*$//' -e "$sed_naive_backslashify"`
3115}
3116#end: func_convert_core_msys_to_w32
3117
3118
3119# func_convert_file_check ARG1 ARG2
3120# Verify that ARG1 (a file name in $build format) was converted to $host
3121# format in ARG2. Otherwise, emit an error message, but continue (resetting
3122# func_to_host_file_result to ARG1).
3123func_convert_file_check ()
3124{
3125  $debug_cmd
3126
3127  if test -z "$2" && test -n "$1"; then
3128    func_error "Could not determine host file name corresponding to"
3129    func_error "  '$1'"
3130    func_error "Continuing, but uninstalled executables may not work."
3131    # Fallback:
3132    func_to_host_file_result=$1
3133  fi
3134}
3135# end func_convert_file_check
3136
3137
3138# func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH
3139# Verify that FROM_PATH (a path in $build format) was converted to $host
3140# format in TO_PATH. Otherwise, emit an error message, but continue, resetting
3141# func_to_host_file_result to a simplistic fallback value (see below).
3142func_convert_path_check ()
3143{
3144  $debug_cmd
3145
3146  if test -z "$4" && test -n "$3"; then
3147    func_error "Could not determine the host path corresponding to"
3148    func_error "  '$3'"
3149    func_error "Continuing, but uninstalled executables may not work."
3150    # Fallback.  This is a deliberately simplistic "conversion" and
3151    # should not be "improved".  See libtool.info.
3152    if test "x$1" != "x$2"; then
3153      lt_replace_pathsep_chars="s|$1|$2|g"
3154      func_to_host_path_result=`echo "$3" |
3155        $SED -e "$lt_replace_pathsep_chars"`
3156    else
3157      func_to_host_path_result=$3
3158    fi
3159  fi
3160}
3161# end func_convert_path_check
3162
3163
3164# func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG
3165# Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT
3166# and appending REPL if ORIG matches BACKPAT.
3167func_convert_path_front_back_pathsep ()
3168{
3169  $debug_cmd
3170
3171  case $4 in
3172  $1 ) func_to_host_path_result=$3$func_to_host_path_result
3173    ;;
3174  esac
3175  case $4 in
3176  $2 ) func_append func_to_host_path_result "$3"
3177    ;;
3178  esac
3179}
3180# end func_convert_path_front_back_pathsep
3181
3182
3183##################################################
3184# $build to $host FILE NAME CONVERSION FUNCTIONS #
3185##################################################
3186# invoked via '$to_host_file_cmd ARG'
3187#
3188# In each case, ARG is the path to be converted from $build to $host format.
3189# Result will be available in $func_to_host_file_result.
3190
3191
3192# func_to_host_file ARG
3193# Converts the file name ARG from $build format to $host format. Return result
3194# in func_to_host_file_result.
3195func_to_host_file ()
3196{
3197  $debug_cmd
3198
3199  $to_host_file_cmd "$1"
3200}
3201# end func_to_host_file
3202
3203
3204# func_to_tool_file ARG LAZY
3205# converts the file name ARG from $build format to toolchain format. Return
3206# result in func_to_tool_file_result.  If the conversion in use is listed
3207# in (the comma separated) LAZY, no conversion takes place.
3208func_to_tool_file ()
3209{
3210  $debug_cmd
3211
3212  case ,$2, in
3213    *,"$to_tool_file_cmd",*)
3214      func_to_tool_file_result=$1
3215      ;;
3216    *)
3217      $to_tool_file_cmd "$1"
3218      func_to_tool_file_result=$func_to_host_file_result
3219      ;;
3220  esac
3221}
3222# end func_to_tool_file
3223
3224
3225# func_convert_file_noop ARG
3226# Copy ARG to func_to_host_file_result.
3227func_convert_file_noop ()
3228{
3229  func_to_host_file_result=$1
3230}
3231# end func_convert_file_noop
3232
3233
3234# func_convert_file_msys_to_w32 ARG
3235# Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic
3236# conversion to w32 is not available inside the cwrapper.  Returns result in
3237# func_to_host_file_result.
3238func_convert_file_msys_to_w32 ()
3239{
3240  $debug_cmd
3241
3242  func_to_host_file_result=$1
3243  if test -n "$1"; then
3244    func_convert_core_msys_to_w32 "$1"
3245    func_to_host_file_result=$func_convert_core_msys_to_w32_result
3246  fi
3247  func_convert_file_check "$1" "$func_to_host_file_result"
3248}
3249# end func_convert_file_msys_to_w32
3250
3251
3252# func_convert_file_cygwin_to_w32 ARG
3253# Convert file name ARG from Cygwin to w32 format.  Returns result in
3254# func_to_host_file_result.
3255func_convert_file_cygwin_to_w32 ()
3256{
3257  $debug_cmd
3258
3259  func_to_host_file_result=$1
3260  if test -n "$1"; then
3261    # because $build is cygwin, we call "the" cygpath in $PATH; no need to use
3262    # LT_CYGPATH in this case.
3263    func_to_host_file_result=`cygpath -m "$1"`
3264  fi
3265  func_convert_file_check "$1" "$func_to_host_file_result"
3266}
3267# end func_convert_file_cygwin_to_w32
3268
3269
3270# func_convert_file_nix_to_w32 ARG
3271# Convert file name ARG from *nix to w32 format.  Requires a wine environment
3272# and a working winepath. Returns result in func_to_host_file_result.
3273func_convert_file_nix_to_w32 ()
3274{
3275  $debug_cmd
3276
3277  func_to_host_file_result=$1
3278  if test -n "$1"; then
3279    func_convert_core_file_wine_to_w32 "$1"
3280    func_to_host_file_result=$func_convert_core_file_wine_to_w32_result
3281  fi
3282  func_convert_file_check "$1" "$func_to_host_file_result"
3283}
3284# end func_convert_file_nix_to_w32
3285
3286
3287# func_convert_file_msys_to_cygwin ARG
3288# Convert file name ARG from MSYS to Cygwin format.  Requires LT_CYGPATH set.
3289# Returns result in func_to_host_file_result.
3290func_convert_file_msys_to_cygwin ()
3291{
3292  $debug_cmd
3293
3294  func_to_host_file_result=$1
3295  if test -n "$1"; then
3296    func_convert_core_msys_to_w32 "$1"
3297    func_cygpath -u "$func_convert_core_msys_to_w32_result"
3298    func_to_host_file_result=$func_cygpath_result
3299  fi
3300  func_convert_file_check "$1" "$func_to_host_file_result"
3301}
3302# end func_convert_file_msys_to_cygwin
3303
3304
3305# func_convert_file_nix_to_cygwin ARG
3306# Convert file name ARG from *nix to Cygwin format.  Requires Cygwin installed
3307# in a wine environment, working winepath, and LT_CYGPATH set.  Returns result
3308# in func_to_host_file_result.
3309func_convert_file_nix_to_cygwin ()
3310{
3311  $debug_cmd
3312
3313  func_to_host_file_result=$1
3314  if test -n "$1"; then
3315    # convert from *nix to w32, then use cygpath to convert from w32 to cygwin.
3316    func_convert_core_file_wine_to_w32 "$1"
3317    func_cygpath -u "$func_convert_core_file_wine_to_w32_result"
3318    func_to_host_file_result=$func_cygpath_result
3319  fi
3320  func_convert_file_check "$1" "$func_to_host_file_result"
3321}
3322# end func_convert_file_nix_to_cygwin
3323
3324
3325#############################################
3326# $build to $host PATH CONVERSION FUNCTIONS #
3327#############################################
3328# invoked via '$to_host_path_cmd ARG'
3329#
3330# In each case, ARG is the path to be converted from $build to $host format.
3331# The result will be available in $func_to_host_path_result.
3332#
3333# Path separators are also converted from $build format to $host format.  If
3334# ARG begins or ends with a path separator character, it is preserved (but
3335# converted to $host format) on output.
3336#
3337# All path conversion functions are named using the following convention:
3338#   file name conversion function    : func_convert_file_X_to_Y ()
3339#   path conversion function         : func_convert_path_X_to_Y ()
3340# where, for any given $build/$host combination the 'X_to_Y' value is the
3341# same.  If conversion functions are added for new $build/$host combinations,
3342# the two new functions must follow this pattern, or func_init_to_host_path_cmd
3343# will break.
3344
3345
3346# func_init_to_host_path_cmd
3347# Ensures that function "pointer" variable $to_host_path_cmd is set to the
3348# appropriate value, based on the value of $to_host_file_cmd.
3349to_host_path_cmd=
3350func_init_to_host_path_cmd ()
3351{
3352  $debug_cmd
3353
3354  if test -z "$to_host_path_cmd"; then
3355    func_stripname 'func_convert_file_' '' "$to_host_file_cmd"
3356    to_host_path_cmd=func_convert_path_$func_stripname_result
3357  fi
3358}
3359
3360
3361# func_to_host_path ARG
3362# Converts the path ARG from $build format to $host format. Return result
3363# in func_to_host_path_result.
3364func_to_host_path ()
3365{
3366  $debug_cmd
3367
3368  func_init_to_host_path_cmd
3369  $to_host_path_cmd "$1"
3370}
3371# end func_to_host_path
3372
3373
3374# func_convert_path_noop ARG
3375# Copy ARG to func_to_host_path_result.
3376func_convert_path_noop ()
3377{
3378  func_to_host_path_result=$1
3379}
3380# end func_convert_path_noop
3381
3382
3383# func_convert_path_msys_to_w32 ARG
3384# Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic
3385# conversion to w32 is not available inside the cwrapper.  Returns result in
3386# func_to_host_path_result.
3387func_convert_path_msys_to_w32 ()
3388{
3389  $debug_cmd
3390
3391  func_to_host_path_result=$1
3392  if test -n "$1"; then
3393    # Remove leading and trailing path separator characters from ARG.  MSYS
3394    # behavior is inconsistent here; cygpath turns them into '.;' and ';.';
3395    # and winepath ignores them completely.
3396    func_stripname : : "$1"
3397    func_to_host_path_tmp1=$func_stripname_result
3398    func_convert_core_msys_to_w32 "$func_to_host_path_tmp1"
3399    func_to_host_path_result=$func_convert_core_msys_to_w32_result
3400    func_convert_path_check : ";" \
3401      "$func_to_host_path_tmp1" "$func_to_host_path_result"
3402    func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
3403  fi
3404}
3405# end func_convert_path_msys_to_w32
3406
3407
3408# func_convert_path_cygwin_to_w32 ARG
3409# Convert path ARG from Cygwin to w32 format.  Returns result in
3410# func_to_host_file_result.
3411func_convert_path_cygwin_to_w32 ()
3412{
3413  $debug_cmd
3414
3415  func_to_host_path_result=$1
3416  if test -n "$1"; then
3417    # See func_convert_path_msys_to_w32:
3418    func_stripname : : "$1"
3419    func_to_host_path_tmp1=$func_stripname_result
3420    func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"`
3421    func_convert_path_check : ";" \
3422      "$func_to_host_path_tmp1" "$func_to_host_path_result"
3423    func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
3424  fi
3425}
3426# end func_convert_path_cygwin_to_w32
3427
3428
3429# func_convert_path_nix_to_w32 ARG
3430# Convert path ARG from *nix to w32 format.  Requires a wine environment and
3431# a working winepath.  Returns result in func_to_host_file_result.
3432func_convert_path_nix_to_w32 ()
3433{
3434  $debug_cmd
3435
3436  func_to_host_path_result=$1
3437  if test -n "$1"; then
3438    # See func_convert_path_msys_to_w32:
3439    func_stripname : : "$1"
3440    func_to_host_path_tmp1=$func_stripname_result
3441    func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1"
3442    func_to_host_path_result=$func_convert_core_path_wine_to_w32_result
3443    func_convert_path_check : ";" \
3444      "$func_to_host_path_tmp1" "$func_to_host_path_result"
3445    func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
3446  fi
3447}
3448# end func_convert_path_nix_to_w32
3449
3450
3451# func_convert_path_msys_to_cygwin ARG
3452# Convert path ARG from MSYS to Cygwin format.  Requires LT_CYGPATH set.
3453# Returns result in func_to_host_file_result.
3454func_convert_path_msys_to_cygwin ()
3455{
3456  $debug_cmd
3457
3458  func_to_host_path_result=$1
3459  if test -n "$1"; then
3460    # See func_convert_path_msys_to_w32:
3461    func_stripname : : "$1"
3462    func_to_host_path_tmp1=$func_stripname_result
3463    func_convert_core_msys_to_w32 "$func_to_host_path_tmp1"
3464    func_cygpath -u -p "$func_convert_core_msys_to_w32_result"
3465    func_to_host_path_result=$func_cygpath_result
3466    func_convert_path_check : : \
3467      "$func_to_host_path_tmp1" "$func_to_host_path_result"
3468    func_convert_path_front_back_pathsep ":*" "*:" : "$1"
3469  fi
3470}
3471# end func_convert_path_msys_to_cygwin
3472
3473
3474# func_convert_path_nix_to_cygwin ARG
3475# Convert path ARG from *nix to Cygwin format.  Requires Cygwin installed in a
3476# a wine environment, working winepath, and LT_CYGPATH set.  Returns result in
3477# func_to_host_file_result.
3478func_convert_path_nix_to_cygwin ()
3479{
3480  $debug_cmd
3481
3482  func_to_host_path_result=$1
3483  if test -n "$1"; then
3484    # Remove leading and trailing path separator characters from
3485    # ARG. msys behavior is inconsistent here, cygpath turns them
3486    # into '.;' and ';.', and winepath ignores them completely.
3487    func_stripname : : "$1"
3488    func_to_host_path_tmp1=$func_stripname_result
3489    func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1"
3490    func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result"
3491    func_to_host_path_result=$func_cygpath_result
3492    func_convert_path_check : : \
3493      "$func_to_host_path_tmp1" "$func_to_host_path_result"
3494    func_convert_path_front_back_pathsep ":*" "*:" : "$1"
3495  fi
3496}
3497# end func_convert_path_nix_to_cygwin
3498
3499
3500# func_dll_def_p FILE
3501# True iff FILE is a Windows DLL '.def' file.
3502# Keep in sync with _LT_DLL_DEF_P in libtool.m4
3503func_dll_def_p ()
3504{
3505  $debug_cmd
3506
3507  func_dll_def_p_tmp=`$SED -n \
3508    -e 's/^[	 ]*//' \
3509    -e '/^\(;.*\)*$/d' \
3510    -e 's/^\(EXPORTS\|LIBRARY\)\([	 ].*\)*$/DEF/p' \
3511    -e q \
3512    "$1"`
3513  test DEF = "$func_dll_def_p_tmp"
3514}
3515
3516
3517# func_mode_compile arg...
3518func_mode_compile ()
3519{
3520    $debug_cmd
3521
3522    # Get the compilation command and the source file.
3523    base_compile=
3524    srcfile=$nonopt  #  always keep a non-empty value in "srcfile"
3525    suppress_opt=yes
3526    suppress_output=
3527    arg_mode=normal
3528    libobj=
3529    later=
3530    pie_flag=
3531
3532    for arg
3533    do
3534      case $arg_mode in
3535      arg  )
3536	# do not "continue".  Instead, add this to base_compile
3537	lastarg=$arg
3538	arg_mode=normal
3539	;;
3540
3541      target )
3542	libobj=$arg
3543	arg_mode=normal
3544	continue
3545	;;
3546
3547      normal )
3548	# Accept any command-line options.
3549	case $arg in
3550	-o)
3551	  test -n "$libobj" && \
3552	    func_fatal_error "you cannot specify '-o' more than once"
3553	  arg_mode=target
3554	  continue
3555	  ;;
3556
3557	-pie | -fpie | -fPIE)
3558          func_append pie_flag " $arg"
3559	  continue
3560	  ;;
3561
3562	-shared | -static | -prefer-pic | -prefer-non-pic)
3563	  func_append later " $arg"
3564	  continue
3565	  ;;
3566
3567	-no-suppress)
3568	  suppress_opt=no
3569	  continue
3570	  ;;
3571
3572	-Xcompiler)
3573	  arg_mode=arg  #  the next one goes into the "base_compile" arg list
3574	  continue      #  The current "srcfile" will either be retained or
3575	  ;;            #  replaced later.  I would guess that would be a bug.
3576
3577	-Wc,*)
3578	  func_stripname '-Wc,' '' "$arg"
3579	  args=$func_stripname_result
3580	  lastarg=
3581	  save_ifs=$IFS; IFS=,
3582	  for arg in $args; do
3583	    IFS=$save_ifs
3584	    func_append_quoted lastarg "$arg"
3585	  done
3586	  IFS=$save_ifs
3587	  func_stripname ' ' '' "$lastarg"
3588	  lastarg=$func_stripname_result
3589
3590	  # Add the arguments to base_compile.
3591	  func_append base_compile " $lastarg"
3592	  continue
3593	  ;;
3594
3595	*)
3596	  # Accept the current argument as the source file.
3597	  # The previous "srcfile" becomes the current argument.
3598	  #
3599	  lastarg=$srcfile
3600	  srcfile=$arg
3601	  ;;
3602	esac  #  case $arg
3603	;;
3604      esac    #  case $arg_mode
3605
3606      # Aesthetically quote the previous argument.
3607      func_append_quoted base_compile "$lastarg"
3608    done # for arg
3609
3610    case $arg_mode in
3611    arg)
3612      func_fatal_error "you must specify an argument for -Xcompile"
3613      ;;
3614    target)
3615      func_fatal_error "you must specify a target with '-o'"
3616      ;;
3617    *)
3618      # Get the name of the library object.
3619      test -z "$libobj" && {
3620	func_basename "$srcfile"
3621	libobj=$func_basename_result
3622      }
3623      ;;
3624    esac
3625
3626    # Recognize several different file suffixes.
3627    # If the user specifies -o file.o, it is replaced with file.lo
3628    case $libobj in
3629    *.[cCFSifmso] | \
3630    *.ada | *.adb | *.ads | *.asm | \
3631    *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \
3632    *.[fF][09]? | *.for | *.java | *.go | *.obj | *.sx | *.cu | *.cup)
3633      func_xform "$libobj"
3634      libobj=$func_xform_result
3635      ;;
3636    esac
3637
3638    case $libobj in
3639    *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;;
3640    *)
3641      func_fatal_error "cannot determine name of library object from '$libobj'"
3642      ;;
3643    esac
3644
3645    func_infer_tag $base_compile
3646
3647    for arg in $later; do
3648      case $arg in
3649      -shared)
3650	test yes = "$build_libtool_libs" \
3651	  || func_fatal_configuration "cannot build a shared library"
3652	build_old_libs=no
3653	continue
3654	;;
3655
3656      -static)
3657	build_libtool_libs=no
3658	build_old_libs=yes
3659	continue
3660	;;
3661
3662      -prefer-pic)
3663	pic_mode=yes
3664	continue
3665	;;
3666
3667      -prefer-non-pic)
3668	pic_mode=no
3669	continue
3670	;;
3671      esac
3672    done
3673
3674    func_quote_arg pretty "$libobj"
3675    test "X$libobj" != "X$func_quote_arg_result" \
3676      && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"'	 &()|`$[]' \
3677      && func_warning "libobj name '$libobj' may not contain shell special characters."
3678    func_dirname_and_basename "$obj" "/" ""
3679    objname=$func_basename_result
3680    xdir=$func_dirname_result
3681    lobj=$xdir$objdir/$objname
3682
3683    test -z "$base_compile" && \
3684      func_fatal_help "you must specify a compilation command"
3685
3686    # Delete any leftover library objects.
3687    if test yes = "$build_old_libs"; then
3688      removelist="$obj $lobj $libobj ${libobj}T"
3689    else
3690      removelist="$lobj $libobj ${libobj}T"
3691    fi
3692
3693    # On Cygwin there's no "real" PIC flag so we must build both object types
3694    case $host_os in
3695    cygwin* | mingw* | pw32* | os2* | cegcc*)
3696      pic_mode=default
3697      ;;
3698    esac
3699    if test no = "$pic_mode" && test pass_all != "$deplibs_check_method"; then
3700      # non-PIC code in shared libraries is not supported
3701      pic_mode=default
3702    fi
3703
3704    # Calculate the filename of the output object if compiler does
3705    # not support -o with -c
3706    if test no = "$compiler_c_o"; then
3707      output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.$objext
3708      lockfile=$output_obj.lock
3709    else
3710      output_obj=
3711      need_locks=no
3712      lockfile=
3713    fi
3714
3715    # Lock this critical section if it is needed
3716    # We use this script file to make the link, it avoids creating a new file
3717    if test yes = "$need_locks"; then
3718      until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do
3719	func_echo "Waiting for $lockfile to be removed"
3720	sleep 2
3721      done
3722    elif test warn = "$need_locks"; then
3723      if test -f "$lockfile"; then
3724	$ECHO "\
3725*** ERROR, $lockfile exists and contains:
3726`cat $lockfile 2>/dev/null`
3727
3728This indicates that another process is trying to use the same
3729temporary object file, and libtool could not work around it because
3730your compiler does not support '-c' and '-o' together.  If you
3731repeat this compilation, it may succeed, by chance, but you had better
3732avoid parallel builds (make -j) in this platform, or get a better
3733compiler."
3734
3735	$opt_dry_run || $RM $removelist
3736	exit $EXIT_FAILURE
3737      fi
3738      func_append removelist " $output_obj"
3739      $ECHO "$srcfile" > "$lockfile"
3740    fi
3741
3742    $opt_dry_run || $RM $removelist
3743    func_append removelist " $lockfile"
3744    trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15
3745
3746    func_to_tool_file "$srcfile" func_convert_file_msys_to_w32
3747    srcfile=$func_to_tool_file_result
3748    func_quote_arg pretty "$srcfile"
3749    qsrcfile=$func_quote_arg_result
3750
3751    # Only build a PIC object if we are building libtool libraries.
3752    if test yes = "$build_libtool_libs"; then
3753      # Without this assignment, base_compile gets emptied.
3754      fbsd_hideous_sh_bug=$base_compile
3755
3756      if test no != "$pic_mode"; then
3757	command="$base_compile $qsrcfile $pic_flag"
3758      else
3759	# Don't build PIC code
3760	command="$base_compile $qsrcfile"
3761      fi
3762
3763      func_mkdir_p "$xdir$objdir"
3764
3765      if test -z "$output_obj"; then
3766	# Place PIC objects in $objdir
3767	func_append command " -o $lobj"
3768      fi
3769
3770      func_show_eval_locale "$command"	\
3771          'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE'
3772
3773      if test warn = "$need_locks" &&
3774	 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
3775	$ECHO "\
3776*** ERROR, $lockfile contains:
3777`cat $lockfile 2>/dev/null`
3778
3779but it should contain:
3780$srcfile
3781
3782This indicates that another process is trying to use the same
3783temporary object file, and libtool could not work around it because
3784your compiler does not support '-c' and '-o' together.  If you
3785repeat this compilation, it may succeed, by chance, but you had better
3786avoid parallel builds (make -j) in this platform, or get a better
3787compiler."
3788
3789	$opt_dry_run || $RM $removelist
3790	exit $EXIT_FAILURE
3791      fi
3792
3793      # Just move the object if needed, then go on to compile the next one
3794      if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then
3795	func_show_eval '$MV "$output_obj" "$lobj"' \
3796	  'error=$?; $opt_dry_run || $RM $removelist; exit $error'
3797      fi
3798
3799      # Allow error messages only from the first compilation.
3800      if test yes = "$suppress_opt"; then
3801	suppress_output=' >/dev/null 2>&1'
3802      fi
3803    fi
3804
3805    # Only build a position-dependent object if we build old libraries.
3806    if test yes = "$build_old_libs"; then
3807      if test yes != "$pic_mode"; then
3808	# Don't build PIC code
3809	command="$base_compile $qsrcfile$pie_flag"
3810      else
3811	command="$base_compile $qsrcfile $pic_flag"
3812      fi
3813      if test yes = "$compiler_c_o"; then
3814	func_append command " -o $obj"
3815      fi
3816
3817      # Suppress compiler output if we already did a PIC compilation.
3818      func_append command "$suppress_output"
3819      func_show_eval_locale "$command" \
3820        '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE'
3821
3822      if test warn = "$need_locks" &&
3823	 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
3824	$ECHO "\
3825*** ERROR, $lockfile contains:
3826`cat $lockfile 2>/dev/null`
3827
3828but it should contain:
3829$srcfile
3830
3831This indicates that another process is trying to use the same
3832temporary object file, and libtool could not work around it because
3833your compiler does not support '-c' and '-o' together.  If you
3834repeat this compilation, it may succeed, by chance, but you had better
3835avoid parallel builds (make -j) in this platform, or get a better
3836compiler."
3837
3838	$opt_dry_run || $RM $removelist
3839	exit $EXIT_FAILURE
3840      fi
3841
3842      # Just move the object if needed
3843      if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then
3844	func_show_eval '$MV "$output_obj" "$obj"' \
3845	  'error=$?; $opt_dry_run || $RM $removelist; exit $error'
3846      fi
3847    fi
3848
3849    $opt_dry_run || {
3850      func_write_libtool_object "$libobj" "$objdir/$objname" "$objname"
3851
3852      # Unlock the critical section if it was locked
3853      if test no != "$need_locks"; then
3854	removelist=$lockfile
3855        $RM "$lockfile"
3856      fi
3857    }
3858
3859    exit $EXIT_SUCCESS
3860}
3861
3862$opt_help || {
3863  test compile = "$opt_mode" && func_mode_compile ${1+"$@"}
3864}
3865
3866func_mode_help ()
3867{
3868    # We need to display help for each of the modes.
3869    case $opt_mode in
3870      "")
3871        # Generic help is extracted from the usage comments
3872        # at the start of this file.
3873        func_help
3874        ;;
3875
3876      clean)
3877        $ECHO \
3878"Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
3879
3880Remove files from the build directory.
3881
3882RM is the name of the program to use to delete files associated with each FILE
3883(typically '/bin/rm').  RM-OPTIONS are options (such as '-f') to be passed
3884to RM.
3885
3886If FILE is a libtool library, object or program, all the files associated
3887with it are deleted. Otherwise, only FILE itself is deleted using RM."
3888        ;;
3889
3890      compile)
3891      $ECHO \
3892"Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
3893
3894Compile a source file into a libtool library object.
3895
3896This mode accepts the following additional options:
3897
3898  -o OUTPUT-FILE    set the output file name to OUTPUT-FILE
3899  -no-suppress      do not suppress compiler output for multiple passes
3900  -prefer-pic       try to build PIC objects only
3901  -prefer-non-pic   try to build non-PIC objects only
3902  -shared           do not build a '.o' file suitable for static linking
3903  -static           only build a '.o' file suitable for static linking
3904  -Wc,FLAG
3905  -Xcompiler FLAG   pass FLAG directly to the compiler
3906
3907COMPILE-COMMAND is a command to be used in creating a 'standard' object file
3908from the given SOURCEFILE.
3909
3910The output file name is determined by removing the directory component from
3911SOURCEFILE, then substituting the C source code suffix '.c' with the
3912library object suffix, '.lo'."
3913        ;;
3914
3915      execute)
3916        $ECHO \
3917"Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]...
3918
3919Automatically set library path, then run a program.
3920
3921This mode accepts the following additional options:
3922
3923  -dlopen FILE      add the directory containing FILE to the library path
3924
3925This mode sets the library path environment variable according to '-dlopen'
3926flags.
3927
3928If any of the ARGS are libtool executable wrappers, then they are translated
3929into their corresponding uninstalled binary, and any of their required library
3930directories are added to the library path.
3931
3932Then, COMMAND is executed, with ARGS as arguments."
3933        ;;
3934
3935      finish)
3936        $ECHO \
3937"Usage: $progname [OPTION]... --mode=finish [LIBDIR]...
3938
3939Complete the installation of libtool libraries.
3940
3941Each LIBDIR is a directory that contains libtool libraries.
3942
3943The commands that this mode executes may require superuser privileges.  Use
3944the '--dry-run' option if you just want to see what would be executed."
3945        ;;
3946
3947      install)
3948        $ECHO \
3949"Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND...
3950
3951Install executables or libraries.
3952
3953INSTALL-COMMAND is the installation command.  The first component should be
3954either the 'install' or 'cp' program.
3955
3956The following components of INSTALL-COMMAND are treated specially:
3957
3958  -inst-prefix-dir PREFIX-DIR  Use PREFIX-DIR as a staging area for installation
3959
3960The rest of the components are interpreted as arguments to that command (only
3961BSD-compatible install options are recognized)."
3962        ;;
3963
3964      link)
3965        $ECHO \
3966"Usage: $progname [OPTION]... --mode=link LINK-COMMAND...
3967
3968Link object files or libraries together to form another library, or to
3969create an executable program.
3970
3971LINK-COMMAND is a command using the C compiler that you would use to create
3972a program from several object files.
3973
3974The following components of LINK-COMMAND are treated specially:
3975
3976  -all-static       do not do any dynamic linking at all
3977  -avoid-version    do not add a version suffix if possible
3978  -bindir BINDIR    specify path to binaries directory (for systems where
3979                    libraries must be found in the PATH setting at runtime)
3980  -dlopen FILE      '-dlpreopen' FILE if it cannot be dlopened at runtime
3981  -dlpreopen FILE   link in FILE and add its symbols to lt_preloaded_symbols
3982  -export-dynamic   allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
3983  -export-symbols SYMFILE
3984                    try to export only the symbols listed in SYMFILE
3985  -export-symbols-regex REGEX
3986                    try to export only the symbols matching REGEX
3987  -LLIBDIR          search LIBDIR for required installed libraries
3988  -lNAME            OUTPUT-FILE requires the installed library libNAME
3989  -module           build a library that can dlopened
3990  -no-fast-install  disable the fast-install mode
3991  -no-install       link a not-installable executable
3992  -no-undefined     declare that a library does not refer to external symbols
3993  -o OUTPUT-FILE    create OUTPUT-FILE from the specified objects
3994  -objectlist FILE  use a list of object files found in FILE to specify objects
3995  -os2dllname NAME  force a short DLL name on OS/2 (no effect on other OSes)
3996  -precious-files-regex REGEX
3997                    don't remove output files matching REGEX
3998  -release RELEASE  specify package release information
3999  -rpath LIBDIR     the created library will eventually be installed in LIBDIR
4000  -R[ ]LIBDIR       add LIBDIR to the runtime path of programs and libraries
4001  -shared           only do dynamic linking of libtool libraries
4002  -shrext SUFFIX    override the standard shared library file extension
4003  -static           do not do any dynamic linking of uninstalled libtool libraries
4004  -static-libtool-libs
4005                    do not do any dynamic linking of libtool libraries
4006  -version-info CURRENT[:REVISION[:AGE]]
4007                    specify library version info [each variable defaults to 0]
4008  -weak LIBNAME     declare that the target provides the LIBNAME interface
4009  -Wc,FLAG
4010  -Xcompiler FLAG   pass linker-specific FLAG directly to the compiler
4011  -Wa,FLAG
4012  -Xassembler FLAG  pass linker-specific FLAG directly to the assembler
4013  -Wl,FLAG
4014  -Xlinker FLAG     pass linker-specific FLAG directly to the linker
4015  -XCClinker FLAG   pass link-specific FLAG to the compiler driver (CC)
4016
4017All other options (arguments beginning with '-') are ignored.
4018
4019Every other argument is treated as a filename.  Files ending in '.la' are
4020treated as uninstalled libtool libraries, other files are standard or library
4021object files.
4022
4023If the OUTPUT-FILE ends in '.la', then a libtool library is created,
4024only library objects ('.lo' files) may be specified, and '-rpath' is
4025required, except when creating a convenience library.
4026
4027If OUTPUT-FILE ends in '.a' or '.lib', then a standard library is created
4028using 'ar' and 'ranlib', or on Windows using 'lib'.
4029
4030If OUTPUT-FILE ends in '.lo' or '.$objext', then a reloadable object file
4031is created, otherwise an executable program is created."
4032        ;;
4033
4034      uninstall)
4035        $ECHO \
4036"Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
4037
4038Remove libraries from an installation directory.
4039
4040RM is the name of the program to use to delete files associated with each FILE
4041(typically '/bin/rm').  RM-OPTIONS are options (such as '-f') to be passed
4042to RM.
4043
4044If FILE is a libtool library, all the files associated with it are deleted.
4045Otherwise, only FILE itself is deleted using RM."
4046        ;;
4047
4048      *)
4049        func_fatal_help "invalid operation mode '$opt_mode'"
4050        ;;
4051    esac
4052
4053    echo
4054    $ECHO "Try '$progname --help' for more information about other modes."
4055}
4056
4057# Now that we've collected a possible --mode arg, show help if necessary
4058if $opt_help; then
4059  if test : = "$opt_help"; then
4060    func_mode_help
4061  else
4062    {
4063      func_help noexit
4064      for opt_mode in compile link execute install finish uninstall clean; do
4065	func_mode_help
4066      done
4067    } | $SED -n '1p; 2,$s/^Usage:/  or: /p'
4068    {
4069      func_help noexit
4070      for opt_mode in compile link execute install finish uninstall clean; do
4071	echo
4072	func_mode_help
4073      done
4074    } |
4075    $SED '1d
4076      /^When reporting/,/^Report/{
4077	H
4078	d
4079      }
4080      $x
4081      /information about other modes/d
4082      /more detailed .*MODE/d
4083      s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/'
4084  fi
4085  exit $?
4086fi
4087
4088
4089# func_mode_execute arg...
4090func_mode_execute ()
4091{
4092    $debug_cmd
4093
4094    # The first argument is the command name.
4095    cmd=$nonopt
4096    test -z "$cmd" && \
4097      func_fatal_help "you must specify a COMMAND"
4098
4099    # Handle -dlopen flags immediately.
4100    for file in $opt_dlopen; do
4101      test -f "$file" \
4102	|| func_fatal_help "'$file' is not a file"
4103
4104      dir=
4105      case $file in
4106      *.la)
4107	func_resolve_sysroot "$file"
4108	file=$func_resolve_sysroot_result
4109
4110	# Check to see that this really is a libtool archive.
4111	func_lalib_unsafe_p "$file" \
4112	  || func_fatal_help "'$lib' is not a valid libtool archive"
4113
4114	# Read the libtool library.
4115	dlname=
4116	library_names=
4117	func_source "$file"
4118
4119	# Skip this library if it cannot be dlopened.
4120	if test -z "$dlname"; then
4121	  # Warn if it was a shared library.
4122	  test -n "$library_names" && \
4123	    func_warning "'$file' was not linked with '-export-dynamic'"
4124	  continue
4125	fi
4126
4127	func_dirname "$file" "" "."
4128	dir=$func_dirname_result
4129
4130	if test -f "$dir/$objdir/$dlname"; then
4131	  func_append dir "/$objdir"
4132	else
4133	  if test ! -f "$dir/$dlname"; then
4134	    func_fatal_error "cannot find '$dlname' in '$dir' or '$dir/$objdir'"
4135	  fi
4136	fi
4137	;;
4138
4139      *.lo)
4140	# Just add the directory containing the .lo file.
4141	func_dirname "$file" "" "."
4142	dir=$func_dirname_result
4143	;;
4144
4145      *)
4146	func_warning "'-dlopen' is ignored for non-libtool libraries and objects"
4147	continue
4148	;;
4149      esac
4150
4151      # Get the absolute pathname.
4152      absdir=`cd "$dir" && pwd`
4153      test -n "$absdir" && dir=$absdir
4154
4155      # Now add the directory to shlibpath_var.
4156      if eval "test -z \"\$$shlibpath_var\""; then
4157	eval "$shlibpath_var=\"\$dir\""
4158      else
4159	eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
4160      fi
4161    done
4162
4163    # This variable tells wrapper scripts just to set shlibpath_var
4164    # rather than running their programs.
4165    libtool_execute_magic=$magic
4166
4167    # Check if any of the arguments is a wrapper script.
4168    args=
4169    for file
4170    do
4171      case $file in
4172      -* | *.la | *.lo ) ;;
4173      *)
4174	# Do a test to see if this is really a libtool program.
4175	if func_ltwrapper_script_p "$file"; then
4176	  func_source "$file"
4177	  # Transform arg to wrapped name.
4178	  file=$progdir/$program
4179	elif func_ltwrapper_executable_p "$file"; then
4180	  func_ltwrapper_scriptname "$file"
4181	  func_source "$func_ltwrapper_scriptname_result"
4182	  # Transform arg to wrapped name.
4183	  file=$progdir/$program
4184	fi
4185	;;
4186      esac
4187      # Quote arguments (to preserve shell metacharacters).
4188      func_append_quoted args "$file"
4189    done
4190
4191    if $opt_dry_run; then
4192      # Display what would be done.
4193      if test -n "$shlibpath_var"; then
4194	eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\""
4195	echo "export $shlibpath_var"
4196      fi
4197      $ECHO "$cmd$args"
4198      exit $EXIT_SUCCESS
4199    else
4200      if test -n "$shlibpath_var"; then
4201	# Export the shlibpath_var.
4202	eval "export $shlibpath_var"
4203      fi
4204
4205      # Restore saved environment variables
4206      for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
4207      do
4208	eval "if test \"\${save_$lt_var+set}\" = set; then
4209                $lt_var=\$save_$lt_var; export $lt_var
4210	      else
4211		$lt_unset $lt_var
4212	      fi"
4213      done
4214
4215      # Now prepare to actually exec the command.
4216      exec_cmd=\$cmd$args
4217    fi
4218}
4219
4220test execute = "$opt_mode" && func_mode_execute ${1+"$@"}
4221
4222
4223# func_mode_finish arg...
4224func_mode_finish ()
4225{
4226    $debug_cmd
4227
4228    libs=
4229    libdirs=
4230    admincmds=
4231
4232    for opt in "$nonopt" ${1+"$@"}
4233    do
4234      if test -d "$opt"; then
4235	func_append libdirs " $opt"
4236
4237      elif test -f "$opt"; then
4238	if func_lalib_unsafe_p "$opt"; then
4239	  func_append libs " $opt"
4240	else
4241	  func_warning "'$opt' is not a valid libtool archive"
4242	fi
4243
4244      else
4245	func_fatal_error "invalid argument '$opt'"
4246      fi
4247    done
4248
4249    if test -n "$libs"; then
4250      if test -n "$lt_sysroot"; then
4251        sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"`
4252        sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;"
4253      else
4254        sysroot_cmd=
4255      fi
4256
4257      # Remove sysroot references
4258      if $opt_dry_run; then
4259        for lib in $libs; do
4260          echo "removing references to $lt_sysroot and '=' prefixes from $lib"
4261        done
4262      else
4263        tmpdir=`func_mktempdir`
4264        for lib in $libs; do
4265	  $SED -e "$sysroot_cmd s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \
4266	    > $tmpdir/tmp-la
4267	  mv -f $tmpdir/tmp-la $lib
4268	done
4269        ${RM}r "$tmpdir"
4270      fi
4271    fi
4272
4273    if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
4274      for libdir in $libdirs; do
4275	if test -n "$finish_cmds"; then
4276	  # Do each command in the finish commands.
4277	  func_execute_cmds "$finish_cmds" 'admincmds="$admincmds
4278'"$cmd"'"'
4279	fi
4280	if test -n "$finish_eval"; then
4281	  # Do the single finish_eval.
4282	  eval cmds=\"$finish_eval\"
4283	  $opt_dry_run || eval "$cmds" || func_append admincmds "
4284       $cmds"
4285	fi
4286      done
4287    fi
4288
4289    # Exit here if they wanted silent mode.
4290    $opt_quiet && exit $EXIT_SUCCESS
4291
4292    if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
4293      echo "----------------------------------------------------------------------"
4294      echo "Libraries have been installed in:"
4295      for libdir in $libdirs; do
4296	$ECHO "   $libdir"
4297      done
4298      echo
4299      echo "If you ever happen to want to link against installed libraries"
4300      echo "in a given directory, LIBDIR, you must either use libtool, and"
4301      echo "specify the full pathname of the library, or use the '-LLIBDIR'"
4302      echo "flag during linking and do at least one of the following:"
4303      if test -n "$shlibpath_var"; then
4304	echo "   - add LIBDIR to the '$shlibpath_var' environment variable"
4305	echo "     during execution"
4306      fi
4307      if test -n "$runpath_var"; then
4308	echo "   - add LIBDIR to the '$runpath_var' environment variable"
4309	echo "     during linking"
4310      fi
4311      if test -n "$hardcode_libdir_flag_spec"; then
4312	libdir=LIBDIR
4313	eval flag=\"$hardcode_libdir_flag_spec\"
4314
4315	$ECHO "   - use the '$flag' linker flag"
4316      fi
4317      if test -n "$admincmds"; then
4318	$ECHO "   - have your system administrator run these commands:$admincmds"
4319      fi
4320      if test -f /etc/ld.so.conf; then
4321	echo "   - have your system administrator add LIBDIR to '/etc/ld.so.conf'"
4322      fi
4323      echo
4324
4325      echo "See any operating system documentation about shared libraries for"
4326      case $host in
4327	solaris2.[6789]|solaris2.1[0-9])
4328	  echo "more information, such as the ld(1), crle(1) and ld.so(8) manual"
4329	  echo "pages."
4330	  ;;
4331	*)
4332	  echo "more information, such as the ld(1) and ld.so(8) manual pages."
4333	  ;;
4334      esac
4335      echo "----------------------------------------------------------------------"
4336    fi
4337    exit $EXIT_SUCCESS
4338}
4339
4340test finish = "$opt_mode" && func_mode_finish ${1+"$@"}
4341
4342
4343# func_mode_install arg...
4344func_mode_install ()
4345{
4346    $debug_cmd
4347
4348    # There may be an optional sh(1) argument at the beginning of
4349    # install_prog (especially on Windows NT).
4350    if test "$SHELL" = "$nonopt" || test /bin/sh = "$nonopt" ||
4351       # Allow the use of GNU shtool's install command.
4352       case $nonopt in *shtool*) :;; *) false;; esac
4353    then
4354      # Aesthetically quote it.
4355      func_quote_arg pretty "$nonopt"
4356      install_prog="$func_quote_arg_result "
4357      arg=$1
4358      shift
4359    else
4360      install_prog=
4361      arg=$nonopt
4362    fi
4363
4364    # The real first argument should be the name of the installation program.
4365    # Aesthetically quote it.
4366    func_quote_arg pretty "$arg"
4367    func_append install_prog "$func_quote_arg_result"
4368    install_shared_prog=$install_prog
4369    case " $install_prog " in
4370      *[\\\ /]cp\ *) install_cp=: ;;
4371      *) install_cp=false ;;
4372    esac
4373
4374    # We need to accept at least all the BSD install flags.
4375    dest=
4376    files=
4377    opts=
4378    prev=
4379    install_type=
4380    isdir=false
4381    stripme=
4382    no_mode=:
4383    for arg
4384    do
4385      arg2=
4386      if test -n "$dest"; then
4387	func_append files " $dest"
4388	dest=$arg
4389	continue
4390      fi
4391
4392      case $arg in
4393      -d) isdir=: ;;
4394      -f)
4395	if $install_cp; then :; else
4396	  prev=$arg
4397	fi
4398	;;
4399      -g | -m | -o)
4400	prev=$arg
4401	;;
4402      -s)
4403	stripme=" -s"
4404	continue
4405	;;
4406      -*)
4407	;;
4408      *)
4409	# If the previous option needed an argument, then skip it.
4410	if test -n "$prev"; then
4411	  if test X-m = "X$prev" && test -n "$install_override_mode"; then
4412	    arg2=$install_override_mode
4413	    no_mode=false
4414	  fi
4415	  prev=
4416	else
4417	  dest=$arg
4418	  continue
4419	fi
4420	;;
4421      esac
4422
4423      # Aesthetically quote the argument.
4424      func_quote_arg pretty "$arg"
4425      func_append install_prog " $func_quote_arg_result"
4426      if test -n "$arg2"; then
4427	func_quote_arg pretty "$arg2"
4428      fi
4429      func_append install_shared_prog " $func_quote_arg_result"
4430    done
4431
4432    test -z "$install_prog" && \
4433      func_fatal_help "you must specify an install program"
4434
4435    test -n "$prev" && \
4436      func_fatal_help "the '$prev' option requires an argument"
4437
4438    if test -n "$install_override_mode" && $no_mode; then
4439      if $install_cp; then :; else
4440	func_quote_arg pretty "$install_override_mode"
4441	func_append install_shared_prog " -m $func_quote_arg_result"
4442      fi
4443    fi
4444
4445    if test -z "$files"; then
4446      if test -z "$dest"; then
4447	func_fatal_help "no file or destination specified"
4448      else
4449	func_fatal_help "you must specify a destination"
4450      fi
4451    fi
4452
4453    # Strip any trailing slash from the destination.
4454    func_stripname '' '/' "$dest"
4455    dest=$func_stripname_result
4456
4457    # Check to see that the destination is a directory.
4458    test -d "$dest" && isdir=:
4459    if $isdir; then
4460      destdir=$dest
4461      destname=
4462    else
4463      func_dirname_and_basename "$dest" "" "."
4464      destdir=$func_dirname_result
4465      destname=$func_basename_result
4466
4467      # Not a directory, so check to see that there is only one file specified.
4468      set dummy $files; shift
4469      test "$#" -gt 1 && \
4470	func_fatal_help "'$dest' is not a directory"
4471    fi
4472    case $destdir in
4473    [\\/]* | [A-Za-z]:[\\/]*) ;;
4474    *)
4475      for file in $files; do
4476	case $file in
4477	*.lo) ;;
4478	*)
4479	  func_fatal_help "'$destdir' must be an absolute directory name"
4480	  ;;
4481	esac
4482      done
4483      ;;
4484    esac
4485
4486    # This variable tells wrapper scripts just to set variables rather
4487    # than running their programs.
4488    libtool_install_magic=$magic
4489
4490    staticlibs=
4491    future_libdirs=
4492    current_libdirs=
4493    for file in $files; do
4494
4495      # Do each installation.
4496      case $file in
4497      *.$libext)
4498	# Do the static libraries later.
4499	func_append staticlibs " $file"
4500	;;
4501
4502      *.la)
4503	func_resolve_sysroot "$file"
4504	file=$func_resolve_sysroot_result
4505
4506	# Check to see that this really is a libtool archive.
4507	func_lalib_unsafe_p "$file" \
4508	  || func_fatal_help "'$file' is not a valid libtool archive"
4509
4510	library_names=
4511	old_library=
4512	relink_command=
4513	func_source "$file"
4514
4515	# Add the libdir to current_libdirs if it is the destination.
4516	if test "X$destdir" = "X$libdir"; then
4517	  case "$current_libdirs " in
4518	  *" $libdir "*) ;;
4519	  *) func_append current_libdirs " $libdir" ;;
4520	  esac
4521	else
4522	  # Note the libdir as a future libdir.
4523	  case "$future_libdirs " in
4524	  *" $libdir "*) ;;
4525	  *) func_append future_libdirs " $libdir" ;;
4526	  esac
4527	fi
4528
4529	func_dirname "$file" "/" ""
4530	dir=$func_dirname_result
4531	func_append dir "$objdir"
4532
4533	if test -n "$relink_command"; then
4534	  # Determine the prefix the user has applied to our future dir.
4535	  inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"`
4536
4537	  # Don't allow the user to place us outside of our expected
4538	  # location b/c this prevents finding dependent libraries that
4539	  # are installed to the same prefix.
4540	  # At present, this check doesn't affect windows .dll's that
4541	  # are installed into $libdir/../bin (currently, that works fine)
4542	  # but it's something to keep an eye on.
4543	  test "$inst_prefix_dir" = "$destdir" && \
4544	    func_fatal_error "error: cannot install '$file' to a directory not ending in $libdir"
4545
4546	  if test -n "$inst_prefix_dir"; then
4547	    # Stick the inst_prefix_dir data into the link command.
4548	    relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
4549	  else
4550	    relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"`
4551	  fi
4552
4553	  func_warning "relinking '$file'"
4554	  func_show_eval "$relink_command" \
4555	    'func_fatal_error "error: relink '\''$file'\'' with the above command before installing it"'
4556	fi
4557
4558	# See the names of the shared library.
4559	set dummy $library_names; shift
4560	if test -n "$1"; then
4561	  realname=$1
4562	  shift
4563
4564	  srcname=$realname
4565	  test -n "$relink_command" && srcname=${realname}T
4566
4567	  # Install the shared library and build the symlinks.
4568	  func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \
4569	      'exit $?'
4570	  tstripme=$stripme
4571	  case $host_os in
4572	  cygwin* | mingw* | pw32* | cegcc*)
4573	    case $realname in
4574	    *.dll.a)
4575	      tstripme=
4576	      ;;
4577	    esac
4578	    ;;
4579	  os2*)
4580	    case $realname in
4581	    *_dll.a)
4582	      tstripme=
4583	      ;;
4584	    esac
4585	    ;;
4586	  esac
4587	  if test -n "$tstripme" && test -n "$striplib"; then
4588	    func_show_eval "$striplib $destdir/$realname" 'exit $?'
4589	  fi
4590
4591	  if test "$#" -gt 0; then
4592	    # Delete the old symlinks, and create new ones.
4593	    # Try 'ln -sf' first, because the 'ln' binary might depend on
4594	    # the symlink we replace!  Solaris /bin/ln does not understand -f,
4595	    # so we also need to try rm && ln -s.
4596	    for linkname
4597	    do
4598	      test "$linkname" != "$realname" \
4599		&& func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })"
4600	    done
4601	  fi
4602
4603	  # Do each command in the postinstall commands.
4604	  lib=$destdir/$realname
4605	  func_execute_cmds "$postinstall_cmds" 'exit $?'
4606	fi
4607
4608	# Install the pseudo-library for information purposes.
4609	func_basename "$file"
4610	name=$func_basename_result
4611	instname=$dir/${name}i
4612	func_show_eval "$install_prog $instname $destdir/$name" 'exit $?'
4613
4614	# Maybe install the static library, too.
4615	test -n "$old_library" && func_append staticlibs " $dir/$old_library"
4616	;;
4617
4618      *.lo)
4619	# Install (i.e. copy) a libtool object.
4620
4621	# Figure out destination file name, if it wasn't already specified.
4622	if test -n "$destname"; then
4623	  destfile=$destdir/$destname
4624	else
4625	  func_basename "$file"
4626	  destfile=$func_basename_result
4627	  destfile=$destdir/$destfile
4628	fi
4629
4630	# Deduce the name of the destination old-style object file.
4631	case $destfile in
4632	*.lo)
4633	  func_lo2o "$destfile"
4634	  staticdest=$func_lo2o_result
4635	  ;;
4636	*.$objext)
4637	  staticdest=$destfile
4638	  destfile=
4639	  ;;
4640	*)
4641	  func_fatal_help "cannot copy a libtool object to '$destfile'"
4642	  ;;
4643	esac
4644
4645	# Install the libtool object if requested.
4646	test -n "$destfile" && \
4647	  func_show_eval "$install_prog $file $destfile" 'exit $?'
4648
4649	# Install the old object if enabled.
4650	if test yes = "$build_old_libs"; then
4651	  # Deduce the name of the old-style object file.
4652	  func_lo2o "$file"
4653	  staticobj=$func_lo2o_result
4654	  func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?'
4655	fi
4656	exit $EXIT_SUCCESS
4657	;;
4658
4659      *)
4660	# Figure out destination file name, if it wasn't already specified.
4661	if test -n "$destname"; then
4662	  destfile=$destdir/$destname
4663	else
4664	  func_basename "$file"
4665	  destfile=$func_basename_result
4666	  destfile=$destdir/$destfile
4667	fi
4668
4669	# If the file is missing, and there is a .exe on the end, strip it
4670	# because it is most likely a libtool script we actually want to
4671	# install
4672	stripped_ext=
4673	case $file in
4674	  *.exe)
4675	    if test ! -f "$file"; then
4676	      func_stripname '' '.exe' "$file"
4677	      file=$func_stripname_result
4678	      stripped_ext=.exe
4679	    fi
4680	    ;;
4681	esac
4682
4683	# Do a test to see if this is really a libtool program.
4684	case $host in
4685	*cygwin* | *mingw*)
4686	    if func_ltwrapper_executable_p "$file"; then
4687	      func_ltwrapper_scriptname "$file"
4688	      wrapper=$func_ltwrapper_scriptname_result
4689	    else
4690	      func_stripname '' '.exe' "$file"
4691	      wrapper=$func_stripname_result
4692	    fi
4693	    ;;
4694	*)
4695	    wrapper=$file
4696	    ;;
4697	esac
4698	if func_ltwrapper_script_p "$wrapper"; then
4699	  notinst_deplibs=
4700	  relink_command=
4701
4702	  func_source "$wrapper"
4703
4704	  # Check the variables that should have been set.
4705	  test -z "$generated_by_libtool_version" && \
4706	    func_fatal_error "invalid libtool wrapper script '$wrapper'"
4707
4708	  finalize=:
4709	  for lib in $notinst_deplibs; do
4710	    # Check to see that each library is installed.
4711	    libdir=
4712	    if test -f "$lib"; then
4713	      func_source "$lib"
4714	    fi
4715	    libfile=$libdir/`$ECHO "$lib" | $SED 's%^.*/%%g'`
4716	    if test -n "$libdir" && test ! -f "$libfile"; then
4717	      func_warning "'$lib' has not been installed in '$libdir'"
4718	      finalize=false
4719	    fi
4720	  done
4721
4722	  relink_command=
4723	  func_source "$wrapper"
4724
4725	  outputname=
4726	  if test no = "$fast_install" && test -n "$relink_command"; then
4727	    $opt_dry_run || {
4728	      if $finalize; then
4729	        tmpdir=`func_mktempdir`
4730		func_basename "$file$stripped_ext"
4731		file=$func_basename_result
4732	        outputname=$tmpdir/$file
4733	        # Replace the output file specification.
4734	        relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'`
4735
4736	        $opt_quiet || {
4737	          func_quote_arg expand,pretty "$relink_command"
4738		  eval "func_echo $func_quote_arg_result"
4739	        }
4740	        if eval "$relink_command"; then :
4741	          else
4742		  func_error "error: relink '$file' with the above command before installing it"
4743		  $opt_dry_run || ${RM}r "$tmpdir"
4744		  continue
4745	        fi
4746	        file=$outputname
4747	      else
4748	        func_warning "cannot relink '$file'"
4749	      fi
4750	    }
4751	  else
4752	    # Install the binary that we compiled earlier.
4753	    file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"`
4754	  fi
4755	fi
4756
4757	# remove .exe since cygwin /usr/bin/install will append another
4758	# one anyway
4759	case $install_prog,$host in
4760	*/usr/bin/install*,*cygwin*)
4761	  case $file:$destfile in
4762	  *.exe:*.exe)
4763	    # this is ok
4764	    ;;
4765	  *.exe:*)
4766	    destfile=$destfile.exe
4767	    ;;
4768	  *:*.exe)
4769	    func_stripname '' '.exe' "$destfile"
4770	    destfile=$func_stripname_result
4771	    ;;
4772	  esac
4773	  ;;
4774	esac
4775	func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?'
4776	$opt_dry_run || if test -n "$outputname"; then
4777	  ${RM}r "$tmpdir"
4778	fi
4779	;;
4780      esac
4781    done
4782
4783    for file in $staticlibs; do
4784      func_basename "$file"
4785      name=$func_basename_result
4786
4787      # Set up the ranlib parameters.
4788      oldlib=$destdir/$name
4789      func_to_tool_file "$oldlib" func_convert_file_msys_to_w32
4790      tool_oldlib=$func_to_tool_file_result
4791
4792      func_show_eval "$install_prog \$file \$oldlib" 'exit $?'
4793
4794      if test -n "$stripme" && test -n "$old_striplib"; then
4795	func_show_eval "$old_striplib $tool_oldlib" 'exit $?'
4796      fi
4797
4798      # Do each command in the postinstall commands.
4799      func_execute_cmds "$old_postinstall_cmds" 'exit $?'
4800    done
4801
4802    test -n "$future_libdirs" && \
4803      func_warning "remember to run '$progname --finish$future_libdirs'"
4804
4805    if test -n "$current_libdirs"; then
4806      # Maybe just do a dry run.
4807      $opt_dry_run && current_libdirs=" -n$current_libdirs"
4808      exec_cmd='$SHELL "$progpath" $preserve_args --finish$current_libdirs'
4809    else
4810      exit $EXIT_SUCCESS
4811    fi
4812}
4813
4814test install = "$opt_mode" && func_mode_install ${1+"$@"}
4815
4816
4817# func_generate_dlsyms outputname originator pic_p
4818# Extract symbols from dlprefiles and create ${outputname}S.o with
4819# a dlpreopen symbol table.
4820func_generate_dlsyms ()
4821{
4822    $debug_cmd
4823
4824    my_outputname=$1
4825    my_originator=$2
4826    my_pic_p=${3-false}
4827    my_prefix=`$ECHO "$my_originator" | $SED 's%[^a-zA-Z0-9]%_%g'`
4828    my_dlsyms=
4829
4830    if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then
4831      if test -n "$NM" && test -n "$global_symbol_pipe"; then
4832	my_dlsyms=${my_outputname}S.c
4833      else
4834	func_error "not configured to extract global symbols from dlpreopened files"
4835      fi
4836    fi
4837
4838    if test -n "$my_dlsyms"; then
4839      case $my_dlsyms in
4840      "") ;;
4841      *.c)
4842	# Discover the nlist of each of the dlfiles.
4843	nlist=$output_objdir/$my_outputname.nm
4844
4845	func_show_eval "$RM $nlist ${nlist}S ${nlist}T"
4846
4847	# Parse the name list into a source file.
4848	func_verbose "creating $output_objdir/$my_dlsyms"
4849
4850	$opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\
4851/* $my_dlsyms - symbol resolution table for '$my_outputname' dlsym emulation. */
4852/* Generated by $PROGRAM (GNU $PACKAGE) $VERSION */
4853
4854#ifdef __cplusplus
4855extern \"C\" {
4856#endif
4857
4858#if defined __GNUC__ && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4))
4859#pragma GCC diagnostic ignored \"-Wstrict-prototypes\"
4860#endif
4861
4862/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests.  */
4863#if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE
4864/* DATA imports from DLLs on WIN32 can't be const, because runtime
4865   relocations are performed -- see ld's documentation on pseudo-relocs.  */
4866# define LT_DLSYM_CONST
4867#elif defined __osf__
4868/* This system does not cope well with relocations in const data.  */
4869# define LT_DLSYM_CONST
4870#else
4871# define LT_DLSYM_CONST const
4872#endif
4873
4874#define STREQ(s1, s2) (strcmp ((s1), (s2)) == 0)
4875
4876/* External symbol declarations for the compiler. */\
4877"
4878
4879	if test yes = "$dlself"; then
4880	  func_verbose "generating symbol list for '$output'"
4881
4882	  $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist"
4883
4884	  # Add our own program objects to the symbol list.
4885	  progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP`
4886	  for progfile in $progfiles; do
4887	    func_to_tool_file "$progfile" func_convert_file_msys_to_w32
4888	    func_verbose "extracting global C symbols from '$func_to_tool_file_result'"
4889	    $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'"
4890	  done
4891
4892	  if test -n "$exclude_expsyms"; then
4893	    $opt_dry_run || {
4894	      eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
4895	      eval '$MV "$nlist"T "$nlist"'
4896	    }
4897	  fi
4898
4899	  if test -n "$export_symbols_regex"; then
4900	    $opt_dry_run || {
4901	      eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T'
4902	      eval '$MV "$nlist"T "$nlist"'
4903	    }
4904	  fi
4905
4906	  # Prepare the list of exported symbols
4907	  if test -z "$export_symbols"; then
4908	    export_symbols=$output_objdir/$outputname.exp
4909	    $opt_dry_run || {
4910	      $RM $export_symbols
4911	      eval "$SED -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
4912	      case $host in
4913	      *cygwin* | *mingw* | *cegcc* )
4914                eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
4915                eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"'
4916	        ;;
4917	      esac
4918	    }
4919	  else
4920	    $opt_dry_run || {
4921	      eval "$SED -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"'
4922	      eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
4923	      eval '$MV "$nlist"T "$nlist"'
4924	      case $host in
4925	        *cygwin* | *mingw* | *cegcc* )
4926	          eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
4927	          eval 'cat "$nlist" >> "$output_objdir/$outputname.def"'
4928	          ;;
4929	      esac
4930	    }
4931	  fi
4932	fi
4933
4934	for dlprefile in $dlprefiles; do
4935	  func_verbose "extracting global C symbols from '$dlprefile'"
4936	  func_basename "$dlprefile"
4937	  name=$func_basename_result
4938          case $host in
4939	    *cygwin* | *mingw* | *cegcc* )
4940	      # if an import library, we need to obtain dlname
4941	      if func_win32_import_lib_p "$dlprefile"; then
4942	        func_tr_sh "$dlprefile"
4943	        eval "curr_lafile=\$libfile_$func_tr_sh_result"
4944	        dlprefile_dlbasename=
4945	        if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then
4946	          # Use subshell, to avoid clobbering current variable values
4947	          dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"`
4948	          if test -n "$dlprefile_dlname"; then
4949	            func_basename "$dlprefile_dlname"
4950	            dlprefile_dlbasename=$func_basename_result
4951	          else
4952	            # no lafile. user explicitly requested -dlpreopen <import library>.
4953	            $sharedlib_from_linklib_cmd "$dlprefile"
4954	            dlprefile_dlbasename=$sharedlib_from_linklib_result
4955	          fi
4956	        fi
4957	        $opt_dry_run || {
4958	          if test -n "$dlprefile_dlbasename"; then
4959	            eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"'
4960	          else
4961	            func_warning "Could not compute DLL name from $name"
4962	            eval '$ECHO ": $name " >> "$nlist"'
4963	          fi
4964	          func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
4965	          eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe |
4966	            $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'"
4967	        }
4968	      else # not an import lib
4969	        $opt_dry_run || {
4970	          eval '$ECHO ": $name " >> "$nlist"'
4971	          func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
4972	          eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'"
4973	        }
4974	      fi
4975	    ;;
4976	    *)
4977	      $opt_dry_run || {
4978	        eval '$ECHO ": $name " >> "$nlist"'
4979	        func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
4980	        eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'"
4981	      }
4982	    ;;
4983          esac
4984	done
4985
4986	$opt_dry_run || {
4987	  # Make sure we have at least an empty file.
4988	  test -f "$nlist" || : > "$nlist"
4989
4990	  if test -n "$exclude_expsyms"; then
4991	    $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
4992	    $MV "$nlist"T "$nlist"
4993	  fi
4994
4995	  # Try sorting and uniquifying the output.
4996	  if $GREP -v "^: " < "$nlist" |
4997	      if sort -k 3 </dev/null >/dev/null 2>&1; then
4998		sort -k 3
4999	      else
5000		sort +2
5001	      fi |
5002	      uniq > "$nlist"S; then
5003	    :
5004	  else
5005	    $GREP -v "^: " < "$nlist" > "$nlist"S
5006	  fi
5007
5008	  if test -f "$nlist"S; then
5009	    eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"'
5010	  else
5011	    echo '/* NONE */' >> "$output_objdir/$my_dlsyms"
5012	  fi
5013
5014	  func_show_eval '$RM "${nlist}I"'
5015	  if test -n "$global_symbol_to_import"; then
5016	    eval "$global_symbol_to_import"' < "$nlist"S > "$nlist"I'
5017	  fi
5018
5019	  echo >> "$output_objdir/$my_dlsyms" "\
5020
5021/* The mapping between symbol names and symbols.  */
5022typedef struct {
5023  const char *name;
5024  void *address;
5025} lt_dlsymlist;
5026extern LT_DLSYM_CONST lt_dlsymlist
5027lt_${my_prefix}_LTX_preloaded_symbols[];\
5028"
5029
5030	  if test -s "$nlist"I; then
5031	    echo >> "$output_objdir/$my_dlsyms" "\
5032static void lt_syminit(void)
5033{
5034  LT_DLSYM_CONST lt_dlsymlist *symbol = lt_${my_prefix}_LTX_preloaded_symbols;
5035  for (; symbol->name; ++symbol)
5036    {"
5037	    $SED 's/.*/      if (STREQ (symbol->name, \"&\")) symbol->address = (void *) \&&;/' < "$nlist"I >> "$output_objdir/$my_dlsyms"
5038	    echo >> "$output_objdir/$my_dlsyms" "\
5039    }
5040}"
5041	  fi
5042	  echo >> "$output_objdir/$my_dlsyms" "\
5043LT_DLSYM_CONST lt_dlsymlist
5044lt_${my_prefix}_LTX_preloaded_symbols[] =
5045{ {\"$my_originator\", (void *) 0},"
5046
5047	  if test -s "$nlist"I; then
5048	    echo >> "$output_objdir/$my_dlsyms" "\
5049  {\"@INIT@\", (void *) &lt_syminit},"
5050	  fi
5051
5052	  case $need_lib_prefix in
5053	  no)
5054	    eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms"
5055	    ;;
5056	  *)
5057	    eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms"
5058	    ;;
5059	  esac
5060	  echo >> "$output_objdir/$my_dlsyms" "\
5061  {0, (void *) 0}
5062};
5063
5064/* This works around a problem in FreeBSD linker */
5065#ifdef FREEBSD_WORKAROUND
5066static const void *lt_preloaded_setup() {
5067  return lt_${my_prefix}_LTX_preloaded_symbols;
5068}
5069#endif
5070
5071#ifdef __cplusplus
5072}
5073#endif\
5074"
5075	} # !$opt_dry_run
5076
5077	pic_flag_for_symtable=
5078	case "$compile_command " in
5079	*" -static "*) ;;
5080	*)
5081	  case $host in
5082	  # compiling the symbol table file with pic_flag works around
5083	  # a FreeBSD bug that causes programs to crash when -lm is
5084	  # linked before any other PIC object.  But we must not use
5085	  # pic_flag when linking with -static.  The problem exists in
5086	  # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
5087	  *-*-freebsd2.*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
5088	    pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;;
5089	  *-*-hpux*)
5090	    pic_flag_for_symtable=" $pic_flag"  ;;
5091	  *)
5092	    $my_pic_p && pic_flag_for_symtable=" $pic_flag"
5093	    ;;
5094	  esac
5095	  ;;
5096	esac
5097	symtab_cflags=
5098	for arg in $LTCFLAGS; do
5099	  case $arg in
5100	  -pie | -fpie | -fPIE) ;;
5101	  *) func_append symtab_cflags " $arg" ;;
5102	  esac
5103	done
5104
5105	# Now compile the dynamic symbol file.
5106	func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?'
5107
5108	# Clean up the generated files.
5109	func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T" "${nlist}I"'
5110
5111	# Transform the symbol file into the correct name.
5112	symfileobj=$output_objdir/${my_outputname}S.$objext
5113	case $host in
5114	*cygwin* | *mingw* | *cegcc* )
5115	  if test -f "$output_objdir/$my_outputname.def"; then
5116	    compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
5117	    finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
5118	  else
5119	    compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"`
5120	    finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"`
5121	  fi
5122	  ;;
5123	*)
5124	  compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"`
5125	  finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"`
5126	  ;;
5127	esac
5128	;;
5129      *)
5130	func_fatal_error "unknown suffix for '$my_dlsyms'"
5131	;;
5132      esac
5133    else
5134      # We keep going just in case the user didn't refer to
5135      # lt_preloaded_symbols.  The linker will fail if global_symbol_pipe
5136      # really was required.
5137
5138      # Nullify the symbol file.
5139      compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"`
5140      finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"`
5141    fi
5142}
5143
5144# func_cygming_gnu_implib_p ARG
5145# This predicate returns with zero status (TRUE) if
5146# ARG is a GNU/binutils-style import library. Returns
5147# with nonzero status (FALSE) otherwise.
5148func_cygming_gnu_implib_p ()
5149{
5150  $debug_cmd
5151
5152  func_to_tool_file "$1" func_convert_file_msys_to_w32
5153  func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'`
5154  test -n "$func_cygming_gnu_implib_tmp"
5155}
5156
5157# func_cygming_ms_implib_p ARG
5158# This predicate returns with zero status (TRUE) if
5159# ARG is an MS-style import library. Returns
5160# with nonzero status (FALSE) otherwise.
5161func_cygming_ms_implib_p ()
5162{
5163  $debug_cmd
5164
5165  func_to_tool_file "$1" func_convert_file_msys_to_w32
5166  func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'`
5167  test -n "$func_cygming_ms_implib_tmp"
5168}
5169
5170# func_win32_libid arg
5171# return the library type of file 'arg'
5172#
5173# Need a lot of goo to handle *both* DLLs and import libs
5174# Has to be a shell function in order to 'eat' the argument
5175# that is supplied when $file_magic_command is called.
5176# Despite the name, also deal with 64 bit binaries.
5177func_win32_libid ()
5178{
5179  $debug_cmd
5180
5181  win32_libid_type=unknown
5182  win32_fileres=`file -L $1 2>/dev/null`
5183  case $win32_fileres in
5184  *ar\ archive\ import\ library*) # definitely import
5185    win32_libid_type="x86 archive import"
5186    ;;
5187  *ar\ archive*) # could be an import, or static
5188    # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD.
5189    if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null |
5190       $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then
5191      case $nm_interface in
5192      "MS dumpbin")
5193	if func_cygming_ms_implib_p "$1" ||
5194	   func_cygming_gnu_implib_p "$1"
5195	then
5196	  win32_nmres=import
5197	else
5198	  win32_nmres=
5199	fi
5200	;;
5201      *)
5202	func_to_tool_file "$1" func_convert_file_msys_to_w32
5203	win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" |
5204	  $SED -n -e '
5205	    1,100{
5206		/ I /{
5207		    s|.*|import|
5208		    p
5209		    q
5210		}
5211	    }'`
5212	;;
5213      esac
5214      case $win32_nmres in
5215      import*)  win32_libid_type="x86 archive import";;
5216      *)        win32_libid_type="x86 archive static";;
5217      esac
5218    fi
5219    ;;
5220  *DLL*)
5221    win32_libid_type="x86 DLL"
5222    ;;
5223  *executable*) # but shell scripts are "executable" too...
5224    case $win32_fileres in
5225    *MS\ Windows\ PE\ Intel*)
5226      win32_libid_type="x86 DLL"
5227      ;;
5228    esac
5229    ;;
5230  esac
5231  $ECHO "$win32_libid_type"
5232}
5233
5234# func_cygming_dll_for_implib ARG
5235#
5236# Platform-specific function to extract the
5237# name of the DLL associated with the specified
5238# import library ARG.
5239# Invoked by eval'ing the libtool variable
5240#    $sharedlib_from_linklib_cmd
5241# Result is available in the variable
5242#    $sharedlib_from_linklib_result
5243func_cygming_dll_for_implib ()
5244{
5245  $debug_cmd
5246
5247  sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"`
5248}
5249
5250# func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs
5251#
5252# The is the core of a fallback implementation of a
5253# platform-specific function to extract the name of the
5254# DLL associated with the specified import library LIBNAME.
5255#
5256# SECTION_NAME is either .idata$6 or .idata$7, depending
5257# on the platform and compiler that created the implib.
5258#
5259# Echos the name of the DLL associated with the
5260# specified import library.
5261func_cygming_dll_for_implib_fallback_core ()
5262{
5263  $debug_cmd
5264
5265  match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"`
5266  $OBJDUMP -s --section "$1" "$2" 2>/dev/null |
5267    $SED '/^Contents of section '"$match_literal"':/{
5268      # Place marker at beginning of archive member dllname section
5269      s/.*/====MARK====/
5270      p
5271      d
5272    }
5273    # These lines can sometimes be longer than 43 characters, but
5274    # are always uninteresting
5275    /:[	 ]*file format pe[i]\{,1\}-/d
5276    /^In archive [^:]*:/d
5277    # Ensure marker is printed
5278    /^====MARK====/p
5279    # Remove all lines with less than 43 characters
5280    /^.\{43\}/!d
5281    # From remaining lines, remove first 43 characters
5282    s/^.\{43\}//' |
5283    $SED -n '
5284      # Join marker and all lines until next marker into a single line
5285      /^====MARK====/ b para
5286      H
5287      $ b para
5288      b
5289      :para
5290      x
5291      s/\n//g
5292      # Remove the marker
5293      s/^====MARK====//
5294      # Remove trailing dots and whitespace
5295      s/[\. \t]*$//
5296      # Print
5297      /./p' |
5298    # we now have a list, one entry per line, of the stringified
5299    # contents of the appropriate section of all members of the
5300    # archive that possess that section. Heuristic: eliminate
5301    # all those that have a first or second character that is
5302    # a '.' (that is, objdump's representation of an unprintable
5303    # character.) This should work for all archives with less than
5304    # 0x302f exports -- but will fail for DLLs whose name actually
5305    # begins with a literal '.' or a single character followed by
5306    # a '.'.
5307    #
5308    # Of those that remain, print the first one.
5309    $SED -e '/^\./d;/^.\./d;q'
5310}
5311
5312# func_cygming_dll_for_implib_fallback ARG
5313# Platform-specific function to extract the
5314# name of the DLL associated with the specified
5315# import library ARG.
5316#
5317# This fallback implementation is for use when $DLLTOOL
5318# does not support the --identify-strict option.
5319# Invoked by eval'ing the libtool variable
5320#    $sharedlib_from_linklib_cmd
5321# Result is available in the variable
5322#    $sharedlib_from_linklib_result
5323func_cygming_dll_for_implib_fallback ()
5324{
5325  $debug_cmd
5326
5327  if func_cygming_gnu_implib_p "$1"; then
5328    # binutils import library
5329    sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"`
5330  elif func_cygming_ms_implib_p "$1"; then
5331    # ms-generated import library
5332    sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"`
5333  else
5334    # unknown
5335    sharedlib_from_linklib_result=
5336  fi
5337}
5338
5339
5340# func_extract_an_archive dir oldlib
5341func_extract_an_archive ()
5342{
5343    $debug_cmd
5344
5345    f_ex_an_ar_dir=$1; shift
5346    f_ex_an_ar_oldlib=$1
5347    if test yes = "$lock_old_archive_extraction"; then
5348      lockfile=$f_ex_an_ar_oldlib.lock
5349      until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do
5350	func_echo "Waiting for $lockfile to be removed"
5351	sleep 2
5352      done
5353    fi
5354    func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \
5355		   'stat=$?; rm -f "$lockfile"; exit $stat'
5356    if test yes = "$lock_old_archive_extraction"; then
5357      $opt_dry_run || rm -f "$lockfile"
5358    fi
5359    if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
5360     :
5361    else
5362      func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib"
5363    fi
5364}
5365
5366
5367# func_extract_archives gentop oldlib ...
5368func_extract_archives ()
5369{
5370    $debug_cmd
5371
5372    my_gentop=$1; shift
5373    my_oldlibs=${1+"$@"}
5374    my_oldobjs=
5375    my_xlib=
5376    my_xabs=
5377    my_xdir=
5378
5379    for my_xlib in $my_oldlibs; do
5380      # Extract the objects.
5381      case $my_xlib in
5382	[\\/]* | [A-Za-z]:[\\/]*) my_xabs=$my_xlib ;;
5383	*) my_xabs=`pwd`"/$my_xlib" ;;
5384      esac
5385      func_basename "$my_xlib"
5386      my_xlib=$func_basename_result
5387      my_xlib_u=$my_xlib
5388      while :; do
5389        case " $extracted_archives " in
5390	*" $my_xlib_u "*)
5391	  func_arith $extracted_serial + 1
5392	  extracted_serial=$func_arith_result
5393	  my_xlib_u=lt$extracted_serial-$my_xlib ;;
5394	*) break ;;
5395	esac
5396      done
5397      extracted_archives="$extracted_archives $my_xlib_u"
5398      my_xdir=$my_gentop/$my_xlib_u
5399
5400      func_mkdir_p "$my_xdir"
5401
5402      case $host in
5403      *-darwin*)
5404	func_verbose "Extracting $my_xabs"
5405	# Do not bother doing anything if just a dry run
5406	$opt_dry_run || {
5407	  darwin_orig_dir=`pwd`
5408	  cd $my_xdir || exit $?
5409	  darwin_archive=$my_xabs
5410	  darwin_curdir=`pwd`
5411	  func_basename "$darwin_archive"
5412	  darwin_base_archive=$func_basename_result
5413	  darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true`
5414	  if test -n "$darwin_arches"; then
5415	    darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'`
5416	    darwin_arch=
5417	    func_verbose "$darwin_base_archive has multiple architectures $darwin_arches"
5418	    for darwin_arch in  $darwin_arches; do
5419	      func_mkdir_p "unfat-$$/$darwin_base_archive-$darwin_arch"
5420	      $LIPO -thin $darwin_arch -output "unfat-$$/$darwin_base_archive-$darwin_arch/$darwin_base_archive" "$darwin_archive"
5421	      cd "unfat-$$/$darwin_base_archive-$darwin_arch"
5422	      func_extract_an_archive "`pwd`" "$darwin_base_archive"
5423	      cd "$darwin_curdir"
5424	      $RM "unfat-$$/$darwin_base_archive-$darwin_arch/$darwin_base_archive"
5425	    done # $darwin_arches
5426            ## Okay now we've a bunch of thin objects, gotta fatten them up :)
5427	    darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$sed_basename" | sort -u`
5428	    darwin_file=
5429	    darwin_files=
5430	    for darwin_file in $darwin_filelist; do
5431	      darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP`
5432	      $LIPO -create -output "$darwin_file" $darwin_files
5433	    done # $darwin_filelist
5434	    $RM -rf unfat-$$
5435	    cd "$darwin_orig_dir"
5436	  else
5437	    cd $darwin_orig_dir
5438	    func_extract_an_archive "$my_xdir" "$my_xabs"
5439	  fi # $darwin_arches
5440	} # !$opt_dry_run
5441	;;
5442      *)
5443        func_extract_an_archive "$my_xdir" "$my_xabs"
5444	;;
5445      esac
5446      my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP`
5447    done
5448
5449    func_extract_archives_result=$my_oldobjs
5450}
5451
5452
5453# func_emit_wrapper [arg=no]
5454#
5455# Emit a libtool wrapper script on stdout.
5456# Don't directly open a file because we may want to
5457# incorporate the script contents within a cygwin/mingw
5458# wrapper executable.  Must ONLY be called from within
5459# func_mode_link because it depends on a number of variables
5460# set therein.
5461#
5462# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR
5463# variable will take.  If 'yes', then the emitted script
5464# will assume that the directory where it is stored is
5465# the $objdir directory.  This is a cygwin/mingw-specific
5466# behavior.
5467func_emit_wrapper ()
5468{
5469	func_emit_wrapper_arg1=${1-no}
5470
5471	$ECHO "\
5472#! $SHELL
5473
5474# $output - temporary wrapper script for $objdir/$outputname
5475# Generated by $PROGRAM (GNU $PACKAGE) $VERSION
5476#
5477# The $output program cannot be directly executed until all the libtool
5478# libraries that it depends on are installed.
5479#
5480# This wrapper script should never be moved out of the build directory.
5481# If it is, it will not operate correctly.
5482
5483# Sed substitution that helps us do robust quoting.  It backslashifies
5484# metacharacters that are still active within double-quoted strings.
5485sed_quote_subst='$sed_quote_subst'
5486
5487# Be Bourne compatible
5488if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then
5489  emulate sh
5490  NULLCMD=:
5491  # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which
5492  # is contrary to our usage.  Disable this feature.
5493  alias -g '\${1+\"\$@\"}'='\"\$@\"'
5494  setopt NO_GLOB_SUBST
5495else
5496  case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac
5497fi
5498BIN_SH=xpg4; export BIN_SH # for Tru64
5499DUALCASE=1; export DUALCASE # for MKS sh
5500
5501# The HP-UX ksh and POSIX shell print the target directory to stdout
5502# if CDPATH is set.
5503(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
5504
5505relink_command=\"$relink_command\"
5506
5507# This environment variable determines our operation mode.
5508if test \"\$libtool_install_magic\" = \"$magic\"; then
5509  # install mode needs the following variables:
5510  generated_by_libtool_version='$macro_version'
5511  notinst_deplibs='$notinst_deplibs'
5512else
5513  # When we are sourced in execute mode, \$file and \$ECHO are already set.
5514  if test \"\$libtool_execute_magic\" != \"$magic\"; then
5515    file=\"\$0\""
5516
5517    func_quote_arg pretty "$ECHO"
5518    qECHO=$func_quote_arg_result
5519    $ECHO "\
5520
5521# A function that is used when there is no print builtin or printf.
5522func_fallback_echo ()
5523{
5524  eval 'cat <<_LTECHO_EOF
5525\$1
5526_LTECHO_EOF'
5527}
5528    ECHO=$qECHO
5529  fi
5530
5531# Very basic option parsing. These options are (a) specific to
5532# the libtool wrapper, (b) are identical between the wrapper
5533# /script/ and the wrapper /executable/ that is used only on
5534# windows platforms, and (c) all begin with the string "--lt-"
5535# (application programs are unlikely to have options that match
5536# this pattern).
5537#
5538# There are only two supported options: --lt-debug and
5539# --lt-dump-script. There is, deliberately, no --lt-help.
5540#
5541# The first argument to this parsing function should be the
5542# script's $0 value, followed by "$@".
5543lt_option_debug=
5544func_parse_lt_options ()
5545{
5546  lt_script_arg0=\$0
5547  shift
5548  for lt_opt
5549  do
5550    case \"\$lt_opt\" in
5551    --lt-debug) lt_option_debug=1 ;;
5552    --lt-dump-script)
5553        lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\`
5554        test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=.
5555        lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\`
5556        cat \"\$lt_dump_D/\$lt_dump_F\"
5557        exit 0
5558      ;;
5559    --lt-*)
5560        \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2
5561        exit 1
5562      ;;
5563    esac
5564  done
5565
5566  # Print the debug banner immediately:
5567  if test -n \"\$lt_option_debug\"; then
5568    echo \"$outputname:$output:\$LINENO: libtool wrapper (GNU $PACKAGE) $VERSION\" 1>&2
5569  fi
5570}
5571
5572# Used when --lt-debug. Prints its arguments to stdout
5573# (redirection is the responsibility of the caller)
5574func_lt_dump_args ()
5575{
5576  lt_dump_args_N=1;
5577  for lt_arg
5578  do
5579    \$ECHO \"$outputname:$output:\$LINENO: newargv[\$lt_dump_args_N]: \$lt_arg\"
5580    lt_dump_args_N=\`expr \$lt_dump_args_N + 1\`
5581  done
5582}
5583
5584# Core function for launching the target application
5585func_exec_program_core ()
5586{
5587"
5588  case $host in
5589  # Backslashes separate directories on plain windows
5590  *-*-mingw | *-*-os2* | *-cegcc*)
5591    $ECHO "\
5592      if test -n \"\$lt_option_debug\"; then
5593        \$ECHO \"$outputname:$output:\$LINENO: newargv[0]: \$progdir\\\\\$program\" 1>&2
5594        func_lt_dump_args \${1+\"\$@\"} 1>&2
5595      fi
5596      exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
5597"
5598    ;;
5599
5600  *)
5601    $ECHO "\
5602      if test -n \"\$lt_option_debug\"; then
5603        \$ECHO \"$outputname:$output:\$LINENO: newargv[0]: \$progdir/\$program\" 1>&2
5604        func_lt_dump_args \${1+\"\$@\"} 1>&2
5605      fi
5606      exec \"\$progdir/\$program\" \${1+\"\$@\"}
5607"
5608    ;;
5609  esac
5610  $ECHO "\
5611      \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2
5612      exit 1
5613}
5614
5615# A function to encapsulate launching the target application
5616# Strips options in the --lt-* namespace from \$@ and
5617# launches target application with the remaining arguments.
5618func_exec_program ()
5619{
5620  case \" \$* \" in
5621  *\\ --lt-*)
5622    for lt_wr_arg
5623    do
5624      case \$lt_wr_arg in
5625      --lt-*) ;;
5626      *) set x \"\$@\" \"\$lt_wr_arg\"; shift;;
5627      esac
5628      shift
5629    done ;;
5630  esac
5631  func_exec_program_core \${1+\"\$@\"}
5632}
5633
5634  # Parse options
5635  func_parse_lt_options \"\$0\" \${1+\"\$@\"}
5636
5637  # Find the directory that this script lives in.
5638  thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\`
5639  test \"x\$thisdir\" = \"x\$file\" && thisdir=.
5640
5641  # Follow symbolic links until we get to the real thisdir.
5642  file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\`
5643  while test -n \"\$file\"; do
5644    destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\`
5645
5646    # If there was a directory component, then change thisdir.
5647    if test \"x\$destdir\" != \"x\$file\"; then
5648      case \"\$destdir\" in
5649      [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
5650      *) thisdir=\"\$thisdir/\$destdir\" ;;
5651      esac
5652    fi
5653
5654    file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\`
5655    file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\`
5656  done
5657
5658  # Usually 'no', except on cygwin/mingw when embedded into
5659  # the cwrapper.
5660  WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1
5661  if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then
5662    # special case for '.'
5663    if test \"\$thisdir\" = \".\"; then
5664      thisdir=\`pwd\`
5665    fi
5666    # remove .libs from thisdir
5667    case \"\$thisdir\" in
5668    *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;;
5669    $objdir )   thisdir=. ;;
5670    esac
5671  fi
5672
5673  # Try to get the absolute directory name.
5674  absdir=\`cd \"\$thisdir\" && pwd\`
5675  test -n \"\$absdir\" && thisdir=\"\$absdir\"
5676"
5677
5678	if test yes = "$fast_install"; then
5679	  $ECHO "\
5680  program=lt-'$outputname'$exeext
5681  progdir=\"\$thisdir/$objdir\"
5682
5683  if test ! -f \"\$progdir/\$program\" ||
5684     { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | $SED 1q\`; \\
5685       test \"X\$file\" != \"X\$progdir/\$program\"; }; then
5686
5687    file=\"\$\$-\$program\"
5688
5689    if test ! -d \"\$progdir\"; then
5690      $MKDIR \"\$progdir\"
5691    else
5692      $RM \"\$progdir/\$file\"
5693    fi"
5694
5695	  $ECHO "\
5696
5697    # relink executable if necessary
5698    if test -n \"\$relink_command\"; then
5699      if relink_command_output=\`eval \$relink_command 2>&1\`; then :
5700      else
5701	\$ECHO \"\$relink_command_output\" >&2
5702	$RM \"\$progdir/\$file\"
5703	exit 1
5704      fi
5705    fi
5706
5707    $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
5708    { $RM \"\$progdir/\$program\";
5709      $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; }
5710    $RM \"\$progdir/\$file\"
5711  fi"
5712	else
5713	  $ECHO "\
5714  program='$outputname'
5715  progdir=\"\$thisdir/$objdir\"
5716"
5717	fi
5718
5719	$ECHO "\
5720
5721  if test -f \"\$progdir/\$program\"; then"
5722
5723	# fixup the dll searchpath if we need to.
5724	#
5725	# Fix the DLL searchpath if we need to.  Do this before prepending
5726	# to shlibpath, because on Windows, both are PATH and uninstalled
5727	# libraries must come first.
5728	if test -n "$dllsearchpath"; then
5729	  $ECHO "\
5730    # Add the dll search path components to the executable PATH
5731    PATH=$dllsearchpath:\$PATH
5732"
5733	fi
5734
5735	# Export our shlibpath_var if we have one.
5736	if test yes = "$shlibpath_overrides_runpath" && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
5737	  $ECHO "\
5738    # Add our own library path to $shlibpath_var
5739    $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
5740
5741    # Some systems cannot cope with colon-terminated $shlibpath_var
5742    # The second colon is a workaround for a bug in BeOS R4 sed
5743    $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\`
5744
5745    export $shlibpath_var
5746"
5747	fi
5748
5749	$ECHO "\
5750    if test \"\$libtool_execute_magic\" != \"$magic\"; then
5751      # Run the actual program with our arguments.
5752      func_exec_program \${1+\"\$@\"}
5753    fi
5754  else
5755    # The program doesn't exist.
5756    \$ECHO \"\$0: error: '\$progdir/\$program' does not exist\" 1>&2
5757    \$ECHO \"This script is just a wrapper for \$program.\" 1>&2
5758    \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2
5759    exit 1
5760  fi
5761fi\
5762"
5763}
5764
5765
5766# func_emit_cwrapperexe_src
5767# emit the source code for a wrapper executable on stdout
5768# Must ONLY be called from within func_mode_link because
5769# it depends on a number of variable set therein.
5770func_emit_cwrapperexe_src ()
5771{
5772	cat <<EOF
5773
5774/* $cwrappersource - temporary wrapper executable for $objdir/$outputname
5775   Generated by $PROGRAM (GNU $PACKAGE) $VERSION
5776
5777   The $output program cannot be directly executed until all the libtool
5778   libraries that it depends on are installed.
5779
5780   This wrapper executable should never be moved out of the build directory.
5781   If it is, it will not operate correctly.
5782*/
5783EOF
5784	    cat <<"EOF"
5785#ifdef _MSC_VER
5786# define _CRT_SECURE_NO_DEPRECATE 1
5787#endif
5788#include <stdio.h>
5789#include <stdlib.h>
5790#ifdef _MSC_VER
5791# include <direct.h>
5792# include <process.h>
5793# include <io.h>
5794#else
5795# include <unistd.h>
5796# include <stdint.h>
5797# ifdef __CYGWIN__
5798#  include <io.h>
5799# endif
5800#endif
5801#include <malloc.h>
5802#include <stdarg.h>
5803#include <assert.h>
5804#include <string.h>
5805#include <ctype.h>
5806#include <errno.h>
5807#include <fcntl.h>
5808#include <sys/stat.h>
5809
5810#define STREQ(s1, s2) (strcmp ((s1), (s2)) == 0)
5811
5812/* declarations of non-ANSI functions */
5813#if defined __MINGW32__
5814# ifdef __STRICT_ANSI__
5815int _putenv (const char *);
5816# endif
5817#elif defined __CYGWIN__
5818# ifdef __STRICT_ANSI__
5819char *realpath (const char *, char *);
5820int putenv (char *);
5821int setenv (const char *, const char *, int);
5822# endif
5823/* #elif defined other_platform || defined ... */
5824#endif
5825
5826/* portability defines, excluding path handling macros */
5827#if defined _MSC_VER
5828# define setmode _setmode
5829# define stat    _stat
5830# define chmod   _chmod
5831# define getcwd  _getcwd
5832# define putenv  _putenv
5833# define S_IXUSR _S_IEXEC
5834#elif defined __MINGW32__
5835# define setmode _setmode
5836# define stat    _stat
5837# define chmod   _chmod
5838# define getcwd  _getcwd
5839# define putenv  _putenv
5840#elif defined __CYGWIN__
5841# define HAVE_SETENV
5842# define FOPEN_WB "wb"
5843/* #elif defined other platforms ... */
5844#endif
5845
5846#if defined PATH_MAX
5847# define LT_PATHMAX PATH_MAX
5848#elif defined MAXPATHLEN
5849# define LT_PATHMAX MAXPATHLEN
5850#else
5851# define LT_PATHMAX 1024
5852#endif
5853
5854#ifndef S_IXOTH
5855# define S_IXOTH 0
5856#endif
5857#ifndef S_IXGRP
5858# define S_IXGRP 0
5859#endif
5860
5861/* path handling portability macros */
5862#ifndef DIR_SEPARATOR
5863# define DIR_SEPARATOR '/'
5864# define PATH_SEPARATOR ':'
5865#endif
5866
5867#if defined _WIN32 || defined __MSDOS__ || defined __DJGPP__ || \
5868  defined __OS2__
5869# define HAVE_DOS_BASED_FILE_SYSTEM
5870# define FOPEN_WB "wb"
5871# ifndef DIR_SEPARATOR_2
5872#  define DIR_SEPARATOR_2 '\\'
5873# endif
5874# ifndef PATH_SEPARATOR_2
5875#  define PATH_SEPARATOR_2 ';'
5876# endif
5877#endif
5878
5879#ifndef DIR_SEPARATOR_2
5880# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR)
5881#else /* DIR_SEPARATOR_2 */
5882# define IS_DIR_SEPARATOR(ch) \
5883	(((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))
5884#endif /* DIR_SEPARATOR_2 */
5885
5886#ifndef PATH_SEPARATOR_2
5887# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR)
5888#else /* PATH_SEPARATOR_2 */
5889# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2)
5890#endif /* PATH_SEPARATOR_2 */
5891
5892#ifndef FOPEN_WB
5893# define FOPEN_WB "w"
5894#endif
5895#ifndef _O_BINARY
5896# define _O_BINARY 0
5897#endif
5898
5899#define XMALLOC(type, num)      ((type *) xmalloc ((num) * sizeof(type)))
5900#define XFREE(stale) do { \
5901  if (stale) { free (stale); stale = 0; } \
5902} while (0)
5903
5904#if defined LT_DEBUGWRAPPER
5905static int lt_debug = 1;
5906#else
5907static int lt_debug = 0;
5908#endif
5909
5910const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */
5911
5912void *xmalloc (size_t num);
5913char *xstrdup (const char *string);
5914const char *base_name (const char *name);
5915char *find_executable (const char *wrapper);
5916char *chase_symlinks (const char *pathspec);
5917int make_executable (const char *path);
5918int check_executable (const char *path);
5919char *strendzap (char *str, const char *pat);
5920void lt_debugprintf (const char *file, int line, const char *fmt, ...);
5921void lt_fatal (const char *file, int line, const char *message, ...);
5922static const char *nonnull (const char *s);
5923static const char *nonempty (const char *s);
5924void lt_setenv (const char *name, const char *value);
5925char *lt_extend_str (const char *orig_value, const char *add, int to_end);
5926void lt_update_exe_path (const char *name, const char *value);
5927void lt_update_lib_path (const char *name, const char *value);
5928char **prepare_spawn (char **argv);
5929void lt_dump_script (FILE *f);
5930EOF
5931
5932	    cat <<EOF
5933#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 5)
5934# define externally_visible volatile
5935#else
5936# define externally_visible __attribute__((externally_visible)) volatile
5937#endif
5938externally_visible const char * MAGIC_EXE = "$magic_exe";
5939const char * LIB_PATH_VARNAME = "$shlibpath_var";
5940EOF
5941
5942	    if test yes = "$shlibpath_overrides_runpath" && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
5943              func_to_host_path "$temp_rpath"
5944	      cat <<EOF
5945const char * LIB_PATH_VALUE   = "$func_to_host_path_result";
5946EOF
5947	    else
5948	      cat <<"EOF"
5949const char * LIB_PATH_VALUE   = "";
5950EOF
5951	    fi
5952
5953	    if test -n "$dllsearchpath"; then
5954              func_to_host_path "$dllsearchpath:"
5955	      cat <<EOF
5956const char * EXE_PATH_VARNAME = "PATH";
5957const char * EXE_PATH_VALUE   = "$func_to_host_path_result";
5958EOF
5959	    else
5960	      cat <<"EOF"
5961const char * EXE_PATH_VARNAME = "";
5962const char * EXE_PATH_VALUE   = "";
5963EOF
5964	    fi
5965
5966	    if test yes = "$fast_install"; then
5967	      cat <<EOF
5968const char * TARGET_PROGRAM_NAME = "lt-$outputname"; /* hopefully, no .exe */
5969EOF
5970	    else
5971	      cat <<EOF
5972const char * TARGET_PROGRAM_NAME = "$outputname"; /* hopefully, no .exe */
5973EOF
5974	    fi
5975
5976
5977	    cat <<"EOF"
5978
5979#define LTWRAPPER_OPTION_PREFIX         "--lt-"
5980
5981static const char *ltwrapper_option_prefix = LTWRAPPER_OPTION_PREFIX;
5982static const char *dumpscript_opt       = LTWRAPPER_OPTION_PREFIX "dump-script";
5983static const char *debug_opt            = LTWRAPPER_OPTION_PREFIX "debug";
5984
5985int
5986main (int argc, char *argv[])
5987{
5988  char **newargz;
5989  int  newargc;
5990  char *tmp_pathspec;
5991  char *actual_cwrapper_path;
5992  char *actual_cwrapper_name;
5993  char *target_name;
5994  char *lt_argv_zero;
5995  int rval = 127;
5996
5997  int i;
5998
5999  program_name = (char *) xstrdup (base_name (argv[0]));
6000  newargz = XMALLOC (char *, (size_t) argc + 1);
6001
6002  /* very simple arg parsing; don't want to rely on getopt
6003   * also, copy all non cwrapper options to newargz, except
6004   * argz[0], which is handled differently
6005   */
6006  newargc=0;
6007  for (i = 1; i < argc; i++)
6008    {
6009      if (STREQ (argv[i], dumpscript_opt))
6010	{
6011EOF
6012	    case $host in
6013	      *mingw* | *cygwin* )
6014		# make stdout use "unix" line endings
6015		echo "          setmode(1,_O_BINARY);"
6016		;;
6017	      esac
6018
6019	    cat <<"EOF"
6020	  lt_dump_script (stdout);
6021	  return 0;
6022	}
6023      if (STREQ (argv[i], debug_opt))
6024	{
6025          lt_debug = 1;
6026          continue;
6027	}
6028      if (STREQ (argv[i], ltwrapper_option_prefix))
6029        {
6030          /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX
6031             namespace, but it is not one of the ones we know about and
6032             have already dealt with, above (inluding dump-script), then
6033             report an error. Otherwise, targets might begin to believe
6034             they are allowed to use options in the LTWRAPPER_OPTION_PREFIX
6035             namespace. The first time any user complains about this, we'll
6036             need to make LTWRAPPER_OPTION_PREFIX a configure-time option
6037             or a configure.ac-settable value.
6038           */
6039          lt_fatal (__FILE__, __LINE__,
6040		    "unrecognized %s option: '%s'",
6041                    ltwrapper_option_prefix, argv[i]);
6042        }
6043      /* otherwise ... */
6044      newargz[++newargc] = xstrdup (argv[i]);
6045    }
6046  newargz[++newargc] = NULL;
6047
6048EOF
6049	    cat <<EOF
6050  /* The GNU banner must be the first non-error debug message */
6051  lt_debugprintf (__FILE__, __LINE__, "libtool wrapper (GNU $PACKAGE) $VERSION\n");
6052EOF
6053	    cat <<"EOF"
6054  lt_debugprintf (__FILE__, __LINE__, "(main) argv[0]: %s\n", argv[0]);
6055  lt_debugprintf (__FILE__, __LINE__, "(main) program_name: %s\n", program_name);
6056
6057  tmp_pathspec = find_executable (argv[0]);
6058  if (tmp_pathspec == NULL)
6059    lt_fatal (__FILE__, __LINE__, "couldn't find %s", argv[0]);
6060  lt_debugprintf (__FILE__, __LINE__,
6061                  "(main) found exe (before symlink chase) at: %s\n",
6062		  tmp_pathspec);
6063
6064  actual_cwrapper_path = chase_symlinks (tmp_pathspec);
6065  lt_debugprintf (__FILE__, __LINE__,
6066                  "(main) found exe (after symlink chase) at: %s\n",
6067		  actual_cwrapper_path);
6068  XFREE (tmp_pathspec);
6069
6070  actual_cwrapper_name = xstrdup (base_name (actual_cwrapper_path));
6071  strendzap (actual_cwrapper_path, actual_cwrapper_name);
6072
6073  /* wrapper name transforms */
6074  strendzap (actual_cwrapper_name, ".exe");
6075  tmp_pathspec = lt_extend_str (actual_cwrapper_name, ".exe", 1);
6076  XFREE (actual_cwrapper_name);
6077  actual_cwrapper_name = tmp_pathspec;
6078  tmp_pathspec = 0;
6079
6080  /* target_name transforms -- use actual target program name; might have lt- prefix */
6081  target_name = xstrdup (base_name (TARGET_PROGRAM_NAME));
6082  strendzap (target_name, ".exe");
6083  tmp_pathspec = lt_extend_str (target_name, ".exe", 1);
6084  XFREE (target_name);
6085  target_name = tmp_pathspec;
6086  tmp_pathspec = 0;
6087
6088  lt_debugprintf (__FILE__, __LINE__,
6089		  "(main) libtool target name: %s\n",
6090		  target_name);
6091EOF
6092
6093	    cat <<EOF
6094  newargz[0] =
6095    XMALLOC (char, (strlen (actual_cwrapper_path) +
6096		    strlen ("$objdir") + 1 + strlen (actual_cwrapper_name) + 1));
6097  strcpy (newargz[0], actual_cwrapper_path);
6098  strcat (newargz[0], "$objdir");
6099  strcat (newargz[0], "/");
6100EOF
6101
6102	    cat <<"EOF"
6103  /* stop here, and copy so we don't have to do this twice */
6104  tmp_pathspec = xstrdup (newargz[0]);
6105
6106  /* do NOT want the lt- prefix here, so use actual_cwrapper_name */
6107  strcat (newargz[0], actual_cwrapper_name);
6108
6109  /* DO want the lt- prefix here if it exists, so use target_name */
6110  lt_argv_zero = lt_extend_str (tmp_pathspec, target_name, 1);
6111  XFREE (tmp_pathspec);
6112  tmp_pathspec = NULL;
6113EOF
6114
6115	    case $host_os in
6116	      mingw*)
6117	    cat <<"EOF"
6118  {
6119    char* p;
6120    while ((p = strchr (newargz[0], '\\')) != NULL)
6121      {
6122	*p = '/';
6123      }
6124    while ((p = strchr (lt_argv_zero, '\\')) != NULL)
6125      {
6126	*p = '/';
6127      }
6128  }
6129EOF
6130	    ;;
6131	    esac
6132
6133	    cat <<"EOF"
6134  XFREE (target_name);
6135  XFREE (actual_cwrapper_path);
6136  XFREE (actual_cwrapper_name);
6137
6138  lt_setenv ("BIN_SH", "xpg4"); /* for Tru64 */
6139  lt_setenv ("DUALCASE", "1");  /* for MSK sh */
6140  /* Update the DLL searchpath.  EXE_PATH_VALUE ($dllsearchpath) must
6141     be prepended before (that is, appear after) LIB_PATH_VALUE ($temp_rpath)
6142     because on Windows, both *_VARNAMEs are PATH but uninstalled
6143     libraries must come first. */
6144  lt_update_exe_path (EXE_PATH_VARNAME, EXE_PATH_VALUE);
6145  lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE);
6146
6147  lt_debugprintf (__FILE__, __LINE__, "(main) lt_argv_zero: %s\n",
6148		  nonnull (lt_argv_zero));
6149  for (i = 0; i < newargc; i++)
6150    {
6151      lt_debugprintf (__FILE__, __LINE__, "(main) newargz[%d]: %s\n",
6152		      i, nonnull (newargz[i]));
6153    }
6154
6155EOF
6156
6157	    case $host_os in
6158	      mingw*)
6159		cat <<"EOF"
6160  /* execv doesn't actually work on mingw as expected on unix */
6161  newargz = prepare_spawn (newargz);
6162  rval = (int) _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz);
6163  if (rval == -1)
6164    {
6165      /* failed to start process */
6166      lt_debugprintf (__FILE__, __LINE__,
6167		      "(main) failed to launch target \"%s\": %s\n",
6168		      lt_argv_zero, nonnull (strerror (errno)));
6169      return 127;
6170    }
6171  return rval;
6172EOF
6173		;;
6174	      *)
6175		cat <<"EOF"
6176  execv (lt_argv_zero, newargz);
6177  return rval; /* =127, but avoids unused variable warning */
6178EOF
6179		;;
6180	    esac
6181
6182	    cat <<"EOF"
6183}
6184
6185void *
6186xmalloc (size_t num)
6187{
6188  void *p = (void *) malloc (num);
6189  if (!p)
6190    lt_fatal (__FILE__, __LINE__, "memory exhausted");
6191
6192  return p;
6193}
6194
6195char *
6196xstrdup (const char *string)
6197{
6198  return string ? strcpy ((char *) xmalloc (strlen (string) + 1),
6199			  string) : NULL;
6200}
6201
6202const char *
6203base_name (const char *name)
6204{
6205  const char *base;
6206
6207#if defined HAVE_DOS_BASED_FILE_SYSTEM
6208  /* Skip over the disk name in MSDOS pathnames. */
6209  if (isalpha ((unsigned char) name[0]) && name[1] == ':')
6210    name += 2;
6211#endif
6212
6213  for (base = name; *name; name++)
6214    if (IS_DIR_SEPARATOR (*name))
6215      base = name + 1;
6216  return base;
6217}
6218
6219int
6220check_executable (const char *path)
6221{
6222  struct stat st;
6223
6224  lt_debugprintf (__FILE__, __LINE__, "(check_executable): %s\n",
6225                  nonempty (path));
6226  if ((!path) || (!*path))
6227    return 0;
6228
6229  if ((stat (path, &st) >= 0)
6230      && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH)))
6231    return 1;
6232  else
6233    return 0;
6234}
6235
6236int
6237make_executable (const char *path)
6238{
6239  int rval = 0;
6240  struct stat st;
6241
6242  lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n",
6243                  nonempty (path));
6244  if ((!path) || (!*path))
6245    return 0;
6246
6247  if (stat (path, &st) >= 0)
6248    {
6249      rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR);
6250    }
6251  return rval;
6252}
6253
6254/* Searches for the full path of the wrapper.  Returns
6255   newly allocated full path name if found, NULL otherwise
6256   Does not chase symlinks, even on platforms that support them.
6257*/
6258char *
6259find_executable (const char *wrapper)
6260{
6261  int has_slash = 0;
6262  const char *p;
6263  const char *p_next;
6264  /* static buffer for getcwd */
6265  char tmp[LT_PATHMAX + 1];
6266  size_t tmp_len;
6267  char *concat_name;
6268
6269  lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n",
6270                  nonempty (wrapper));
6271
6272  if ((wrapper == NULL) || (*wrapper == '\0'))
6273    return NULL;
6274
6275  /* Absolute path? */
6276#if defined HAVE_DOS_BASED_FILE_SYSTEM
6277  if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':')
6278    {
6279      concat_name = xstrdup (wrapper);
6280      if (check_executable (concat_name))
6281	return concat_name;
6282      XFREE (concat_name);
6283    }
6284  else
6285    {
6286#endif
6287      if (IS_DIR_SEPARATOR (wrapper[0]))
6288	{
6289	  concat_name = xstrdup (wrapper);
6290	  if (check_executable (concat_name))
6291	    return concat_name;
6292	  XFREE (concat_name);
6293	}
6294#if defined HAVE_DOS_BASED_FILE_SYSTEM
6295    }
6296#endif
6297
6298  for (p = wrapper; *p; p++)
6299    if (*p == '/')
6300      {
6301	has_slash = 1;
6302	break;
6303      }
6304  if (!has_slash)
6305    {
6306      /* no slashes; search PATH */
6307      const char *path = getenv ("PATH");
6308      if (path != NULL)
6309	{
6310	  for (p = path; *p; p = p_next)
6311	    {
6312	      const char *q;
6313	      size_t p_len;
6314	      for (q = p; *q; q++)
6315		if (IS_PATH_SEPARATOR (*q))
6316		  break;
6317	      p_len = (size_t) (q - p);
6318	      p_next = (*q == '\0' ? q : q + 1);
6319	      if (p_len == 0)
6320		{
6321		  /* empty path: current directory */
6322		  if (getcwd (tmp, LT_PATHMAX) == NULL)
6323		    lt_fatal (__FILE__, __LINE__, "getcwd failed: %s",
6324                              nonnull (strerror (errno)));
6325		  tmp_len = strlen (tmp);
6326		  concat_name =
6327		    XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
6328		  memcpy (concat_name, tmp, tmp_len);
6329		  concat_name[tmp_len] = '/';
6330		  strcpy (concat_name + tmp_len + 1, wrapper);
6331		}
6332	      else
6333		{
6334		  concat_name =
6335		    XMALLOC (char, p_len + 1 + strlen (wrapper) + 1);
6336		  memcpy (concat_name, p, p_len);
6337		  concat_name[p_len] = '/';
6338		  strcpy (concat_name + p_len + 1, wrapper);
6339		}
6340	      if (check_executable (concat_name))
6341		return concat_name;
6342	      XFREE (concat_name);
6343	    }
6344	}
6345      /* not found in PATH; assume curdir */
6346    }
6347  /* Relative path | not found in path: prepend cwd */
6348  if (getcwd (tmp, LT_PATHMAX) == NULL)
6349    lt_fatal (__FILE__, __LINE__, "getcwd failed: %s",
6350              nonnull (strerror (errno)));
6351  tmp_len = strlen (tmp);
6352  concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
6353  memcpy (concat_name, tmp, tmp_len);
6354  concat_name[tmp_len] = '/';
6355  strcpy (concat_name + tmp_len + 1, wrapper);
6356
6357  if (check_executable (concat_name))
6358    return concat_name;
6359  XFREE (concat_name);
6360  return NULL;
6361}
6362
6363char *
6364chase_symlinks (const char *pathspec)
6365{
6366#ifndef S_ISLNK
6367  return xstrdup (pathspec);
6368#else
6369  char buf[LT_PATHMAX];
6370  struct stat s;
6371  char *tmp_pathspec = xstrdup (pathspec);
6372  char *p;
6373  int has_symlinks = 0;
6374  while (strlen (tmp_pathspec) && !has_symlinks)
6375    {
6376      lt_debugprintf (__FILE__, __LINE__,
6377		      "checking path component for symlinks: %s\n",
6378		      tmp_pathspec);
6379      if (lstat (tmp_pathspec, &s) == 0)
6380	{
6381	  if (S_ISLNK (s.st_mode) != 0)
6382	    {
6383	      has_symlinks = 1;
6384	      break;
6385	    }
6386
6387	  /* search backwards for last DIR_SEPARATOR */
6388	  p = tmp_pathspec + strlen (tmp_pathspec) - 1;
6389	  while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p)))
6390	    p--;
6391	  if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p)))
6392	    {
6393	      /* no more DIR_SEPARATORS left */
6394	      break;
6395	    }
6396	  *p = '\0';
6397	}
6398      else
6399	{
6400	  lt_fatal (__FILE__, __LINE__,
6401		    "error accessing file \"%s\": %s",
6402		    tmp_pathspec, nonnull (strerror (errno)));
6403	}
6404    }
6405  XFREE (tmp_pathspec);
6406
6407  if (!has_symlinks)
6408    {
6409      return xstrdup (pathspec);
6410    }
6411
6412  tmp_pathspec = realpath (pathspec, buf);
6413  if (tmp_pathspec == 0)
6414    {
6415      lt_fatal (__FILE__, __LINE__,
6416		"could not follow symlinks for %s", pathspec);
6417    }
6418  return xstrdup (tmp_pathspec);
6419#endif
6420}
6421
6422char *
6423strendzap (char *str, const char *pat)
6424{
6425  size_t len, patlen;
6426
6427  assert (str != NULL);
6428  assert (pat != NULL);
6429
6430  len = strlen (str);
6431  patlen = strlen (pat);
6432
6433  if (patlen <= len)
6434    {
6435      str += len - patlen;
6436      if (STREQ (str, pat))
6437	*str = '\0';
6438    }
6439  return str;
6440}
6441
6442void
6443lt_debugprintf (const char *file, int line, const char *fmt, ...)
6444{
6445  va_list args;
6446  if (lt_debug)
6447    {
6448      (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line);
6449      va_start (args, fmt);
6450      (void) vfprintf (stderr, fmt, args);
6451      va_end (args);
6452    }
6453}
6454
6455static void
6456lt_error_core (int exit_status, const char *file,
6457	       int line, const char *mode,
6458	       const char *message, va_list ap)
6459{
6460  fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode);
6461  vfprintf (stderr, message, ap);
6462  fprintf (stderr, ".\n");
6463
6464  if (exit_status >= 0)
6465    exit (exit_status);
6466}
6467
6468void
6469lt_fatal (const char *file, int line, const char *message, ...)
6470{
6471  va_list ap;
6472  va_start (ap, message);
6473  lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap);
6474  va_end (ap);
6475}
6476
6477static const char *
6478nonnull (const char *s)
6479{
6480  return s ? s : "(null)";
6481}
6482
6483static const char *
6484nonempty (const char *s)
6485{
6486  return (s && !*s) ? "(empty)" : nonnull (s);
6487}
6488
6489void
6490lt_setenv (const char *name, const char *value)
6491{
6492  lt_debugprintf (__FILE__, __LINE__,
6493		  "(lt_setenv) setting '%s' to '%s'\n",
6494                  nonnull (name), nonnull (value));
6495  {
6496#ifdef HAVE_SETENV
6497    /* always make a copy, for consistency with !HAVE_SETENV */
6498    char *str = xstrdup (value);
6499    setenv (name, str, 1);
6500#else
6501    size_t len = strlen (name) + 1 + strlen (value) + 1;
6502    char *str = XMALLOC (char, len);
6503    sprintf (str, "%s=%s", name, value);
6504    if (putenv (str) != EXIT_SUCCESS)
6505      {
6506        XFREE (str);
6507      }
6508#endif
6509  }
6510}
6511
6512char *
6513lt_extend_str (const char *orig_value, const char *add, int to_end)
6514{
6515  char *new_value;
6516  if (orig_value && *orig_value)
6517    {
6518      size_t orig_value_len = strlen (orig_value);
6519      size_t add_len = strlen (add);
6520      new_value = XMALLOC (char, add_len + orig_value_len + 1);
6521      if (to_end)
6522        {
6523          strcpy (new_value, orig_value);
6524          strcpy (new_value + orig_value_len, add);
6525        }
6526      else
6527        {
6528          strcpy (new_value, add);
6529          strcpy (new_value + add_len, orig_value);
6530        }
6531    }
6532  else
6533    {
6534      new_value = xstrdup (add);
6535    }
6536  return new_value;
6537}
6538
6539void
6540lt_update_exe_path (const char *name, const char *value)
6541{
6542  lt_debugprintf (__FILE__, __LINE__,
6543		  "(lt_update_exe_path) modifying '%s' by prepending '%s'\n",
6544                  nonnull (name), nonnull (value));
6545
6546  if (name && *name && value && *value)
6547    {
6548      char *new_value = lt_extend_str (getenv (name), value, 0);
6549      /* some systems can't cope with a ':'-terminated path #' */
6550      size_t len = strlen (new_value);
6551      while ((len > 0) && IS_PATH_SEPARATOR (new_value[len-1]))
6552        {
6553          new_value[--len] = '\0';
6554        }
6555      lt_setenv (name, new_value);
6556      XFREE (new_value);
6557    }
6558}
6559
6560void
6561lt_update_lib_path (const char *name, const char *value)
6562{
6563  lt_debugprintf (__FILE__, __LINE__,
6564		  "(lt_update_lib_path) modifying '%s' by prepending '%s'\n",
6565                  nonnull (name), nonnull (value));
6566
6567  if (name && *name && value && *value)
6568    {
6569      char *new_value = lt_extend_str (getenv (name), value, 0);
6570      lt_setenv (name, new_value);
6571      XFREE (new_value);
6572    }
6573}
6574
6575EOF
6576	    case $host_os in
6577	      mingw*)
6578		cat <<"EOF"
6579
6580/* Prepares an argument vector before calling spawn().
6581   Note that spawn() does not by itself call the command interpreter
6582     (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") :
6583      ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
6584         GetVersionEx(&v);
6585         v.dwPlatformId == VER_PLATFORM_WIN32_NT;
6586      }) ? "cmd.exe" : "command.com").
6587   Instead it simply concatenates the arguments, separated by ' ', and calls
6588   CreateProcess().  We must quote the arguments since Win32 CreateProcess()
6589   interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a
6590   special way:
6591   - Space and tab are interpreted as delimiters. They are not treated as
6592     delimiters if they are surrounded by double quotes: "...".
6593   - Unescaped double quotes are removed from the input. Their only effect is
6594     that within double quotes, space and tab are treated like normal
6595     characters.
6596   - Backslashes not followed by double quotes are not special.
6597   - But 2*n+1 backslashes followed by a double quote become
6598     n backslashes followed by a double quote (n >= 0):
6599       \" -> "
6600       \\\" -> \"
6601       \\\\\" -> \\"
6602 */
6603#define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037"
6604#define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037"
6605char **
6606prepare_spawn (char **argv)
6607{
6608  size_t argc;
6609  char **new_argv;
6610  size_t i;
6611
6612  /* Count number of arguments.  */
6613  for (argc = 0; argv[argc] != NULL; argc++)
6614    ;
6615
6616  /* Allocate new argument vector.  */
6617  new_argv = XMALLOC (char *, argc + 1);
6618
6619  /* Put quoted arguments into the new argument vector.  */
6620  for (i = 0; i < argc; i++)
6621    {
6622      const char *string = argv[i];
6623
6624      if (string[0] == '\0')
6625	new_argv[i] = xstrdup ("\"\"");
6626      else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL)
6627	{
6628	  int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL);
6629	  size_t length;
6630	  unsigned int backslashes;
6631	  const char *s;
6632	  char *quoted_string;
6633	  char *p;
6634
6635	  length = 0;
6636	  backslashes = 0;
6637	  if (quote_around)
6638	    length++;
6639	  for (s = string; *s != '\0'; s++)
6640	    {
6641	      char c = *s;
6642	      if (c == '"')
6643		length += backslashes + 1;
6644	      length++;
6645	      if (c == '\\')
6646		backslashes++;
6647	      else
6648		backslashes = 0;
6649	    }
6650	  if (quote_around)
6651	    length += backslashes + 1;
6652
6653	  quoted_string = XMALLOC (char, length + 1);
6654
6655	  p = quoted_string;
6656	  backslashes = 0;
6657	  if (quote_around)
6658	    *p++ = '"';
6659	  for (s = string; *s != '\0'; s++)
6660	    {
6661	      char c = *s;
6662	      if (c == '"')
6663		{
6664		  unsigned int j;
6665		  for (j = backslashes + 1; j > 0; j--)
6666		    *p++ = '\\';
6667		}
6668	      *p++ = c;
6669	      if (c == '\\')
6670		backslashes++;
6671	      else
6672		backslashes = 0;
6673	    }
6674	  if (quote_around)
6675	    {
6676	      unsigned int j;
6677	      for (j = backslashes; j > 0; j--)
6678		*p++ = '\\';
6679	      *p++ = '"';
6680	    }
6681	  *p = '\0';
6682
6683	  new_argv[i] = quoted_string;
6684	}
6685      else
6686	new_argv[i] = (char *) string;
6687    }
6688  new_argv[argc] = NULL;
6689
6690  return new_argv;
6691}
6692EOF
6693		;;
6694	    esac
6695
6696            cat <<"EOF"
6697void lt_dump_script (FILE* f)
6698{
6699EOF
6700	    func_emit_wrapper yes |
6701	      $SED -n -e '
6702s/^\(.\{79\}\)\(..*\)/\1\
6703\2/
6704h
6705s/\([\\"]\)/\\\1/g
6706s/$/\\n/
6707s/\([^\n]*\).*/  fputs ("\1", f);/p
6708g
6709D'
6710            cat <<"EOF"
6711}
6712EOF
6713}
6714# end: func_emit_cwrapperexe_src
6715
6716# func_win32_import_lib_p ARG
6717# True if ARG is an import lib, as indicated by $file_magic_cmd
6718func_win32_import_lib_p ()
6719{
6720    $debug_cmd
6721
6722    case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in
6723    *import*) : ;;
6724    *) false ;;
6725    esac
6726}
6727
6728# func_suncc_cstd_abi
6729# !!ONLY CALL THIS FOR SUN CC AFTER $compile_command IS FULLY EXPANDED!!
6730# Several compiler flags select an ABI that is incompatible with the
6731# Cstd library. Avoid specifying it if any are in CXXFLAGS.
6732func_suncc_cstd_abi ()
6733{
6734    $debug_cmd
6735
6736    case " $compile_command " in
6737    *" -compat=g "*|*\ -std=c++[0-9][0-9]\ *|*" -library=stdcxx4 "*|*" -library=stlport4 "*)
6738      suncc_use_cstd_abi=no
6739      ;;
6740    *)
6741      suncc_use_cstd_abi=yes
6742      ;;
6743    esac
6744}
6745
6746# func_mode_link arg...
6747func_mode_link ()
6748{
6749    $debug_cmd
6750
6751    case $host in
6752    *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
6753      # It is impossible to link a dll without this setting, and
6754      # we shouldn't force the makefile maintainer to figure out
6755      # what system we are compiling for in order to pass an extra
6756      # flag for every libtool invocation.
6757      # allow_undefined=no
6758
6759      # FIXME: Unfortunately, there are problems with the above when trying
6760      # to make a dll that has undefined symbols, in which case not
6761      # even a static library is built.  For now, we need to specify
6762      # -no-undefined on the libtool link line when we can be certain
6763      # that all symbols are satisfied, otherwise we get a static library.
6764      allow_undefined=yes
6765      ;;
6766    *)
6767      allow_undefined=yes
6768      ;;
6769    esac
6770    libtool_args=$nonopt
6771    base_compile="$nonopt $@"
6772    compile_command=$nonopt
6773    finalize_command=$nonopt
6774
6775    compile_rpath=
6776    finalize_rpath=
6777    compile_shlibpath=
6778    finalize_shlibpath=
6779    convenience=
6780    old_convenience=
6781    deplibs=
6782    old_deplibs=
6783    compiler_flags=
6784    linker_flags=
6785    dllsearchpath=
6786    lib_search_path=`pwd`
6787    inst_prefix_dir=
6788    new_inherited_linker_flags=
6789
6790    avoid_version=no
6791    bindir=
6792    dlfiles=
6793    dlprefiles=
6794    dlself=no
6795    export_dynamic=no
6796    export_symbols=
6797    export_symbols_regex=
6798    generated=
6799    libobjs=
6800    ltlibs=
6801    module=no
6802    no_install=no
6803    objs=
6804    os2dllname=
6805    non_pic_objects=
6806    precious_files_regex=
6807    prefer_static_libs=no
6808    preload=false
6809    prev=
6810    prevarg=
6811    release=
6812    rpath=
6813    xrpath=
6814    perm_rpath=
6815    temp_rpath=
6816    thread_safe=no
6817    vinfo=
6818    vinfo_number=no
6819    weak_libs=
6820    single_module=$wl-single_module
6821    func_infer_tag $base_compile
6822
6823    # We need to know -static, to get the right output filenames.
6824    for arg
6825    do
6826      case $arg in
6827      -shared)
6828	test yes != "$build_libtool_libs" \
6829	  && func_fatal_configuration "cannot build a shared library"
6830	build_old_libs=no
6831	break
6832	;;
6833      -all-static | -static | -static-libtool-libs)
6834	case $arg in
6835	-all-static)
6836	  if test yes = "$build_libtool_libs" && test -z "$link_static_flag"; then
6837	    func_warning "complete static linking is impossible in this configuration"
6838	  fi
6839	  if test -n "$link_static_flag"; then
6840	    dlopen_self=$dlopen_self_static
6841	  fi
6842	  prefer_static_libs=yes
6843	  ;;
6844	-static)
6845	  if test -z "$pic_flag" && test -n "$link_static_flag"; then
6846	    dlopen_self=$dlopen_self_static
6847	  fi
6848	  prefer_static_libs=built
6849	  ;;
6850	-static-libtool-libs)
6851	  if test -z "$pic_flag" && test -n "$link_static_flag"; then
6852	    dlopen_self=$dlopen_self_static
6853	  fi
6854	  prefer_static_libs=yes
6855	  ;;
6856	esac
6857	build_libtool_libs=no
6858	build_old_libs=yes
6859	break
6860	;;
6861      esac
6862    done
6863
6864    # See if our shared archives depend on static archives.
6865    test -n "$old_archive_from_new_cmds" && build_old_libs=yes
6866
6867    # Go through the arguments, transforming them on the way.
6868    while test "$#" -gt 0; do
6869      arg=$1
6870      shift
6871      func_quote_arg pretty,unquoted "$arg"
6872      qarg=$func_quote_arg_unquoted_result
6873      func_append libtool_args " $func_quote_arg_result"
6874
6875      # If the previous option needs an argument, assign it.
6876      if test -n "$prev"; then
6877	case $prev in
6878	output)
6879	  func_append compile_command " @OUTPUT@"
6880	  func_append finalize_command " @OUTPUT@"
6881	  ;;
6882	esac
6883
6884	case $prev in
6885	bindir)
6886	  bindir=$arg
6887	  prev=
6888	  continue
6889	  ;;
6890	dlfiles|dlprefiles)
6891	  $preload || {
6892	    # Add the symbol object into the linking commands.
6893	    func_append compile_command " @SYMFILE@"
6894	    func_append finalize_command " @SYMFILE@"
6895	    preload=:
6896	  }
6897	  case $arg in
6898	  *.la | *.lo) ;;  # We handle these cases below.
6899	  force)
6900	    if test no = "$dlself"; then
6901	      dlself=needless
6902	      export_dynamic=yes
6903	    fi
6904	    prev=
6905	    continue
6906	    ;;
6907	  self)
6908	    if test dlprefiles = "$prev"; then
6909	      dlself=yes
6910	    elif test dlfiles = "$prev" && test yes != "$dlopen_self"; then
6911	      dlself=yes
6912	    else
6913	      dlself=needless
6914	      export_dynamic=yes
6915	    fi
6916	    prev=
6917	    continue
6918	    ;;
6919	  *)
6920	    if test dlfiles = "$prev"; then
6921	      func_append dlfiles " $arg"
6922	    else
6923	      func_append dlprefiles " $arg"
6924	    fi
6925	    prev=
6926	    continue
6927	    ;;
6928	  esac
6929	  ;;
6930	expsyms)
6931	  export_symbols=$arg
6932	  test -f "$arg" \
6933	    || func_fatal_error "symbol file '$arg' does not exist"
6934	  prev=
6935	  continue
6936	  ;;
6937	expsyms_regex)
6938	  export_symbols_regex=$arg
6939	  prev=
6940	  continue
6941	  ;;
6942	framework)
6943	  case $host in
6944	    *-*-darwin*)
6945	      case "$deplibs " in
6946		*" $qarg.ltframework "*) ;;
6947		*) func_append deplibs " $qarg.ltframework" # this is fixed later
6948		   ;;
6949	      esac
6950	      ;;
6951	  esac
6952	  prev=
6953	  continue
6954	  ;;
6955	inst_prefix)
6956	  inst_prefix_dir=$arg
6957	  prev=
6958	  continue
6959	  ;;
6960	mllvm)
6961	  # Clang does not use LLVM to link, so we can simply discard any
6962	  # '-mllvm $arg' options when doing the link step.
6963	  prev=
6964	  continue
6965	  ;;
6966	objectlist)
6967	  if test -f "$arg"; then
6968	    save_arg=$arg
6969	    moreargs=
6970	    for fil in `cat "$save_arg"`
6971	    do
6972#	      func_append moreargs " $fil"
6973	      arg=$fil
6974	      # A libtool-controlled object.
6975
6976	      # Check to see that this really is a libtool object.
6977	      if func_lalib_unsafe_p "$arg"; then
6978		pic_object=
6979		non_pic_object=
6980
6981		# Read the .lo file
6982		func_source "$arg"
6983
6984		if test -z "$pic_object" ||
6985		   test -z "$non_pic_object" ||
6986		   test none = "$pic_object" &&
6987		   test none = "$non_pic_object"; then
6988		  func_fatal_error "cannot find name of object for '$arg'"
6989		fi
6990
6991		# Extract subdirectory from the argument.
6992		func_dirname "$arg" "/" ""
6993		xdir=$func_dirname_result
6994
6995		if test none != "$pic_object"; then
6996		  # Prepend the subdirectory the object is found in.
6997		  pic_object=$xdir$pic_object
6998
6999		  if test dlfiles = "$prev"; then
7000		    if test yes = "$build_libtool_libs" && test yes = "$dlopen_support"; then
7001		      func_append dlfiles " $pic_object"
7002		      prev=
7003		      continue
7004		    else
7005		      # If libtool objects are unsupported, then we need to preload.
7006		      prev=dlprefiles
7007		    fi
7008		  fi
7009
7010		  # CHECK ME:  I think I busted this.  -Ossama
7011		  if test dlprefiles = "$prev"; then
7012		    # Preload the old-style object.
7013		    func_append dlprefiles " $pic_object"
7014		    prev=
7015		  fi
7016
7017		  # A PIC object.
7018		  func_append libobjs " $pic_object"
7019		  arg=$pic_object
7020		fi
7021
7022		# Non-PIC object.
7023		if test none != "$non_pic_object"; then
7024		  # Prepend the subdirectory the object is found in.
7025		  non_pic_object=$xdir$non_pic_object
7026
7027		  # A standard non-PIC object
7028		  func_append non_pic_objects " $non_pic_object"
7029		  if test -z "$pic_object" || test none = "$pic_object"; then
7030		    arg=$non_pic_object
7031		  fi
7032		else
7033		  # If the PIC object exists, use it instead.
7034		  # $xdir was prepended to $pic_object above.
7035		  non_pic_object=$pic_object
7036		  func_append non_pic_objects " $non_pic_object"
7037		fi
7038	      else
7039		# Only an error if not doing a dry-run.
7040		if $opt_dry_run; then
7041		  # Extract subdirectory from the argument.
7042		  func_dirname "$arg" "/" ""
7043		  xdir=$func_dirname_result
7044
7045		  func_lo2o "$arg"
7046		  pic_object=$xdir$objdir/$func_lo2o_result
7047		  non_pic_object=$xdir$func_lo2o_result
7048		  func_append libobjs " $pic_object"
7049		  func_append non_pic_objects " $non_pic_object"
7050	        else
7051		  func_fatal_error "'$arg' is not a valid libtool object"
7052		fi
7053	      fi
7054	    done
7055	  else
7056	    func_fatal_error "link input file '$arg' does not exist"
7057	  fi
7058	  arg=$save_arg
7059	  prev=
7060	  continue
7061	  ;;
7062	os2dllname)
7063	  os2dllname=$arg
7064	  prev=
7065	  continue
7066	  ;;
7067	precious_regex)
7068	  precious_files_regex=$arg
7069	  prev=
7070	  continue
7071	  ;;
7072	release)
7073	  release=-$arg
7074	  prev=
7075	  continue
7076	  ;;
7077	rpath | xrpath)
7078	  # We need an absolute path.
7079	  case $arg in
7080	  [\\/]* | [A-Za-z]:[\\/]*) ;;
7081	  *)
7082	    func_fatal_error "only absolute run-paths are allowed"
7083	    ;;
7084	  esac
7085	  if test rpath = "$prev"; then
7086	    case "$rpath " in
7087	    *" $arg "*) ;;
7088	    *) func_append rpath " $arg" ;;
7089	    esac
7090	  else
7091	    case "$xrpath " in
7092	    *" $arg "*) ;;
7093	    *) func_append xrpath " $arg" ;;
7094	    esac
7095	  fi
7096	  prev=
7097	  continue
7098	  ;;
7099	shrext)
7100	  shrext_cmds=$arg
7101	  prev=
7102	  continue
7103	  ;;
7104	weak)
7105	  func_append weak_libs " $arg"
7106	  prev=
7107	  continue
7108	  ;;
7109	xassembler)
7110	  func_append compiler_flags " -Xassembler $qarg"
7111	  prev=
7112	  func_append compile_command " -Xassembler $qarg"
7113	  func_append finalize_command " -Xassembler $qarg"
7114	  continue
7115	  ;;
7116	xcclinker)
7117	  func_append linker_flags " $qarg"
7118	  func_append compiler_flags " $qarg"
7119	  prev=
7120	  func_append compile_command " $qarg"
7121	  func_append finalize_command " $qarg"
7122	  continue
7123	  ;;
7124	xcompiler)
7125	  func_append compiler_flags " $qarg"
7126	  prev=
7127	  func_append compile_command " $qarg"
7128	  func_append finalize_command " $qarg"
7129	  continue
7130	  ;;
7131	xlinker)
7132	  func_append linker_flags " $qarg"
7133	  func_append compiler_flags " $wl$qarg"
7134	  prev=
7135	  func_append compile_command " $wl$qarg"
7136	  func_append finalize_command " $wl$qarg"
7137	  continue
7138	  ;;
7139	*)
7140	  eval "$prev=\"\$arg\""
7141	  prev=
7142	  continue
7143	  ;;
7144	esac
7145      fi # test -n "$prev"
7146
7147      prevarg=$arg
7148
7149      case $arg in
7150      -all-static)
7151	if test -n "$link_static_flag"; then
7152	  # See comment for -static flag below, for more details.
7153	  func_append compile_command " $link_static_flag"
7154	  func_append finalize_command " $link_static_flag"
7155	fi
7156	continue
7157	;;
7158
7159      -allow-undefined)
7160	# FIXME: remove this flag sometime in the future.
7161	func_fatal_error "'-allow-undefined' must not be used because it is the default"
7162	;;
7163
7164      -avoid-version)
7165	avoid_version=yes
7166	continue
7167	;;
7168
7169      -bindir)
7170	prev=bindir
7171	continue
7172	;;
7173
7174      -dlopen)
7175	prev=dlfiles
7176	continue
7177	;;
7178
7179      -dlpreopen)
7180	prev=dlprefiles
7181	continue
7182	;;
7183
7184      -export-dynamic)
7185	export_dynamic=yes
7186	continue
7187	;;
7188
7189      -export-symbols | -export-symbols-regex)
7190	if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
7191	  func_fatal_error "more than one -exported-symbols argument is not allowed"
7192	fi
7193	if test X-export-symbols = "X$arg"; then
7194	  prev=expsyms
7195	else
7196	  prev=expsyms_regex
7197	fi
7198	continue
7199	;;
7200
7201      -framework)
7202	prev=framework
7203	continue
7204	;;
7205
7206      -inst-prefix-dir)
7207	prev=inst_prefix
7208	continue
7209	;;
7210
7211      # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
7212      # so, if we see these flags be careful not to treat them like -L
7213      -L[A-Z][A-Z]*:*)
7214	case $with_gcc/$host in
7215	no/*-*-irix* | /*-*-irix*)
7216	  func_append compile_command " $arg"
7217	  func_append finalize_command " $arg"
7218	  ;;
7219	esac
7220	continue
7221	;;
7222
7223      -L*)
7224	func_stripname "-L" '' "$arg"
7225	if test -z "$func_stripname_result"; then
7226	  if test "$#" -gt 0; then
7227	    func_fatal_error "require no space between '-L' and '$1'"
7228	  else
7229	    func_fatal_error "need path for '-L' option"
7230	  fi
7231	fi
7232	func_resolve_sysroot "$func_stripname_result"
7233	dir=$func_resolve_sysroot_result
7234	# We need an absolute path.
7235	case $dir in
7236	[\\/]* | [A-Za-z]:[\\/]*) ;;
7237	*)
7238	  absdir=`cd "$dir" && pwd`
7239	  test -z "$absdir" && \
7240	    func_fatal_error "cannot determine absolute directory name of '$dir'"
7241	  dir=$absdir
7242	  ;;
7243	esac
7244	case "$deplibs " in
7245	*" -L$dir "* | *" $arg "*)
7246	  # Will only happen for absolute or sysroot arguments
7247	  ;;
7248	*)
7249	  # Preserve sysroot, but never include relative directories
7250	  case $dir in
7251	    [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;;
7252	    *) func_append deplibs " -L$dir" ;;
7253	  esac
7254	  func_append lib_search_path " $dir"
7255	  ;;
7256	esac
7257	case $host in
7258	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
7259	  testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'`
7260	  case :$dllsearchpath: in
7261	  *":$dir:"*) ;;
7262	  ::) dllsearchpath=$dir;;
7263	  *) func_append dllsearchpath ":$dir";;
7264	  esac
7265	  case :$dllsearchpath: in
7266	  *":$testbindir:"*) ;;
7267	  ::) dllsearchpath=$testbindir;;
7268	  *) func_append dllsearchpath ":$testbindir";;
7269	  esac
7270	  ;;
7271	esac
7272	continue
7273	;;
7274
7275      -l*)
7276	if test X-lc = "X$arg" || test X-lm = "X$arg"; then
7277	  case $host in
7278	  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*)
7279	    # These systems don't actually have a C or math library (as such)
7280	    continue
7281	    ;;
7282	  *-*-os2*)
7283	    # These systems don't actually have a C library (as such)
7284	    test X-lc = "X$arg" && continue
7285	    ;;
7286	  *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig* | *-*-midnightbsd*)
7287	    # Do not include libc due to us having libc/libc_r.
7288	    test X-lc = "X$arg" && continue
7289	    ;;
7290	  *-*-rhapsody* | *-*-darwin1.[012])
7291	    # Rhapsody C and math libraries are in the System framework
7292	    func_append deplibs " System.ltframework"
7293	    continue
7294	    ;;
7295	  *-*-sco3.2v5* | *-*-sco5v6*)
7296	    # Causes problems with __ctype
7297	    test X-lc = "X$arg" && continue
7298	    ;;
7299	  *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
7300	    # Compiler inserts libc in the correct place for threads to work
7301	    test X-lc = "X$arg" && continue
7302	    ;;
7303	  esac
7304	elif test X-lc_r = "X$arg"; then
7305	 case $host in
7306	 *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig* | *-*-midnightbsd*)
7307	   # Do not include libc_r directly, use -pthread flag.
7308	   continue
7309	   ;;
7310	 esac
7311	fi
7312	func_append deplibs " $arg"
7313	continue
7314	;;
7315
7316      -mllvm)
7317	prev=mllvm
7318	continue
7319	;;
7320
7321      -module)
7322	module=yes
7323	continue
7324	;;
7325
7326      # Tru64 UNIX uses -model [arg] to determine the layout of C++
7327      # classes, name mangling, and exception handling.
7328      # Darwin uses the -arch flag to determine output architecture.
7329      -model|-arch|-isysroot|--sysroot)
7330	func_append compiler_flags " $arg"
7331	func_append compile_command " $arg"
7332	func_append finalize_command " $arg"
7333	prev=xcompiler
7334	continue
7335	;;
7336     # Solaris ld rejects as of 11.4. Refer to Oracle bug 22985199.
7337     -pthread)
7338	case $host in
7339	  *solaris2*) ;;
7340	  *)
7341	    case "$new_inherited_linker_flags " in
7342	        *" $arg "*) ;;
7343	        * ) func_append new_inherited_linker_flags " $arg" ;;
7344	    esac
7345	  ;;
7346	esac
7347	continue
7348	;;
7349      -mt|-mthreads|-kthread|-Kthread|-pthreads|--thread-safe \
7350      |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*)
7351	func_append compiler_flags " $arg"
7352	func_append compile_command " $arg"
7353	func_append finalize_command " $arg"
7354	case "$new_inherited_linker_flags " in
7355	    *" $arg "*) ;;
7356	    * ) func_append new_inherited_linker_flags " $arg" ;;
7357	esac
7358
7359	# As we are forced to pass -nostdlib to g++ during linking, the option
7360	# -pthread{,s} is not in effect;  add the -lpthread to $deplist
7361	# explicitly to link correctly.
7362	if test "$tagname" = CXX -a x"$with_gcc" = xyes; then
7363	  case "$arg" in
7364	    -pthread*) func_append deplibs " -lpthread" ;;
7365	  esac
7366	fi
7367
7368	continue
7369	;;
7370
7371      -multi_module)
7372	single_module=$wl-multi_module
7373	continue
7374	;;
7375
7376      -no-fast-install)
7377	fast_install=no
7378	continue
7379	;;
7380
7381      -no-install)
7382	case $host in
7383	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*)
7384	  # The PATH hackery in wrapper scripts is required on Windows
7385	  # and Darwin in order for the loader to find any dlls it needs.
7386	  func_warning "'-no-install' is ignored for $host"
7387	  func_warning "assuming '-no-fast-install' instead"
7388	  fast_install=no
7389	  ;;
7390	*) no_install=yes ;;
7391	esac
7392	continue
7393	;;
7394
7395      -no-undefined)
7396	allow_undefined=no
7397	continue
7398	;;
7399
7400      -objectlist)
7401	prev=objectlist
7402	continue
7403	;;
7404
7405      -os2dllname)
7406	prev=os2dllname
7407	continue
7408	;;
7409
7410      -o) prev=output ;;
7411
7412      -precious-files-regex)
7413	prev=precious_regex
7414	continue
7415	;;
7416
7417      -release)
7418	prev=release
7419	continue
7420	;;
7421
7422      -rpath)
7423	prev=rpath
7424	continue
7425	;;
7426
7427      -R)
7428	prev=xrpath
7429	continue
7430	;;
7431
7432      -R*)
7433	func_stripname '-R' '' "$arg"
7434	dir=$func_stripname_result
7435	# We need an absolute path.
7436	case $dir in
7437	[\\/]* | [A-Za-z]:[\\/]*) ;;
7438	=*)
7439	  func_stripname '=' '' "$dir"
7440	  dir=$lt_sysroot$func_stripname_result
7441	  ;;
7442	*)
7443	  func_fatal_error "only absolute run-paths are allowed"
7444	  ;;
7445	esac
7446	case "$xrpath " in
7447	*" $dir "*) ;;
7448	*) func_append xrpath " $dir" ;;
7449	esac
7450	continue
7451	;;
7452
7453      -shared)
7454	# The effects of -shared are defined in a previous loop.
7455	continue
7456	;;
7457
7458      -shrext)
7459	prev=shrext
7460	continue
7461	;;
7462
7463      -static | -static-libtool-libs)
7464	# The effects of -static are defined in a previous loop.
7465	# We used to do the same as -all-static on platforms that
7466	# didn't have a PIC flag, but the assumption that the effects
7467	# would be equivalent was wrong.  It would break on at least
7468	# Digital Unix and AIX.
7469	continue
7470	;;
7471
7472      -thread-safe)
7473	thread_safe=yes
7474	continue
7475	;;
7476
7477      -version-info)
7478	prev=vinfo
7479	continue
7480	;;
7481
7482      -version-number)
7483	prev=vinfo
7484	vinfo_number=yes
7485	continue
7486	;;
7487
7488      -weak)
7489        prev=weak
7490	continue
7491	;;
7492
7493      -Wc,*)
7494	func_stripname '-Wc,' '' "$arg"
7495	args=$func_stripname_result
7496	arg=
7497	save_ifs=$IFS; IFS=,
7498	for flag in $args; do
7499	  IFS=$save_ifs
7500          func_quote_arg pretty "$flag"
7501	  func_append arg " $func_quote_arg_result"
7502	  func_append compiler_flags " $func_quote_arg_result"
7503	done
7504	IFS=$save_ifs
7505	func_stripname ' ' '' "$arg"
7506	arg=$func_stripname_result
7507	;;
7508
7509      -Wl,*)
7510	func_stripname '-Wl,' '' "$arg"
7511	args=$func_stripname_result
7512	arg=
7513	save_ifs=$IFS; IFS=,
7514	for flag in $args; do
7515	  IFS=$save_ifs
7516          func_quote_arg pretty "$flag"
7517	  func_append arg " $wl$func_quote_arg_result"
7518	  func_append compiler_flags " $wl$func_quote_arg_result"
7519	  func_append linker_flags " $func_quote_arg_result"
7520	done
7521	IFS=$save_ifs
7522	func_stripname ' ' '' "$arg"
7523	arg=$func_stripname_result
7524	;;
7525
7526      -Xassembler)
7527        prev=xassembler
7528        continue
7529        ;;
7530
7531      -Xcompiler)
7532	prev=xcompiler
7533	continue
7534	;;
7535
7536      -Xlinker)
7537	prev=xlinker
7538	continue
7539	;;
7540
7541      -XCClinker)
7542	prev=xcclinker
7543	continue
7544	;;
7545
7546      # -msg_* for osf cc
7547      -msg_*)
7548	func_quote_arg pretty "$arg"
7549	arg=$func_quote_arg_result
7550	;;
7551
7552      # Flags to be passed through unchanged, with rationale:
7553      # -64, -mips[0-9]      enable 64-bit mode for the SGI compiler
7554      # -r[0-9][0-9]*        specify processor for the SGI compiler
7555      # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler
7556      # +DA*, +DD*           enable 64-bit mode for the HP compiler
7557      # -q*                  compiler args for the IBM compiler
7558      # -m*, -t[45]*, -txscale* architecture-specific flags for GCC
7559      # -F/path              path to uninstalled frameworks, gcc on darwin
7560      # -p, -pg, --coverage, -fprofile-*  profiling flags for GCC
7561      # -fstack-protector*   stack protector flags for GCC
7562      # @file                GCC response files
7563      # -tp=*                Portland pgcc target processor selection
7564      # --sysroot=*          for sysroot support
7565      # -O*, -g*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization
7566      # -specs=*             GCC specs files
7567      # -stdlib=*            select c++ std lib with clang
7568      # -fsanitize=*         Clang/GCC memory and address sanitizer
7569      # -fuse-ld=*           Linker select flags for GCC
7570      # -Wa,*                Pass flags directly to the assembler
7571      # -Werror, -Werror=*   Report (specified) warnings as errors
7572      -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
7573      -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \
7574      -O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*| \
7575      -specs=*|-fsanitize=*|-fuse-ld=*|-Wa,*|-Werror|-Werror=*)
7576        func_quote_arg pretty "$arg"
7577	arg=$func_quote_arg_result
7578        func_append compile_command " $arg"
7579        func_append finalize_command " $arg"
7580        func_append compiler_flags " $arg"
7581        continue
7582        ;;
7583
7584      -Z*)
7585        if test os2 = "`expr $host : '.*\(os2\)'`"; then
7586          # OS/2 uses -Zxxx to specify OS/2-specific options
7587	  compiler_flags="$compiler_flags $arg"
7588	  func_append compile_command " $arg"
7589	  func_append finalize_command " $arg"
7590	  case $arg in
7591	  -Zlinker | -Zstack)
7592	    prev=xcompiler
7593	    ;;
7594	  esac
7595	  continue
7596        else
7597	  # Otherwise treat like 'Some other compiler flag' below
7598	  func_quote_arg pretty "$arg"
7599	  arg=$func_quote_arg_result
7600        fi
7601	;;
7602
7603      # Some other compiler flag.
7604      -* | +*)
7605        func_quote_arg pretty "$arg"
7606	arg=$func_quote_arg_result
7607	;;
7608
7609      *.$objext)
7610	# A standard object.
7611	func_append objs " $arg"
7612	;;
7613
7614      *.lo)
7615	# A libtool-controlled object.
7616
7617	# Check to see that this really is a libtool object.
7618	if func_lalib_unsafe_p "$arg"; then
7619	  pic_object=
7620	  non_pic_object=
7621
7622	  # Read the .lo file
7623	  func_source "$arg"
7624
7625	  if test -z "$pic_object" ||
7626	     test -z "$non_pic_object" ||
7627	     test none = "$pic_object" &&
7628	     test none = "$non_pic_object"; then
7629	    func_fatal_error "cannot find name of object for '$arg'"
7630	  fi
7631
7632	  # Extract subdirectory from the argument.
7633	  func_dirname "$arg" "/" ""
7634	  xdir=$func_dirname_result
7635
7636	  test none = "$pic_object" || {
7637	    # Prepend the subdirectory the object is found in.
7638	    pic_object=$xdir$pic_object
7639
7640	    if test dlfiles = "$prev"; then
7641	      if test yes = "$build_libtool_libs" && test yes = "$dlopen_support"; then
7642		func_append dlfiles " $pic_object"
7643		prev=
7644		continue
7645	      else
7646		# If libtool objects are unsupported, then we need to preload.
7647		prev=dlprefiles
7648	      fi
7649	    fi
7650
7651	    # CHECK ME:  I think I busted this.  -Ossama
7652	    if test dlprefiles = "$prev"; then
7653	      # Preload the old-style object.
7654	      func_append dlprefiles " $pic_object"
7655	      prev=
7656	    fi
7657
7658	    # A PIC object.
7659	    func_append libobjs " $pic_object"
7660	    arg=$pic_object
7661	  }
7662
7663	  # Non-PIC object.
7664	  if test none != "$non_pic_object"; then
7665	    # Prepend the subdirectory the object is found in.
7666	    non_pic_object=$xdir$non_pic_object
7667
7668	    # A standard non-PIC object
7669	    func_append non_pic_objects " $non_pic_object"
7670	    if test -z "$pic_object" || test none = "$pic_object"; then
7671	      arg=$non_pic_object
7672	    fi
7673	  else
7674	    # If the PIC object exists, use it instead.
7675	    # $xdir was prepended to $pic_object above.
7676	    non_pic_object=$pic_object
7677	    func_append non_pic_objects " $non_pic_object"
7678	  fi
7679	else
7680	  # Only an error if not doing a dry-run.
7681	  if $opt_dry_run; then
7682	    # Extract subdirectory from the argument.
7683	    func_dirname "$arg" "/" ""
7684	    xdir=$func_dirname_result
7685
7686	    func_lo2o "$arg"
7687	    pic_object=$xdir$objdir/$func_lo2o_result
7688	    non_pic_object=$xdir$func_lo2o_result
7689	    func_append libobjs " $pic_object"
7690	    func_append non_pic_objects " $non_pic_object"
7691	  else
7692	    func_fatal_error "'$arg' is not a valid libtool object"
7693	  fi
7694	fi
7695	;;
7696
7697      *.$libext)
7698	# An archive.
7699	func_append deplibs " $arg"
7700	func_append old_deplibs " $arg"
7701	continue
7702	;;
7703
7704      *.la)
7705	# A libtool-controlled library.
7706
7707	func_resolve_sysroot "$arg"
7708	if test dlfiles = "$prev"; then
7709	  # This library was specified with -dlopen.
7710	  func_append dlfiles " $func_resolve_sysroot_result"
7711	  prev=
7712	elif test dlprefiles = "$prev"; then
7713	  # The library was specified with -dlpreopen.
7714	  func_append dlprefiles " $func_resolve_sysroot_result"
7715	  prev=
7716	else
7717	  func_append deplibs " $func_resolve_sysroot_result"
7718	fi
7719	continue
7720	;;
7721
7722      # Some other compiler argument.
7723      *)
7724	# Unknown arguments in both finalize_command and compile_command need
7725	# to be aesthetically quoted because they are evaled later.
7726	func_quote_arg pretty "$arg"
7727	arg=$func_quote_arg_result
7728	;;
7729      esac # arg
7730
7731      # Now actually substitute the argument into the commands.
7732      if test -n "$arg"; then
7733	func_append compile_command " $arg"
7734	func_append finalize_command " $arg"
7735      fi
7736    done # argument parsing loop
7737
7738    test -n "$prev" && \
7739      func_fatal_help "the '$prevarg' option requires an argument"
7740
7741    if test yes = "$export_dynamic" && test -n "$export_dynamic_flag_spec"; then
7742      eval arg=\"$export_dynamic_flag_spec\"
7743      func_append compile_command " $arg"
7744      func_append finalize_command " $arg"
7745    fi
7746
7747    oldlibs=
7748    # calculate the name of the file, without its directory
7749    func_basename "$output"
7750    outputname=$func_basename_result
7751    libobjs_save=$libobjs
7752
7753    if test -n "$shlibpath_var"; then
7754      # get the directories listed in $shlibpath_var
7755      eval shlib_search_path=\`\$ECHO \"\$$shlibpath_var\" \| \$SED \'s/:/ /g\'\`
7756    else
7757      shlib_search_path=
7758    fi
7759    eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
7760    eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
7761
7762    # Definition is injected by LT_CONFIG during libtool generation.
7763    func_munge_path_list sys_lib_dlsearch_path "$LT_SYS_LIBRARY_PATH"
7764
7765    func_dirname "$output" "/" ""
7766    output_objdir=$func_dirname_result$objdir
7767    func_to_tool_file "$output_objdir/"
7768    tool_output_objdir=$func_to_tool_file_result
7769    # Create the object directory.
7770    func_mkdir_p "$output_objdir"
7771
7772    # Determine the type of output
7773    case $output in
7774    "")
7775      func_fatal_help "you must specify an output file"
7776      ;;
7777    *.$libext) linkmode=oldlib ;;
7778    *.lo | *.$objext) linkmode=obj ;;
7779    *.la) linkmode=lib ;;
7780    *) linkmode=prog ;; # Anything else should be a program.
7781    esac
7782
7783    specialdeplibs=
7784
7785    libs=
7786    # Find all interdependent deplibs by searching for libraries
7787    # that are linked more than once (e.g. -la -lb -la)
7788    for deplib in $deplibs; do
7789      if $opt_preserve_dup_deps; then
7790	case "$libs " in
7791	*" $deplib "*) func_append specialdeplibs " $deplib" ;;
7792	esac
7793      fi
7794      func_append libs " $deplib"
7795    done
7796
7797    if test lib = "$linkmode"; then
7798      libs="$predeps $libs $compiler_lib_search_path $postdeps"
7799
7800      # Compute libraries that are listed more than once in $predeps
7801      # $postdeps and mark them as special (i.e., whose duplicates are
7802      # not to be eliminated).
7803      pre_post_deps=
7804      if $opt_duplicate_compiler_generated_deps; then
7805	for pre_post_dep in $predeps $postdeps; do
7806	  case "$pre_post_deps " in
7807	  *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;;
7808	  esac
7809	  func_append pre_post_deps " $pre_post_dep"
7810	done
7811      fi
7812      pre_post_deps=
7813    fi
7814
7815    deplibs=
7816    newdependency_libs=
7817    newlib_search_path=
7818    need_relink=no # whether we're linking any uninstalled libtool libraries
7819    notinst_deplibs= # not-installed libtool libraries
7820    notinst_path= # paths that contain not-installed libtool libraries
7821
7822    case $linkmode in
7823    lib)
7824	passes="conv dlpreopen link"
7825	for file in $dlfiles $dlprefiles; do
7826	  case $file in
7827	  *.la) ;;
7828	  *)
7829	    func_fatal_help "libraries can '-dlopen' only libtool libraries: $file"
7830	    ;;
7831	  esac
7832	done
7833	;;
7834    prog)
7835	compile_deplibs=
7836	finalize_deplibs=
7837	alldeplibs=false
7838	newdlfiles=
7839	newdlprefiles=
7840	passes="conv scan dlopen dlpreopen link"
7841	;;
7842    *)  passes="conv"
7843	;;
7844    esac
7845
7846    for pass in $passes; do
7847      # The preopen pass in lib mode reverses $deplibs; put it back here
7848      # so that -L comes before libs that need it for instance...
7849      if test lib,link = "$linkmode,$pass"; then
7850	## FIXME: Find the place where the list is rebuilt in the wrong
7851	##        order, and fix it there properly
7852        tmp_deplibs=
7853	for deplib in $deplibs; do
7854	  tmp_deplibs="$deplib $tmp_deplibs"
7855	done
7856	deplibs=$tmp_deplibs
7857      fi
7858
7859      if test lib,link = "$linkmode,$pass" ||
7860	 test prog,scan = "$linkmode,$pass"; then
7861	libs=$deplibs
7862	deplibs=
7863      fi
7864      if test prog = "$linkmode"; then
7865	case $pass in
7866	dlopen) libs=$dlfiles ;;
7867	dlpreopen) libs=$dlprefiles ;;
7868	link) libs="$deplibs %DEPLIBS% $dependency_libs" ;;
7869	esac
7870      fi
7871      if test lib,dlpreopen = "$linkmode,$pass"; then
7872	# Collect and forward deplibs of preopened libtool libs
7873	for lib in $dlprefiles; do
7874	  # Ignore non-libtool-libs
7875	  dependency_libs=
7876	  func_resolve_sysroot "$lib"
7877	  case $lib in
7878	  *.la)	func_source "$func_resolve_sysroot_result" ;;
7879	  esac
7880
7881	  # Collect preopened libtool deplibs, except any this library
7882	  # has declared as weak libs
7883	  for deplib in $dependency_libs; do
7884	    func_basename "$deplib"
7885            deplib_base=$func_basename_result
7886	    case " $weak_libs " in
7887	    *" $deplib_base "*) ;;
7888	    *) func_append deplibs " $deplib" ;;
7889	    esac
7890	  done
7891	done
7892	libs=$dlprefiles
7893      fi
7894      if test dlopen = "$pass"; then
7895	# Collect dlpreopened libraries
7896	save_deplibs=$deplibs
7897	deplibs=
7898      fi
7899
7900      for deplib in $libs; do
7901	lib=
7902	found=false
7903	case $deplib in
7904	-mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \
7905        |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*)
7906	  if test prog,link = "$linkmode,$pass"; then
7907	    compile_deplibs="$deplib $compile_deplibs"
7908	    finalize_deplibs="$deplib $finalize_deplibs"
7909	  else
7910	    func_append compiler_flags " $deplib"
7911	    if test lib = "$linkmode"; then
7912		case "$new_inherited_linker_flags " in
7913		    *" $deplib "*) ;;
7914		    * ) func_append new_inherited_linker_flags " $deplib" ;;
7915		esac
7916	    fi
7917	  fi
7918	  continue
7919	  ;;
7920	-l*)
7921	  if test lib != "$linkmode" && test prog != "$linkmode"; then
7922	    func_warning "'-l' is ignored for archives/objects"
7923	    continue
7924	  fi
7925	  func_stripname '-l' '' "$deplib"
7926	  name=$func_stripname_result
7927	  if test lib = "$linkmode"; then
7928	    searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path"
7929	  else
7930	    searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path"
7931	  fi
7932	  for searchdir in $searchdirs; do
7933	    for search_ext in .la $std_shrext .so .a; do
7934	      # Search the libtool library
7935	      lib=$searchdir/lib$name$search_ext
7936	      if test -f "$lib"; then
7937		if test .la = "$search_ext"; then
7938		  found=:
7939		else
7940		  found=false
7941		fi
7942		break 2
7943	      fi
7944	    done
7945	  done
7946	  if $found; then
7947	    # deplib is a libtool library
7948	    # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib,
7949	    # We need to do some special things here, and not later.
7950	    if test yes = "$allow_libtool_libs_with_static_runtimes"; then
7951	      case " $predeps $postdeps " in
7952	      *" $deplib "*)
7953		if func_lalib_p "$lib"; then
7954		  library_names=
7955		  old_library=
7956		  func_source "$lib"
7957		  for l in $old_library $library_names; do
7958		    ll=$l
7959		  done
7960		  if test "X$ll" = "X$old_library"; then # only static version available
7961		    found=false
7962		    func_dirname "$lib" "" "."
7963		    ladir=$func_dirname_result
7964		    lib=$ladir/$old_library
7965		    if test prog,link = "$linkmode,$pass"; then
7966		      compile_deplibs="$deplib $compile_deplibs"
7967		      finalize_deplibs="$deplib $finalize_deplibs"
7968		    else
7969		      deplibs="$deplib $deplibs"
7970		      test lib = "$linkmode" && newdependency_libs="$deplib $newdependency_libs"
7971		    fi
7972		    continue
7973		  fi
7974		fi
7975		;;
7976	      *) ;;
7977	      esac
7978	    fi
7979	  else
7980	    # deplib doesn't seem to be a libtool library
7981	    if test prog,link = "$linkmode,$pass"; then
7982	      compile_deplibs="$deplib $compile_deplibs"
7983	      finalize_deplibs="$deplib $finalize_deplibs"
7984	    else
7985	      deplibs="$deplib $deplibs"
7986	      test lib = "$linkmode" && newdependency_libs="$deplib $newdependency_libs"
7987	    fi
7988	    continue
7989	  fi
7990	  ;; # -l
7991	*.ltframework)
7992	  if test prog,link = "$linkmode,$pass"; then
7993	    compile_deplibs="$deplib $compile_deplibs"
7994	    finalize_deplibs="$deplib $finalize_deplibs"
7995	  else
7996	    deplibs="$deplib $deplibs"
7997	    if test lib = "$linkmode"; then
7998		case "$new_inherited_linker_flags " in
7999		    *" $deplib "*) ;;
8000		    * ) func_append new_inherited_linker_flags " $deplib" ;;
8001		esac
8002	    fi
8003	  fi
8004	  continue
8005	  ;;
8006	-L*)
8007	  case $linkmode in
8008	  lib)
8009	    deplibs="$deplib $deplibs"
8010	    test conv = "$pass" && continue
8011	    newdependency_libs="$deplib $newdependency_libs"
8012	    func_stripname '-L' '' "$deplib"
8013	    func_resolve_sysroot "$func_stripname_result"
8014	    func_append newlib_search_path " $func_resolve_sysroot_result"
8015	    ;;
8016	  prog)
8017	    if test conv = "$pass"; then
8018	      deplibs="$deplib $deplibs"
8019	      continue
8020	    fi
8021	    if test scan = "$pass"; then
8022	      deplibs="$deplib $deplibs"
8023	    else
8024	      compile_deplibs="$deplib $compile_deplibs"
8025	      finalize_deplibs="$deplib $finalize_deplibs"
8026	    fi
8027	    func_stripname '-L' '' "$deplib"
8028	    func_resolve_sysroot "$func_stripname_result"
8029	    func_append newlib_search_path " $func_resolve_sysroot_result"
8030	    ;;
8031	  *)
8032	    func_warning "'-L' is ignored for archives/objects"
8033	    ;;
8034	  esac # linkmode
8035	  continue
8036	  ;; # -L
8037	-R*)
8038	  if test link = "$pass"; then
8039	    func_stripname '-R' '' "$deplib"
8040	    func_resolve_sysroot "$func_stripname_result"
8041	    dir=$func_resolve_sysroot_result
8042	    # Make sure the xrpath contains only unique directories.
8043	    case "$xrpath " in
8044	    *" $dir "*) ;;
8045	    *) func_append xrpath " $dir" ;;
8046	    esac
8047	  fi
8048	  deplibs="$deplib $deplibs"
8049	  continue
8050	  ;;
8051	*.la)
8052	  func_resolve_sysroot "$deplib"
8053	  lib=$func_resolve_sysroot_result
8054	  ;;
8055	*.$libext)
8056	  if test conv = "$pass"; then
8057	    deplibs="$deplib $deplibs"
8058	    continue
8059	  fi
8060	  case $linkmode in
8061	  lib)
8062	    # Linking convenience modules into shared libraries is allowed,
8063	    # but linking other static libraries is non-portable.
8064	    case " $dlpreconveniencelibs " in
8065	    *" $deplib "*) ;;
8066	    *)
8067	      valid_a_lib=false
8068	      case $deplibs_check_method in
8069		match_pattern*)
8070		  set dummy $deplibs_check_method; shift
8071		  match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
8072		  if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \
8073		    | $EGREP "$match_pattern_regex" > /dev/null; then
8074		    valid_a_lib=:
8075		  fi
8076		;;
8077		pass_all)
8078		  valid_a_lib=:
8079		;;
8080	      esac
8081	      if $valid_a_lib; then
8082		echo
8083		$ECHO "*** Warning: Linking the shared library $output against the"
8084		$ECHO "*** static library $deplib is not portable!"
8085		deplibs="$deplib $deplibs"
8086	      else
8087		echo
8088		$ECHO "*** Warning: Trying to link with static lib archive $deplib."
8089		echo "*** I have the capability to make that library automatically link in when"
8090		echo "*** you link to this library.  But I can only do this if you have a"
8091		echo "*** shared version of the library, which you do not appear to have"
8092		echo "*** because the file extensions .$libext of this argument makes me believe"
8093		echo "*** that it is just a static archive that I should not use here."
8094	      fi
8095	      ;;
8096	    esac
8097	    continue
8098	    ;;
8099	  prog)
8100	    if test link != "$pass"; then
8101	      deplibs="$deplib $deplibs"
8102	    else
8103	      compile_deplibs="$deplib $compile_deplibs"
8104	      finalize_deplibs="$deplib $finalize_deplibs"
8105	    fi
8106	    continue
8107	    ;;
8108	  esac # linkmode
8109	  ;; # *.$libext
8110	*.lo | *.$objext)
8111	  if test conv = "$pass"; then
8112	    deplibs="$deplib $deplibs"
8113	  elif test prog = "$linkmode"; then
8114	    if test dlpreopen = "$pass" || test yes != "$dlopen_support" || test no = "$build_libtool_libs"; then
8115	      # If there is no dlopen support or we're linking statically,
8116	      # we need to preload.
8117	      func_append newdlprefiles " $deplib"
8118	      compile_deplibs="$deplib $compile_deplibs"
8119	      finalize_deplibs="$deplib $finalize_deplibs"
8120	    else
8121	      func_append newdlfiles " $deplib"
8122	    fi
8123	  fi
8124	  continue
8125	  ;;
8126	%DEPLIBS%)
8127	  alldeplibs=:
8128	  continue
8129	  ;;
8130	esac # case $deplib
8131
8132	$found || test -f "$lib" \
8133	  || func_fatal_error "cannot find the library '$lib' or unhandled argument '$deplib'"
8134
8135	# Check to see that this really is a libtool archive.
8136	func_lalib_unsafe_p "$lib" \
8137	  || func_fatal_error "'$lib' is not a valid libtool archive"
8138
8139	func_dirname "$lib" "" "."
8140	ladir=$func_dirname_result
8141
8142	dlname=
8143	dlopen=
8144	dlpreopen=
8145	libdir=
8146	library_names=
8147	old_library=
8148	inherited_linker_flags=
8149	# If the library was installed with an old release of libtool,
8150	# it will not redefine variables installed, or shouldnotlink
8151	installed=yes
8152	shouldnotlink=no
8153	avoidtemprpath=
8154
8155
8156	# Read the .la file
8157	func_source "$lib"
8158
8159	# Convert "-framework foo" to "foo.ltframework"
8160	if test -n "$inherited_linker_flags"; then
8161	  tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'`
8162	  for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do
8163	    case " $new_inherited_linker_flags " in
8164	      *" $tmp_inherited_linker_flag "*) ;;
8165	      *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";;
8166	    esac
8167	  done
8168	fi
8169	dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
8170	if test lib,link = "$linkmode,$pass" ||
8171	   test prog,scan = "$linkmode,$pass" ||
8172	   { test prog != "$linkmode" && test lib != "$linkmode"; }; then
8173	  test -n "$dlopen" && func_append dlfiles " $dlopen"
8174	  test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen"
8175	fi
8176
8177	if test conv = "$pass"; then
8178	  # Only check for convenience libraries
8179	  deplibs="$lib $deplibs"
8180	  if test -z "$libdir"; then
8181	    if test -z "$old_library"; then
8182	      func_fatal_error "cannot find name of link library for '$lib'"
8183	    fi
8184	    # It is a libtool convenience library, so add in its objects.
8185	    func_append convenience " $ladir/$objdir/$old_library"
8186	    func_append old_convenience " $ladir/$objdir/$old_library"
8187	  elif test prog != "$linkmode" && test lib != "$linkmode"; then
8188	    func_fatal_error "'$lib' is not a convenience library"
8189	  fi
8190	  tmp_libs=
8191	  for deplib in $dependency_libs; do
8192	    deplibs="$deplib $deplibs"
8193	    if $opt_preserve_dup_deps; then
8194	      case "$tmp_libs " in
8195	      *" $deplib "*) func_append specialdeplibs " $deplib" ;;
8196	      esac
8197	    fi
8198	    func_append tmp_libs " $deplib"
8199	  done
8200	  continue
8201	fi # $pass = conv
8202
8203
8204	# Get the name of the library we link against.
8205	linklib=
8206	if test -n "$old_library" &&
8207	   { test yes = "$prefer_static_libs" ||
8208	     test built,no = "$prefer_static_libs,$installed"; }; then
8209	  linklib=$old_library
8210	else
8211	  for l in $old_library $library_names; do
8212	    linklib=$l
8213	  done
8214	fi
8215	if test -z "$linklib"; then
8216	  func_fatal_error "cannot find name of link library for '$lib'"
8217	fi
8218
8219	# This library was specified with -dlopen.
8220	if test dlopen = "$pass"; then
8221	  test -z "$libdir" \
8222	    && func_fatal_error "cannot -dlopen a convenience library: '$lib'"
8223	  if test -z "$dlname" ||
8224	     test yes != "$dlopen_support" ||
8225	     test no = "$build_libtool_libs"
8226	  then
8227	    # If there is no dlname, no dlopen support or we're linking
8228	    # statically, we need to preload.  We also need to preload any
8229	    # dependent libraries so libltdl's deplib preloader doesn't
8230	    # bomb out in the load deplibs phase.
8231	    func_append dlprefiles " $lib $dependency_libs"
8232	  else
8233	    func_append newdlfiles " $lib"
8234	  fi
8235	  continue
8236	fi # $pass = dlopen
8237
8238	# We need an absolute path.
8239	case $ladir in
8240	[\\/]* | [A-Za-z]:[\\/]*) abs_ladir=$ladir ;;
8241	*)
8242	  abs_ladir=`cd "$ladir" && pwd`
8243	  if test -z "$abs_ladir"; then
8244	    func_warning "cannot determine absolute directory name of '$ladir'"
8245	    func_warning "passing it literally to the linker, although it might fail"
8246	    abs_ladir=$ladir
8247	  fi
8248	  ;;
8249	esac
8250	func_basename "$lib"
8251	laname=$func_basename_result
8252
8253	# Find the relevant object directory and library name.
8254	if test yes = "$installed"; then
8255	  if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
8256	    func_warning "library '$lib' was moved."
8257	    dir=$ladir
8258	    absdir=$abs_ladir
8259	    libdir=$abs_ladir
8260	  else
8261	    dir=$lt_sysroot$libdir
8262	    absdir=$lt_sysroot$libdir
8263	  fi
8264	  test yes = "$hardcode_automatic" && avoidtemprpath=yes
8265	else
8266	  if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then
8267	    dir=$ladir
8268	    absdir=$abs_ladir
8269	    # Remove this search path later
8270	    func_append notinst_path " $abs_ladir"
8271	  else
8272	    dir=$ladir/$objdir
8273	    absdir=$abs_ladir/$objdir
8274	    # Remove this search path later
8275	    func_append notinst_path " $abs_ladir"
8276	  fi
8277	fi # $installed = yes
8278	func_stripname 'lib' '.la' "$laname"
8279	name=$func_stripname_result
8280
8281	# This library was specified with -dlpreopen.
8282	if test dlpreopen = "$pass"; then
8283	  if test -z "$libdir" && test prog = "$linkmode"; then
8284	    func_fatal_error "only libraries may -dlpreopen a convenience library: '$lib'"
8285	  fi
8286	  case $host in
8287	    # special handling for platforms with PE-DLLs.
8288	    *cygwin* | *mingw* | *cegcc* )
8289	      # Linker will automatically link against shared library if both
8290	      # static and shared are present.  Therefore, ensure we extract
8291	      # symbols from the import library if a shared library is present
8292	      # (otherwise, the dlopen module name will be incorrect).  We do
8293	      # this by putting the import library name into $newdlprefiles.
8294	      # We recover the dlopen module name by 'saving' the la file
8295	      # name in a special purpose variable, and (later) extracting the
8296	      # dlname from the la file.
8297	      if test -n "$dlname"; then
8298	        func_tr_sh "$dir/$linklib"
8299	        eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname"
8300	        func_append newdlprefiles " $dir/$linklib"
8301	      else
8302	        func_append newdlprefiles " $dir/$old_library"
8303	        # Keep a list of preopened convenience libraries to check
8304	        # that they are being used correctly in the link pass.
8305	        test -z "$libdir" && \
8306	          func_append dlpreconveniencelibs " $dir/$old_library"
8307	      fi
8308	    ;;
8309	    * )
8310	      # Prefer using a static library (so that no silly _DYNAMIC symbols
8311	      # are required to link).
8312	      if test -n "$old_library"; then
8313	        func_append newdlprefiles " $dir/$old_library"
8314	        # Keep a list of preopened convenience libraries to check
8315	        # that they are being used correctly in the link pass.
8316	        test -z "$libdir" && \
8317	          func_append dlpreconveniencelibs " $dir/$old_library"
8318	      # Otherwise, use the dlname, so that lt_dlopen finds it.
8319	      elif test -n "$dlname"; then
8320	        func_append newdlprefiles " $dir/$dlname"
8321	      else
8322	        func_append newdlprefiles " $dir/$linklib"
8323	      fi
8324	    ;;
8325	  esac
8326	fi # $pass = dlpreopen
8327
8328	if test -z "$libdir"; then
8329	  # Link the convenience library
8330	  if test lib = "$linkmode"; then
8331	    deplibs="$dir/$old_library $deplibs"
8332	  elif test prog,link = "$linkmode,$pass"; then
8333	    compile_deplibs="$dir/$old_library $compile_deplibs"
8334	    finalize_deplibs="$dir/$old_library $finalize_deplibs"
8335	  else
8336	    deplibs="$lib $deplibs" # used for prog,scan pass
8337	  fi
8338	  continue
8339	fi
8340
8341
8342	if test prog = "$linkmode" && test link != "$pass"; then
8343	  func_append newlib_search_path " $ladir"
8344	  deplibs="$lib $deplibs"
8345
8346	  linkalldeplibs=false
8347	  if test no != "$link_all_deplibs" || test -z "$library_names" ||
8348	     test no = "$build_libtool_libs"; then
8349	    linkalldeplibs=:
8350	  fi
8351
8352	  tmp_libs=
8353	  for deplib in $dependency_libs; do
8354	    case $deplib in
8355	    -L*) func_stripname '-L' '' "$deplib"
8356	         func_resolve_sysroot "$func_stripname_result"
8357	         func_append newlib_search_path " $func_resolve_sysroot_result"
8358		 ;;
8359	    esac
8360	    # Need to link against all dependency_libs?
8361	    if $linkalldeplibs; then
8362	      deplibs="$deplib $deplibs"
8363	    else
8364	      # Need to hardcode shared library paths
8365	      # or/and link against static libraries
8366	      newdependency_libs="$deplib $newdependency_libs"
8367	    fi
8368	    if $opt_preserve_dup_deps; then
8369	      case "$tmp_libs " in
8370	      *" $deplib "*) func_append specialdeplibs " $deplib" ;;
8371	      esac
8372	    fi
8373	    func_append tmp_libs " $deplib"
8374	  done # for deplib
8375	  continue
8376	fi # $linkmode = prog...
8377
8378	if test prog,link = "$linkmode,$pass"; then
8379	  if test -n "$library_names" &&
8380	     { { test no = "$prefer_static_libs" ||
8381	         test built,yes = "$prefer_static_libs,$installed"; } ||
8382	       test -z "$old_library"; }; then
8383	    # We need to hardcode the library path
8384	    if test -n "$shlibpath_var" && test -z "$avoidtemprpath"; then
8385	      # Make sure the rpath contains only unique directories.
8386	      case $temp_rpath: in
8387	      *"$absdir:"*) ;;
8388	      *) func_append temp_rpath "$absdir:" ;;
8389	      esac
8390	    fi
8391
8392	    # Hardcode the library path.
8393	    # Skip directories that are in the system default run-time
8394	    # search path.
8395	    case " $sys_lib_dlsearch_path " in
8396	    *" $absdir "*) ;;
8397	    *)
8398	      case "$compile_rpath " in
8399	      *" $absdir "*) ;;
8400	      *) func_append compile_rpath " $absdir" ;;
8401	      esac
8402	      ;;
8403	    esac
8404	    case " $sys_lib_dlsearch_path " in
8405	    *" $libdir "*) ;;
8406	    *)
8407	      case "$finalize_rpath " in
8408	      *" $libdir "*) ;;
8409	      *) func_append finalize_rpath " $libdir" ;;
8410	      esac
8411	      ;;
8412	    esac
8413	  fi # $linkmode,$pass = prog,link...
8414
8415	  if $alldeplibs &&
8416	     { test pass_all = "$deplibs_check_method" ||
8417	       { test yes = "$build_libtool_libs" &&
8418		 test -n "$library_names"; }; }; then
8419	    # We only need to search for static libraries
8420	    continue
8421	  fi
8422	fi
8423
8424	link_static=no # Whether the deplib will be linked statically
8425	use_static_libs=$prefer_static_libs
8426	if test built = "$use_static_libs" && test yes = "$installed"; then
8427	  use_static_libs=no
8428	fi
8429	if test -n "$library_names" &&
8430	   { test no = "$use_static_libs" || test -z "$old_library"; }; then
8431	  case $host in
8432	  *cygwin* | *mingw* | *cegcc* | *os2*)
8433	      # No point in relinking DLLs because paths are not encoded
8434	      func_append notinst_deplibs " $lib"
8435	      need_relink=no
8436	    ;;
8437	  *)
8438	    if test no = "$installed"; then
8439	      func_append notinst_deplibs " $lib"
8440	      need_relink=yes
8441	    fi
8442	    ;;
8443	  esac
8444	  # This is a shared library
8445
8446	  # Warn about portability, can't link against -module's on some
8447	  # systems (darwin).  Don't bleat about dlopened modules though!
8448	  dlopenmodule=
8449	  for dlpremoduletest in $dlprefiles; do
8450	    if test "X$dlpremoduletest" = "X$lib"; then
8451	      dlopenmodule=$dlpremoduletest
8452	      break
8453	    fi
8454	  done
8455	  if test -z "$dlopenmodule" && test yes = "$shouldnotlink" && test link = "$pass"; then
8456	    echo
8457	    if test prog = "$linkmode"; then
8458	      $ECHO "*** Warning: Linking the executable $output against the loadable module"
8459	    else
8460	      $ECHO "*** Warning: Linking the shared library $output against the loadable module"
8461	    fi
8462	    $ECHO "*** $linklib is not portable!"
8463	  fi
8464	  if test lib = "$linkmode" &&
8465	     test yes = "$hardcode_into_libs"; then
8466	    # Hardcode the library path.
8467	    # Skip directories that are in the system default run-time
8468	    # search path.
8469	    case " $sys_lib_dlsearch_path " in
8470	    *" $absdir "*) ;;
8471	    *)
8472	      case "$compile_rpath " in
8473	      *" $absdir "*) ;;
8474	      *) func_append compile_rpath " $absdir" ;;
8475	      esac
8476	      ;;
8477	    esac
8478	    case " $sys_lib_dlsearch_path " in
8479	    *" $libdir "*) ;;
8480	    *)
8481	      case "$finalize_rpath " in
8482	      *" $libdir "*) ;;
8483	      *) func_append finalize_rpath " $libdir" ;;
8484	      esac
8485	      ;;
8486	    esac
8487	  fi
8488
8489	  if test -n "$old_archive_from_expsyms_cmds"; then
8490	    # figure out the soname
8491	    set dummy $library_names
8492	    shift
8493	    realname=$1
8494	    shift
8495	    libname=`eval "\\$ECHO \"$libname_spec\""`
8496	    # use dlname if we got it. it's perfectly good, no?
8497	    if test -n "$dlname"; then
8498	      soname=$dlname
8499	    elif test -n "$soname_spec"; then
8500	      # bleh windows
8501	      case $host in
8502	      *cygwin* | mingw* | *cegcc* | *os2*)
8503	        func_arith $current - $age
8504		major=$func_arith_result
8505		versuffix=-$major
8506		;;
8507	      esac
8508	      eval soname=\"$soname_spec\"
8509	    else
8510	      soname=$realname
8511	    fi
8512
8513	    # Make a new name for the extract_expsyms_cmds to use
8514	    soroot=$soname
8515	    func_basename "$soroot"
8516	    soname=$func_basename_result
8517	    func_stripname 'lib' '.dll' "$soname"
8518	    newlib=libimp-$func_stripname_result.a
8519
8520	    # If the library has no export list, then create one now
8521	    if test -f "$output_objdir/$soname-def"; then :
8522	    else
8523	      func_verbose "extracting exported symbol list from '$soname'"
8524	      func_execute_cmds "$extract_expsyms_cmds" 'exit $?'
8525	    fi
8526
8527	    # Create $newlib
8528	    if test -f "$output_objdir/$newlib"; then :; else
8529	      func_verbose "generating import library for '$soname'"
8530	      func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?'
8531	    fi
8532	    # make sure the library variables are pointing to the new library
8533	    dir=$output_objdir
8534	    linklib=$newlib
8535	  fi # test -n "$old_archive_from_expsyms_cmds"
8536
8537	  if test prog = "$linkmode" || test relink != "$opt_mode"; then
8538	    add_shlibpath=
8539	    add_dir=
8540	    add=
8541	    lib_linked=yes
8542	    case $hardcode_action in
8543	    immediate | unsupported)
8544	      if test no = "$hardcode_direct"; then
8545		add=$dir/$linklib
8546		case $host in
8547		  *-*-sco3.2v5.0.[024]*) add_dir=-L$dir ;;
8548		  *-*-sysv4*uw2*) add_dir=-L$dir ;;
8549		  *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \
8550		    *-*-unixware7*) add_dir=-L$dir ;;
8551		  *-*-darwin* )
8552		    # if the lib is a (non-dlopened) module then we cannot
8553		    # link against it, someone is ignoring the earlier warnings
8554		    if /usr/bin/file -L $add 2> /dev/null |
8555			 $GREP ": [^:]* bundle" >/dev/null; then
8556		      if test "X$dlopenmodule" != "X$lib"; then
8557			$ECHO "*** Warning: lib $linklib is a module, not a shared library"
8558			if test -z "$old_library"; then
8559			  echo
8560			  echo "*** And there doesn't seem to be a static archive available"
8561			  echo "*** The link will probably fail, sorry"
8562			else
8563			  add=$dir/$old_library
8564			fi
8565		      elif test -n "$old_library"; then
8566			add=$dir/$old_library
8567		      fi
8568		    fi
8569		esac
8570	      elif test no = "$hardcode_minus_L"; then
8571		case $host in
8572		*-*-sunos*) add_shlibpath=$dir ;;
8573		esac
8574		add_dir=-L$dir
8575		add=-l$name
8576	      elif test no = "$hardcode_shlibpath_var"; then
8577		add_shlibpath=$dir
8578		add=-l$name
8579	      else
8580		lib_linked=no
8581	      fi
8582	      ;;
8583	    relink)
8584	      if test yes = "$hardcode_direct" &&
8585	         test no = "$hardcode_direct_absolute"; then
8586		add=$dir/$linklib
8587	      elif test yes = "$hardcode_minus_L"; then
8588		add_dir=-L$absdir
8589		# Try looking first in the location we're being installed to.
8590		if test -n "$inst_prefix_dir"; then
8591		  case $libdir in
8592		    [\\/]*)
8593		      func_append add_dir " -L$inst_prefix_dir$libdir"
8594		      ;;
8595		  esac
8596		fi
8597		add=-l$name
8598	      elif test yes = "$hardcode_shlibpath_var"; then
8599		add_shlibpath=$dir
8600		add=-l$name
8601	      else
8602		lib_linked=no
8603	      fi
8604	      ;;
8605	    *) lib_linked=no ;;
8606	    esac
8607
8608	    if test yes != "$lib_linked"; then
8609	      func_fatal_configuration "unsupported hardcode properties"
8610	    fi
8611
8612	    if test -n "$add_shlibpath"; then
8613	      case :$compile_shlibpath: in
8614	      *":$add_shlibpath:"*) ;;
8615	      *) func_append compile_shlibpath "$add_shlibpath:" ;;
8616	      esac
8617	    fi
8618	    if test prog = "$linkmode"; then
8619	      test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
8620	      test -n "$add" && compile_deplibs="$add $compile_deplibs"
8621	    else
8622	      test -n "$add_dir" && deplibs="$add_dir $deplibs"
8623	      test -n "$add" && deplibs="$add $deplibs"
8624	      if test yes != "$hardcode_direct" &&
8625		 test yes != "$hardcode_minus_L" &&
8626		 test yes = "$hardcode_shlibpath_var"; then
8627		case :$finalize_shlibpath: in
8628		*":$libdir:"*) ;;
8629		*) func_append finalize_shlibpath "$libdir:" ;;
8630		esac
8631	      fi
8632	    fi
8633	  fi
8634
8635	  if test prog = "$linkmode" || test relink = "$opt_mode"; then
8636	    add_shlibpath=
8637	    add_dir=
8638	    add=
8639	    # Finalize command for both is simple: just hardcode it.
8640	    if test yes = "$hardcode_direct" &&
8641	       test no = "$hardcode_direct_absolute"; then
8642	      add=$libdir/$linklib
8643	    elif test yes = "$hardcode_minus_L"; then
8644	      add_dir=-L$libdir
8645	      add=-l$name
8646	    elif test yes = "$hardcode_shlibpath_var"; then
8647	      case :$finalize_shlibpath: in
8648	      *":$libdir:"*) ;;
8649	      *) func_append finalize_shlibpath "$libdir:" ;;
8650	      esac
8651	      add=-l$name
8652	    elif test yes = "$hardcode_automatic"; then
8653	      if test -n "$inst_prefix_dir" &&
8654		 test -f "$inst_prefix_dir$libdir/$linklib"; then
8655		add=$inst_prefix_dir$libdir/$linklib
8656	      else
8657		add=$libdir/$linklib
8658	      fi
8659	    else
8660	      # We cannot seem to hardcode it, guess we'll fake it.
8661	      add_dir=-L$libdir
8662	      # Try looking first in the location we're being installed to.
8663	      if test -n "$inst_prefix_dir"; then
8664		case $libdir in
8665		  [\\/]*)
8666		    func_append add_dir " -L$inst_prefix_dir$libdir"
8667		    ;;
8668		esac
8669	      fi
8670	      add=-l$name
8671	    fi
8672
8673	    if test prog = "$linkmode"; then
8674	      test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
8675	      test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
8676	    else
8677	      test -n "$add_dir" && deplibs="$add_dir $deplibs"
8678	      test -n "$add" && deplibs="$add $deplibs"
8679	    fi
8680	  fi
8681	elif test prog = "$linkmode"; then
8682	  # Here we assume that one of hardcode_direct or hardcode_minus_L
8683	  # is not unsupported.  This is valid on all known static and
8684	  # shared platforms.
8685	  if test unsupported != "$hardcode_direct"; then
8686	    test -n "$old_library" && linklib=$old_library
8687	    compile_deplibs="$dir/$linklib $compile_deplibs"
8688	    finalize_deplibs="$dir/$linklib $finalize_deplibs"
8689	  else
8690	    compile_deplibs="-l$name -L$dir $compile_deplibs"
8691	    finalize_deplibs="-l$name -L$dir $finalize_deplibs"
8692	  fi
8693	elif test yes = "$build_libtool_libs"; then
8694	  # Not a shared library
8695	  if test pass_all != "$deplibs_check_method"; then
8696	    # We're trying link a shared library against a static one
8697	    # but the system doesn't support it.
8698
8699	    # Just print a warning and add the library to dependency_libs so
8700	    # that the program can be linked against the static library.
8701	    echo
8702	    $ECHO "*** Warning: This system cannot link to static lib archive $lib."
8703	    echo "*** I have the capability to make that library automatically link in when"
8704	    echo "*** you link to this library.  But I can only do this if you have a"
8705	    echo "*** shared version of the library, which you do not appear to have."
8706	    if test yes = "$module"; then
8707	      echo "*** But as you try to build a module library, libtool will still create "
8708	      echo "*** a static module, that should work as long as the dlopening application"
8709	      echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
8710	      if test -z "$global_symbol_pipe"; then
8711		echo
8712		echo "*** However, this would only work if libtool was able to extract symbol"
8713		echo "*** lists from a program, using 'nm' or equivalent, but libtool could"
8714		echo "*** not find such a program.  So, this module is probably useless."
8715		echo "*** 'nm' from GNU binutils and a full rebuild may help."
8716	      fi
8717	      if test no = "$build_old_libs"; then
8718		build_libtool_libs=module
8719		build_old_libs=yes
8720	      else
8721		build_libtool_libs=no
8722	      fi
8723	    fi
8724	  else
8725	    deplibs="$dir/$old_library $deplibs"
8726	    link_static=yes
8727	  fi
8728	fi # link shared/static library?
8729
8730	if test lib = "$linkmode"; then
8731	  if test -n "$dependency_libs" &&
8732	     { test yes != "$hardcode_into_libs" ||
8733	       test yes = "$build_old_libs" ||
8734	       test yes = "$link_static"; }; then
8735	    # Extract -R from dependency_libs
8736	    temp_deplibs=
8737	    for libdir in $dependency_libs; do
8738	      case $libdir in
8739	      -R*) func_stripname '-R' '' "$libdir"
8740	           temp_xrpath=$func_stripname_result
8741		   case " $xrpath " in
8742		   *" $temp_xrpath "*) ;;
8743		   *) func_append xrpath " $temp_xrpath";;
8744		   esac;;
8745	      *) func_append temp_deplibs " $libdir";;
8746	      esac
8747	    done
8748	    dependency_libs=$temp_deplibs
8749	  fi
8750
8751	  func_append newlib_search_path " $absdir"
8752	  # Link against this library
8753	  test no = "$link_static" && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
8754	  # ... and its dependency_libs
8755	  tmp_libs=
8756	  for deplib in $dependency_libs; do
8757	    newdependency_libs="$deplib $newdependency_libs"
8758	    case $deplib in
8759              -L*) func_stripname '-L' '' "$deplib"
8760                   func_resolve_sysroot "$func_stripname_result";;
8761              *) func_resolve_sysroot "$deplib" ;;
8762            esac
8763	    if $opt_preserve_dup_deps; then
8764	      case "$tmp_libs " in
8765	      *" $func_resolve_sysroot_result "*)
8766                func_append specialdeplibs " $func_resolve_sysroot_result" ;;
8767	      esac
8768	    fi
8769	    func_append tmp_libs " $func_resolve_sysroot_result"
8770	  done
8771
8772	  if test no != "$link_all_deplibs"; then
8773	    # Add the search paths of all dependency libraries
8774	    for deplib in $dependency_libs; do
8775	      path=
8776	      case $deplib in
8777	      -L*) path=$deplib ;;
8778	      *.la)
8779	        func_resolve_sysroot "$deplib"
8780	        deplib=$func_resolve_sysroot_result
8781	        func_dirname "$deplib" "" "."
8782		dir=$func_dirname_result
8783		# We need an absolute path.
8784		case $dir in
8785		[\\/]* | [A-Za-z]:[\\/]*) absdir=$dir ;;
8786		*)
8787		  absdir=`cd "$dir" && pwd`
8788		  if test -z "$absdir"; then
8789		    func_warning "cannot determine absolute directory name of '$dir'"
8790		    absdir=$dir
8791		  fi
8792		  ;;
8793		esac
8794		if $GREP "^installed=no" $deplib > /dev/null; then
8795		case $host in
8796		*-*-darwin*)
8797		  depdepl=
8798		  eval deplibrary_names=`$SED -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
8799		  if test -n "$deplibrary_names"; then
8800		    for tmp in $deplibrary_names; do
8801		      depdepl=$tmp
8802		    done
8803		    if test -f "$absdir/$objdir/$depdepl"; then
8804		      depdepl=$absdir/$objdir/$depdepl
8805		      darwin_install_name=`$OTOOL -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'`
8806                      if test -z "$darwin_install_name"; then
8807                          darwin_install_name=`$OTOOL64 -L $depdepl  | awk '{if (NR == 2) {print $1;exit}}'`
8808                      fi
8809		      func_append compiler_flags " $wl-dylib_file $wl$darwin_install_name:$depdepl"
8810		      func_append linker_flags " -dylib_file $darwin_install_name:$depdepl"
8811		      path=
8812		    fi
8813		  fi
8814		  ;;
8815		*)
8816		  path=-L$absdir/$objdir
8817		  ;;
8818		esac
8819		else
8820		  eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
8821		  test -z "$libdir" && \
8822		    func_fatal_error "'$deplib' is not a valid libtool archive"
8823		  test "$absdir" != "$libdir" && \
8824		    func_warning "'$deplib' seems to be moved"
8825
8826		  path=-L$absdir
8827		fi
8828		;;
8829	      esac
8830	      case " $deplibs " in
8831	      *" $path "*) ;;
8832	      *) deplibs="$path $deplibs" ;;
8833	      esac
8834	    done
8835	  fi # link_all_deplibs != no
8836	fi # linkmode = lib
8837      done # for deplib in $libs
8838      if test link = "$pass"; then
8839	if test prog = "$linkmode"; then
8840	  compile_deplibs="$new_inherited_linker_flags $compile_deplibs"
8841	  finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs"
8842	else
8843	  compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
8844	fi
8845      fi
8846      dependency_libs=$newdependency_libs
8847      if test dlpreopen = "$pass"; then
8848	# Link the dlpreopened libraries before other libraries
8849	for deplib in $save_deplibs; do
8850	  deplibs="$deplib $deplibs"
8851	done
8852      fi
8853      if test dlopen != "$pass"; then
8854	test conv = "$pass" || {
8855	  # Make sure lib_search_path contains only unique directories.
8856	  lib_search_path=
8857	  for dir in $newlib_search_path; do
8858	    case "$lib_search_path " in
8859	    *" $dir "*) ;;
8860	    *) func_append lib_search_path " $dir" ;;
8861	    esac
8862	  done
8863	  newlib_search_path=
8864	}
8865
8866	if test prog,link = "$linkmode,$pass"; then
8867	  vars="compile_deplibs finalize_deplibs"
8868	else
8869	  vars=deplibs
8870	fi
8871	for var in $vars dependency_libs; do
8872	  # Add libraries to $var in reverse order
8873	  eval tmp_libs=\"\$$var\"
8874	  new_libs=
8875	  for deplib in $tmp_libs; do
8876	    # FIXME: Pedantically, this is the right thing to do, so
8877	    #        that some nasty dependency loop isn't accidentally
8878	    #        broken:
8879	    #new_libs="$deplib $new_libs"
8880	    # Pragmatically, this seems to cause very few problems in
8881	    # practice:
8882	    case $deplib in
8883	    -L*) new_libs="$deplib $new_libs" ;;
8884	    -R*) ;;
8885	    *)
8886	      # And here is the reason: when a library appears more
8887	      # than once as an explicit dependence of a library, or
8888	      # is implicitly linked in more than once by the
8889	      # compiler, it is considered special, and multiple
8890	      # occurrences thereof are not removed.  Compare this
8891	      # with having the same library being listed as a
8892	      # dependency of multiple other libraries: in this case,
8893	      # we know (pedantically, we assume) the library does not
8894	      # need to be listed more than once, so we keep only the
8895	      # last copy.  This is not always right, but it is rare
8896	      # enough that we require users that really mean to play
8897	      # such unportable linking tricks to link the library
8898	      # using -Wl,-lname, so that libtool does not consider it
8899	      # for duplicate removal.
8900	      case " $specialdeplibs " in
8901	      *" $deplib "*) new_libs="$deplib $new_libs" ;;
8902	      *)
8903		case " $new_libs " in
8904		*" $deplib "*) ;;
8905		*) new_libs="$deplib $new_libs" ;;
8906		esac
8907		;;
8908	      esac
8909	      ;;
8910	    esac
8911	  done
8912	  tmp_libs=
8913	  for deplib in $new_libs; do
8914	    case $deplib in
8915	    -L*)
8916	      case " $tmp_libs " in
8917	      *" $deplib "*) ;;
8918	      *) func_append tmp_libs " $deplib" ;;
8919	      esac
8920	      ;;
8921	    *) func_append tmp_libs " $deplib" ;;
8922	    esac
8923	  done
8924	  eval $var=\"$tmp_libs\"
8925	done # for var
8926      fi
8927
8928      # Add Sun CC postdeps if required:
8929      test CXX = "$tagname" && {
8930        case $host_os in
8931        linux*)
8932          case `$CC -V 2>&1 | $SED 5q` in
8933          *Sun\ C*) # Sun C++ 5.9
8934            func_suncc_cstd_abi
8935
8936            if test no != "$suncc_use_cstd_abi"; then
8937              func_append postdeps ' -library=Cstd -library=Crun'
8938            fi
8939            ;;
8940          esac
8941          ;;
8942
8943        solaris*)
8944          func_cc_basename "$CC"
8945          case $func_cc_basename_result in
8946          CC* | sunCC*)
8947            func_suncc_cstd_abi
8948
8949            if test no != "$suncc_use_cstd_abi"; then
8950              func_append postdeps ' -library=Cstd -library=Crun'
8951            fi
8952            ;;
8953          esac
8954          ;;
8955        esac
8956      }
8957
8958      # Last step: remove runtime libs from dependency_libs
8959      # (they stay in deplibs)
8960      tmp_libs=
8961      for i in $dependency_libs; do
8962	case " $predeps $postdeps $compiler_lib_search_path " in
8963	*" $i "*)
8964	  i=
8965	  ;;
8966	esac
8967	if test -n "$i"; then
8968	  func_append tmp_libs " $i"
8969	fi
8970      done
8971      dependency_libs=$tmp_libs
8972    done # for pass
8973    if test prog = "$linkmode"; then
8974      dlfiles=$newdlfiles
8975    fi
8976    if test prog = "$linkmode" || test lib = "$linkmode"; then
8977      dlprefiles=$newdlprefiles
8978    fi
8979
8980    case $linkmode in
8981    oldlib)
8982      if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then
8983	func_warning "'-dlopen' is ignored for archives"
8984      fi
8985
8986      case " $deplibs" in
8987      *\ -l* | *\ -L*)
8988	func_warning "'-l' and '-L' are ignored for archives" ;;
8989      esac
8990
8991      test -n "$rpath" && \
8992	func_warning "'-rpath' is ignored for archives"
8993
8994      test -n "$xrpath" && \
8995	func_warning "'-R' is ignored for archives"
8996
8997      test -n "$vinfo" && \
8998	func_warning "'-version-info/-version-number' is ignored for archives"
8999
9000      test -n "$release" && \
9001	func_warning "'-release' is ignored for archives"
9002
9003      test -n "$export_symbols$export_symbols_regex" && \
9004	func_warning "'-export-symbols' is ignored for archives"
9005
9006      # Now set the variables for building old libraries.
9007      build_libtool_libs=no
9008      oldlibs=$output
9009      func_append objs "$old_deplibs"
9010      ;;
9011
9012    lib)
9013      # Make sure we only generate libraries of the form 'libNAME.la'.
9014      case $outputname in
9015      lib*)
9016	func_stripname 'lib' '.la' "$outputname"
9017	name=$func_stripname_result
9018	eval shared_ext=\"$shrext_cmds\"
9019	eval libname=\"$libname_spec\"
9020	;;
9021      *)
9022	test no = "$module" \
9023	  && func_fatal_help "libtool library '$output' must begin with 'lib'"
9024
9025	if test no != "$need_lib_prefix"; then
9026	  # Add the "lib" prefix for modules if required
9027	  func_stripname '' '.la' "$outputname"
9028	  name=$func_stripname_result
9029	  eval shared_ext=\"$shrext_cmds\"
9030	  eval libname=\"$libname_spec\"
9031	else
9032	  func_stripname '' '.la' "$outputname"
9033	  libname=$func_stripname_result
9034	fi
9035	;;
9036      esac
9037
9038      if test -n "$objs"; then
9039	if test pass_all != "$deplibs_check_method"; then
9040	  func_fatal_error "cannot build libtool library '$output' from non-libtool objects on this host:$objs"
9041	else
9042	  echo
9043	  $ECHO "*** Warning: Linking the shared library $output against the non-libtool"
9044	  $ECHO "*** objects $objs is not portable!"
9045	  func_append libobjs " $objs"
9046	fi
9047      fi
9048
9049      test no = "$dlself" \
9050	|| func_warning "'-dlopen self' is ignored for libtool libraries"
9051
9052      set dummy $rpath
9053      shift
9054      test 1 -lt "$#" \
9055	&& func_warning "ignoring multiple '-rpath's for a libtool library"
9056
9057      install_libdir=$1
9058
9059      oldlibs=
9060      if test -z "$rpath"; then
9061	if test yes = "$build_libtool_libs"; then
9062	  # Building a libtool convenience library.
9063	  # Some compilers have problems with a '.al' extension so
9064	  # convenience libraries should have the same extension an
9065	  # archive normally would.
9066	  oldlibs="$output_objdir/$libname.$libext $oldlibs"
9067	  build_libtool_libs=convenience
9068	  build_old_libs=yes
9069	fi
9070
9071	test -n "$vinfo" && \
9072	  func_warning "'-version-info/-version-number' is ignored for convenience libraries"
9073
9074	test -n "$release" && \
9075	  func_warning "'-release' is ignored for convenience libraries"
9076      else
9077
9078	# Parse the version information argument.
9079	save_ifs=$IFS; IFS=:
9080	set dummy $vinfo 0 0 0
9081	shift
9082	IFS=$save_ifs
9083
9084	test -n "$7" && \
9085	  func_fatal_help "too many parameters to '-version-info'"
9086
9087	# convert absolute version numbers to libtool ages
9088	# this retains compatibility with .la files and attempts
9089	# to make the code below a bit more comprehensible
9090
9091	case $vinfo_number in
9092	yes)
9093	  number_major=$1
9094	  number_minor=$2
9095	  number_revision=$3
9096	  #
9097	  # There are really only two kinds -- those that
9098	  # use the current revision as the major version
9099	  # and those that subtract age and use age as
9100	  # a minor version.  But, then there is irix
9101	  # that has an extra 1 added just for fun
9102	  #
9103	  case $version_type in
9104	  # correct linux to gnu/linux during the next big refactor
9105	  darwin|freebsd-elf|linux|midnightbsd-elf|osf|windows|none)
9106	    func_arith $number_major + $number_minor
9107	    current=$func_arith_result
9108	    age=$number_minor
9109	    revision=$number_revision
9110	    ;;
9111	  freebsd-aout|qnx|sunos)
9112	    current=$number_major
9113	    revision=$number_minor
9114	    age=0
9115	    ;;
9116	  irix|nonstopux)
9117	    func_arith $number_major + $number_minor
9118	    current=$func_arith_result
9119	    age=$number_minor
9120	    revision=$number_minor
9121	    lt_irix_increment=no
9122	    ;;
9123	  esac
9124	  ;;
9125	no)
9126	  current=$1
9127	  revision=$2
9128	  age=$3
9129	  ;;
9130	esac
9131
9132	# Check that each of the things are valid numbers.
9133	case $current in
9134	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]) ;;
9135	*)
9136	  func_error "CURRENT '$current' must be a nonnegative integer"
9137	  func_fatal_error "'$vinfo' is not valid version information"
9138	  ;;
9139	esac
9140
9141	case $revision in
9142	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]) ;;
9143	*)
9144	  func_error "REVISION '$revision' must be a nonnegative integer"
9145	  func_fatal_error "'$vinfo' is not valid version information"
9146	  ;;
9147	esac
9148
9149	case $age in
9150	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]) ;;
9151	*)
9152	  func_error "AGE '$age' must be a nonnegative integer"
9153	  func_fatal_error "'$vinfo' is not valid version information"
9154	  ;;
9155	esac
9156
9157	if test "$age" -gt "$current"; then
9158	  func_error "AGE '$age' is greater than the current interface number '$current'"
9159	  func_fatal_error "'$vinfo' is not valid version information"
9160	fi
9161
9162	# Calculate the version variables.
9163	major=
9164	versuffix=
9165	verstring=
9166	case $version_type in
9167	none) ;;
9168
9169	darwin)
9170	  # Like Linux, but with the current version available in
9171	  # verstring for coding it into the library header
9172	  func_arith $current - $age
9173	  major=.$func_arith_result
9174	  versuffix=$major.$age.$revision
9175	  # Darwin ld doesn't like 0 for these options...
9176	  func_arith $current + 1
9177	  minor_current=$func_arith_result
9178	  xlcverstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision"
9179	  verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
9180          # On Darwin other compilers
9181          case $CC in
9182              nagfor*)
9183                  verstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision"
9184                  ;;
9185              *)
9186                  verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
9187                  ;;
9188          esac
9189	  ;;
9190
9191	freebsd-aout)
9192	  major=.$current
9193	  versuffix=.$current.$revision
9194	  ;;
9195
9196	freebsd-elf | midnightbsd-elf)
9197	  func_arith $current - $age
9198	  major=.$func_arith_result
9199	  versuffix=$major.$age.$revision
9200	  ;;
9201
9202	irix | nonstopux)
9203	  if test no = "$lt_irix_increment"; then
9204	    func_arith $current - $age
9205	  else
9206	    func_arith $current - $age + 1
9207	  fi
9208	  major=$func_arith_result
9209
9210	  case $version_type in
9211	    nonstopux) verstring_prefix=nonstopux ;;
9212	    *)         verstring_prefix=sgi ;;
9213	  esac
9214	  verstring=$verstring_prefix$major.$revision
9215
9216	  # Add in all the interfaces that we are compatible with.
9217	  loop=$revision
9218	  while test 0 -ne "$loop"; do
9219	    func_arith $revision - $loop
9220	    iface=$func_arith_result
9221	    func_arith $loop - 1
9222	    loop=$func_arith_result
9223	    verstring=$verstring_prefix$major.$iface:$verstring
9224	  done
9225
9226	  # Before this point, $major must not contain '.'.
9227	  major=.$major
9228	  versuffix=$major.$revision
9229	  ;;
9230
9231	linux) # correct to gnu/linux during the next big refactor
9232	  func_arith $current - $age
9233	  major=.$func_arith_result
9234	  versuffix=$major.$age.$revision
9235	  ;;
9236
9237	osf)
9238	  func_arith $current - $age
9239	  major=.$func_arith_result
9240	  versuffix=.$current.$age.$revision
9241	  verstring=$current.$age.$revision
9242
9243	  # Add in all the interfaces that we are compatible with.
9244	  loop=$age
9245	  while test 0 -ne "$loop"; do
9246	    func_arith $current - $loop
9247	    iface=$func_arith_result
9248	    func_arith $loop - 1
9249	    loop=$func_arith_result
9250	    verstring=$verstring:$iface.0
9251	  done
9252
9253	  # Make executables depend on our current version.
9254	  func_append verstring ":$current.0"
9255	  ;;
9256
9257	qnx)
9258	  major=.$current
9259	  versuffix=.$current
9260	  ;;
9261
9262	sco)
9263	  major=.$current
9264	  versuffix=.$current
9265	  ;;
9266
9267	sunos)
9268	  major=.$current
9269	  versuffix=.$current.$revision
9270	  ;;
9271
9272	windows)
9273	  # Use '-' rather than '.', since we only want one
9274	  # extension on DOS 8.3 file systems.
9275	  func_arith $current - $age
9276	  major=$func_arith_result
9277	  versuffix=-$major
9278	  ;;
9279
9280	*)
9281	  func_fatal_configuration "unknown library version type '$version_type'"
9282	  ;;
9283	esac
9284
9285	# Clear the version info if we defaulted, and they specified a release.
9286	if test -z "$vinfo" && test -n "$release"; then
9287	  major=
9288	  case $version_type in
9289	  darwin)
9290	    # we can't check for "0.0" in archive_cmds due to quoting
9291	    # problems, so we reset it completely
9292	    verstring=
9293	    ;;
9294	  *)
9295	    verstring=0.0
9296	    ;;
9297	  esac
9298	  if test no = "$need_version"; then
9299	    versuffix=
9300	  else
9301	    versuffix=.0.0
9302	  fi
9303	fi
9304
9305	# Remove version info from name if versioning should be avoided
9306	if test yes,no = "$avoid_version,$need_version"; then
9307	  major=
9308	  versuffix=
9309	  verstring=
9310	fi
9311
9312	# Check to see if the archive will have undefined symbols.
9313	if test yes = "$allow_undefined"; then
9314	  if test unsupported = "$allow_undefined_flag"; then
9315	    if test yes = "$build_old_libs"; then
9316	      func_warning "undefined symbols not allowed in $host shared libraries; building static only"
9317	      build_libtool_libs=no
9318	    else
9319	      func_fatal_error "can't build $host shared library unless -no-undefined is specified"
9320	    fi
9321	  fi
9322	else
9323	  # Don't allow undefined symbols.
9324	  allow_undefined_flag=$no_undefined_flag
9325	fi
9326
9327      fi
9328
9329      func_generate_dlsyms "$libname" "$libname" :
9330      func_append libobjs " $symfileobj"
9331      test " " = "$libobjs" && libobjs=
9332
9333      if test relink != "$opt_mode"; then
9334	# Remove our outputs, but don't remove object files since they
9335	# may have been created when compiling PIC objects.
9336	removelist=
9337	tempremovelist=`$ECHO "$output_objdir/*"`
9338	for p in $tempremovelist; do
9339	  case $p in
9340	    *.$objext | *.gcno)
9341	       ;;
9342	    $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/$libname$release.*)
9343	       if test -n "$precious_files_regex"; then
9344		 if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1
9345		 then
9346		   continue
9347		 fi
9348	       fi
9349	       func_append removelist " $p"
9350	       ;;
9351	    *) ;;
9352	  esac
9353	done
9354	test -n "$removelist" && \
9355	  func_show_eval "${RM}r \$removelist"
9356      fi
9357
9358      # Now set the variables for building old libraries.
9359      if test yes = "$build_old_libs" && test convenience != "$build_libtool_libs"; then
9360	func_append oldlibs " $output_objdir/$libname.$libext"
9361
9362	# Transform .lo files to .o files.
9363	oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.$libext$/d; $lo2o" | $NL2SP`
9364      fi
9365
9366      # Eliminate all temporary directories.
9367      #for path in $notinst_path; do
9368      #	lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"`
9369      #	deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"`
9370      #	dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"`
9371      #done
9372
9373      if test -n "$xrpath"; then
9374	# If the user specified any rpath flags, then add them.
9375	temp_xrpath=
9376	for libdir in $xrpath; do
9377	  func_replace_sysroot "$libdir"
9378	  func_append temp_xrpath " -R$func_replace_sysroot_result"
9379	  case "$finalize_rpath " in
9380	  *" $libdir "*) ;;
9381	  *) func_append finalize_rpath " $libdir" ;;
9382	  esac
9383	done
9384	if test yes != "$hardcode_into_libs" || test yes = "$build_old_libs"; then
9385	  dependency_libs="$temp_xrpath $dependency_libs"
9386	fi
9387      fi
9388
9389      # Make sure dlfiles contains only unique files that won't be dlpreopened
9390      old_dlfiles=$dlfiles
9391      dlfiles=
9392      for lib in $old_dlfiles; do
9393	case " $dlprefiles $dlfiles " in
9394	*" $lib "*) ;;
9395	*) func_append dlfiles " $lib" ;;
9396	esac
9397      done
9398
9399      # Make sure dlprefiles contains only unique files
9400      old_dlprefiles=$dlprefiles
9401      dlprefiles=
9402      for lib in $old_dlprefiles; do
9403	case "$dlprefiles " in
9404	*" $lib "*) ;;
9405	*) func_append dlprefiles " $lib" ;;
9406	esac
9407      done
9408
9409      if test yes = "$build_libtool_libs"; then
9410	if test -n "$rpath"; then
9411	  case $host in
9412	  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*)
9413	    # these systems don't actually have a c library (as such)!
9414	    ;;
9415	  *-*-rhapsody* | *-*-darwin1.[012])
9416	    # Rhapsody C library is in the System framework
9417	    func_append deplibs " System.ltframework"
9418	    ;;
9419	  *-*-netbsd*)
9420	    # Don't link with libc until the a.out ld.so is fixed.
9421	    ;;
9422	  *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-midnightbsd*)
9423	    # Do not include libc due to us having libc/libc_r.
9424	    ;;
9425	  *-*-sco3.2v5* | *-*-sco5v6*)
9426	    # Causes problems with __ctype
9427	    ;;
9428	  *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
9429	    # Compiler inserts libc in the correct place for threads to work
9430	    ;;
9431	  *)
9432	    # Add libc to deplibs on all other systems if necessary.
9433	    if test yes = "$build_libtool_need_lc"; then
9434	      func_append deplibs " -lc"
9435	    fi
9436	    ;;
9437	  esac
9438	fi
9439
9440	# Transform deplibs into only deplibs that can be linked in shared.
9441	name_save=$name
9442	libname_save=$libname
9443	release_save=$release
9444	versuffix_save=$versuffix
9445	major_save=$major
9446	# I'm not sure if I'm treating the release correctly.  I think
9447	# release should show up in the -l (ie -lgmp5) so we don't want to
9448	# add it in twice.  Is that correct?
9449	release=
9450	versuffix=
9451	major=
9452	newdeplibs=
9453	droppeddeps=no
9454	case $deplibs_check_method in
9455	pass_all)
9456	  # Don't check for shared/static.  Everything works.
9457	  # This might be a little naive.  We might want to check
9458	  # whether the library exists or not.  But this is on
9459	  # osf3 & osf4 and I'm not really sure... Just
9460	  # implementing what was already the behavior.
9461	  newdeplibs=$deplibs
9462	  ;;
9463	test_compile)
9464	  # This code stresses the "libraries are programs" paradigm to its
9465	  # limits. Maybe even breaks it.  We compile a program, linking it
9466	  # against the deplibs as a proxy for the library.  Then we can check
9467	  # whether they linked in statically or dynamically with ldd.
9468	  $opt_dry_run || $RM conftest.c
9469	  cat > conftest.c <<EOF
9470	  int main() { return 0; }
9471EOF
9472	  $opt_dry_run || $RM conftest
9473	  if $LTCC $LTCFLAGS -o conftest conftest.c $deplibs; then
9474	    ldd_output=`ldd conftest`
9475	    for i in $deplibs; do
9476	      case $i in
9477	      -l*)
9478		func_stripname -l '' "$i"
9479		name=$func_stripname_result
9480		if test yes = "$allow_libtool_libs_with_static_runtimes"; then
9481		  case " $predeps $postdeps " in
9482		  *" $i "*)
9483		    func_append newdeplibs " $i"
9484		    i=
9485		    ;;
9486		  esac
9487		fi
9488		if test -n "$i"; then
9489		  libname=`eval "\\$ECHO \"$libname_spec\""`
9490		  deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
9491		  set dummy $deplib_matches; shift
9492		  deplib_match=$1
9493		  if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0; then
9494		    func_append newdeplibs " $i"
9495		  else
9496		    droppeddeps=yes
9497		    echo
9498		    $ECHO "*** Warning: dynamic linker does not accept needed library $i."
9499		    echo "*** I have the capability to make that library automatically link in when"
9500		    echo "*** you link to this library.  But I can only do this if you have a"
9501		    echo "*** shared version of the library, which I believe you do not have"
9502		    echo "*** because a test_compile did reveal that the linker did not use it for"
9503		    echo "*** its dynamic dependency list that programs get resolved with at runtime."
9504		  fi
9505		fi
9506		;;
9507	      *)
9508		func_append newdeplibs " $i"
9509		;;
9510	      esac
9511	    done
9512	  else
9513	    # Error occurred in the first compile.  Let's try to salvage
9514	    # the situation: Compile a separate program for each library.
9515	    for i in $deplibs; do
9516	      case $i in
9517	      -l*)
9518		func_stripname -l '' "$i"
9519		name=$func_stripname_result
9520		$opt_dry_run || $RM conftest
9521		if $LTCC $LTCFLAGS -o conftest conftest.c $i; then
9522		  ldd_output=`ldd conftest`
9523		  if test yes = "$allow_libtool_libs_with_static_runtimes"; then
9524		    case " $predeps $postdeps " in
9525		    *" $i "*)
9526		      func_append newdeplibs " $i"
9527		      i=
9528		      ;;
9529		    esac
9530		  fi
9531		  if test -n "$i"; then
9532		    libname=`eval "\\$ECHO \"$libname_spec\""`
9533		    deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
9534		    set dummy $deplib_matches; shift
9535		    deplib_match=$1
9536		    if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0; then
9537		      func_append newdeplibs " $i"
9538		    else
9539		      droppeddeps=yes
9540		      echo
9541		      $ECHO "*** Warning: dynamic linker does not accept needed library $i."
9542		      echo "*** I have the capability to make that library automatically link in when"
9543		      echo "*** you link to this library.  But I can only do this if you have a"
9544		      echo "*** shared version of the library, which you do not appear to have"
9545		      echo "*** because a test_compile did reveal that the linker did not use this one"
9546		      echo "*** as a dynamic dependency that programs can get resolved with at runtime."
9547		    fi
9548		  fi
9549		else
9550		  droppeddeps=yes
9551		  echo
9552		  $ECHO "*** Warning!  Library $i is needed by this library but I was not able to"
9553		  echo "*** make it link in!  You will probably need to install it or some"
9554		  echo "*** library that it depends on before this library will be fully"
9555		  echo "*** functional.  Installing it before continuing would be even better."
9556		fi
9557		;;
9558	      *)
9559		func_append newdeplibs " $i"
9560		;;
9561	      esac
9562	    done
9563	  fi
9564	  ;;
9565	file_magic*)
9566	  set dummy $deplibs_check_method; shift
9567	  file_magic_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
9568	  for a_deplib in $deplibs; do
9569	    case $a_deplib in
9570	    -l*)
9571	      func_stripname -l '' "$a_deplib"
9572	      name=$func_stripname_result
9573	      if test yes = "$allow_libtool_libs_with_static_runtimes"; then
9574		case " $predeps $postdeps " in
9575		*" $a_deplib "*)
9576		  func_append newdeplibs " $a_deplib"
9577		  a_deplib=
9578		  ;;
9579		esac
9580	      fi
9581	      if test -n "$a_deplib"; then
9582		libname=`eval "\\$ECHO \"$libname_spec\""`
9583		if test -n "$file_magic_glob"; then
9584		  libnameglob=`func_echo_all "$libname" | $SED -e $file_magic_glob`
9585		else
9586		  libnameglob=$libname
9587		fi
9588		test yes = "$want_nocaseglob" && nocaseglob=`shopt -p nocaseglob`
9589		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
9590		  if test yes = "$want_nocaseglob"; then
9591		    shopt -s nocaseglob
9592		    potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null`
9593		    $nocaseglob
9594		  else
9595		    potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null`
9596		  fi
9597		  for potent_lib in $potential_libs; do
9598		      # Follow soft links.
9599		      if ls -lLd "$potent_lib" 2>/dev/null |
9600			 $GREP " -> " >/dev/null; then
9601			continue
9602		      fi
9603		      # The statement above tries to avoid entering an
9604		      # endless loop below, in case of cyclic links.
9605		      # We might still enter an endless loop, since a link
9606		      # loop can be closed while we follow links,
9607		      # but so what?
9608		      potlib=$potent_lib
9609		      while test -h "$potlib" 2>/dev/null; do
9610			potliblink=`ls -ld $potlib | $SED 's/.* -> //'`
9611			case $potliblink in
9612			[\\/]* | [A-Za-z]:[\\/]*) potlib=$potliblink;;
9613			*) potlib=`$ECHO "$potlib" | $SED 's|[^/]*$||'`"$potliblink";;
9614			esac
9615		      done
9616		      if eval $file_magic_cmd \"\$potlib\" 2>/dev/null |
9617			 $SED -e 10q |
9618			 $EGREP "$file_magic_regex" > /dev/null; then
9619			func_append newdeplibs " $a_deplib"
9620			a_deplib=
9621			break 2
9622		      fi
9623		  done
9624		done
9625	      fi
9626	      if test -n "$a_deplib"; then
9627		droppeddeps=yes
9628		echo
9629		$ECHO "*** Warning: linker path does not have real file for library $a_deplib."
9630		echo "*** I have the capability to make that library automatically link in when"
9631		echo "*** you link to this library.  But I can only do this if you have a"
9632		echo "*** shared version of the library, which you do not appear to have"
9633		echo "*** because I did check the linker path looking for a file starting"
9634		if test -z "$potlib"; then
9635		  $ECHO "*** with $libname but no candidates were found. (...for file magic test)"
9636		else
9637		  $ECHO "*** with $libname and none of the candidates passed a file format test"
9638		  $ECHO "*** using a file magic. Last file checked: $potlib"
9639		fi
9640	      fi
9641	      ;;
9642	    *)
9643	      # Add a -L argument.
9644	      func_append newdeplibs " $a_deplib"
9645	      ;;
9646	    esac
9647	  done # Gone through all deplibs.
9648	  ;;
9649	match_pattern*)
9650	  set dummy $deplibs_check_method; shift
9651	  match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
9652	  for a_deplib in $deplibs; do
9653	    case $a_deplib in
9654	    -l*)
9655	      func_stripname -l '' "$a_deplib"
9656	      name=$func_stripname_result
9657	      if test yes = "$allow_libtool_libs_with_static_runtimes"; then
9658		case " $predeps $postdeps " in
9659		*" $a_deplib "*)
9660		  func_append newdeplibs " $a_deplib"
9661		  a_deplib=
9662		  ;;
9663		esac
9664	      fi
9665	      if test -n "$a_deplib"; then
9666		libname=`eval "\\$ECHO \"$libname_spec\""`
9667		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
9668		  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
9669		  for potent_lib in $potential_libs; do
9670		    potlib=$potent_lib # see symlink-check above in file_magic test
9671		    if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \
9672		       $EGREP "$match_pattern_regex" > /dev/null; then
9673		      func_append newdeplibs " $a_deplib"
9674		      a_deplib=
9675		      break 2
9676		    fi
9677		  done
9678		done
9679	      fi
9680	      if test -n "$a_deplib"; then
9681		droppeddeps=yes
9682		echo
9683		$ECHO "*** Warning: linker path does not have real file for library $a_deplib."
9684		echo "*** I have the capability to make that library automatically link in when"
9685		echo "*** you link to this library.  But I can only do this if you have a"
9686		echo "*** shared version of the library, which you do not appear to have"
9687		echo "*** because I did check the linker path looking for a file starting"
9688		if test -z "$potlib"; then
9689		  $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)"
9690		else
9691		  $ECHO "*** with $libname and none of the candidates passed a file format test"
9692		  $ECHO "*** using a regex pattern. Last file checked: $potlib"
9693		fi
9694	      fi
9695	      ;;
9696	    *)
9697	      # Add a -L argument.
9698	      func_append newdeplibs " $a_deplib"
9699	      ;;
9700	    esac
9701	  done # Gone through all deplibs.
9702	  ;;
9703	none | unknown | *)
9704	  newdeplibs=
9705	  tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'`
9706	  if test yes = "$allow_libtool_libs_with_static_runtimes"; then
9707	    for i in $predeps $postdeps; do
9708	      # can't use Xsed below, because $i might contain '/'
9709	      tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s|$i||"`
9710	    done
9711	  fi
9712	  case $tmp_deplibs in
9713	  *[!\	\ ]*)
9714	    echo
9715	    if test none = "$deplibs_check_method"; then
9716	      echo "*** Warning: inter-library dependencies are not supported in this platform."
9717	    else
9718	      echo "*** Warning: inter-library dependencies are not known to be supported."
9719	    fi
9720	    echo "*** All declared inter-library dependencies are being dropped."
9721	    droppeddeps=yes
9722	    ;;
9723	  esac
9724	  ;;
9725	esac
9726	versuffix=$versuffix_save
9727	major=$major_save
9728	release=$release_save
9729	libname=$libname_save
9730	name=$name_save
9731
9732	case $host in
9733	*-*-rhapsody* | *-*-darwin1.[012])
9734	  # On Rhapsody replace the C library with the System framework
9735	  newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'`
9736	  ;;
9737	esac
9738
9739	if test yes = "$droppeddeps"; then
9740	  if test yes = "$module"; then
9741	    echo
9742	    echo "*** Warning: libtool could not satisfy all declared inter-library"
9743	    $ECHO "*** dependencies of module $libname.  Therefore, libtool will create"
9744	    echo "*** a static module, that should work as long as the dlopening"
9745	    echo "*** application is linked with the -dlopen flag."
9746	    if test -z "$global_symbol_pipe"; then
9747	      echo
9748	      echo "*** However, this would only work if libtool was able to extract symbol"
9749	      echo "*** lists from a program, using 'nm' or equivalent, but libtool could"
9750	      echo "*** not find such a program.  So, this module is probably useless."
9751	      echo "*** 'nm' from GNU binutils and a full rebuild may help."
9752	    fi
9753	    if test no = "$build_old_libs"; then
9754	      oldlibs=$output_objdir/$libname.$libext
9755	      build_libtool_libs=module
9756	      build_old_libs=yes
9757	    else
9758	      build_libtool_libs=no
9759	    fi
9760	  else
9761	    echo "*** The inter-library dependencies that have been dropped here will be"
9762	    echo "*** automatically added whenever a program is linked with this library"
9763	    echo "*** or is declared to -dlopen it."
9764
9765	    if test no = "$allow_undefined"; then
9766	      echo
9767	      echo "*** Since this library must not contain undefined symbols,"
9768	      echo "*** because either the platform does not support them or"
9769	      echo "*** it was explicitly requested with -no-undefined,"
9770	      echo "*** libtool will only create a static version of it."
9771	      if test no = "$build_old_libs"; then
9772		oldlibs=$output_objdir/$libname.$libext
9773		build_libtool_libs=module
9774		build_old_libs=yes
9775	      else
9776		build_libtool_libs=no
9777	      fi
9778	    fi
9779	  fi
9780	fi
9781	# Done checking deplibs!
9782	deplibs=$newdeplibs
9783      fi
9784      # Time to change all our "foo.ltframework" stuff back to "-framework foo"
9785      case $host in
9786	*-*-darwin*)
9787	  newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
9788	  new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
9789	  deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
9790	  ;;
9791      esac
9792
9793      # move library search paths that coincide with paths to not yet
9794      # installed libraries to the beginning of the library search list
9795      new_libs=
9796      for path in $notinst_path; do
9797	case " $new_libs " in
9798	*" -L$path/$objdir "*) ;;
9799	*)
9800	  case " $deplibs " in
9801	  *" -L$path/$objdir "*)
9802	    func_append new_libs " -L$path/$objdir" ;;
9803	  esac
9804	  ;;
9805	esac
9806      done
9807      for deplib in $deplibs; do
9808	case $deplib in
9809	-L*)
9810	  case " $new_libs " in
9811	  *" $deplib "*) ;;
9812	  *) func_append new_libs " $deplib" ;;
9813	  esac
9814	  ;;
9815	*) func_append new_libs " $deplib" ;;
9816	esac
9817      done
9818      deplibs=$new_libs
9819
9820      # All the library-specific variables (install_libdir is set above).
9821      library_names=
9822      old_library=
9823      dlname=
9824
9825      # Test again, we may have decided not to build it any more
9826      if test yes = "$build_libtool_libs"; then
9827	# Remove $wl instances when linking with ld.
9828	# FIXME: should test the right _cmds variable.
9829	case $archive_cmds in
9830	  *\$LD\ *) wl= ;;
9831        esac
9832	if test yes = "$hardcode_into_libs"; then
9833	  # Hardcode the library paths
9834	  hardcode_libdirs=
9835	  dep_rpath=
9836	  rpath=$finalize_rpath
9837	  test relink = "$opt_mode" || rpath=$compile_rpath$rpath
9838	  for libdir in $rpath; do
9839	    if test -n "$hardcode_libdir_flag_spec"; then
9840	      if test -n "$hardcode_libdir_separator"; then
9841		func_replace_sysroot "$libdir"
9842		libdir=$func_replace_sysroot_result
9843		if test -z "$hardcode_libdirs"; then
9844		  hardcode_libdirs=$libdir
9845		else
9846		  # Just accumulate the unique libdirs.
9847		  case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
9848		  *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
9849		    ;;
9850		  *)
9851		    func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
9852		    ;;
9853		  esac
9854		fi
9855	      else
9856		eval flag=\"$hardcode_libdir_flag_spec\"
9857		func_append dep_rpath " $flag"
9858	      fi
9859	    elif test -n "$runpath_var"; then
9860	      case "$perm_rpath " in
9861	      *" $libdir "*) ;;
9862	      *) func_append perm_rpath " $libdir" ;;
9863	      esac
9864	    fi
9865	  done
9866	  # Substitute the hardcoded libdirs into the rpath.
9867	  if test -n "$hardcode_libdir_separator" &&
9868	     test -n "$hardcode_libdirs"; then
9869	    libdir=$hardcode_libdirs
9870	    eval "dep_rpath=\"$hardcode_libdir_flag_spec\""
9871	  fi
9872	  if test -n "$runpath_var" && test -n "$perm_rpath"; then
9873	    # We should set the runpath_var.
9874	    rpath=
9875	    for dir in $perm_rpath; do
9876	      func_append rpath "$dir:"
9877	    done
9878	    eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
9879	  fi
9880	  test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
9881	fi
9882
9883	shlibpath=$finalize_shlibpath
9884	test relink = "$opt_mode" || shlibpath=$compile_shlibpath$shlibpath
9885	if test -n "$shlibpath"; then
9886	  eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
9887	fi
9888
9889	# Get the real and link names of the library.
9890	eval shared_ext=\"$shrext_cmds\"
9891	eval library_names=\"$library_names_spec\"
9892	set dummy $library_names
9893	shift
9894	realname=$1
9895	shift
9896
9897	if test -n "$soname_spec"; then
9898	  eval soname=\"$soname_spec\"
9899	else
9900	  soname=$realname
9901	fi
9902	if test -z "$dlname"; then
9903	  dlname=$soname
9904	fi
9905
9906	lib=$output_objdir/$realname
9907	linknames=
9908	for link
9909	do
9910	  func_append linknames " $link"
9911	done
9912
9913	# Use standard objects if they are pic
9914	test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP`
9915	test "X$libobjs" = "X " && libobjs=
9916
9917	delfiles=
9918	if test -n "$export_symbols" && test -n "$include_expsyms"; then
9919	  $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp"
9920	  export_symbols=$output_objdir/$libname.uexp
9921	  func_append delfiles " $export_symbols"
9922	fi
9923
9924	orig_export_symbols=
9925	case $host_os in
9926	cygwin* | mingw* | cegcc*)
9927	  if test -n "$export_symbols" && test -z "$export_symbols_regex"; then
9928	    # exporting using user supplied symfile
9929	    func_dll_def_p "$export_symbols" || {
9930	      # and it's NOT already a .def file. Must figure out
9931	      # which of the given symbols are data symbols and tag
9932	      # them as such. So, trigger use of export_symbols_cmds.
9933	      # export_symbols gets reassigned inside the "prepare
9934	      # the list of exported symbols" if statement, so the
9935	      # include_expsyms logic still works.
9936	      orig_export_symbols=$export_symbols
9937	      export_symbols=
9938	      always_export_symbols=yes
9939	    }
9940	  fi
9941	  ;;
9942	esac
9943
9944	# Prepare the list of exported symbols
9945	if test -z "$export_symbols"; then
9946	  if test yes = "$always_export_symbols" || test -n "$export_symbols_regex"; then
9947	    func_verbose "generating symbol list for '$libname.la'"
9948	    export_symbols=$output_objdir/$libname.exp
9949	    $opt_dry_run || $RM $export_symbols
9950	    cmds=$export_symbols_cmds
9951	    save_ifs=$IFS; IFS='~'
9952	    for cmd1 in $cmds; do
9953	      IFS=$save_ifs
9954	      # Take the normal branch if the nm_file_list_spec branch
9955	      # doesn't work or if tool conversion is not needed.
9956	      case $nm_file_list_spec~$to_tool_file_cmd in
9957		*~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*)
9958		  try_normal_branch=yes
9959		  eval cmd=\"$cmd1\"
9960		  func_len " $cmd"
9961		  len=$func_len_result
9962		  ;;
9963		*)
9964		  try_normal_branch=no
9965		  ;;
9966	      esac
9967	      if test yes = "$try_normal_branch" \
9968		 && { test "$len" -lt "$max_cmd_len" \
9969		      || test "$max_cmd_len" -le -1; }
9970	      then
9971		func_show_eval "$cmd" 'exit $?'
9972		skipped_export=false
9973	      elif test -n "$nm_file_list_spec"; then
9974		func_basename "$output"
9975		output_la=$func_basename_result
9976		save_libobjs=$libobjs
9977		save_output=$output
9978		output=$output_objdir/$output_la.nm
9979		func_to_tool_file "$output"
9980		libobjs=$nm_file_list_spec$func_to_tool_file_result
9981		func_append delfiles " $output"
9982		func_verbose "creating $NM input file list: $output"
9983		for obj in $save_libobjs; do
9984		  func_to_tool_file "$obj"
9985		  $ECHO "$func_to_tool_file_result"
9986		done > "$output"
9987		eval cmd=\"$cmd1\"
9988		func_show_eval "$cmd" 'exit $?'
9989		output=$save_output
9990		libobjs=$save_libobjs
9991		skipped_export=false
9992	      else
9993		# The command line is too long to execute in one step.
9994		func_verbose "using reloadable object file for export list..."
9995		skipped_export=:
9996		# Break out early, otherwise skipped_export may be
9997		# set to false by a later but shorter cmd.
9998		break
9999	      fi
10000	    done
10001	    IFS=$save_ifs
10002	    if test -n "$export_symbols_regex" && test : != "$skipped_export"; then
10003	      func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
10004	      func_show_eval '$MV "${export_symbols}T" "$export_symbols"'
10005	    fi
10006	  fi
10007	fi
10008
10009	if test -n "$export_symbols" && test -n "$include_expsyms"; then
10010	  tmp_export_symbols=$export_symbols
10011	  test -n "$orig_export_symbols" && tmp_export_symbols=$orig_export_symbols
10012	  $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"'
10013	fi
10014
10015	if test : != "$skipped_export" && test -n "$orig_export_symbols"; then
10016	  # The given exports_symbols file has to be filtered, so filter it.
10017	  func_verbose "filter symbol list for '$libname.la' to tag DATA exports"
10018	  # FIXME: $output_objdir/$libname.filter potentially contains lots of
10019	  # 's' commands, which not all seds can handle. GNU sed should be fine
10020	  # though. Also, the filter scales superlinearly with the number of
10021	  # global variables. join(1) would be nice here, but unfortunately
10022	  # isn't a blessed tool.
10023	  $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
10024	  func_append delfiles " $export_symbols $output_objdir/$libname.filter"
10025	  export_symbols=$output_objdir/$libname.def
10026	  $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
10027	fi
10028
10029	tmp_deplibs=
10030	for test_deplib in $deplibs; do
10031	  case " $convenience " in
10032	  *" $test_deplib "*) ;;
10033	  *)
10034	    func_append tmp_deplibs " $test_deplib"
10035	    ;;
10036	  esac
10037	done
10038	deplibs=$tmp_deplibs
10039
10040	if test -n "$convenience"; then
10041	  if test -n "$whole_archive_flag_spec" &&
10042	    test yes = "$compiler_needs_object" &&
10043	    test -z "$libobjs"; then
10044	    # extract the archives, so we have objects to list.
10045	    # TODO: could optimize this to just extract one archive.
10046	    whole_archive_flag_spec=
10047	  fi
10048	  if test -n "$whole_archive_flag_spec"; then
10049	    save_libobjs=$libobjs
10050	    eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
10051	    test "X$libobjs" = "X " && libobjs=
10052	  else
10053	    gentop=$output_objdir/${outputname}x
10054	    func_append generated " $gentop"
10055
10056	    func_extract_archives $gentop $convenience
10057	    func_append libobjs " $func_extract_archives_result"
10058	    test "X$libobjs" = "X " && libobjs=
10059	  fi
10060	fi
10061
10062	if test yes = "$thread_safe" && test -n "$thread_safe_flag_spec"; then
10063	  eval flag=\"$thread_safe_flag_spec\"
10064	  func_append linker_flags " $flag"
10065	fi
10066
10067	# Make a backup of the uninstalled library when relinking
10068	if test relink = "$opt_mode"; then
10069	  $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $?
10070	fi
10071
10072	# Do each of the archive commands.
10073	if test yes = "$module" && test -n "$module_cmds"; then
10074	  if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
10075	    eval test_cmds=\"$module_expsym_cmds\"
10076	    cmds=$module_expsym_cmds
10077	  else
10078	    eval test_cmds=\"$module_cmds\"
10079	    cmds=$module_cmds
10080	  fi
10081	else
10082	  if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
10083	    eval test_cmds=\"$archive_expsym_cmds\"
10084	    cmds=$archive_expsym_cmds
10085	  else
10086	    eval test_cmds=\"$archive_cmds\"
10087	    cmds=$archive_cmds
10088	  fi
10089	fi
10090
10091	if test : != "$skipped_export" &&
10092	   func_len " $test_cmds" &&
10093	   len=$func_len_result &&
10094	   test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
10095	  :
10096	else
10097	  # The command line is too long to link in one step, link piecewise
10098	  # or, if using GNU ld and skipped_export is not :, use a linker
10099	  # script.
10100
10101	  # Save the value of $output and $libobjs because we want to
10102	  # use them later.  If we have whole_archive_flag_spec, we
10103	  # want to use save_libobjs as it was before
10104	  # whole_archive_flag_spec was expanded, because we can't
10105	  # assume the linker understands whole_archive_flag_spec.
10106	  # This may have to be revisited, in case too many
10107	  # convenience libraries get linked in and end up exceeding
10108	  # the spec.
10109	  if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then
10110	    save_libobjs=$libobjs
10111	  fi
10112	  save_output=$output
10113	  func_basename "$output"
10114	  output_la=$func_basename_result
10115
10116	  # Clear the reloadable object creation command queue and
10117	  # initialize k to one.
10118	  test_cmds=
10119	  concat_cmds=
10120	  objlist=
10121	  last_robj=
10122	  k=1
10123
10124	  if test -n "$save_libobjs" && test : != "$skipped_export" && test yes = "$with_gnu_ld"; then
10125	    output=$output_objdir/$output_la.lnkscript
10126	    func_verbose "creating GNU ld script: $output"
10127	    echo 'INPUT (' > $output
10128	    for obj in $save_libobjs
10129	    do
10130	      func_to_tool_file "$obj"
10131	      $ECHO "$func_to_tool_file_result" >> $output
10132	    done
10133	    echo ')' >> $output
10134	    func_append delfiles " $output"
10135	    func_to_tool_file "$output"
10136	    output=$func_to_tool_file_result
10137	  elif test -n "$save_libobjs" && test : != "$skipped_export" && test -n "$file_list_spec"; then
10138	    output=$output_objdir/$output_la.lnk
10139	    func_verbose "creating linker input file list: $output"
10140	    : > $output
10141	    set x $save_libobjs
10142	    shift
10143	    firstobj=
10144	    if test yes = "$compiler_needs_object"; then
10145	      firstobj="$1 "
10146	      shift
10147	    fi
10148	    for obj
10149	    do
10150	      func_to_tool_file "$obj"
10151	      $ECHO "$func_to_tool_file_result" >> $output
10152	    done
10153	    func_append delfiles " $output"
10154	    func_to_tool_file "$output"
10155	    output=$firstobj\"$file_list_spec$func_to_tool_file_result\"
10156	  else
10157	    if test -n "$save_libobjs"; then
10158	      func_verbose "creating reloadable object files..."
10159	      output=$output_objdir/$output_la-$k.$objext
10160	      eval test_cmds=\"$reload_cmds\"
10161	      func_len " $test_cmds"
10162	      len0=$func_len_result
10163	      len=$len0
10164
10165	      # Loop over the list of objects to be linked.
10166	      for obj in $save_libobjs
10167	      do
10168		func_len " $obj"
10169		func_arith $len + $func_len_result
10170		len=$func_arith_result
10171		if test -z "$objlist" ||
10172		   test "$len" -lt "$max_cmd_len"; then
10173		  func_append objlist " $obj"
10174		else
10175		  # The command $test_cmds is almost too long, add a
10176		  # command to the queue.
10177		  if test 1 -eq "$k"; then
10178		    # The first file doesn't have a previous command to add.
10179		    reload_objs=$objlist
10180		    eval concat_cmds=\"$reload_cmds\"
10181		  else
10182		    # All subsequent reloadable object files will link in
10183		    # the last one created.
10184		    reload_objs="$objlist $last_robj"
10185		    eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\"
10186		  fi
10187		  last_robj=$output_objdir/$output_la-$k.$objext
10188		  func_arith $k + 1
10189		  k=$func_arith_result
10190		  output=$output_objdir/$output_la-$k.$objext
10191		  objlist=" $obj"
10192		  func_len " $last_robj"
10193		  func_arith $len0 + $func_len_result
10194		  len=$func_arith_result
10195		fi
10196	      done
10197	      # Handle the remaining objects by creating one last
10198	      # reloadable object file.  All subsequent reloadable object
10199	      # files will link in the last one created.
10200	      test -z "$concat_cmds" || concat_cmds=$concat_cmds~
10201	      reload_objs="$objlist $last_robj"
10202	      eval concat_cmds=\"\$concat_cmds$reload_cmds\"
10203	      if test -n "$last_robj"; then
10204	        eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\"
10205	      fi
10206	      func_append delfiles " $output"
10207
10208	    else
10209	      output=
10210	    fi
10211
10212	    ${skipped_export-false} && {
10213	      func_verbose "generating symbol list for '$libname.la'"
10214	      export_symbols=$output_objdir/$libname.exp
10215	      $opt_dry_run || $RM $export_symbols
10216	      libobjs=$output
10217	      # Append the command to create the export file.
10218	      test -z "$concat_cmds" || concat_cmds=$concat_cmds~
10219	      eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\"
10220	      if test -n "$last_robj"; then
10221		eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\"
10222	      fi
10223	    }
10224
10225	    test -n "$save_libobjs" &&
10226	      func_verbose "creating a temporary reloadable object file: $output"
10227
10228	    # Loop through the commands generated above and execute them.
10229	    save_ifs=$IFS; IFS='~'
10230	    for cmd in $concat_cmds; do
10231	      IFS=$save_ifs
10232	      $opt_quiet || {
10233		  func_quote_arg expand,pretty "$cmd"
10234		  eval "func_echo $func_quote_arg_result"
10235	      }
10236	      $opt_dry_run || eval "$cmd" || {
10237		lt_exit=$?
10238
10239		# Restore the uninstalled library and exit
10240		if test relink = "$opt_mode"; then
10241		  ( cd "$output_objdir" && \
10242		    $RM "${realname}T" && \
10243		    $MV "${realname}U" "$realname" )
10244		fi
10245
10246		exit $lt_exit
10247	      }
10248	    done
10249	    IFS=$save_ifs
10250
10251	    if test -n "$export_symbols_regex" && ${skipped_export-false}; then
10252	      func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
10253	      func_show_eval '$MV "${export_symbols}T" "$export_symbols"'
10254	    fi
10255	  fi
10256
10257          ${skipped_export-false} && {
10258	    if test -n "$export_symbols" && test -n "$include_expsyms"; then
10259	      tmp_export_symbols=$export_symbols
10260	      test -n "$orig_export_symbols" && tmp_export_symbols=$orig_export_symbols
10261	      $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"'
10262	    fi
10263
10264	    if test -n "$orig_export_symbols"; then
10265	      # The given exports_symbols file has to be filtered, so filter it.
10266	      func_verbose "filter symbol list for '$libname.la' to tag DATA exports"
10267	      # FIXME: $output_objdir/$libname.filter potentially contains lots of
10268	      # 's' commands, which not all seds can handle. GNU sed should be fine
10269	      # though. Also, the filter scales superlinearly with the number of
10270	      # global variables. join(1) would be nice here, but unfortunately
10271	      # isn't a blessed tool.
10272	      $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
10273	      func_append delfiles " $export_symbols $output_objdir/$libname.filter"
10274	      export_symbols=$output_objdir/$libname.def
10275	      $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
10276	    fi
10277	  }
10278
10279	  libobjs=$output
10280	  # Restore the value of output.
10281	  output=$save_output
10282
10283	  if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then
10284	    eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
10285	    test "X$libobjs" = "X " && libobjs=
10286	  fi
10287	  # Expand the library linking commands again to reset the
10288	  # value of $libobjs for piecewise linking.
10289
10290	  # Do each of the archive commands.
10291	  if test yes = "$module" && test -n "$module_cmds"; then
10292	    if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
10293	      cmds=$module_expsym_cmds
10294	    else
10295	      cmds=$module_cmds
10296	    fi
10297	  else
10298	    if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
10299	      cmds=$archive_expsym_cmds
10300	    else
10301	      cmds=$archive_cmds
10302	    fi
10303	  fi
10304	fi
10305
10306	if test -n "$delfiles"; then
10307	  # Append the command to remove temporary files to $cmds.
10308	  eval cmds=\"\$cmds~\$RM $delfiles\"
10309	fi
10310
10311	# Add any objects from preloaded convenience libraries
10312	if test -n "$dlprefiles"; then
10313	  gentop=$output_objdir/${outputname}x
10314	  func_append generated " $gentop"
10315
10316	  func_extract_archives $gentop $dlprefiles
10317	  func_append libobjs " $func_extract_archives_result"
10318	  test "X$libobjs" = "X " && libobjs=
10319	fi
10320
10321	save_ifs=$IFS; IFS='~'
10322	for cmd in $cmds; do
10323	  IFS=$sp$nl
10324	  eval cmd=\"$cmd\"
10325	  IFS=$save_ifs
10326	  $opt_quiet || {
10327	    func_quote_arg expand,pretty "$cmd"
10328	    eval "func_echo $func_quote_arg_result"
10329	  }
10330	  $opt_dry_run || eval "$cmd" || {
10331	    lt_exit=$?
10332
10333	    # Restore the uninstalled library and exit
10334	    if test relink = "$opt_mode"; then
10335	      ( cd "$output_objdir" && \
10336	        $RM "${realname}T" && \
10337		$MV "${realname}U" "$realname" )
10338	    fi
10339
10340	    exit $lt_exit
10341	  }
10342	done
10343	IFS=$save_ifs
10344
10345	# Restore the uninstalled library and exit
10346	if test relink = "$opt_mode"; then
10347	  $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $?
10348
10349	  if test -n "$convenience"; then
10350	    if test -z "$whole_archive_flag_spec"; then
10351	      func_show_eval '${RM}r "$gentop"'
10352	    fi
10353	  fi
10354
10355	  exit $EXIT_SUCCESS
10356	fi
10357
10358	# Create links to the real library.
10359	for linkname in $linknames; do
10360	  if test "$realname" != "$linkname"; then
10361	    func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?'
10362	  fi
10363	done
10364
10365	# If -module or -export-dynamic was specified, set the dlname.
10366	if test yes = "$module" || test yes = "$export_dynamic"; then
10367	  # On all known operating systems, these are identical.
10368	  dlname=$soname
10369	fi
10370      fi
10371      ;;
10372
10373    obj)
10374      if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then
10375	func_warning "'-dlopen' is ignored for objects"
10376      fi
10377
10378      case " $deplibs" in
10379      *\ -l* | *\ -L*)
10380	func_warning "'-l' and '-L' are ignored for objects" ;;
10381      esac
10382
10383      test -n "$rpath" && \
10384	func_warning "'-rpath' is ignored for objects"
10385
10386      test -n "$xrpath" && \
10387	func_warning "'-R' is ignored for objects"
10388
10389      test -n "$vinfo" && \
10390	func_warning "'-version-info' is ignored for objects"
10391
10392      test -n "$release" && \
10393	func_warning "'-release' is ignored for objects"
10394
10395      case $output in
10396      *.lo)
10397	test -n "$objs$old_deplibs" && \
10398	  func_fatal_error "cannot build library object '$output' from non-libtool objects"
10399
10400	libobj=$output
10401	func_lo2o "$libobj"
10402	obj=$func_lo2o_result
10403	;;
10404      *)
10405	libobj=
10406	obj=$output
10407	;;
10408      esac
10409
10410      # Delete the old objects.
10411      $opt_dry_run || $RM $obj $libobj
10412
10413      # Objects from convenience libraries.  This assumes
10414      # single-version convenience libraries.  Whenever we create
10415      # different ones for PIC/non-PIC, this we'll have to duplicate
10416      # the extraction.
10417      reload_conv_objs=
10418      gentop=
10419      # if reload_cmds runs $LD directly, get rid of -Wl from
10420      # whole_archive_flag_spec and hope we can get by with turning comma
10421      # into space.
10422      case $reload_cmds in
10423        *\$LD[\ \$]*) wl= ;;
10424      esac
10425      if test -n "$convenience"; then
10426	if test -n "$whole_archive_flag_spec"; then
10427	  eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\"
10428	  test -n "$wl" || tmp_whole_archive_flags=`$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'`
10429	  reload_conv_objs=$reload_objs\ $tmp_whole_archive_flags
10430	else
10431	  gentop=$output_objdir/${obj}x
10432	  func_append generated " $gentop"
10433
10434	  func_extract_archives $gentop $convenience
10435	  reload_conv_objs="$reload_objs $func_extract_archives_result"
10436	fi
10437      fi
10438
10439      # If we're not building shared, we need to use non_pic_objs
10440      test yes = "$build_libtool_libs" || libobjs=$non_pic_objects
10441
10442      # Create the old-style object.
10443      reload_objs=$objs$old_deplibs' '`$ECHO "$libobjs" | $SP2NL | $SED "/\.$libext$/d; /\.lib$/d; $lo2o" | $NL2SP`' '$reload_conv_objs
10444
10445      output=$obj
10446      func_execute_cmds "$reload_cmds" 'exit $?'
10447
10448      # Exit if we aren't doing a library object file.
10449      if test -z "$libobj"; then
10450	if test -n "$gentop"; then
10451	  func_show_eval '${RM}r "$gentop"'
10452	fi
10453
10454	exit $EXIT_SUCCESS
10455      fi
10456
10457      test yes = "$build_libtool_libs" || {
10458	if test -n "$gentop"; then
10459	  func_show_eval '${RM}r "$gentop"'
10460	fi
10461
10462	# Create an invalid libtool object if no PIC, so that we don't
10463	# accidentally link it into a program.
10464	# $show "echo timestamp > $libobj"
10465	# $opt_dry_run || eval "echo timestamp > $libobj" || exit $?
10466	exit $EXIT_SUCCESS
10467      }
10468
10469      if test -n "$pic_flag" || test default != "$pic_mode"; then
10470	# Only do commands if we really have different PIC objects.
10471	reload_objs="$libobjs $reload_conv_objs"
10472	output=$libobj
10473	func_execute_cmds "$reload_cmds" 'exit $?'
10474      fi
10475
10476      if test -n "$gentop"; then
10477	func_show_eval '${RM}r "$gentop"'
10478      fi
10479
10480      exit $EXIT_SUCCESS
10481      ;;
10482
10483    prog)
10484      case $host in
10485	*cygwin*) func_stripname '' '.exe' "$output"
10486	          output=$func_stripname_result.exe;;
10487      esac
10488      test -n "$vinfo" && \
10489	func_warning "'-version-info' is ignored for programs"
10490
10491      test -n "$release" && \
10492	func_warning "'-release' is ignored for programs"
10493
10494      $preload \
10495	&& test unknown,unknown,unknown = "$dlopen_support,$dlopen_self,$dlopen_self_static" \
10496	&& func_warning "'LT_INIT([dlopen])' not used. Assuming no dlopen support."
10497
10498      case $host in
10499      *-*-rhapsody* | *-*-darwin1.[012])
10500	# On Rhapsody replace the C library is the System framework
10501	compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'`
10502	finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'`
10503	;;
10504      esac
10505
10506      case $host in
10507      *-*-darwin*)
10508	# Don't allow lazy linking, it breaks C++ global constructors
10509	# But is supposedly fixed on 10.4 or later (yay!).
10510	if test CXX = "$tagname"; then
10511	  case ${MACOSX_DEPLOYMENT_TARGET-10.0} in
10512	    10.[0123])
10513	      func_append compile_command " $wl-bind_at_load"
10514	      func_append finalize_command " $wl-bind_at_load"
10515	    ;;
10516	  esac
10517	fi
10518	# Time to change all our "foo.ltframework" stuff back to "-framework foo"
10519	compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
10520	finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
10521	;;
10522      esac
10523
10524
10525      # move library search paths that coincide with paths to not yet
10526      # installed libraries to the beginning of the library search list
10527      new_libs=
10528      for path in $notinst_path; do
10529	case " $new_libs " in
10530	*" -L$path/$objdir "*) ;;
10531	*)
10532	  case " $compile_deplibs " in
10533	  *" -L$path/$objdir "*)
10534	    func_append new_libs " -L$path/$objdir" ;;
10535	  esac
10536	  ;;
10537	esac
10538      done
10539      for deplib in $compile_deplibs; do
10540	case $deplib in
10541	-L*)
10542	  case " $new_libs " in
10543	  *" $deplib "*) ;;
10544	  *) func_append new_libs " $deplib" ;;
10545	  esac
10546	  ;;
10547	*) func_append new_libs " $deplib" ;;
10548	esac
10549      done
10550      compile_deplibs=$new_libs
10551
10552
10553      func_append compile_command " $compile_deplibs"
10554      func_append finalize_command " $finalize_deplibs"
10555
10556      if test -n "$rpath$xrpath"; then
10557	# If the user specified any rpath flags, then add them.
10558	for libdir in $rpath $xrpath; do
10559	  # This is the magic to use -rpath.
10560	  case "$finalize_rpath " in
10561	  *" $libdir "*) ;;
10562	  *) func_append finalize_rpath " $libdir" ;;
10563	  esac
10564	done
10565      fi
10566
10567      # Now hardcode the library paths
10568      rpath=
10569      hardcode_libdirs=
10570      for libdir in $compile_rpath $finalize_rpath; do
10571	if test -n "$hardcode_libdir_flag_spec"; then
10572	  if test -n "$hardcode_libdir_separator"; then
10573	    if test -z "$hardcode_libdirs"; then
10574	      hardcode_libdirs=$libdir
10575	    else
10576	      # Just accumulate the unique libdirs.
10577	      case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
10578	      *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
10579		;;
10580	      *)
10581		func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
10582		;;
10583	      esac
10584	    fi
10585	  else
10586	    eval flag=\"$hardcode_libdir_flag_spec\"
10587	    func_append rpath " $flag"
10588	  fi
10589	elif test -n "$runpath_var"; then
10590	  case "$perm_rpath " in
10591	  *" $libdir "*) ;;
10592	  *) func_append perm_rpath " $libdir" ;;
10593	  esac
10594	fi
10595	case $host in
10596	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
10597	  testbindir=`$ECHO "$libdir" | $SED -e 's*/lib$*/bin*'`
10598	  case :$dllsearchpath: in
10599	  *":$libdir:"*) ;;
10600	  ::) dllsearchpath=$libdir;;
10601	  *) func_append dllsearchpath ":$libdir";;
10602	  esac
10603	  case :$dllsearchpath: in
10604	  *":$testbindir:"*) ;;
10605	  ::) dllsearchpath=$testbindir;;
10606	  *) func_append dllsearchpath ":$testbindir";;
10607	  esac
10608	  ;;
10609	esac
10610      done
10611      # Substitute the hardcoded libdirs into the rpath.
10612      if test -n "$hardcode_libdir_separator" &&
10613	 test -n "$hardcode_libdirs"; then
10614	libdir=$hardcode_libdirs
10615	eval rpath=\" $hardcode_libdir_flag_spec\"
10616      fi
10617      compile_rpath=$rpath
10618
10619      rpath=
10620      hardcode_libdirs=
10621      for libdir in $finalize_rpath; do
10622	if test -n "$hardcode_libdir_flag_spec"; then
10623	  if test -n "$hardcode_libdir_separator"; then
10624	    if test -z "$hardcode_libdirs"; then
10625	      hardcode_libdirs=$libdir
10626	    else
10627	      # Just accumulate the unique libdirs.
10628	      case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
10629	      *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
10630		;;
10631	      *)
10632		func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
10633		;;
10634	      esac
10635	    fi
10636	  else
10637	    eval flag=\"$hardcode_libdir_flag_spec\"
10638	    func_append rpath " $flag"
10639	  fi
10640	elif test -n "$runpath_var"; then
10641	  case "$finalize_perm_rpath " in
10642	  *" $libdir "*) ;;
10643	  *) func_append finalize_perm_rpath " $libdir" ;;
10644	  esac
10645	fi
10646      done
10647      # Substitute the hardcoded libdirs into the rpath.
10648      if test -n "$hardcode_libdir_separator" &&
10649	 test -n "$hardcode_libdirs"; then
10650	libdir=$hardcode_libdirs
10651	eval rpath=\" $hardcode_libdir_flag_spec\"
10652      fi
10653      finalize_rpath=$rpath
10654
10655      if test -n "$libobjs" && test yes = "$build_old_libs"; then
10656	# Transform all the library objects into standard objects.
10657	compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP`
10658	finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP`
10659      fi
10660
10661      func_generate_dlsyms "$outputname" "@PROGRAM@" false
10662
10663      # template prelinking step
10664      if test -n "$prelink_cmds"; then
10665	func_execute_cmds "$prelink_cmds" 'exit $?'
10666      fi
10667
10668      wrappers_required=:
10669      case $host in
10670      *cegcc* | *mingw32ce*)
10671        # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway.
10672        wrappers_required=false
10673        ;;
10674      *cygwin* | *mingw* )
10675        test yes = "$build_libtool_libs" || wrappers_required=false
10676        ;;
10677      *)
10678        if test no = "$need_relink" || test yes != "$build_libtool_libs"; then
10679          wrappers_required=false
10680        fi
10681        ;;
10682      esac
10683      $wrappers_required || {
10684	# Replace the output file specification.
10685	compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'`
10686	link_command=$compile_command$compile_rpath
10687
10688	# We have no uninstalled library dependencies, so finalize right now.
10689	exit_status=0
10690	func_show_eval "$link_command" 'exit_status=$?'
10691
10692	if test -n "$postlink_cmds"; then
10693	  func_to_tool_file "$output"
10694	  postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
10695	  func_execute_cmds "$postlink_cmds" 'exit $?'
10696	fi
10697
10698	# Delete the generated files.
10699	if test -f "$output_objdir/${outputname}S.$objext"; then
10700	  func_show_eval '$RM "$output_objdir/${outputname}S.$objext"'
10701	fi
10702
10703	exit $exit_status
10704      }
10705
10706      if test -n "$compile_shlibpath$finalize_shlibpath"; then
10707	compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
10708      fi
10709      if test -n "$finalize_shlibpath"; then
10710	finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
10711      fi
10712
10713      compile_var=
10714      finalize_var=
10715      if test -n "$runpath_var"; then
10716	if test -n "$perm_rpath"; then
10717	  # We should set the runpath_var.
10718	  rpath=
10719	  for dir in $perm_rpath; do
10720	    func_append rpath "$dir:"
10721	  done
10722	  compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
10723	fi
10724	if test -n "$finalize_perm_rpath"; then
10725	  # We should set the runpath_var.
10726	  rpath=
10727	  for dir in $finalize_perm_rpath; do
10728	    func_append rpath "$dir:"
10729	  done
10730	  finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
10731	fi
10732      fi
10733
10734      if test yes = "$no_install"; then
10735	# We don't need to create a wrapper script.
10736	link_command=$compile_var$compile_command$compile_rpath
10737	# Replace the output file specification.
10738	link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'`
10739	# Delete the old output file.
10740	$opt_dry_run || $RM $output
10741	# Link the executable and exit
10742	func_show_eval "$link_command" 'exit $?'
10743
10744	if test -n "$postlink_cmds"; then
10745	  func_to_tool_file "$output"
10746	  postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
10747	  func_execute_cmds "$postlink_cmds" 'exit $?'
10748	fi
10749
10750	exit $EXIT_SUCCESS
10751      fi
10752
10753      case $hardcode_action,$fast_install in
10754        relink,*)
10755	  # Fast installation is not supported
10756	  link_command=$compile_var$compile_command$compile_rpath
10757	  relink_command=$finalize_var$finalize_command$finalize_rpath
10758
10759	  func_warning "this platform does not like uninstalled shared libraries"
10760	  func_warning "'$output' will be relinked during installation"
10761	  ;;
10762        *,yes)
10763	  link_command=$finalize_var$compile_command$finalize_rpath
10764	  relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'`
10765          ;;
10766	*,no)
10767	  link_command=$compile_var$compile_command$compile_rpath
10768	  relink_command=$finalize_var$finalize_command$finalize_rpath
10769          ;;
10770	*,needless)
10771	  link_command=$finalize_var$compile_command$finalize_rpath
10772	  relink_command=
10773          ;;
10774      esac
10775
10776      # Replace the output file specification.
10777      link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
10778
10779      # Delete the old output files.
10780      $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname
10781
10782      func_show_eval "$link_command" 'exit $?'
10783
10784      if test -n "$postlink_cmds"; then
10785	func_to_tool_file "$output_objdir/$outputname"
10786	postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
10787	func_execute_cmds "$postlink_cmds" 'exit $?'
10788      fi
10789
10790      # Now create the wrapper script.
10791      func_verbose "creating $output"
10792
10793      # Quote the relink command for shipping.
10794      if test -n "$relink_command"; then
10795	# Preserve any variables that may affect compiler behavior
10796	for var in $variables_saved_for_relink; do
10797	  if eval test -z \"\${$var+set}\"; then
10798	    relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command"
10799	  elif eval var_value=\$$var; test -z "$var_value"; then
10800	    relink_command="$var=; export $var; $relink_command"
10801	  else
10802	    func_quote_arg pretty "$var_value"
10803	    relink_command="$var=$func_quote_arg_result; export $var; $relink_command"
10804	  fi
10805	done
10806	func_quote eval cd "`pwd`"
10807	func_quote_arg pretty,unquoted "($func_quote_result; $relink_command)"
10808	relink_command=$func_quote_arg_unquoted_result
10809      fi
10810
10811      # Only actually do things if not in dry run mode.
10812      $opt_dry_run || {
10813	# win32 will think the script is a binary if it has
10814	# a .exe suffix, so we strip it off here.
10815	case $output in
10816	  *.exe) func_stripname '' '.exe' "$output"
10817	         output=$func_stripname_result ;;
10818	esac
10819	# test for cygwin because mv fails w/o .exe extensions
10820	case $host in
10821	  *cygwin*)
10822	    exeext=.exe
10823	    func_stripname '' '.exe' "$outputname"
10824	    outputname=$func_stripname_result ;;
10825	  *) exeext= ;;
10826	esac
10827	case $host in
10828	  *cygwin* | *mingw* )
10829	    func_dirname_and_basename "$output" "" "."
10830	    output_name=$func_basename_result
10831	    output_path=$func_dirname_result
10832	    cwrappersource=$output_path/$objdir/lt-$output_name.c
10833	    cwrapper=$output_path/$output_name.exe
10834	    $RM $cwrappersource $cwrapper
10835	    trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15
10836
10837	    func_emit_cwrapperexe_src > $cwrappersource
10838
10839	    # The wrapper executable is built using the $host compiler,
10840	    # because it contains $host paths and files. If cross-
10841	    # compiling, it, like the target executable, must be
10842	    # executed on the $host or under an emulation environment.
10843	    $opt_dry_run || {
10844	      $LTCC $LTCFLAGS -o $cwrapper $cwrappersource
10845	      $STRIP $cwrapper
10846	    }
10847
10848	    # Now, create the wrapper script for func_source use:
10849	    func_ltwrapper_scriptname $cwrapper
10850	    $RM $func_ltwrapper_scriptname_result
10851	    trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15
10852	    $opt_dry_run || {
10853	      # note: this script will not be executed, so do not chmod.
10854	      if test "x$build" = "x$host"; then
10855		$cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result
10856	      else
10857		func_emit_wrapper no > $func_ltwrapper_scriptname_result
10858	      fi
10859	    }
10860	  ;;
10861	  * )
10862	    $RM $output
10863	    trap "$RM $output; exit $EXIT_FAILURE" 1 2 15
10864
10865	    func_emit_wrapper no > $output
10866	    chmod +x $output
10867	  ;;
10868	esac
10869      }
10870      exit $EXIT_SUCCESS
10871      ;;
10872    esac
10873
10874    # See if we need to build an old-fashioned archive.
10875    for oldlib in $oldlibs; do
10876
10877      case $build_libtool_libs in
10878        convenience)
10879	  oldobjs="$libobjs_save $symfileobj"
10880	  addlibs=$convenience
10881	  build_libtool_libs=no
10882	  ;;
10883	module)
10884	  oldobjs=$libobjs_save
10885	  addlibs=$old_convenience
10886	  build_libtool_libs=no
10887          ;;
10888	*)
10889	  oldobjs="$old_deplibs $non_pic_objects"
10890	  $preload && test -f "$symfileobj" \
10891	    && func_append oldobjs " $symfileobj"
10892	  addlibs=$old_convenience
10893	  ;;
10894      esac
10895
10896      if test -n "$addlibs"; then
10897	gentop=$output_objdir/${outputname}x
10898	func_append generated " $gentop"
10899
10900	func_extract_archives $gentop $addlibs
10901	func_append oldobjs " $func_extract_archives_result"
10902      fi
10903
10904      # Do each command in the archive commands.
10905      if test -n "$old_archive_from_new_cmds" && test yes = "$build_libtool_libs"; then
10906	cmds=$old_archive_from_new_cmds
10907      else
10908
10909	# Add any objects from preloaded convenience libraries
10910	if test -n "$dlprefiles"; then
10911	  gentop=$output_objdir/${outputname}x
10912	  func_append generated " $gentop"
10913
10914	  func_extract_archives $gentop $dlprefiles
10915	  func_append oldobjs " $func_extract_archives_result"
10916	fi
10917
10918	# POSIX demands no paths to be encoded in archives.  We have
10919	# to avoid creating archives with duplicate basenames if we
10920	# might have to extract them afterwards, e.g., when creating a
10921	# static archive out of a convenience library, or when linking
10922	# the entirety of a libtool archive into another (currently
10923	# not supported by libtool).
10924	if (for obj in $oldobjs
10925	    do
10926	      func_basename "$obj"
10927	      $ECHO "$func_basename_result"
10928	    done | sort | sort -uc >/dev/null 2>&1); then
10929	  :
10930	else
10931	  echo "copying selected object files to avoid basename conflicts..."
10932	  gentop=$output_objdir/${outputname}x
10933	  func_append generated " $gentop"
10934	  func_mkdir_p "$gentop"
10935	  save_oldobjs=$oldobjs
10936	  oldobjs=
10937	  counter=1
10938	  for obj in $save_oldobjs
10939	  do
10940	    func_basename "$obj"
10941	    objbase=$func_basename_result
10942	    case " $oldobjs " in
10943	    " ") oldobjs=$obj ;;
10944	    *[\ /]"$objbase "*)
10945	      while :; do
10946		# Make sure we don't pick an alternate name that also
10947		# overlaps.
10948		newobj=lt$counter-$objbase
10949		func_arith $counter + 1
10950		counter=$func_arith_result
10951		case " $oldobjs " in
10952		*[\ /]"$newobj "*) ;;
10953		*) if test ! -f "$gentop/$newobj"; then break; fi ;;
10954		esac
10955	      done
10956	      func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj"
10957	      func_append oldobjs " $gentop/$newobj"
10958	      ;;
10959	    *) func_append oldobjs " $obj" ;;
10960	    esac
10961	  done
10962	fi
10963	func_to_tool_file "$oldlib" func_convert_file_msys_to_w32
10964	tool_oldlib=$func_to_tool_file_result
10965	eval cmds=\"$old_archive_cmds\"
10966
10967	func_len " $cmds"
10968	len=$func_len_result
10969	if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
10970	  cmds=$old_archive_cmds
10971	elif test -n "$archiver_list_spec"; then
10972	  func_verbose "using command file archive linking..."
10973	  for obj in $oldobjs
10974	  do
10975	    func_to_tool_file "$obj"
10976	    $ECHO "$func_to_tool_file_result"
10977	  done > $output_objdir/$libname.libcmd
10978	  func_to_tool_file "$output_objdir/$libname.libcmd"
10979	  oldobjs=" $archiver_list_spec$func_to_tool_file_result"
10980	  cmds=$old_archive_cmds
10981	else
10982	  # the command line is too long to link in one step, link in parts
10983	  func_verbose "using piecewise archive linking..."
10984	  save_RANLIB=$RANLIB
10985	  RANLIB=:
10986	  objlist=
10987	  concat_cmds=
10988	  save_oldobjs=$oldobjs
10989	  oldobjs=
10990	  # Is there a better way of finding the last object in the list?
10991	  for obj in $save_oldobjs
10992	  do
10993	    last_oldobj=$obj
10994	  done
10995	  eval test_cmds=\"$old_archive_cmds\"
10996	  func_len " $test_cmds"
10997	  len0=$func_len_result
10998	  len=$len0
10999	  for obj in $save_oldobjs
11000	  do
11001	    func_len " $obj"
11002	    func_arith $len + $func_len_result
11003	    len=$func_arith_result
11004	    func_append objlist " $obj"
11005	    if test "$len" -lt "$max_cmd_len"; then
11006	      :
11007	    else
11008	      # the above command should be used before it gets too long
11009	      oldobjs=$objlist
11010	      if test "$obj" = "$last_oldobj"; then
11011		RANLIB=$save_RANLIB
11012	      fi
11013	      test -z "$concat_cmds" || concat_cmds=$concat_cmds~
11014	      eval concat_cmds=\"\$concat_cmds$old_archive_cmds\"
11015	      objlist=
11016	      len=$len0
11017	    fi
11018	  done
11019	  RANLIB=$save_RANLIB
11020	  oldobjs=$objlist
11021	  if test -z "$oldobjs"; then
11022	    eval cmds=\"\$concat_cmds\"
11023	  else
11024	    eval cmds=\"\$concat_cmds~\$old_archive_cmds\"
11025	  fi
11026	fi
11027      fi
11028      func_execute_cmds "$cmds" 'exit $?'
11029    done
11030
11031    test -n "$generated" && \
11032      func_show_eval "${RM}r$generated"
11033
11034    # Now create the libtool archive.
11035    case $output in
11036    *.la)
11037      old_library=
11038      test yes = "$build_old_libs" && old_library=$libname.$libext
11039      func_verbose "creating $output"
11040
11041      # Preserve any variables that may affect compiler behavior
11042      for var in $variables_saved_for_relink; do
11043	if eval test -z \"\${$var+set}\"; then
11044	  relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command"
11045	elif eval var_value=\$$var; test -z "$var_value"; then
11046	  relink_command="$var=; export $var; $relink_command"
11047	else
11048	  func_quote_arg pretty,unquoted "$var_value"
11049	  relink_command="$var=$func_quote_arg_unquoted_result; export $var; $relink_command"
11050	fi
11051      done
11052      # Quote the link command for shipping.
11053      func_quote eval cd "`pwd`"
11054      relink_command="($func_quote_result; $SHELL \"$progpath\" $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
11055      func_quote_arg pretty,unquoted "$relink_command"
11056      relink_command=$func_quote_arg_unquoted_result
11057      if test yes = "$hardcode_automatic"; then
11058	relink_command=
11059      fi
11060
11061      # Only create the output if not a dry run.
11062      $opt_dry_run || {
11063	for installed in no yes; do
11064	  if test yes = "$installed"; then
11065	    if test -z "$install_libdir"; then
11066	      break
11067	    fi
11068	    output=$output_objdir/${outputname}i
11069	    # Replace all uninstalled libtool libraries with the installed ones
11070	    newdependency_libs=
11071	    for deplib in $dependency_libs; do
11072	      case $deplib in
11073	      *.la)
11074		func_basename "$deplib"
11075		name=$func_basename_result
11076		func_resolve_sysroot "$deplib"
11077		eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result`
11078		test -z "$libdir" && \
11079		  func_fatal_error "'$deplib' is not a valid libtool archive"
11080		func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name"
11081		;;
11082	      -L*)
11083		func_stripname -L '' "$deplib"
11084		func_replace_sysroot "$func_stripname_result"
11085		func_append newdependency_libs " -L$func_replace_sysroot_result"
11086		;;
11087	      -R*)
11088		func_stripname -R '' "$deplib"
11089		func_replace_sysroot "$func_stripname_result"
11090		func_append newdependency_libs " -R$func_replace_sysroot_result"
11091		;;
11092	      *) func_append newdependency_libs " $deplib" ;;
11093	      esac
11094	    done
11095	    dependency_libs=$newdependency_libs
11096	    newdlfiles=
11097
11098	    for lib in $dlfiles; do
11099	      case $lib in
11100	      *.la)
11101	        func_basename "$lib"
11102		name=$func_basename_result
11103		eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
11104		test -z "$libdir" && \
11105		  func_fatal_error "'$lib' is not a valid libtool archive"
11106		func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name"
11107		;;
11108	      *) func_append newdlfiles " $lib" ;;
11109	      esac
11110	    done
11111	    dlfiles=$newdlfiles
11112	    newdlprefiles=
11113	    for lib in $dlprefiles; do
11114	      case $lib in
11115	      *.la)
11116		# Only pass preopened files to the pseudo-archive (for
11117		# eventual linking with the app. that links it) if we
11118		# didn't already link the preopened objects directly into
11119		# the library:
11120		func_basename "$lib"
11121		name=$func_basename_result
11122		eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
11123		test -z "$libdir" && \
11124		  func_fatal_error "'$lib' is not a valid libtool archive"
11125		func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name"
11126		;;
11127	      esac
11128	    done
11129	    dlprefiles=$newdlprefiles
11130	  else
11131	    newdlfiles=
11132	    for lib in $dlfiles; do
11133	      case $lib in
11134		[\\/]* | [A-Za-z]:[\\/]*) abs=$lib ;;
11135		*) abs=`pwd`"/$lib" ;;
11136	      esac
11137	      func_append newdlfiles " $abs"
11138	    done
11139	    dlfiles=$newdlfiles
11140	    newdlprefiles=
11141	    for lib in $dlprefiles; do
11142	      case $lib in
11143		[\\/]* | [A-Za-z]:[\\/]*) abs=$lib ;;
11144		*) abs=`pwd`"/$lib" ;;
11145	      esac
11146	      func_append newdlprefiles " $abs"
11147	    done
11148	    dlprefiles=$newdlprefiles
11149	  fi
11150	  $RM $output
11151	  # place dlname in correct position for cygwin
11152	  # In fact, it would be nice if we could use this code for all target
11153	  # systems that can't hard-code library paths into their executables
11154	  # and that have no shared library path variable independent of PATH,
11155	  # but it turns out we can't easily determine that from inspecting
11156	  # libtool variables, so we have to hard-code the OSs to which it
11157	  # applies here; at the moment, that means platforms that use the PE
11158	  # object format with DLL files.  See the long comment at the top of
11159	  # tests/bindir.at for full details.
11160	  tdlname=$dlname
11161	  case $host,$output,$installed,$module,$dlname in
11162	    *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll)
11163	      # If a -bindir argument was supplied, place the dll there.
11164	      if test -n "$bindir"; then
11165		func_relative_path "$install_libdir" "$bindir"
11166		tdlname=$func_relative_path_result/$dlname
11167	      else
11168		# Otherwise fall back on heuristic.
11169		tdlname=../bin/$dlname
11170	      fi
11171	      ;;
11172	  esac
11173	  $ECHO > $output "\
11174# $outputname - a libtool library file
11175# Generated by $PROGRAM (GNU $PACKAGE) $VERSION
11176#
11177# Please DO NOT delete this file!
11178# It is necessary for linking the library.
11179
11180# The name that we can dlopen(3).
11181dlname='$tdlname'
11182
11183# Names of this library.
11184library_names='$library_names'
11185
11186# The name of the static archive.
11187old_library='$old_library'
11188
11189# Linker flags that cannot go in dependency_libs.
11190inherited_linker_flags='$new_inherited_linker_flags'
11191
11192# Libraries that this one depends upon.
11193dependency_libs='$dependency_libs'
11194
11195# Names of additional weak libraries provided by this library
11196weak_library_names='$weak_libs'
11197
11198# Version information for $libname.
11199current=$current
11200age=$age
11201revision=$revision
11202
11203# Is this an already installed library?
11204installed=$installed
11205
11206# Should we warn about portability when linking against -modules?
11207shouldnotlink=$module
11208
11209# Files to dlopen/dlpreopen
11210dlopen='$dlfiles'
11211dlpreopen='$dlprefiles'
11212
11213# Directory that this library needs to be installed in:
11214libdir='$install_libdir'"
11215	  if test no,yes = "$installed,$need_relink"; then
11216	    $ECHO >> $output "\
11217relink_command=\"$relink_command\""
11218	  fi
11219	done
11220      }
11221
11222      # Do a symbolic link so that the libtool archive can be found in
11223      # LD_LIBRARY_PATH before the program is installed.
11224      func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?'
11225      ;;
11226    esac
11227    exit $EXIT_SUCCESS
11228}
11229
11230if test link = "$opt_mode" || test relink = "$opt_mode"; then
11231  func_mode_link ${1+"$@"}
11232fi
11233
11234
11235# func_mode_uninstall arg...
11236func_mode_uninstall ()
11237{
11238    $debug_cmd
11239
11240    RM=$nonopt
11241    files=
11242    rmforce=false
11243    exit_status=0
11244
11245    # This variable tells wrapper scripts just to set variables rather
11246    # than running their programs.
11247    libtool_install_magic=$magic
11248
11249    for arg
11250    do
11251      case $arg in
11252      -f) func_append RM " $arg"; rmforce=: ;;
11253      -*) func_append RM " $arg" ;;
11254      *) func_append files " $arg" ;;
11255      esac
11256    done
11257
11258    test -z "$RM" && \
11259      func_fatal_help "you must specify an RM program"
11260
11261    rmdirs=
11262
11263    for file in $files; do
11264      func_dirname "$file" "" "."
11265      dir=$func_dirname_result
11266      if test . = "$dir"; then
11267	odir=$objdir
11268      else
11269	odir=$dir/$objdir
11270      fi
11271      func_basename "$file"
11272      name=$func_basename_result
11273      test uninstall = "$opt_mode" && odir=$dir
11274
11275      # Remember odir for removal later, being careful to avoid duplicates
11276      if test clean = "$opt_mode"; then
11277	case " $rmdirs " in
11278	  *" $odir "*) ;;
11279	  *) func_append rmdirs " $odir" ;;
11280	esac
11281      fi
11282
11283      # Don't error if the file doesn't exist and rm -f was used.
11284      if { test -L "$file"; } >/dev/null 2>&1 ||
11285	 { test -h "$file"; } >/dev/null 2>&1 ||
11286	 test -f "$file"; then
11287	:
11288      elif test -d "$file"; then
11289	exit_status=1
11290	continue
11291      elif $rmforce; then
11292	continue
11293      fi
11294
11295      rmfiles=$file
11296
11297      case $name in
11298      *.la)
11299	# Possibly a libtool archive, so verify it.
11300	if func_lalib_p "$file"; then
11301	  func_source $dir/$name
11302
11303	  # Delete the libtool libraries and symlinks.
11304	  for n in $library_names; do
11305	    func_append rmfiles " $odir/$n"
11306	  done
11307	  test -n "$old_library" && func_append rmfiles " $odir/$old_library"
11308
11309	  case $opt_mode in
11310	  clean)
11311	    case " $library_names " in
11312	    *" $dlname "*) ;;
11313	    *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;;
11314	    esac
11315	    test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i"
11316	    ;;
11317	  uninstall)
11318	    if test -n "$library_names"; then
11319	      # Do each command in the postuninstall commands.
11320	      func_execute_cmds "$postuninstall_cmds" '$rmforce || exit_status=1'
11321	    fi
11322
11323	    if test -n "$old_library"; then
11324	      # Do each command in the old_postuninstall commands.
11325	      func_execute_cmds "$old_postuninstall_cmds" '$rmforce || exit_status=1'
11326	    fi
11327	    # FIXME: should reinstall the best remaining shared library.
11328	    ;;
11329	  esac
11330	fi
11331	;;
11332
11333      *.lo)
11334	# Possibly a libtool object, so verify it.
11335	if func_lalib_p "$file"; then
11336
11337	  # Read the .lo file
11338	  func_source $dir/$name
11339
11340	  # Add PIC object to the list of files to remove.
11341	  if test -n "$pic_object" && test none != "$pic_object"; then
11342	    func_append rmfiles " $dir/$pic_object"
11343	  fi
11344
11345	  # Add non-PIC object to the list of files to remove.
11346	  if test -n "$non_pic_object" && test none != "$non_pic_object"; then
11347	    func_append rmfiles " $dir/$non_pic_object"
11348	  fi
11349	fi
11350	;;
11351
11352      *)
11353	if test clean = "$opt_mode"; then
11354	  noexename=$name
11355	  case $file in
11356	  *.exe)
11357	    func_stripname '' '.exe' "$file"
11358	    file=$func_stripname_result
11359	    func_stripname '' '.exe' "$name"
11360	    noexename=$func_stripname_result
11361	    # $file with .exe has already been added to rmfiles,
11362	    # add $file without .exe
11363	    func_append rmfiles " $file"
11364	    ;;
11365	  esac
11366	  # Do a test to see if this is a libtool program.
11367	  if func_ltwrapper_p "$file"; then
11368	    if func_ltwrapper_executable_p "$file"; then
11369	      func_ltwrapper_scriptname "$file"
11370	      relink_command=
11371	      func_source $func_ltwrapper_scriptname_result
11372	      func_append rmfiles " $func_ltwrapper_scriptname_result"
11373	    else
11374	      relink_command=
11375	      func_source $dir/$noexename
11376	    fi
11377
11378	    # note $name still contains .exe if it was in $file originally
11379	    # as does the version of $file that was added into $rmfiles
11380	    func_append rmfiles " $odir/$name $odir/${name}S.$objext"
11381	    if test yes = "$fast_install" && test -n "$relink_command"; then
11382	      func_append rmfiles " $odir/lt-$name"
11383	    fi
11384	    if test "X$noexename" != "X$name"; then
11385	      func_append rmfiles " $odir/lt-$noexename.c"
11386	    fi
11387	  fi
11388	fi
11389	;;
11390      esac
11391      func_show_eval "$RM $rmfiles" 'exit_status=1'
11392    done
11393
11394    # Try to remove the $objdir's in the directories where we deleted files
11395    for dir in $rmdirs; do
11396      if test -d "$dir"; then
11397	func_show_eval "rmdir $dir >/dev/null 2>&1"
11398      fi
11399    done
11400
11401    exit $exit_status
11402}
11403
11404if test uninstall = "$opt_mode" || test clean = "$opt_mode"; then
11405  func_mode_uninstall ${1+"$@"}
11406fi
11407
11408test -z "$opt_mode" && {
11409  help=$generic_help
11410  func_fatal_help "you must specify a MODE"
11411}
11412
11413test -z "$exec_cmd" && \
11414  func_fatal_help "invalid operation mode '$opt_mode'"
11415
11416if test -n "$exec_cmd"; then
11417  eval exec "$exec_cmd"
11418  exit $EXIT_FAILURE
11419fi
11420
11421exit $exit_status
11422
11423
11424# The TAGs below are defined such that we never get into a situation
11425# where we disable both kinds of libraries.  Given conflicting
11426# choices, we go for a static library, that is the most portable,
11427# since we can't tell whether shared libraries were disabled because
11428# the user asked for that or because the platform doesn't support
11429# them.  This is particularly important on AIX, because we don't
11430# support having both static and shared libraries enabled at the same
11431# time on that platform, so we default to a shared-only configuration.
11432# If a disable-shared tag is given, we'll fallback to a static-only
11433# configuration.  But we'll never go from static-only to shared-only.
11434
11435# ### BEGIN LIBTOOL TAG CONFIG: disable-shared
11436build_libtool_libs=no
11437build_old_libs=yes
11438# ### END LIBTOOL TAG CONFIG: disable-shared
11439
11440# ### BEGIN LIBTOOL TAG CONFIG: disable-static
11441build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac`
11442# ### END LIBTOOL TAG CONFIG: disable-static
11443
11444# Local Variables:
11445# mode:shell-script
11446# sh-indentation:2
11447# End:
11448