Blame autoconf/ltmain.sh

<
Packit Service 5195f2
#! /bin/sh
Packit Service 5195f2
Packit Service 5195f2
# libtool (GNU libtool) 2.4.2.418
Packit Service 5195f2
# Provide generalized library-building support services.
Packit Service 5195f2
# Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
Packit Service 5195f2
Packit Service 5195f2
# Copyright (C) 1996-2013 Free Software Foundation, Inc.
Packit Service 5195f2
# This is free software; see the source for copying conditions.  There is NO
Packit Service 5195f2
# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Packit Service 5195f2
Packit Service 5195f2
# GNU Libtool is free software; you can redistribute it and/or modify
Packit Service 5195f2
# it under the terms of the GNU General Public License as published by
Packit Service 5195f2
# the Free Software Foundation; either version 2 of the License, or
Packit Service 5195f2
# (at your option) any later version.
Packit Service 5195f2
#
Packit Service 5195f2
# As a special exception to the GNU General Public License,
Packit Service 5195f2
# if you distribute this file as part of a program or library that
Packit Service 5195f2
# is built using GNU Libtool, you may include this file under the
Packit Service 5195f2
# same distribution terms that you use for the rest of that program.
Packit Service 5195f2
#
Packit Service 5195f2
# GNU Libtool is distributed in the hope that it will be useful, but
Packit Service 5195f2
# WITHOUT ANY WARRANTY; without even the implied warranty of
Packit Service 5195f2
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Packit Service 5195f2
# General Public License for more details.
Packit Service 5195f2
#
Packit Service 5195f2
# You should have received a copy of the GNU General Public License
Packit Service 5195f2
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
PROGRAM=libtool
Packit Service 5195f2
PACKAGE=libtool
Packit Service 5195f2
VERSION=2.4.2.418
Packit Service 5195f2
package_revision=2.4.2.418
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
## ------ ##
Packit Service 5195f2
## Usage. ##
Packit Service 5195f2
## ------ ##
Packit Service 5195f2
Packit Service 5195f2
# Run './libtool --help' for help with using this script from the
Packit Service 5195f2
# command line.
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
## ------------------------------- ##
Packit Service 5195f2
## User overridable command paths. ##
Packit Service 5195f2
## ------------------------------- ##
Packit Service 5195f2
Packit Service 5195f2
# After configure completes, it has a better idea of some of the
Packit Service 5195f2
# shell tools we need than the defaults used by the functions shared
Packit Service 5195f2
# with bootstrap, so set those here where they can still be over-
Packit Service 5195f2
# ridden by the user, but otherwise take precedence.
Packit Service 5195f2
Packit Service 5195f2
: ${AUTOCONF="autoconf"}
Packit Service 5195f2
: ${AUTOMAKE="automake"}
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
## -------------------------- ##
Packit Service 5195f2
## Source external libraries. ##
Packit Service 5195f2
## -------------------------- ##
Packit Service 5195f2
Packit Service 5195f2
# Much of our low-level functionality needs to be sourced from external
Packit Service 5195f2
# libraries, which are installed to $pkgauxdir.
Packit Service 5195f2
Packit Service 5195f2
# Set a version string for this script.
Packit Service 5195f2
scriptversion=2013-08-23.20; # UTC
Packit Service 5195f2
Packit Service 5195f2
# General shell script boiler plate, and helper functions.
Packit Service 5195f2
# Written by Gary V. Vaughan, 2004
Packit Service 5195f2
Packit Service 5195f2
# Copyright (C) 2004-2013 Free Software Foundation, Inc.
Packit Service 5195f2
# This is free software; see the source for copying conditions.  There is NO
Packit Service 5195f2
# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Packit Service 5195f2
Packit Service 5195f2
# This program is free software; you can redistribute it and/or modify
Packit Service 5195f2
# it under the terms of the GNU General Public License as published by
Packit Service 5195f2
# the Free Software Foundation; either version 3 of the License, or
Packit Service 5195f2
# (at your option) any later version.
Packit Service 5195f2
Packit Service 5195f2
# As a special exception to the GNU General Public License, if you distribute
Packit Service 5195f2
# this file as part of a program or library that is built using GNU Libtool,
Packit Service 5195f2
# you may include this file under the same distribution terms that you use
Packit Service 5195f2
# for the rest of that program.
Packit Service 5195f2
Packit Service 5195f2
# This program is distributed in the hope that it will be useful,
Packit Service 5195f2
# but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit Service 5195f2
# MERCHANTABILITY or FITNES FOR A PARTICULAR PURPOSE. See the GNU
Packit Service 5195f2
# General Public License for more details.
Packit Service 5195f2
Packit Service 5195f2
# You should have received a copy of the GNU General Public License
Packit Service 5195f2
# along with this program. If not, see <http://www.gnu.org/licenses/>.
Packit Service 5195f2
Packit Service 5195f2
# Please report bugs or propose patches to gary@gnu.org.
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
## ------ ##
Packit Service 5195f2
## Usage. ##
Packit Service 5195f2
## ------ ##
Packit Service 5195f2
Packit Service 5195f2
# Evaluate this file near the top of your script to gain access to
Packit Service 5195f2
# the functions and variables defined here:
Packit Service 5195f2
#
Packit Service 5195f2
#   . `echo "$0" | ${SED-sed} 's|[^/]*$||'`/build-aux/funclib.sh
Packit Service 5195f2
#
Packit Service 5195f2
# If you need to override any of the default environment variable
Packit Service 5195f2
# settings, do that before evaluating this file.
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
## -------------------- ##
Packit Service 5195f2
## Shell normalisation. ##
Packit Service 5195f2
## -------------------- ##
Packit Service 5195f2
Packit Service 5195f2
# Some shells need a little help to be as Bourne compatible as possible.
Packit Service 5195f2
# Before doing anything else, make sure all that help has been provided!
Packit Service 5195f2
Packit Service 5195f2
DUALCASE=1; export DUALCASE # for MKS sh
Packit Service 5195f2
if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
Packit Service 5195f2
  emulate sh
Packit Service 5195f2
  NULLCMD=:
Packit Service 5195f2
  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
Packit Service 5195f2
  # is contrary to our usage.  Disable this feature.
Packit Service 5195f2
  alias -g '${1+"$@"}'='"$@"'
Packit Service 5195f2
  setopt NO_GLOB_SUBST
Packit Service 5195f2
else
Packit Service 5195f2
  case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac
Packit Service 5195f2
fi
Packit Service 5195f2
Packit Service 5195f2
# NLS nuisances: We save the old values in case they are required later.
Packit Service 5195f2
_G_user_locale=
Packit Service 5195f2
_G_safe_locale=
Packit Service 5195f2
for _G_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
Packit Service 5195f2
do
Packit Service 5195f2
  eval "if test set = \"\${$_G_var+set}\"; then
Packit Service 5195f2
          save_$_G_var=\$$_G_var
Packit Service 5195f2
          $_G_var=C
Packit Service 5195f2
	  export $_G_var
Packit Service 5195f2
	  _G_user_locale=\"$_G_var=\\\$save_\$_G_var; \$_G_user_locale\"
Packit Service 5195f2
	  _G_safe_locale=\"$_G_var=C; \$_G_safe_locale\"
Packit Service 5195f2
	fi"
Packit Service 5195f2
done
Packit Service 5195f2
Packit Service 5195f2
# CDPATH.
Packit Service 5195f2
(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
Packit Service 5195f2
Packit Service 5195f2
# Make sure IFS has a sensible default
Packit Service 5195f2
sp=' '
Packit Service 5195f2
nl='
Packit Service 5195f2
'
Packit Service 5195f2
IFS="$sp	$nl"
Packit Service 5195f2
Packit Service 5195f2
# There are still modern systems that have problems with 'echo' mis-
Packit Service 5195f2
# handling backslashes, among others, so make sure $bs_echo is set to a
Packit Service 5195f2
# command that correctly interprets backslashes.
Packit Service 5195f2
# (this code from Autoconf 2.68)
Packit Service 5195f2
Packit Service 5195f2
# Printing a long string crashes Solaris 7 /usr/bin/printf.
Packit Service 5195f2
bs_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
Packit Service 5195f2
bs_echo=$bs_echo$bs_echo$bs_echo$bs_echo$bs_echo
Packit Service 5195f2
bs_echo=$bs_echo$bs_echo$bs_echo$bs_echo$bs_echo$bs_echo
Packit Service 5195f2
# Prefer a ksh shell builtin over an external printf program on Solaris,
Packit Service 5195f2
# but without wasting forks for bash or zsh.
Packit Service 5195f2
if test -z "$BASH_VERSION$ZSH_VERSION" \
Packit Service 5195f2
    && (test "X`print -r -- $bs_echo`" = "X$bs_echo") 2>/dev/null; then
Packit Service 5195f2
  bs_echo='print -r --'
Packit Service 5195f2
  bs_echo_n='print -rn --'
Packit Service 5195f2
elif (test "X`printf %s $bs_echo`" = "X$bs_echo") 2>/dev/null; then
Packit Service 5195f2
  bs_echo='printf %s\n'
Packit Service 5195f2
  bs_echo_n='printf %s'
Packit Service 5195f2
else
Packit Service 5195f2
  if test "X`(/usr/ucb/echo -n -n $bs_echo) 2>/dev/null`" = "X-n $bs_echo"; then
Packit Service 5195f2
    bs_echo_body='eval /usr/ucb/echo -n "$1$nl"'
Packit Service 5195f2
    bs_echo_n='/usr/ucb/echo -n'
Packit Service 5195f2
  else
Packit Service 5195f2
    bs_echo_body='eval expr "X$1" : "X\\(.*\\)"'
Packit Service 5195f2
    bs_echo_n_body='eval
Packit Service 5195f2
      arg=$1;
Packit Service 5195f2
      case $arg in #(
Packit Service 5195f2
      *"$nl"*)
Packit Service 5195f2
	expr "X$arg" : "X\\(.*\\)$nl";
Packit Service 5195f2
	arg=`expr "X$arg" : ".*$nl\\(.*\\)"`;;
Packit Service 5195f2
      esac;
Packit Service 5195f2
      expr "X$arg" : "X\\(.*\\)" | tr -d "$nl"
Packit Service 5195f2
    '
Packit Service 5195f2
    export bs_echo_n_body
Packit Service 5195f2
    bs_echo_n='sh -c $bs_echo_n_body bs_echo'
Packit Service 5195f2
  fi
Packit Service 5195f2
  export bs_echo_body
Packit Service 5195f2
  bs_echo='sh -c $bs_echo_body bs_echo'
Packit Service 5195f2
fi
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
## ------------------------------- ##
Packit Service 5195f2
## User overridable command paths. ##
Packit Service 5195f2
## ------------------------------- ##
Packit Service 5195f2
Packit Service 5195f2
# All uppercase variable names are used for environment variables.  These
Packit Service 5195f2
# variables can be overridden by the user before calling a script that
Packit Service 5195f2
# uses them if a suitable command of that name is not already available
Packit Service 5195f2
# in the command search PATH.
Packit Service 5195f2
Packit Service 5195f2
: ${CP="cp -f"}
Packit Service 5195f2
: ${ECHO="$bs_echo"}
Packit Service 5195f2
: ${EGREP="grep -E"}
Packit Service 5195f2
: ${FGREP="grep -F"}
Packit Service 5195f2
: ${GREP="grep"}
Packit Service 5195f2
: ${LN_S="ln -s"}
Packit Service 5195f2
: ${MAKE="make"}
Packit Service 5195f2
: ${MKDIR="mkdir"}
Packit Service 5195f2
: ${MV="mv -f"}
Packit Service 5195f2
: ${RM="rm -f"}
Packit Service 5195f2
: ${SED="sed"}
Packit Service 5195f2
: ${SHELL="${CONFIG_SHELL-/bin/sh}"}
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
## -------------------- ##
Packit Service 5195f2
## Useful sed snippets. ##
Packit Service 5195f2
## -------------------- ##
Packit Service 5195f2
Packit Service 5195f2
sed_dirname='s|/[^/]*$||'
Packit Service 5195f2
sed_basename='s|^.*/||'
Packit Service 5195f2
Packit Service 5195f2
# Sed substitution that helps us do robust quoting.  It backslashifies
Packit Service 5195f2
# metacharacters that are still active within double-quoted strings.
Packit Service 5195f2
sed_quote_subst='s|\([`"$\\]\)|\\\1|g'
Packit Service 5195f2
Packit Service 5195f2
# Same as above, but do not quote variable references.
Packit Service 5195f2
sed_double_quote_subst='s/\(["`\\]\)/\\\1/g'
Packit Service 5195f2
Packit Service 5195f2
# Sed substitution that turns a string into a regex matching for the
Packit Service 5195f2
# string literally.
Packit Service 5195f2
sed_make_literal_regex='s|[].[^$\\*\/]|\\&|g'
Packit Service 5195f2
Packit Service 5195f2
# Sed substitution that converts a w32 file name or path
Packit Service 5195f2
# that contains forward slashes, into one that contains
Packit Service 5195f2
# (escaped) backslashes.  A very naive implementation.
Packit Service 5195f2
sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
Packit Service 5195f2
Packit Service 5195f2
# Re-'\' parameter expansions in output of sed_double_quote_subst that
Packit Service 5195f2
# were '\'-ed in input to the same.  If an odd number of '\' preceded a
Packit Service 5195f2
# '$' in input to sed_double_quote_subst, that '$' was protected from
Packit Service 5195f2
# expansion.  Since each input '\' is now two '\'s, look for any number
Packit Service 5195f2
# of runs of four '\'s followed by two '\'s and then a '$'.  '\' that '$'.
Packit Service 5195f2
_G_bs='\\'
Packit Service 5195f2
_G_bs2='\\\\'
Packit Service 5195f2
_G_bs4='\\\\\\\\'
Packit Service 5195f2
_G_dollar='\$'
Packit Service 5195f2
sed_double_backslash="\
Packit Service 5195f2
  s/$_G_bs4/&\\
Packit Service 5195f2
/g
Packit Service 5195f2
  s/^$_G_bs2$_G_dollar/$_G_bs&/
Packit Service 5195f2
  s/\\([^$_G_bs]\\)$_G_bs2$_G_dollar/\\1$_G_bs2$_G_bs$_G_dollar/g
Packit Service 5195f2
  s/\n//g"
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
## ----------------- ##
Packit Service 5195f2
## Global variables. ##
Packit Service 5195f2
## ----------------- ##
Packit Service 5195f2
Packit Service 5195f2
# Except for the global variables explicitly listed below, the following
Packit Service 5195f2
# functions in the '^func_' namespace, and the '^require_' namespace
Packit Service 5195f2
# variables initialised in the 'Resource management' section, sourcing
Packit Service 5195f2
# this file will not pollute your global namespace with anything
Packit Service 5195f2
# else. There's no portable way to scope variables in Bourne shell
Packit Service 5195f2
# though, so actually running these functions will sometimes place
Packit Service 5195f2
# results into a variable named after the function, and often use
Packit Service 5195f2
# temporary variables in the '^_G_' namespace. If you are careful to
Packit Service 5195f2
# avoid using those namespaces casually in your sourcing script, things
Packit Service 5195f2
# should continue to work as you expect. And, of course, you can freely
Packit Service 5195f2
# overwrite any of the functions or variables defined here before
Packit Service 5195f2
# calling anything to customize them.
Packit Service 5195f2
Packit Service 5195f2
EXIT_SUCCESS=0
Packit Service 5195f2
EXIT_FAILURE=1
Packit Service 5195f2
EXIT_MISMATCH=63  # $? = 63 is used to indicate version mismatch to missing.
Packit Service 5195f2
EXIT_SKIP=77	  # $? = 77 is used to indicate a skipped test to automake.
Packit Service 5195f2
Packit Service 5195f2
# Allow overriding, eg assuming that you follow the convention of
Packit Service 5195f2
# putting '$debug_cmd' at the start of all your functions, you can get
Packit Service 5195f2
# bash to show function call trace with:
Packit Service 5195f2
#
Packit Service 5195f2
#    debug_cmd='eval echo "${FUNCNAME[0]} $*" >&2' bash your-script-name
Packit Service 5195f2
debug_cmd=${debug_cmd-":"}
Packit Service 5195f2
exit_cmd=:
Packit Service 5195f2
Packit Service 5195f2
# By convention, finish your script with:
Packit Service 5195f2
#
Packit Service 5195f2
#    exit $exit_status
Packit Service 5195f2
#
Packit Service 5195f2
# so that you can set exit_status to non-zero if you want to indicate
Packit Service 5195f2
# something went wrong during execution without actually bailing out at
Packit Service 5195f2
# the point of failure.
Packit Service 5195f2
exit_status=$EXIT_SUCCESS
Packit Service 5195f2
Packit Service 5195f2
# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
Packit Service 5195f2
# is ksh but when the shell is invoked as "sh" and the current value of
Packit Service 5195f2
# the _XPG environment variable is not equal to 1 (one), the special
Packit Service 5195f2
# positional parameter $0, within a function call, is the name of the
Packit Service 5195f2
# function.
Packit Service 5195f2
progpath=$0
Packit Service 5195f2
Packit Service 5195f2
# The name of this program.
Packit Service 5195f2
progname=`$bs_echo "$progpath" |$SED "$sed_basename"`
Packit Service 5195f2
Packit Service 5195f2
# Make sure we have an absolute progpath for reexecution:
Packit Service 5195f2
case $progpath in
Packit Service 5195f2
  [\\/]*|[A-Za-z]:\\*) ;;
Packit Service 5195f2
  *[\\/]*)
Packit Service 5195f2
     progdir=`$bs_echo "$progpath" |$SED "$sed_dirname"`
Packit Service 5195f2
     progdir=`cd "$progdir" && pwd`
Packit Service 5195f2
     progpath=$progdir/$progname
Packit Service 5195f2
     ;;
Packit Service 5195f2
  *)
Packit Service 5195f2
     _G_IFS=$IFS
Packit Service 5195f2
     IFS=${PATH_SEPARATOR-:}
Packit Service 5195f2
     for progdir in $PATH; do
Packit Service 5195f2
       IFS=$_G_IFS
Packit Service 5195f2
       test -x "$progdir/$progname" && break
Packit Service 5195f2
     done
Packit Service 5195f2
     IFS=$_G_IFS
Packit Service 5195f2
     test -n "$progdir" || progdir=`pwd`
Packit Service 5195f2
     progpath=$progdir/$progname
Packit Service 5195f2
     ;;
Packit Service 5195f2
esac
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
## ----------------- ##
Packit Service 5195f2
## Standard options. ##
Packit Service 5195f2
## ----------------- ##
Packit Service 5195f2
Packit Service 5195f2
# The following options affect the operation of the functions defined
Packit Service 5195f2
# below, and should be set appropriately depending on run-time para-
Packit Service 5195f2
# meters passed on the command line.
Packit Service 5195f2
Packit Service 5195f2
opt_dry_run=false
Packit Service 5195f2
opt_quiet=false
Packit Service 5195f2
opt_verbose=false
Packit Service 5195f2
Packit Service 5195f2
# Categories 'all' and 'none' are always available.  Append any others
Packit Service 5195f2
# you will pass as the first argument to func_warning from your own
Packit Service 5195f2
# code.
Packit Service 5195f2
warning_categories=
Packit Service 5195f2
Packit Service 5195f2
# By default, display warnings according to 'opt_warning_types'.  Set
Packit Service 5195f2
# 'warning_func'  to ':' to elide all warnings, or func_fatal_error to
Packit Service 5195f2
# treat the next displayed warning as a fatal error.
Packit Service 5195f2
warning_func=func_warn_and_continue
Packit Service 5195f2
Packit Service 5195f2
# Set to 'all' to display all warnings, 'none' to suppress all
Packit Service 5195f2
# warnings, or a space delimited list of some subset of
Packit Service 5195f2
# 'warning_categories' to display only the listed warnings.
Packit Service 5195f2
opt_warning_types=all
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
## -------------------- ##
Packit Service 5195f2
## Resource management. ##
Packit Service 5195f2
## -------------------- ##
Packit Service 5195f2
Packit Service 5195f2
# This section contains definitions for functions that each ensure a
Packit Service 5195f2
# particular resource (a file, or a non-empty configuration variable for
Packit Service 5195f2
# example) is available, and if appropriate to extract default values
Packit Service 5195f2
# from pertinent package files. Call them using their associated
Packit Service 5195f2
# 'require_*' variable to ensure that they are executed, at most, once.
Packit Service 5195f2
#
Packit Service 5195f2
# It's entirely deliberate that calling these functions can set
Packit Service 5195f2
# variables that don't obey the namespace limitations obeyed by the rest
Packit Service 5195f2
# of this file, in order that that they be as useful as possible to
Packit Service 5195f2
# callers.
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
# require_term_colors
Packit Service 5195f2
# -------------------
Packit Service 5195f2
# Allow display of bold text on terminals that support it.
Packit Service 5195f2
require_term_colors=func_require_term_colors
Packit Service 5195f2
func_require_term_colors ()
Packit Service 5195f2
{
Packit Service 5195f2
    $debug_cmd
Packit Service 5195f2
Packit Service 5195f2
    test -t 1 && {
Packit Service 5195f2
      # COLORTERM and USE_ANSI_COLORS environment variables take
Packit Service 5195f2
      # precedence, because most terminfo databases neglect to describe
Packit Service 5195f2
      # whether color sequences are supported.
Packit Service 5195f2
      test -n "${COLORTERM+set}" && : ${USE_ANSI_COLORS="1"}
Packit Service 5195f2
Packit Service 5195f2
      if test 1 = "$USE_ANSI_COLORS"; then
Packit Service 5195f2
        # Standard ANSI escape sequences
Packit Service 5195f2
        tc_reset='?[0m'
Packit Service 5195f2
        tc_bold='?[1m';   tc_standout='?[7m'
Packit Service 5195f2
        tc_red='?[31m';   tc_green='?[32m'
Packit Service 5195f2
        tc_blue='?[34m';  tc_cyan='?[36m'
Packit Service 5195f2
      else
Packit Service 5195f2
        # Otherwise trust the terminfo database after all.
Packit Service 5195f2
        test -n "`tput sgr0 2>/dev/null`" && {
Packit Service 5195f2
          tc_reset=`tput sgr0`
Packit Service 5195f2
          test -n "`tput bold 2>/dev/null`" && tc_bold=`tput bold`
Packit Service 5195f2
          tc_standout=$tc_bold
Packit Service 5195f2
          test -n "`tput smso 2>/dev/null`" && tc_standout=`tput smso`
Packit Service 5195f2
          test -n "`tput setaf 1 2>/dev/null`" && tc_red=`tput setaf 1`
Packit Service 5195f2
          test -n "`tput setaf 2 2>/dev/null`" && tc_green=`tput setaf 2`
Packit Service 5195f2
          test -n "`tput setaf 4 2>/dev/null`" && tc_blue=`tput setaf 4`
Packit Service 5195f2
          test -n "`tput setaf 5 2>/dev/null`" && tc_cyan=`tput setaf 5`
Packit Service 5195f2
        }
Packit Service 5195f2
      fi
Packit Service 5195f2
    }
Packit Service 5195f2
Packit Service 5195f2
    require_term_colors=:
Packit Service 5195f2
}
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
## ----------------- ##
Packit Service 5195f2
## Function library. ##
Packit Service 5195f2
## ----------------- ##
Packit Service 5195f2
Packit Service 5195f2
# This section contains a variety of useful functions to call in your
Packit Service 5195f2
# scripts. Take note of the portable wrappers for features provided by
Packit Service 5195f2
# some modern shells, which will fall back to slower equivalents on
Packit Service 5195f2
# less featureful shells.
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
# func_append VAR VALUE
Packit Service 5195f2
# ---------------------
Packit Service 5195f2
# Append VALUE onto the existing contents of VAR.
Packit Service 5195f2
Packit Service 5195f2
  # We should try to minimise forks, especially on Windows where they are
Packit Service 5195f2
  # unreasonably slow, so skip the feature probes when bash or zsh are
Packit Service 5195f2
  # being used:
Packit Service 5195f2
  if test set = "${BASH_VERSION+set}${ZSH_VERSION+set}"; then
Packit Service 5195f2
    : ${_G_HAVE_ARITH_OP="yes"}
Packit Service 5195f2
    : ${_G_HAVE_XSI_OPS="yes"}
Packit Service 5195f2
    # The += operator was introduced in bash 3.1
Packit Service 5195f2
    case $BASH_VERSION in
Packit Service 5195f2
      [12].* | 3.0 | 3.0*) ;;
Packit Service 5195f2
      *)
Packit Service 5195f2
        : ${_G_HAVE_PLUSEQ_OP="yes"}
Packit Service 5195f2
        ;;
Packit Service 5195f2
    esac
Packit Service 5195f2
  fi
Packit Service 5195f2
Packit Service 5195f2
  # _G_HAVE_PLUSEQ_OP
Packit Service 5195f2
  # Can be empty, in which case the shell is probed, "yes" if += is
Packit Service 5195f2
  # useable or anything else if it does not work.
Packit Service 5195f2
  test -z "$_G_HAVE_PLUSEQ_OP" \
Packit Service 5195f2
    && (eval 'x=a; x+=" b"; test "a b" = "$x"') 2>/dev/null \
Packit Service 5195f2
    && _G_HAVE_PLUSEQ_OP=yes
Packit Service 5195f2
Packit Service 5195f2
if test yes = "$_G_HAVE_PLUSEQ_OP"
Packit Service 5195f2
then
Packit Service 5195f2
  # This is an XSI compatible shell, allowing a faster implementation...
Packit Service 5195f2
  eval 'func_append ()
Packit Service 5195f2
  {
Packit Service 5195f2
    $debug_cmd
Packit Service 5195f2
Packit Service 5195f2
    eval "$1+=\$2"
Packit Service 5195f2
  }'
Packit Service 5195f2
else
Packit Service 5195f2
  # ...otherwise fall back to using expr, which is often a shell builtin.
Packit Service 5195f2
  func_append ()
Packit Service 5195f2
  {
Packit Service 5195f2
    $debug_cmd
Packit Service 5195f2
Packit Service 5195f2
    eval "$1=\$$1\$2"
Packit Service 5195f2
  }
Packit Service 5195f2
fi
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
# func_append_quoted VAR VALUE
Packit Service 5195f2
# ----------------------------
Packit Service 5195f2
# Quote VALUE and append to the end of shell variable VAR, separated
Packit Service 5195f2
# by a space.
Packit Service 5195f2
if test yes = "$_G_HAVE_PLUSEQ_OP"; then
Packit Service 5195f2
  eval 'func_append_quoted ()
Packit Service 5195f2
  {
Packit Service 5195f2
    $debug_cmd
Packit Service 5195f2
Packit Service 5195f2
    func_quote_for_eval "$2"
Packit Service 5195f2
    eval "$1+=\\ \$func_quote_for_eval_result"
Packit Service 5195f2
  }'
Packit Service 5195f2
else
Packit Service 5195f2
  func_append_quoted ()
Packit Service 5195f2
  {
Packit Service 5195f2
    $debug_cmd
Packit Service 5195f2
Packit Service 5195f2
    func_quote_for_eval "$2"
Packit Service 5195f2
    eval "$1=\$$1\\ \$func_quote_for_eval_result"
Packit Service 5195f2
  }
Packit Service 5195f2
fi
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
# func_append_uniq VAR VALUE
Packit Service 5195f2
# --------------------------
Packit Service 5195f2
# Append unique VALUE onto the existing contents of VAR, assuming
Packit Service 5195f2
# entries are delimited by the first character of VALUE.  For example:
Packit Service 5195f2
#
Packit Service 5195f2
#   func_append_uniq options " --another-option option-argument"
Packit Service 5195f2
#
Packit Service 5195f2
# will only append to $options if " --another-option option-argument "
Packit Service 5195f2
# is not already present somewhere in $options already (note spaces at
Packit Service 5195f2
# each end implied by leading space in second argument).
Packit Service 5195f2
func_append_uniq ()
Packit Service 5195f2
{
Packit Service 5195f2
    $debug_cmd
Packit Service 5195f2
Packit Service 5195f2
    eval _G_current_value='`$bs_echo $'$1'`'
Packit Service 5195f2
    _G_delim=`expr "$2" : '\(.\)'`
Packit Service 5195f2
Packit Service 5195f2
    case $_G_delim$_G_current_value$_G_delim in
Packit Service 5195f2
      *"$2$_G_delim"*) ;;
Packit Service 5195f2
      *) func_append "$@" ;;
Packit Service 5195f2
    esac
Packit Service 5195f2
}
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
# func_arith TERM...
Packit Service 5195f2
# ------------------
Packit Service 5195f2
# Set func_arith_result to the result of evaluating TERMs.
Packit Service 5195f2
  test -z "$_G_HAVE_ARITH_OP" \
Packit Service 5195f2
    && (eval 'test 2 = $(( 1 + 1 ))') 2>/dev/null \
Packit Service 5195f2
    && _G_HAVE_ARITH_OP=yes
Packit Service 5195f2
Packit Service 5195f2
if test yes = "$_G_HAVE_ARITH_OP"; then
Packit Service 5195f2
  eval 'func_arith ()
Packit Service 5195f2
  {
Packit Service 5195f2
    $debug_cmd
Packit Service 5195f2
Packit Service 5195f2
    func_arith_result=$(( $* ))
Packit Service 5195f2
  }'
Packit Service 5195f2
else
Packit Service 5195f2
  func_arith ()
Packit Service 5195f2
  {
Packit Service 5195f2
    $debug_cmd
Packit Service 5195f2
Packit Service 5195f2
    func_arith_result=`expr "$@"`
Packit Service 5195f2
  }
Packit Service 5195f2
fi
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
# func_basename FILE
Packit Service 5195f2
# ------------------
Packit Service 5195f2
# Set func_basename_result to FILE with everything up to and including
Packit Service 5195f2
# the last / stripped.
Packit Service 5195f2
if test yes = "$_G_HAVE_XSI_OPS"; then
Packit Service 5195f2
  # If this shell supports suffix pattern removal, then use it to avoid
Packit Service 5195f2
  # forking. Hide the definitions single quotes in case the shell chokes
Packit Service 5195f2
  # on unsupported syntax...
Packit Service 5195f2
  _b='func_basename_result=${1##*/}'
Packit Service 5195f2
  _d='case $1 in
Packit Service 5195f2
        */*) func_dirname_result=${1%/*}$2 ;;
Packit Service 5195f2
        *  ) func_dirname_result=$3        ;;
Packit Service 5195f2
      esac'
Packit Service 5195f2
Packit Service 5195f2
else
Packit Service 5195f2
  # ...otherwise fall back to using sed.
Packit Service 5195f2
  _b='func_basename_result=`$ECHO "$1" |$SED "$sed_basename"`'
Packit Service 5195f2
  _d='func_dirname_result=`$ECHO "$1"  |$SED "$sed_dirname"`
Packit Service 5195f2
      if test "X$func_dirname_result" = "X$1"; then
Packit Service 5195f2
        func_dirname_result=$3
Packit Service 5195f2
      else
Packit Service 5195f2
        func_append func_dirname_result "$2"
Packit Service 5195f2
      fi'
Packit Service 5195f2
fi
Packit Service 5195f2
Packit Service 5195f2
eval 'func_basename ()
Packit Service 5195f2
{
Packit Service 5195f2
    $debug_cmd
Packit Service 5195f2
Packit Service 5195f2
    '"$_b"'
Packit Service 5195f2
}'
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
# func_dirname FILE APPEND NONDIR_REPLACEMENT
Packit Service 5195f2
# -------------------------------------------
Packit Service 5195f2
# Compute the dirname of FILE.  If nonempty, add APPEND to the result,
Packit Service 5195f2
# otherwise set result to NONDIR_REPLACEMENT.
Packit Service 5195f2
eval 'func_dirname ()
Packit Service 5195f2
{
Packit Service 5195f2
    $debug_cmd
Packit Service 5195f2
Packit Service 5195f2
    '"$_d"'
Packit Service 5195f2
}'
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
# func_dirname_and_basename FILE APPEND NONDIR_REPLACEMENT
Packit Service 5195f2
# --------------------------------------------------------
Packit Service 5195f2
# Perform func_basename and func_dirname in a single function
Packit Service 5195f2
# call:
Packit Service 5195f2
#   dirname:  Compute the dirname of FILE.  If nonempty,
Packit Service 5195f2
#             add APPEND to the result, otherwise set result
Packit Service 5195f2
#             to NONDIR_REPLACEMENT.
Packit Service 5195f2
#             value returned in "$func_dirname_result"
Packit Service 5195f2
#   basename: Compute filename of FILE.
Packit Service 5195f2
#             value retuned in "$func_basename_result"
Packit Service 5195f2
# For efficiency, we do not delegate to the functions above but instead
Packit Service 5195f2
# duplicate the functionality here.
Packit Service 5195f2
eval 'func_dirname_and_basename ()
Packit Service 5195f2
{
Packit Service 5195f2
    $debug_cmd
Packit Service 5195f2
Packit Service 5195f2
    '"$_b"'
Packit Service 5195f2
    '"$_d"'
Packit Service 5195f2
}'
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
# func_echo ARG...
Packit Service 5195f2
# ----------------
Packit Service 5195f2
# Echo program name prefixed message.
Packit Service 5195f2
func_echo ()
Packit Service 5195f2
{
Packit Service 5195f2
    $debug_cmd
Packit Service 5195f2
Packit Service 5195f2
    _G_message=$*
Packit Service 5195f2
Packit Service 5195f2
    func_echo_IFS=$IFS
Packit Service 5195f2
    IFS=$nl
Packit Service 5195f2
    for _G_line in $_G_message; do
Packit Service 5195f2
      IFS=$func_echo_IFS
Packit Service 5195f2
      $bs_echo "$progname: $_G_line"
Packit Service 5195f2
    done
Packit Service 5195f2
    IFS=$func_echo_IFS
Packit Service 5195f2
}
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
# func_echo_all ARG...
Packit Service 5195f2
# --------------------
Packit Service 5195f2
# Invoke $ECHO with all args, space-separated.
Packit Service 5195f2
func_echo_all ()
Packit Service 5195f2
{
Packit Service 5195f2
    $ECHO "$*"
Packit Service 5195f2
}
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
# func_echo_infix_1 INFIX ARG...
Packit Service 5195f2
# ------------------------------
Packit Service 5195f2
# Echo program name, followed by INFIX on the first line, with any
Packit Service 5195f2
# additional lines not showing INFIX.
Packit Service 5195f2
func_echo_infix_1 ()
Packit Service 5195f2
{
Packit Service 5195f2
    $debug_cmd
Packit Service 5195f2
Packit Service 5195f2
    $require_term_colors
Packit Service 5195f2
Packit Service 5195f2
    _G_infix=$1; shift
Packit Service 5195f2
    _G_indent=$_G_infix
Packit Service 5195f2
    _G_prefix="$progname: $_G_infix: "
Packit Service 5195f2
    _G_message=$*
Packit Service 5195f2
Packit Service 5195f2
    # Strip color escape sequences before counting printable length
Packit Service 5195f2
    for _G_tc in "$tc_reset" "$tc_bold" "$tc_standout" "$tc_red" "$tc_green" "$tc_blue" "$tc_cyan"
Packit Service 5195f2
    do
Packit Service 5195f2
      test -n "$_G_tc" && {
Packit Service 5195f2
        _G_esc_tc=`$bs_echo "$_G_tc" | sed "$sed_make_literal_regex"`
Packit Service 5195f2
        _G_indent=`$bs_echo "$_G_indent" | sed "s|$_G_esc_tc||g"`
Packit Service 5195f2
      }
Packit Service 5195f2
    done
Packit Service 5195f2
    _G_indent="$progname: "`echo "$_G_indent" | sed 's|.| |g'`"  " ## exclude from sc_prohibit_nested_quotes
Packit Service 5195f2
Packit Service 5195f2
    func_echo_infix_1_IFS=$IFS
Packit Service 5195f2
    IFS=$nl
Packit Service 5195f2
    for _G_line in $_G_message; do
Packit Service 5195f2
      IFS=$func_echo_infix_1_IFS
Packit Service 5195f2
      $bs_echo "$_G_prefix$tc_bold$_G_line$tc_reset" >&2
Packit Service 5195f2
      _G_prefix=$_G_indent
Packit Service 5195f2
    done
Packit Service 5195f2
    IFS=$func_echo_infix_1_IFS
Packit Service 5195f2
}
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
# func_error ARG...
Packit Service 5195f2
# -----------------
Packit Service 5195f2
# Echo program name prefixed message to standard error.
Packit Service 5195f2
func_error ()
Packit Service 5195f2
{
Packit Service 5195f2
    $debug_cmd
Packit Service 5195f2
Packit Service 5195f2
    $require_term_colors
Packit Service 5195f2
Packit Service 5195f2
    func_echo_infix_1 "  $tc_standout${tc_red}error$tc_reset" "$*" >&2
Packit Service 5195f2
}
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
# func_fatal_error ARG...
Packit Service 5195f2
# -----------------------
Packit Service 5195f2
# Echo program name prefixed message to standard error, and exit.
Packit Service 5195f2
func_fatal_error ()
Packit Service 5195f2
{
Packit Service 5195f2
    $debug_cmd
Packit Service 5195f2
Packit Service 5195f2
    func_error "$*"
Packit Service 5195f2
    exit $EXIT_FAILURE
Packit Service 5195f2
}
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
# func_grep EXPRESSION FILENAME
Packit Service 5195f2
# -----------------------------
Packit Service 5195f2
# Check whether EXPRESSION matches any line of FILENAME, without output.
Packit Service 5195f2
func_grep ()
Packit Service 5195f2
{
Packit Service 5195f2
    $debug_cmd
Packit Service 5195f2
Packit Service 5195f2
    $GREP "$1" "$2" >/dev/null 2>&1
Packit Service 5195f2
}
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
# func_len STRING
Packit Service 5195f2
# ---------------
Packit Service 5195f2
# Set func_len_result to the length of STRING. STRING may not
Packit Service 5195f2
# start with a hyphen.
Packit Service 5195f2
  test -z "$_G_HAVE_XSI_OPS" \
Packit Service 5195f2
    && (eval 'x=a/b/c;
Packit Service 5195f2
      test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \
Packit Service 5195f2
    && _G_HAVE_XSI_OPS=yes
Packit Service 5195f2
Packit Service 5195f2
if test yes = "$_G_HAVE_XSI_OPS"; then
Packit Service 5195f2
  eval 'func_len ()
Packit Service 5195f2
  {
Packit Service 5195f2
    $debug_cmd
Packit Service 5195f2
Packit Service 5195f2
    func_len_result=${#1}
Packit Service 5195f2
  }'
Packit Service 5195f2
else
Packit Service 5195f2
  func_len ()
Packit Service 5195f2
  {
Packit Service 5195f2
    $debug_cmd
Packit Service 5195f2
Packit Service 5195f2
    func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len`
Packit Service 5195f2
  }
Packit Service 5195f2
fi
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
# func_mkdir_p DIRECTORY-PATH
Packit Service 5195f2
# ---------------------------
Packit Service 5195f2
# Make sure the entire path to DIRECTORY-PATH is available.
Packit Service 5195f2
func_mkdir_p ()
Packit Service 5195f2
{
Packit Service 5195f2
    $debug_cmd
Packit Service 5195f2
Packit Service 5195f2
    _G_directory_path=$1
Packit Service 5195f2
    _G_dir_list=
Packit Service 5195f2
Packit Service 5195f2
    if test -n "$_G_directory_path" && test : != "$opt_dry_run"; then
Packit Service 5195f2
Packit Service 5195f2
      # Protect directory names starting with '-'
Packit Service 5195f2
      case $_G_directory_path in
Packit Service 5195f2
        -*) _G_directory_path=./$_G_directory_path ;;
Packit Service 5195f2
      esac
Packit Service 5195f2
Packit Service 5195f2
      # While some portion of DIR does not yet exist...
Packit Service 5195f2
      while test ! -d "$_G_directory_path"; do
Packit Service 5195f2
        # ...make a list in topmost first order.  Use a colon delimited
Packit Service 5195f2
	# list incase some portion of path contains whitespace.
Packit Service 5195f2
        _G_dir_list=$_G_directory_path:$_G_dir_list
Packit Service 5195f2
Packit Service 5195f2
        # If the last portion added has no slash in it, the list is done
Packit Service 5195f2
        case $_G_directory_path in */*) ;; *) break ;; esac
Packit Service 5195f2
Packit Service 5195f2
        # ...otherwise throw away the child directory and loop
Packit Service 5195f2
        _G_directory_path=`$ECHO "$_G_directory_path" | $SED -e "$sed_dirname"`
Packit Service 5195f2
      done
Packit Service 5195f2
      _G_dir_list=`$ECHO "$_G_dir_list" | $SED 's|:*$||'`
Packit Service 5195f2
Packit Service 5195f2
      func_mkdir_p_IFS=$IFS; IFS=:
Packit Service 5195f2
      for _G_dir in $_G_dir_list; do
Packit Service 5195f2
	IFS=$func_mkdir_p_IFS
Packit Service 5195f2
        # mkdir can fail with a 'File exist' error if two processes
Packit Service 5195f2
        # try to create one of the directories concurrently.  Don't
Packit Service 5195f2
        # stop in that case!
Packit Service 5195f2
        $MKDIR "$_G_dir" 2>/dev/null || :
Packit Service 5195f2
      done
Packit Service 5195f2
      IFS=$func_mkdir_p_IFS
Packit Service 5195f2
Packit Service 5195f2
      # Bail out if we (or some other process) failed to create a directory.
Packit Service 5195f2
      test -d "$_G_directory_path" || \
Packit Service 5195f2
        func_fatal_error "Failed to create '$1'"
Packit Service 5195f2
    fi
Packit Service 5195f2
}
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
# func_mktempdir [BASENAME]
Packit Service 5195f2
# -------------------------
Packit Service 5195f2
# Make a temporary directory that won't clash with other running
Packit Service 5195f2
# libtool processes, and avoids race conditions if possible.  If
Packit Service 5195f2
# given, BASENAME is the basename for that directory.
Packit Service 5195f2
func_mktempdir ()
Packit Service 5195f2
{
Packit Service 5195f2
    $debug_cmd
Packit Service 5195f2
Packit Service 5195f2
    _G_template=${TMPDIR-/tmp}/${1-$progname}
Packit Service 5195f2
Packit Service 5195f2
    if test : = "$opt_dry_run"; then
Packit Service 5195f2
      # Return a directory name, but don't create it in dry-run mode
Packit Service 5195f2
      _G_tmpdir=$_G_template-$$
Packit Service 5195f2
    else
Packit Service 5195f2
Packit Service 5195f2
      # If mktemp works, use that first and foremost
Packit Service 5195f2
      _G_tmpdir=`mktemp -d "$_G_template-XXXXXXXX" 2>/dev/null`
Packit Service 5195f2
Packit Service 5195f2
      if test ! -d "$_G_tmpdir"; then
Packit Service 5195f2
        # Failing that, at least try and use $RANDOM to avoid a race
Packit Service 5195f2
        _G_tmpdir=$_G_template-${RANDOM-0}$$
Packit Service 5195f2
Packit Service 5195f2
        func_mktempdir_umask=`umask`
Packit Service 5195f2
        umask 0077
Packit Service 5195f2
        $MKDIR "$_G_tmpdir"
Packit Service 5195f2
        umask $func_mktempdir_umask
Packit Service 5195f2
      fi
Packit Service 5195f2
Packit Service 5195f2
      # If we're not in dry-run mode, bomb out on failure
Packit Service 5195f2
      test -d "$_G_tmpdir" || \
Packit Service 5195f2
        func_fatal_error "cannot create temporary directory '$_G_tmpdir'"
Packit Service 5195f2
    fi
Packit Service 5195f2
Packit Service 5195f2
    $ECHO "$_G_tmpdir"
Packit Service 5195f2
}
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
# func_normal_abspath PATH
Packit Service 5195f2
# ------------------------
Packit Service 5195f2
# Remove doubled-up and trailing slashes, "." path components,
Packit Service 5195f2
# and cancel out any ".." path components in PATH after making
Packit Service 5195f2
# it an absolute path.
Packit Service 5195f2
func_normal_abspath ()
Packit Service 5195f2
{
Packit Service 5195f2
    $debug_cmd
Packit Service 5195f2
Packit Service 5195f2
    # These SED scripts presuppose an absolute path with a trailing slash.
Packit Service 5195f2
    _G_pathcar='s|^/\([^/]*\).*$|\1|'
Packit Service 5195f2
    _G_pathcdr='s|^/[^/]*||'
Packit Service 5195f2
    _G_removedotparts=':dotsl
Packit Service 5195f2
		s|/\./|/|g
Packit Service 5195f2
		t dotsl
Packit Service 5195f2
		s|/\.$|/|'
Packit Service 5195f2
    _G_collapseslashes='s|/\{1,\}|/|g'
Packit Service 5195f2
    _G_finalslash='s|/*$|/|'
Packit Service 5195f2
Packit Service 5195f2
    # Start from root dir and reassemble the path.
Packit Service 5195f2
    func_normal_abspath_result=
Packit Service 5195f2
    func_normal_abspath_tpath=$1
Packit Service 5195f2
    func_normal_abspath_altnamespace=
Packit Service 5195f2
    case $func_normal_abspath_tpath in
Packit Service 5195f2
      "")
Packit Service 5195f2
        # Empty path, that just means $cwd.
Packit Service 5195f2
        func_stripname '' '/' "`pwd`"
Packit Service 5195f2
        func_normal_abspath_result=$func_stripname_result
Packit Service 5195f2
        return
Packit Service 5195f2
        ;;
Packit Service 5195f2
      # The next three entries are used to spot a run of precisely
Packit Service 5195f2
      # two leading slashes without using negated character classes;
Packit Service 5195f2
      # we take advantage of case's first-match behaviour.
Packit Service 5195f2
      ///*)
Packit Service 5195f2
        # Unusual form of absolute path, do nothing.
Packit Service 5195f2
        ;;
Packit Service 5195f2
      //*)
Packit Service 5195f2
        # Not necessarily an ordinary path; POSIX reserves leading '//'
Packit Service 5195f2
        # and for example Cygwin uses it to access remote file shares
Packit Service 5195f2
        # over CIFS/SMB, so we conserve a leading double slash if found.
Packit Service 5195f2
        func_normal_abspath_altnamespace=/
Packit Service 5195f2
        ;;
Packit Service 5195f2
      /*)
Packit Service 5195f2
        # Absolute path, do nothing.
Packit Service 5195f2
        ;;
Packit Service 5195f2
      *)
Packit Service 5195f2
        # Relative path, prepend $cwd.
Packit Service 5195f2
        func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath
Packit Service 5195f2
        ;;
Packit Service 5195f2
    esac
Packit Service 5195f2
Packit Service 5195f2
    # Cancel out all the simple stuff to save iterations.  We also want
Packit Service 5195f2
    # the path to end with a slash for ease of parsing, so make sure
Packit Service 5195f2
    # there is one (and only one) here.
Packit Service 5195f2
    func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \
Packit Service 5195f2
          -e "$_G_removedotparts" -e "$_G_collapseslashes" -e "$_G_finalslash"`
Packit Service 5195f2
    while :; do
Packit Service 5195f2
      # Processed it all yet?
Packit Service 5195f2
      if test / = "$func_normal_abspath_tpath"; then
Packit Service 5195f2
        # If we ascended to the root using ".." the result may be empty now.
Packit Service 5195f2
        if test -z "$func_normal_abspath_result"; then
Packit Service 5195f2
          func_normal_abspath_result=/
Packit Service 5195f2
        fi
Packit Service 5195f2
        break
Packit Service 5195f2
      fi
Packit Service 5195f2
      func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \
Packit Service 5195f2
          -e "$_G_pathcar"`
Packit Service 5195f2
      func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \
Packit Service 5195f2
          -e "$_G_pathcdr"`
Packit Service 5195f2
      # Figure out what to do with it
Packit Service 5195f2
      case $func_normal_abspath_tcomponent in
Packit Service 5195f2
        "")
Packit Service 5195f2
          # Trailing empty path component, ignore it.
Packit Service 5195f2
          ;;
Packit Service 5195f2
        ..)
Packit Service 5195f2
          # Parent dir; strip last assembled component from result.
Packit Service 5195f2
          func_dirname "$func_normal_abspath_result"
Packit Service 5195f2
          func_normal_abspath_result=$func_dirname_result
Packit Service 5195f2
          ;;
Packit Service 5195f2
        *)
Packit Service 5195f2
          # Actual path component, append it.
Packit Service 5195f2
          func_append func_normal_abspath_result "/$func_normal_abspath_tcomponent"
Packit Service 5195f2
          ;;
Packit Service 5195f2
      esac
Packit Service 5195f2
    done
Packit Service 5195f2
    # Restore leading double-slash if one was found on entry.
Packit Service 5195f2
    func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result
Packit Service 5195f2
}
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
# func_notquiet ARG...
Packit Service 5195f2
# --------------------
Packit Service 5195f2
# Echo program name prefixed message only when not in quiet mode.
Packit Service 5195f2
func_notquiet ()
Packit Service 5195f2
{
Packit Service 5195f2
    $debug_cmd
Packit Service 5195f2
Packit Service 5195f2
    $opt_quiet || func_echo ${1+"$@"}
Packit Service 5195f2
Packit Service 5195f2
    # A bug in bash halts the script if the last line of a function
Packit Service 5195f2
    # fails when set -e is in force, so we need another command to
Packit Service 5195f2
    # work around that:
Packit Service 5195f2
    :
Packit Service 5195f2
}
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
# func_relative_path SRCDIR DSTDIR
Packit Service 5195f2
# --------------------------------
Packit Service 5195f2
# Set func_relative_path_result to the relative path from SRCDIR to DSTDIR.
Packit Service 5195f2
func_relative_path ()
Packit Service 5195f2
{
Packit Service 5195f2
    $debug_cmd
Packit Service 5195f2
Packit Service 5195f2
    func_relative_path_result=
Packit Service 5195f2
    func_normal_abspath "$1"
Packit Service 5195f2
    func_relative_path_tlibdir=$func_normal_abspath_result
Packit Service 5195f2
    func_normal_abspath "$2"
Packit Service 5195f2
    func_relative_path_tbindir=$func_normal_abspath_result
Packit Service 5195f2
Packit Service 5195f2
    # Ascend the tree starting from libdir
Packit Service 5195f2
    while :; do
Packit Service 5195f2
      # check if we have found a prefix of bindir
Packit Service 5195f2
      case $func_relative_path_tbindir in
Packit Service 5195f2
        $func_relative_path_tlibdir)
Packit Service 5195f2
          # found an exact match
Packit Service 5195f2
          func_relative_path_tcancelled=
Packit Service 5195f2
          break
Packit Service 5195f2
          ;;
Packit Service 5195f2
        $func_relative_path_tlibdir*)
Packit Service 5195f2
          # found a matching prefix
Packit Service 5195f2
          func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir"
Packit Service 5195f2
          func_relative_path_tcancelled=$func_stripname_result
Packit Service 5195f2
          if test -z "$func_relative_path_result"; then
Packit Service 5195f2
            func_relative_path_result=.
Packit Service 5195f2
          fi
Packit Service 5195f2
          break
Packit Service 5195f2
          ;;
Packit Service 5195f2
        *)
Packit Service 5195f2
          func_dirname $func_relative_path_tlibdir
Packit Service 5195f2
          func_relative_path_tlibdir=$func_dirname_result
Packit Service 5195f2
          if test -z "$func_relative_path_tlibdir"; then
Packit Service 5195f2
            # Have to descend all the way to the root!
Packit Service 5195f2
            func_relative_path_result=../$func_relative_path_result
Packit Service 5195f2
            func_relative_path_tcancelled=$func_relative_path_tbindir
Packit Service 5195f2
            break
Packit Service 5195f2
          fi
Packit Service 5195f2
          func_relative_path_result=../$func_relative_path_result
Packit Service 5195f2
          ;;
Packit Service 5195f2
      esac
Packit Service 5195f2
    done
Packit Service 5195f2
Packit Service 5195f2
    # Now calculate path; take care to avoid doubling-up slashes.
Packit Service 5195f2
    func_stripname '' '/' "$func_relative_path_result"
Packit Service 5195f2
    func_relative_path_result=$func_stripname_result
Packit Service 5195f2
    func_stripname '/' '/' "$func_relative_path_tcancelled"
Packit Service 5195f2
    if test -n "$func_stripname_result"; then
Packit Service 5195f2
      func_append func_relative_path_result "/$func_stripname_result"
Packit Service 5195f2
    fi
Packit Service 5195f2
Packit Service 5195f2
    # Normalisation. If bindir is libdir, return '.' else relative path.
Packit Service 5195f2
    if test -n "$func_relative_path_result"; then
Packit Service 5195f2
      func_stripname './' '' "$func_relative_path_result"
Packit Service 5195f2
      func_relative_path_result=$func_stripname_result
Packit Service 5195f2
    fi
Packit Service 5195f2
Packit Service 5195f2
    test -n "$func_relative_path_result" || func_relative_path_result=.
Packit Service 5195f2
Packit Service 5195f2
    :
Packit Service 5195f2
}
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
# func_quote_for_eval ARG...
Packit Service 5195f2
# --------------------------
Packit Service 5195f2
# Aesthetically quote ARGs to be evaled later.
Packit Service 5195f2
# This function returns two values:
Packit Service 5195f2
#   i) func_quote_for_eval_result
Packit Service 5195f2
#      double-quoted, suitable for a subsequent eval
Packit Service 5195f2
#  ii) func_quote_for_eval_unquoted_result
Packit Service 5195f2
#      has all characters that are still active within double
Packit Service 5195f2
#      quotes backslashified.
Packit Service 5195f2
func_quote_for_eval ()
Packit Service 5195f2
{
Packit Service 5195f2
    $debug_cmd
Packit Service 5195f2
Packit Service 5195f2
    func_quote_for_eval_unquoted_result=
Packit Service 5195f2
    func_quote_for_eval_result=
Packit Service 5195f2
    while test 0 -lt $#; do
Packit Service 5195f2
      case $1 in
Packit Service 5195f2
        *[\\\`\"\$]*)
Packit Service 5195f2
	  _G_unquoted_arg=`printf '%s\n' "$1" |$SED "$sed_quote_subst"` ;;
Packit Service 5195f2
        *)
Packit Service 5195f2
          _G_unquoted_arg=$1 ;;
Packit Service 5195f2
      esac
Packit Service 5195f2
      if test -n "$func_quote_for_eval_unquoted_result"; then
Packit Service 5195f2
	func_append func_quote_for_eval_unquoted_result " $_G_unquoted_arg"
Packit Service 5195f2
      else
Packit Service 5195f2
        func_append func_quote_for_eval_unquoted_result "$_G_unquoted_arg"
Packit Service 5195f2
      fi
Packit Service 5195f2
Packit Service 5195f2
      case $_G_unquoted_arg in
Packit Service 5195f2
        # Double-quote args containing shell metacharacters to delay
Packit Service 5195f2
        # word splitting, command substitution and variable expansion
Packit Service 5195f2
        # for a subsequent eval.
Packit Service 5195f2
        # Many Bourne shells cannot handle close brackets correctly
Packit Service 5195f2
        # in scan sets, so we specify it separately.
Packit Service 5195f2
        *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
Packit Service 5195f2
          _G_quoted_arg=\"$_G_unquoted_arg\"
Packit Service 5195f2
          ;;
Packit Service 5195f2
        *)
Packit Service 5195f2
          _G_quoted_arg=$_G_unquoted_arg
Packit Service 5195f2
	  ;;
Packit Service 5195f2
      esac
Packit Service 5195f2
Packit Service 5195f2
      if test -n "$func_quote_for_eval_result"; then
Packit Service 5195f2
	func_append func_quote_for_eval_result " $_G_quoted_arg"
Packit Service 5195f2
      else
Packit Service 5195f2
        func_append func_quote_for_eval_result "$_G_quoted_arg"
Packit Service 5195f2
      fi
Packit Service 5195f2
      shift
Packit Service 5195f2
    done
Packit Service 5195f2
}
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
# func_quote_for_expand ARG
Packit Service 5195f2
# -------------------------
Packit Service 5195f2
# Aesthetically quote ARG to be evaled later; same as above,
Packit Service 5195f2
# but do not quote variable references.
Packit Service 5195f2
func_quote_for_expand ()
Packit Service 5195f2
{
Packit Service 5195f2
    $debug_cmd
Packit Service 5195f2
Packit Service 5195f2
    case $1 in
Packit Service 5195f2
      *[\\\`\"]*)
Packit Service 5195f2
	_G_arg=`$ECHO "$1" | $SED \
Packit Service 5195f2
	    -e "$sed_double_quote_subst" -e "$sed_double_backslash"` ;;
Packit Service 5195f2
      *)
Packit Service 5195f2
        _G_arg=$1 ;;
Packit Service 5195f2
    esac
Packit Service 5195f2
Packit Service 5195f2
    case $_G_arg in
Packit Service 5195f2
      # Double-quote args containing shell metacharacters to delay
Packit Service 5195f2
      # word splitting and command substitution for a subsequent eval.
Packit Service 5195f2
      # Many Bourne shells cannot handle close brackets correctly
Packit Service 5195f2
      # in scan sets, so we specify it separately.
Packit Service 5195f2
      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
Packit Service 5195f2
        _G_arg=\"$_G_arg\"
Packit Service 5195f2
        ;;
Packit Service 5195f2
    esac
Packit Service 5195f2
Packit Service 5195f2
    func_quote_for_expand_result=$_G_arg
Packit Service 5195f2
}
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
# func_stripname PREFIX SUFFIX NAME
Packit Service 5195f2
# ---------------------------------
Packit Service 5195f2
# strip PREFIX and SUFFIX from NAME, and store in func_stripname_result.
Packit Service 5195f2
# PREFIX and SUFFIX must not contain globbing or regex special
Packit Service 5195f2
# characters, hashes, percent signs, but SUFFIX may contain a leading
Packit Service 5195f2
# dot (in which case that matches only a dot).
Packit Service 5195f2
if test yes = "$_G_HAVE_XSI_OPS"; then
Packit Service 5195f2
  eval 'func_stripname ()
Packit Service 5195f2
  {
Packit Service 5195f2
    $debug_cmd
Packit Service 5195f2
Packit Service 5195f2
    # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are
Packit Service 5195f2
    # positional parameters, so assign one to ordinary variable first.
Packit Service 5195f2
    func_stripname_result=$3
Packit Service 5195f2
    func_stripname_result=${func_stripname_result#"$1"}
Packit Service 5195f2
    func_stripname_result=${func_stripname_result%"$2"}
Packit Service 5195f2
  }'
Packit Service 5195f2
else
Packit Service 5195f2
  func_stripname ()
Packit Service 5195f2
  {
Packit Service 5195f2
    $debug_cmd
Packit Service 5195f2
Packit Service 5195f2
    case $2 in
Packit Service 5195f2
      .*) func_stripname_result=`$ECHO "$3" | $SED -e "s%^$1%%" -e "s%\\\\$2\$%%"`;;
Packit Service 5195f2
      *)  func_stripname_result=`$ECHO "$3" | $SED -e "s%^$1%%" -e "s%$2\$%%"`;;
Packit Service 5195f2
    esac
Packit Service 5195f2
  }
Packit Service 5195f2
fi
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
# func_show_eval CMD [FAIL_EXP]
Packit Service 5195f2
# -----------------------------
Packit Service 5195f2
# Unless opt_quiet is true, then output CMD.  Then, if opt_dryrun is
Packit Service 5195f2
# not true, evaluate CMD.  If the evaluation of CMD fails, and FAIL_EXP
Packit Service 5195f2
# is given, then evaluate it.
Packit Service 5195f2
func_show_eval ()
Packit Service 5195f2
{
Packit Service 5195f2
    $debug_cmd
Packit Service 5195f2
Packit Service 5195f2
    _G_cmd=$1
Packit Service 5195f2
    _G_fail_exp=${2-':'}
Packit Service 5195f2
Packit Service 5195f2
    func_quote_for_expand "$_G_cmd"
Packit Service 5195f2
    eval "func_notquiet $func_quote_for_expand_result"
Packit Service 5195f2
Packit Service 5195f2
    $opt_dry_run || {
Packit Service 5195f2
      eval "$_G_cmd"
Packit Service 5195f2
      _G_status=$?
Packit Service 5195f2
      if test 0 -ne "$_G_status"; then
Packit Service 5195f2
	eval "(exit $_G_status); $_G_fail_exp"
Packit Service 5195f2
      fi
Packit Service 5195f2
    }
Packit Service 5195f2
}
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
# func_show_eval_locale CMD [FAIL_EXP]
Packit Service 5195f2
# ------------------------------------
Packit Service 5195f2
# Unless opt_quiet is true, then output CMD.  Then, if opt_dryrun is
Packit Service 5195f2
# not true, evaluate CMD.  If the evaluation of CMD fails, and FAIL_EXP
Packit Service 5195f2
# is given, then evaluate it.  Use the saved locale for evaluation.
Packit Service 5195f2
func_show_eval_locale ()
Packit Service 5195f2
{
Packit Service 5195f2
    $debug_cmd
Packit Service 5195f2
Packit Service 5195f2
    _G_cmd=$1
Packit Service 5195f2
    _G_fail_exp=${2-':'}
Packit Service 5195f2
Packit Service 5195f2
    $opt_quiet || {
Packit Service 5195f2
      func_quote_for_expand "$_G_cmd"
Packit Service 5195f2
      eval "func_echo $func_quote_for_expand_result"
Packit Service 5195f2
    }
Packit Service 5195f2
Packit Service 5195f2
    $opt_dry_run || {
Packit Service 5195f2
      eval "$_G_user_locale
Packit Service 5195f2
	    $_G_cmd"
Packit Service 5195f2
      _G_status=$?
Packit Service 5195f2
      eval "$_G_safe_locale"
Packit Service 5195f2
      if test 0 -ne "$_G_status"; then
Packit Service 5195f2
	eval "(exit $_G_status); $_G_fail_exp"
Packit Service 5195f2
      fi
Packit Service 5195f2
    }
Packit Service 5195f2
}
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
# func_tr_sh
Packit Service 5195f2
# ----------
Packit Service 5195f2
# Turn $1 into a string suitable for a shell variable name.
Packit Service 5195f2
# Result is stored in $func_tr_sh_result.  All characters
Packit Service 5195f2
# not in the set a-zA-Z0-9_ are replaced with '_'. Further,
Packit Service 5195f2
# if $1 begins with a digit, a '_' is prepended as well.
Packit Service 5195f2
func_tr_sh ()
Packit Service 5195f2
{
Packit Service 5195f2
    $debug_cmd
Packit Service 5195f2
Packit Service 5195f2
    case $1 in
Packit Service 5195f2
    [0-9]* | *[!a-zA-Z0-9_]*)
Packit Service 5195f2
      func_tr_sh_result=`$ECHO "$1" | $SED -e 's/^\([0-9]\)/_\1/' -e 's/[^a-zA-Z0-9_]/_/g'`
Packit Service 5195f2
      ;;
Packit Service 5195f2
    * )
Packit Service 5195f2
      func_tr_sh_result=$1
Packit Service 5195f2
      ;;
Packit Service 5195f2
    esac
Packit Service 5195f2
}
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
# func_verbose ARG...
Packit Service 5195f2
# -------------------
Packit Service 5195f2
# Echo program name prefixed message in verbose mode only.
Packit Service 5195f2
func_verbose ()
Packit Service 5195f2
{
Packit Service 5195f2
    $debug_cmd
Packit Service 5195f2
Packit Service 5195f2
    $opt_verbose && func_echo "$*"
Packit Service 5195f2
Packit Service 5195f2
    :
Packit Service 5195f2
}
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
# func_warn_and_continue ARG...
Packit Service 5195f2
# -----------------------------
Packit Service 5195f2
# Echo program name prefixed warning message to standard error.
Packit Service 5195f2
func_warn_and_continue ()
Packit Service 5195f2
{
Packit Service 5195f2
    $debug_cmd
Packit Service 5195f2
Packit Service 5195f2
    $require_term_colors
Packit Service 5195f2
Packit Service 5195f2
    func_echo_infix_1 "${tc_red}warning$tc_reset" "$*" >&2
Packit Service 5195f2
}
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
# func_warning CATEGORY ARG...
Packit Service 5195f2
# ----------------------------
Packit Service 5195f2
# Echo program name prefixed warning message to standard error. Warning
Packit Service 5195f2
# messages can be filtered according to CATEGORY, where this function
Packit Service 5195f2
# elides messages where CATEGORY is not listed in the global variable
Packit Service 5195f2
# 'opt_warning_types'.
Packit Service 5195f2
func_warning ()
Packit Service 5195f2
{
Packit Service 5195f2
    $debug_cmd
Packit Service 5195f2
Packit Service 5195f2
    # CATEGORY must be in the warning_categories list!
Packit Service 5195f2
    case " $warning_categories " in
Packit Service 5195f2
      *" $1 "*) ;;
Packit Service 5195f2
      *) func_internal_error "invalid warning category '$1'" ;;
Packit Service 5195f2
    esac
Packit Service 5195f2
Packit Service 5195f2
    _G_category=$1
Packit Service 5195f2
    shift
Packit Service 5195f2
Packit Service 5195f2
    case " $opt_warning_types " in
Packit Service 5195f2
      *" $_G_category "*) $warning_func ${1+"$@"} ;;
Packit Service 5195f2
    esac
Packit Service 5195f2
}
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
# func_sort_ver VER1 VER2
Packit Service 5195f2
# -----------------------
Packit Service 5195f2
# 'sort -V' is not generally available.
Packit Service 5195f2
# Note this deviates from the version comparison in automake
Packit Service 5195f2
# in that it treats 1.5 < 1.5.0, and treats 1.4.4a < 1.4-p3a
Packit Service 5195f2
# but this should suffice as we won't be specifying old
Packit Service 5195f2
# version formats or redundant trailing .0 in bootstrap.conf.
Packit Service 5195f2
# If we did want full compatibility then we should probably
Packit Service 5195f2
# use m4_version_compare from autoconf.
Packit Service 5195f2
func_sort_ver ()
Packit Service 5195f2
{
Packit Service 5195f2
    $debug_cmd
Packit Service 5195f2
Packit Service 5195f2
    ver1=$1
Packit Service 5195f2
    ver2=$2
Packit Service 5195f2
Packit Service 5195f2
    # Split on '.' and compare each component.
Packit Service 5195f2
    i=1
Packit Service 5195f2
    while :; do
Packit Service 5195f2
      p1=`echo "$ver1" |cut -d. -f$i`
Packit Service 5195f2
      p2=`echo "$ver2" |cut -d. -f$i`
Packit Service 5195f2
      if test ! "$p1"; then
Packit Service 5195f2
        echo "$1 $2"
Packit Service 5195f2
        break
Packit Service 5195f2
      elif test ! "$p2"; then
Packit Service 5195f2
        echo "$2 $1"
Packit Service 5195f2
        break
Packit Service 5195f2
      elif test ! "$p1" = "$p2"; then
Packit Service 5195f2
        if test "$p1" -gt "$p2" 2>/dev/null; then # numeric comparison
Packit Service 5195f2
          echo "$2 $1"
Packit Service 5195f2
        elif test "$p2" -gt "$p1" 2>/dev/null; then # numeric comparison
Packit Service 5195f2
          echo "$1 $2"
Packit Service 5195f2
        else # numeric, then lexicographic comparison
Packit Service 5195f2
          lp=`printf "$p1\n$p2\n" |sort -n |tail -n1`
Packit Service 5195f2
          if test "$lp" = "$p2"; then
Packit Service 5195f2
            echo "$1 $2"
Packit Service 5195f2
          else
Packit Service 5195f2
            echo "$2 $1"
Packit Service 5195f2
          fi
Packit Service 5195f2
        fi
Packit Service 5195f2
        break
Packit Service 5195f2
      fi
Packit Service 5195f2
      i=`expr $i + 1`
Packit Service 5195f2
    done
Packit Service 5195f2
}
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
# Local variables:
Packit Service 5195f2
# mode: shell-script
Packit Service 5195f2
# sh-indentation: 2
Packit Service 5195f2
# eval: (add-hook 'write-file-hooks 'time-stamp)
Packit Service 5195f2
# time-stamp-pattern: "10/scriptversion=%:y-%02m-%02d.%02H; # UTC"
Packit Service 5195f2
# time-stamp-time-zone: "UTC"
Packit Service 5195f2
# End:
Packit Service 5195f2
#! /bin/sh
Packit Service 5195f2
Packit Service 5195f2
# Set a version string for this script.
Packit Service 5195f2
scriptversion=2012-10-21.11; # UTC
Packit Service 5195f2
Packit Service 5195f2
# A portable, pluggable option parser for Bourne shell.
Packit Service 5195f2
# Written by Gary V. Vaughan, 2010
Packit Service 5195f2
Packit Service 5195f2
# Copyright (C) 2010-2013 Free Software Foundation, Inc.
Packit Service 5195f2
# This is free software; see the source for copying conditions.  There is NO
Packit Service 5195f2
# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Packit Service 5195f2
Packit Service 5195f2
# This program is free software: you can redistribute it and/or modify
Packit Service 5195f2
# it under the terms of the GNU General Public License as published by
Packit Service 5195f2
# the Free Software Foundation, either version 3 of the License, or
Packit Service 5195f2
# (at your option) any later version.
Packit Service 5195f2
Packit Service 5195f2
# This program is distributed in the hope that it will be useful,
Packit Service 5195f2
# but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit Service 5195f2
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
Packit Service 5195f2
# GNU General Public License for more details.
Packit Service 5195f2
Packit Service 5195f2
# You should have received a copy of the GNU General Public License
Packit Service 5195f2
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
Packit Service 5195f2
Packit Service 5195f2
# Please report bugs or propose patches to gary@gnu.org.
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
## ------ ##
Packit Service 5195f2
## Usage. ##
Packit Service 5195f2
## ------ ##
Packit Service 5195f2
Packit Service 5195f2
# This file is a library for parsing options in your shell scripts along
Packit Service 5195f2
# with assorted other useful supporting features that you can make use
Packit Service 5195f2
# of too.
Packit Service 5195f2
#
Packit Service 5195f2
# For the simplest scripts you might need only:
Packit Service 5195f2
#
Packit Service 5195f2
#   #!/bin/sh
Packit Service 5195f2
#   . relative/path/to/funclib.sh
Packit Service 5195f2
#   . relative/path/to/options-parser
Packit Service 5195f2
#   scriptversion=1.0
Packit Service 5195f2
#   func_options ${1+"$@"}
Packit Service 5195f2
#   eval set dummy "$func_options_result"; shift
Packit Service 5195f2
#   ...rest of your script...
Packit Service 5195f2
#
Packit Service 5195f2
# In order for the '--version' option to work, you will need to have a
Packit Service 5195f2
# suitably formatted comment like the one at the top of this file
Packit Service 5195f2
# starting with '# Written by ' and ending with '# warranty; '.
Packit Service 5195f2
#
Packit Service 5195f2
# For '-h' and '--help' to work, you will also need a one line
Packit Service 5195f2
# description of your script's purpose in a comment directly above the
Packit Service 5195f2
# '# Written by ' line, like the one at the top of this file.
Packit Service 5195f2
#
Packit Service 5195f2
# The default options also support '--debug', which will turn on shell
Packit Service 5195f2
# execution tracing (see the comment above debug_cmd below for another
Packit Service 5195f2
# use), and '--verbose' and the func_verbose function to allow your script
Packit Service 5195f2
# to display verbose messages only when your user has specified
Packit Service 5195f2
# '--verbose'.
Packit Service 5195f2
#
Packit Service 5195f2
# After sourcing this file, you can plug processing for additional
Packit Service 5195f2
# options by amending the variables from the 'Configuration' section
Packit Service 5195f2
# below, and following the instructions in the 'Option parsing'
Packit Service 5195f2
# section further down.
Packit Service 5195f2
Packit Service 5195f2
## -------------- ##
Packit Service 5195f2
## Configuration. ##
Packit Service 5195f2
## -------------- ##
Packit Service 5195f2
Packit Service 5195f2
# You should override these variables in your script after sourcing this
Packit Service 5195f2
# file so that they reflect the customisations you have added to the
Packit Service 5195f2
# option parser.
Packit Service 5195f2
Packit Service 5195f2
# The usage line for option parsing errors and the start of '-h' and
Packit Service 5195f2
# '--help' output messages. You can embed shell variables for delayed
Packit Service 5195f2
# expansion at the time the message is displayed, but you will need to
Packit Service 5195f2
# quote other shell meta-characters carefully to prevent them being
Packit Service 5195f2
# expanded when the contents are evaled.
Packit Service 5195f2
usage='$progpath [OPTION]...'
Packit Service 5195f2
Packit Service 5195f2
# Short help message in response to '-h' and '--help'.  Add to this or
Packit Service 5195f2
# override it after sourcing this library to reflect the full set of
Packit Service 5195f2
# options your script accepts.
Packit Service 5195f2
usage_message="\
Packit Service 5195f2
       --debug        enable verbose shell tracing
Packit Service 5195f2
   -W, --warnings=CATEGORY
Packit Service 5195f2
                      report the warnings falling in CATEGORY [all]
Packit Service 5195f2
   -v, --verbose      verbosely report processing
Packit Service 5195f2
       --version      print version information and exit
Packit Service 5195f2
   -h, --help         print short or long help message and exit
Packit Service 5195f2
"
Packit Service 5195f2
Packit Service 5195f2
# Additional text appended to 'usage_message' in response to '--help'.
Packit Service 5195f2
long_help_message="
Packit Service 5195f2
Warning categories include:
Packit Service 5195f2
       'all'          show all warnings
Packit Service 5195f2
       'none'         turn off all the warnings
Packit Service 5195f2
       'error'        warnings are treated as fatal errors"
Packit Service 5195f2
Packit Service 5195f2
# Help message printed before fatal option parsing errors.
Packit Service 5195f2
fatal_help="Try '\$progname --help' for more information."
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
## ------------------------- ##
Packit Service 5195f2
## Hook function management. ##
Packit Service 5195f2
## ------------------------- ##
Packit Service 5195f2
Packit Service 5195f2
# This section contains functions for adding, removing, and running hooks
Packit Service 5195f2
# to the main code.  A hook is just a named list of of function, that can
Packit Service 5195f2
# be run in order later on.
Packit Service 5195f2
Packit Service 5195f2
# func_hookable FUNC_NAME
Packit Service 5195f2
# -----------------------
Packit Service 5195f2
# Declare that FUNC_NAME will run hooks added with
Packit Service 5195f2
# 'func_add_hook FUNC_NAME ...'.
Packit Service 5195f2
func_hookable ()
Packit Service 5195f2
{
Packit Service 5195f2
    $debug_cmd
Packit Service 5195f2
Packit Service 5195f2
    func_append hookable_fns " $1"
Packit Service 5195f2
}
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
# func_add_hook FUNC_NAME HOOK_FUNC
Packit Service 5195f2
# ---------------------------------
Packit Service 5195f2
# Request that FUNC_NAME call HOOK_FUNC before it returns.  FUNC_NAME must
Packit Service 5195f2
# first have been declared "hookable" by a call to 'func_hookable'.
Packit Service 5195f2
func_add_hook ()
Packit Service 5195f2
{
Packit Service 5195f2
    $debug_cmd
Packit Service 5195f2
Packit Service 5195f2
    case " $hookable_fns " in
Packit Service 5195f2
      *" $1 "*) ;;
Packit Service 5195f2
      *) func_fatal_error "'$1' does not accept hook functions." ;;
Packit Service 5195f2
    esac
Packit Service 5195f2
Packit Service 5195f2
    eval func_append ${1}_hooks '" $2"'
Packit Service 5195f2
}
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
# func_remove_hook FUNC_NAME HOOK_FUNC
Packit Service 5195f2
# ------------------------------------
Packit Service 5195f2
# Remove HOOK_FUNC from the list of functions called by FUNC_NAME.
Packit Service 5195f2
func_remove_hook ()
Packit Service 5195f2
{
Packit Service 5195f2
    $debug_cmd
Packit Service 5195f2
Packit Service 5195f2
    eval ${1}_hooks='`$bs_echo "\$'$1'_hooks" |$SED "s| '$2'||"`'
Packit Service 5195f2
}
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
# func_run_hooks FUNC_NAME [ARG]...
Packit Service 5195f2
# ---------------------------------
Packit Service 5195f2
# Run all hook functions registered to FUNC_NAME.
Packit Service 5195f2
# It is assumed that the list of hook functions contains nothing more
Packit Service 5195f2
# than a whitespace-delimited list of legal shell function names, and
Packit Service 5195f2
# no effort is wasted trying to catch shell meta-characters or preserve
Packit Service 5195f2
# whitespace.
Packit Service 5195f2
func_run_hooks ()
Packit Service 5195f2
{
Packit Service 5195f2
    $debug_cmd
Packit Service 5195f2
Packit Service 5195f2
    case " $hookable_fns " in
Packit Service 5195f2
      *" $1 "*) ;;
Packit Service 5195f2
      *) func_fatal_error "'$1' does not support hook funcions.n" ;;
Packit Service 5195f2
    esac
Packit Service 5195f2
Packit Service 5195f2
    eval _G_hook_fns=\$$1_hooks; shift
Packit Service 5195f2
Packit Service 5195f2
    for _G_hook in $_G_hook_fns; do
Packit Service 5195f2
      eval $_G_hook '"$@"'
Packit Service 5195f2
Packit Service 5195f2
      # store returned options list back into positional
Packit Service 5195f2
      # parameters for next 'cmd' execution.
Packit Service 5195f2
      eval _G_hook_result=\$${_G_hook}_result
Packit Service 5195f2
      eval set dummy "$_G_hook_result"; shift
Packit Service 5195f2
    done
Packit Service 5195f2
Packit Service 5195f2
    func_quote_for_eval ${1+"$@"}
Packit Service 5195f2
    func_run_hooks_result=$func_quote_for_eval_result
Packit Service 5195f2
}
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
## --------------- ##
Packit Service 5195f2
## Option parsing. ##
Packit Service 5195f2
## --------------- ##
Packit Service 5195f2
Packit Service 5195f2
# In order to add your own option parsing hooks, you must accept the
Packit Service 5195f2
# full positional parameter list in your hook function, remove any
Packit Service 5195f2
# options that you action, and then pass back the remaining unprocessed
Packit Service 5195f2
# options in '<hooked_function_name>_result', escaped suitably for
Packit Service 5195f2
# 'eval'.  Like this:
Packit Service 5195f2
#
Packit Service 5195f2
#    my_options_prep ()
Packit Service 5195f2
#    {
Packit Service 5195f2
#        $debug_cmd
Packit Service 5195f2
#
Packit Service 5195f2
#        # Extend the existing usage message.
Packit Service 5195f2
#        usage_message=$usage_message'
Packit Service 5195f2
#      -s, --silent       don'\''t print informational messages
Packit Service 5195f2
#    '
Packit Service 5195f2
#
Packit Service 5195f2
#        func_quote_for_eval ${1+"$@"}
Packit Service 5195f2
#        my_options_prep_result=$func_quote_for_eval_result
Packit Service 5195f2
#    }
Packit Service 5195f2
#    func_add_hook func_options_prep my_options_prep
Packit Service 5195f2
#
Packit Service 5195f2
#
Packit Service 5195f2
#    my_silent_option ()
Packit Service 5195f2
#    {
Packit Service 5195f2
#        $debug_cmd
Packit Service 5195f2
#
Packit Service 5195f2
#        # Note that for efficiency, we parse as many options as we can
Packit Service 5195f2
#        # recognise in a loop before passing the remainder back to the
Packit Service 5195f2
#        # caller on the first unrecognised argument we encounter.
Packit Service 5195f2
#        while test $# -gt 0; do
Packit Service 5195f2
#          opt=$1; shift
Packit Service 5195f2
#          case $opt in
Packit Service 5195f2
#            --silent|-s) opt_silent=: ;;
Packit Service 5195f2
#            # Separate non-argument short options:
Packit Service 5195f2
#            -s*)         func_split_short_opt "$_G_opt"
Packit Service 5195f2
#                         set dummy "$func_split_short_opt_name" \
Packit Service 5195f2
#                             "-$func_split_short_opt_arg" ${1+"$@"}
Packit Service 5195f2
#                         shift
Packit Service 5195f2
#                         ;;
Packit Service 5195f2
#            *)            set dummy "$_G_opt" "$*"; shift; break ;;
Packit Service 5195f2
#          esac
Packit Service 5195f2
#        done
Packit Service 5195f2
#
Packit Service 5195f2
#        func_quote_for_eval ${1+"$@"}
Packit Service 5195f2
#        my_silent_option_result=$func_quote_for_eval_result
Packit Service 5195f2
#    }
Packit Service 5195f2
#    func_add_hook func_parse_options my_silent_option
Packit Service 5195f2
#
Packit Service 5195f2
#
Packit Service 5195f2
#    my_option_validation ()
Packit Service 5195f2
#    {
Packit Service 5195f2
#        $debug_cmd
Packit Service 5195f2
#
Packit Service 5195f2
#        $opt_silent && $opt_verbose && func_fatal_help "\
Packit Service 5195f2
#    '--silent' and '--verbose' options are mutually exclusive."
Packit Service 5195f2
#
Packit Service 5195f2
#        func_quote_for_eval ${1+"$@"}
Packit Service 5195f2
#        my_option_validation_result=$func_quote_for_eval_result
Packit Service 5195f2
#    }
Packit Service 5195f2
#    func_add_hook func_validate_options my_option_validation
Packit Service 5195f2
#
Packit Service 5195f2
# You'll alse need to manually amend $usage_message to reflect the extra
Packit Service 5195f2
# options you parse.  It's preferable to append if you can, so that
Packit Service 5195f2
# multiple option parsing hooks can be added safely.
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
# func_options [ARG]...
Packit Service 5195f2
# ---------------------
Packit Service 5195f2
# All the functions called inside func_options are hookable. See the
Packit Service 5195f2
# individual implementations for details.
Packit Service 5195f2
func_hookable func_options
Packit Service 5195f2
func_options ()
Packit Service 5195f2
{
Packit Service 5195f2
    $debug_cmd
Packit Service 5195f2
Packit Service 5195f2
    func_options_prep ${1+"$@"}
Packit Service 5195f2
    eval func_parse_options \
Packit Service 5195f2
        ${func_options_prep_result+"$func_options_prep_result"}
Packit Service 5195f2
    eval func_validate_options \
Packit Service 5195f2
        ${func_parse_options_result+"$func_parse_options_result"}
Packit Service 5195f2
Packit Service 5195f2
    eval func_run_hooks func_options \
Packit Service 5195f2
        ${func_validate_options_result+"$func_validate_options_result"}
Packit Service 5195f2
Packit Service 5195f2
    # save modified positional parameters for caller
Packit Service 5195f2
    func_options_result=$func_run_hooks_result
Packit Service 5195f2
}
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
# func_options_prep [ARG]...
Packit Service 5195f2
# --------------------------
Packit Service 5195f2
# All initialisations required before starting the option parse loop.
Packit Service 5195f2
# Note that when calling hook functions, we pass through the list of
Packit Service 5195f2
# positional parameters.  If a hook function modifies that list, and
Packit Service 5195f2
# needs to propogate that back to rest of this script, then the complete
Packit Service 5195f2
# modified list must be put in 'func_run_hooks_result' before
Packit Service 5195f2
# returning.
Packit Service 5195f2
func_hookable func_options_prep
Packit Service 5195f2
func_options_prep ()
Packit Service 5195f2
{
Packit Service 5195f2
    $debug_cmd
Packit Service 5195f2
Packit Service 5195f2
    # Option defaults:
Packit Service 5195f2
    opt_verbose=false
Packit Service 5195f2
    opt_warning_types=
Packit Service 5195f2
Packit Service 5195f2
    func_run_hooks func_options_prep ${1+"$@"}
Packit Service 5195f2
Packit Service 5195f2
    # save modified positional parameters for caller
Packit Service 5195f2
    func_options_prep_result=$func_run_hooks_result
Packit Service 5195f2
}
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
# func_parse_options [ARG]...
Packit Service 5195f2
# ---------------------------
Packit Service 5195f2
# The main option parsing loop.
Packit Service 5195f2
func_hookable func_parse_options
Packit Service 5195f2
func_parse_options ()
Packit Service 5195f2
{
Packit Service 5195f2
    $debug_cmd
Packit Service 5195f2
Packit Service 5195f2
    func_parse_options_result=
Packit Service 5195f2
Packit Service 5195f2
    # this just eases exit handling
Packit Service 5195f2
    while test $# -gt 0; do
Packit Service 5195f2
      # Defer to hook functions for initial option parsing, so they
Packit Service 5195f2
      # get priority in the event of reusing an option name.
Packit Service 5195f2
      func_run_hooks func_parse_options ${1+"$@"}
Packit Service 5195f2
Packit Service 5195f2
      # Adjust func_parse_options positional parameters to match
Packit Service 5195f2
      eval set dummy "$func_run_hooks_result"; shift
Packit Service 5195f2
Packit Service 5195f2
      # Break out of the loop if we already parsed every option.
Packit Service 5195f2
      test $# -gt 0 || break
Packit Service 5195f2
Packit Service 5195f2
      _G_opt=$1
Packit Service 5195f2
      shift
Packit Service 5195f2
      case $_G_opt in
Packit Service 5195f2
        --debug|-x)   debug_cmd='set -x'
Packit Service 5195f2
                      func_echo "enabling shell trace mode"
Packit Service 5195f2
                      $debug_cmd
Packit Service 5195f2
                      ;;
Packit Service 5195f2
Packit Service 5195f2
        --no-warnings|--no-warning|--no-warn)
Packit Service 5195f2
                      set dummy --warnings none ${1+"$@"}
Packit Service 5195f2
                      shift
Packit Service 5195f2
		      ;;
Packit Service 5195f2
Packit Service 5195f2
        --warnings|--warning|-W)
Packit Service 5195f2
                      test $# = 0 && func_missing_arg $_G_opt && break
Packit Service 5195f2
                      case " $warning_categories $1" in
Packit Service 5195f2
                        *" $1 "*)
Packit Service 5195f2
                          # trailing space prevents matching last $1 above
Packit Service 5195f2
                          func_append_uniq opt_warning_types " $1"
Packit Service 5195f2
                          ;;
Packit Service 5195f2
                        *all)
Packit Service 5195f2
                          opt_warning_types=$warning_categories
Packit Service 5195f2
                          ;;
Packit Service 5195f2
                        *none)
Packit Service 5195f2
                          opt_warning_types=none
Packit Service 5195f2
                          warning_func=:
Packit Service 5195f2
                          ;;
Packit Service 5195f2
                        *error)
Packit Service 5195f2
                          opt_warning_types=$warning_categories
Packit Service 5195f2
                          warning_func=func_fatal_error
Packit Service 5195f2
                          ;;
Packit Service 5195f2
                        *)
Packit Service 5195f2
                          func_fatal_error \
Packit Service 5195f2
                             "unsupported warning category: '$1'"
Packit Service 5195f2
                          ;;
Packit Service 5195f2
                      esac
Packit Service 5195f2
                      shift
Packit Service 5195f2
                      ;;
Packit Service 5195f2
Packit Service 5195f2
        --verbose|-v) opt_verbose=: ;;
Packit Service 5195f2
        --version)    func_version ;;
Packit Service 5195f2
        -\?|-h)       func_usage ;;
Packit Service 5195f2
        --help)       func_help ;;
Packit Service 5195f2
Packit Service 5195f2
	# Separate optargs to long options (plugins may need this):
Packit Service 5195f2
	--*=*)        func_split_equals "$_G_opt"
Packit Service 5195f2
	              set dummy "$func_split_equals_lhs" \
Packit Service 5195f2
                          "$func_split_equals_rhs" ${1+"$@"}
Packit Service 5195f2
                      shift
Packit Service 5195f2
                      ;;
Packit Service 5195f2
Packit Service 5195f2
       # Separate optargs to short options:
Packit Service 5195f2
        -W*)
Packit Service 5195f2
                      func_split_short_opt "$_G_opt"
Packit Service 5195f2
                      set dummy "$func_split_short_opt_name" \
Packit Service 5195f2
                          "$func_split_short_opt_arg" ${1+"$@"}
Packit Service 5195f2
                      shift
Packit Service 5195f2
                      ;;
Packit Service 5195f2
Packit Service 5195f2
        # Separate non-argument short options:
Packit Service 5195f2
        -\?*|-h*|-v*|-x*)
Packit Service 5195f2
                      func_split_short_opt "$_G_opt"
Packit Service 5195f2
                      set dummy "$func_split_short_opt_name" \
Packit Service 5195f2
                          "-$func_split_short_opt_arg" ${1+"$@"}
Packit Service 5195f2
                      shift
Packit Service 5195f2
                      ;;
Packit Service 5195f2
Packit Service 5195f2
        --)           break ;;
Packit Service 5195f2
        -*)           func_fatal_help "unrecognised option: '$_G_opt'" ;;
Packit Service 5195f2
        *)            set dummy "$_G_opt" ${1+"$@"}; shift; break ;;
Packit Service 5195f2
      esac
Packit Service 5195f2
    done
Packit Service 5195f2
Packit Service 5195f2
    # save modified positional parameters for caller
Packit Service 5195f2
    func_quote_for_eval ${1+"$@"}
Packit Service 5195f2
    func_parse_options_result=$func_quote_for_eval_result
Packit Service 5195f2
}
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
# func_validate_options [ARG]...
Packit Service 5195f2
# ------------------------------
Packit Service 5195f2
# Perform any sanity checks on option settings and/or unconsumed
Packit Service 5195f2
# arguments.
Packit Service 5195f2
func_hookable func_validate_options
Packit Service 5195f2
func_validate_options ()
Packit Service 5195f2
{
Packit Service 5195f2
    $debug_cmd
Packit Service 5195f2
Packit Service 5195f2
    # Display all warnings if -W was not given.
Packit Service 5195f2
    test -n "$opt_warning_types" || opt_warning_types=" $warning_categories"
Packit Service 5195f2
Packit Service 5195f2
    func_run_hooks func_validate_options ${1+"$@"}
Packit Service 5195f2
Packit Service 5195f2
    # Bail if the options were screwed!
Packit Service 5195f2
    $exit_cmd $EXIT_FAILURE
Packit Service 5195f2
Packit Service 5195f2
    # save modified positional parameters for caller
Packit Service 5195f2
    func_validate_options_result=$func_run_hooks_result
Packit Service 5195f2
}
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
## ------------------##
Packit Service 5195f2
## Helper functions. ##
Packit Service 5195f2
## ------------------##
Packit Service 5195f2
Packit Service 5195f2
# This section contains the helper functions used by the rest of the
Packit Service 5195f2
# hookable option parser framework in ascii-betical order.
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
# func_fatal_help ARG...
Packit Service 5195f2
# ----------------------
Packit Service 5195f2
# Echo program name prefixed message to standard error, followed by
Packit Service 5195f2
# a help hint, and exit.
Packit Service 5195f2
func_fatal_help ()
Packit Service 5195f2
{
Packit Service 5195f2
    $debug_cmd
Packit Service 5195f2
Packit Service 5195f2
    eval \$bs_echo \""Usage: $usage"\"
Packit Service 5195f2
    eval \$bs_echo \""$fatal_help"\"
Packit Service 5195f2
    func_error ${1+"$@"}
Packit Service 5195f2
    exit $EXIT_FAILURE
Packit Service 5195f2
}
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
# func_help
Packit Service 5195f2
# ---------
Packit Service 5195f2
# Echo long help message to standard output and exit.
Packit Service 5195f2
func_help ()
Packit Service 5195f2
{
Packit Service 5195f2
    $debug_cmd
Packit Service 5195f2
Packit Service 5195f2
    func_usage_message
Packit Service 5195f2
    $bs_echo "$long_help_message"
Packit Service 5195f2
    exit 0
Packit Service 5195f2
}
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
# func_missing_arg ARGNAME
Packit Service 5195f2
# ------------------------
Packit Service 5195f2
# Echo program name prefixed message to standard error and set global
Packit Service 5195f2
# exit_cmd.
Packit Service 5195f2
func_missing_arg ()
Packit Service 5195f2
{
Packit Service 5195f2
    $debug_cmd
Packit Service 5195f2
Packit Service 5195f2
    func_error "Missing argument for '$1'."
Packit Service 5195f2
    exit_cmd=exit
Packit Service 5195f2
}
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
# func_split_equals STRING
Packit Service 5195f2
# ------------------------
Packit Service 5195f2
# Set func_split_equals_lhs and func_split_equals_rhs shell variables after
Packit Service 5195f2
# splitting STRING at the '=' sign.
Packit Service 5195f2
test -z "$_G_HAVE_XSI_OPS" \
Packit Service 5195f2
    && (eval 'x=a/b/c;
Packit Service 5195f2
      test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \
Packit Service 5195f2
    && _G_HAVE_XSI_OPS=yes
Packit Service 5195f2
Packit Service 5195f2
if test yes = "$_G_HAVE_XSI_OPS"
Packit Service 5195f2
then
Packit Service 5195f2
  # This is an XSI compatible shell, allowing a faster implementation...
Packit Service 5195f2
  eval 'func_split_equals ()
Packit Service 5195f2
  {
Packit Service 5195f2
      $debug_cmd
Packit Service 5195f2
Packit Service 5195f2
      func_split_equals_lhs=${1%%=*}
Packit Service 5195f2
      func_split_equals_rhs=${1#*=}
Packit Service 5195f2
      test "x$func_split_equals_lhs" = "x$1" \
Packit Service 5195f2
        && func_split_equals_rhs=
Packit Service 5195f2
  }'
Packit Service 5195f2
else
Packit Service 5195f2
  # ...otherwise fall back to using expr, which is often a shell builtin.
Packit Service 5195f2
  func_split_equals ()
Packit Service 5195f2
  {
Packit Service 5195f2
      $debug_cmd
Packit Service 5195f2
Packit Service 5195f2
      func_split_equals_lhs=`expr "x$1" : 'x\([^=]*\)'`
Packit Service 5195f2
      func_split_equals_rhs=
Packit Service 5195f2
      test "x$func_split_equals_lhs" = "x$1" \
Packit Service 5195f2
        || func_split_equals_rhs=`expr "x$1" : 'x[^=]*=\(.*\)$'`
Packit Service 5195f2
  }
Packit Service 5195f2
fi #func_split_equals
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
# func_split_short_opt SHORTOPT
Packit Service 5195f2
# -----------------------------
Packit Service 5195f2
# Set func_split_short_opt_name and func_split_short_opt_arg shell
Packit Service 5195f2
# variables after splitting SHORTOPT after the 2nd character.
Packit Service 5195f2
if test yes = "$_G_HAVE_XSI_OPS"
Packit Service 5195f2
then
Packit Service 5195f2
  # This is an XSI compatible shell, allowing a faster implementation...
Packit Service 5195f2
  eval 'func_split_short_opt ()
Packit Service 5195f2
  {
Packit Service 5195f2
      $debug_cmd
Packit Service 5195f2
Packit Service 5195f2
      func_split_short_opt_arg=${1#??}
Packit Service 5195f2
      func_split_short_opt_name=${1%"$func_split_short_opt_arg"}
Packit Service 5195f2
  }'
Packit Service 5195f2
else
Packit Service 5195f2
  # ...otherwise fall back to using expr, which is often a shell builtin.
Packit Service 5195f2
  func_split_short_opt ()
Packit Service 5195f2
  {
Packit Service 5195f2
      $debug_cmd
Packit Service 5195f2
Packit Service 5195f2
      func_split_short_opt_name=`expr "x$1" : 'x-\(.\)'`
Packit Service 5195f2
      func_split_short_opt_arg=`expr "x$1" : 'x-.\(.*\)$'`
Packit Service 5195f2
  }
Packit Service 5195f2
fi #func_split_short_opt
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
# func_usage
Packit Service 5195f2
# ----------
Packit Service 5195f2
# Echo short help message to standard output and exit.
Packit Service 5195f2
func_usage ()
Packit Service 5195f2
{
Packit Service 5195f2
    $debug_cmd
Packit Service 5195f2
Packit Service 5195f2
    func_usage_message
Packit Service 5195f2
    $bs_echo "Run '$progname --help |${PAGER-more}' for full usage"
Packit Service 5195f2
    exit 0
Packit Service 5195f2
}
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
# func_usage_message
Packit Service 5195f2
# ------------------
Packit Service 5195f2
# Echo short help message to standard output.
Packit Service 5195f2
func_usage_message ()
Packit Service 5195f2
{
Packit Service 5195f2
    $debug_cmd
Packit Service 5195f2
Packit Service 5195f2
    eval \$bs_echo \""Usage: $usage"\"
Packit Service 5195f2
    echo
Packit Service 5195f2
    $SED -n 's|^# ||
Packit Service 5195f2
        /^Written by/{
Packit Service 5195f2
          x;p;x
Packit Service 5195f2
        }
Packit Service 5195f2
	h
Packit Service 5195f2
	/^Written by/q' < "$progpath"
Packit Service 5195f2
    echo
Packit Service 5195f2
    eval \$bs_echo \""$usage_message"\"
Packit Service 5195f2
}
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
# func_version
Packit Service 5195f2
# ------------
Packit Service 5195f2
# Echo version message to standard output and exit.
Packit Service 5195f2
func_version ()
Packit Service 5195f2
{
Packit Service 5195f2
    $debug_cmd
Packit Service 5195f2
Packit Service 5195f2
    printf '%s\n' "$progname $scriptversion"
Packit Service 5195f2
    $SED -n '/^##/q
Packit Service 5195f2
        /(C)/!b go
Packit Service 5195f2
        :more
Packit Service 5195f2
        /\./!{
Packit Service 5195f2
          N
Packit Service 5195f2
          s|\n# | |
Packit Service 5195f2
          b more
Packit Service 5195f2
        }
Packit Service 5195f2
        :go
Packit Service 5195f2
        /^# Written by /,/# warranty; / {
Packit Service 5195f2
          s|^# ||
Packit Service 5195f2
          s|^# *$||
Packit Service 5195f2
          s|\((C)\)[ 0-9,-]*[ ,-]\([1-9][0-9]* \)|\1 \2|
Packit Service 5195f2
          p
Packit Service 5195f2
        }
Packit Service 5195f2
        /^# Written by / {
Packit Service 5195f2
          s|^# ||
Packit Service 5195f2
          p
Packit Service 5195f2
        }
Packit Service 5195f2
        /^warranty; /q' < "$progpath"
Packit Service 5195f2
Packit Service 5195f2
    exit $?
Packit Service 5195f2
}
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
# Local variables:
Packit Service 5195f2
# mode: shell-script
Packit Service 5195f2
# sh-indentation: 2
Packit Service 5195f2
# eval: (add-hook 'write-file-hooks 'time-stamp)
Packit Service 5195f2
# time-stamp-pattern: "10/scriptversion=%:y-%02m-%02d.%02H; # UTC"
Packit Service 5195f2
# time-stamp-time-zone: "UTC"
Packit Service 5195f2
# End:
Packit Service 5195f2
Packit Service 5195f2
# Set a version string.
Packit Service 5195f2
scriptversion='(GNU libtool) 2.4.2.418'
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
# func_echo ARG...
Packit Service 5195f2
# ----------------
Packit Service 5195f2
# Libtool also displays the current mode in messages, so override
Packit Service 5195f2
# funclib.sh func_echo with this custom definition.
Packit Service 5195f2
func_echo ()
Packit Service 5195f2
{
Packit Service 5195f2
    $debug_cmd
Packit Service 5195f2
Packit Service 5195f2
    _G_message=$*
Packit Service 5195f2
Packit Service 5195f2
    func_echo_IFS=$IFS
Packit Service 5195f2
    IFS=$nl
Packit Service 5195f2
    for _G_line in $_G_message; do
Packit Service 5195f2
      IFS=$func_echo_IFS
Packit Service 5195f2
      $bs_echo "$progname${opt_mode+: $opt_mode}: $_G_line"
Packit Service 5195f2
    done
Packit Service 5195f2
    IFS=$func_echo_IFS
Packit Service 5195f2
}
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
# func_warning ARG...
Packit Service 5195f2
# -------------------
Packit Service 5195f2
# Libtool warnings are not categorized, so override funclib.sh
Packit Service 5195f2
# func_warning with this simpler definition.
Packit Service 5195f2
func_warning ()
Packit Service 5195f2
{
Packit Service 5195f2
    $debug_cmd
Packit Service 5195f2
Packit Service 5195f2
    $warning_func ${1+"$@"}
Packit Service 5195f2
}
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
## ---------------- ##
Packit Service 5195f2
## Options parsing. ##
Packit Service 5195f2
## ---------------- ##
Packit Service 5195f2
Packit Service 5195f2
# Hook in the functions to make sure our own options are parsed during
Packit Service 5195f2
# the option parsing loop.
Packit Service 5195f2
Packit Service 5195f2
usage='$progpath [OPTION]... [MODE-ARG]...'
Packit Service 5195f2
Packit Service 5195f2
# Short help message in response to '-h'.
Packit Service 5195f2
usage_message="Options:
Packit Service 5195f2
       --config             show all configuration variables
Packit Service 5195f2
       --debug              enable verbose shell tracing
Packit Service 5195f2
   -n, --dry-run            display commands without modifying any files
Packit Service 5195f2
       --features           display basic configuration information and exit
Packit Service 5195f2
       --mode=MODE          use operation mode MODE
Packit Service 5195f2
       --no-warnings        equivalent to '-Wnone'
Packit Service 5195f2
       --preserve-dup-deps  don't remove duplicate dependency libraries
Packit Service 5195f2
       --quiet, --silent    don't print informational messages
Packit Service 5195f2
       --tag=TAG            use configuration variables from tag TAG
Packit Service 5195f2
   -v, --verbose            print more informational messages than default
Packit Service 5195f2
       --version            print version information
Packit Service 5195f2
   -W, --warnings=CATEGORY  report the warnings falling in CATEGORY [all]
Packit Service 5195f2
   -h, --help, --help-all   print short, long, or detailed help message
Packit Service 5195f2
"
Packit Service 5195f2
Packit Service 5195f2
# Additional text appended to 'usage_message' in response to '--help'.
Packit Service 5195f2
long_help_message=$long_help_message"
Packit Service 5195f2
Packit Service 5195f2
MODE must be one of the following:
Packit Service 5195f2
Packit Service 5195f2
       clean           remove files from the build directory
Packit Service 5195f2
       compile         compile a source file into a libtool object
Packit Service 5195f2
       execute         automatically set library path, then run a program
Packit Service 5195f2
       finish          complete the installation of libtool libraries
Packit Service 5195f2
       install         install libraries or executables
Packit Service 5195f2
       link            create a library or an executable
Packit Service 5195f2
       uninstall       remove libraries from an installed directory
Packit Service 5195f2
Packit Service 5195f2
MODE-ARGS vary depending on the MODE.  When passed as first option,
Packit Service 5195f2
'--mode=MODE' may be abbreviated as 'MODE' or a unique abbreviation of that.
Packit Service 5195f2
Try '$progname --help --mode=MODE' for a more detailed description of MODE.
Packit Service 5195f2
Packit Service 5195f2
When reporting a bug, please describe a test case to reproduce it and
Packit Service 5195f2
include the following information:
Packit Service 5195f2
Packit Service 5195f2
       host-triplet:   $host
Packit Service 5195f2
       shell:          $SHELL
Packit Service 5195f2
       compiler:       $LTCC
Packit Service 5195f2
       compiler flags: $LTCFLAGS
Packit Service 5195f2
       linker:         $LD (gnu? $with_gnu_ld)
Packit Service 5195f2
       version:        $progname (GNU libtool) 2.4.2.418
Packit Service 5195f2
       automake:       `($AUTOMAKE --version) 2>/dev/null |$SED 1q`
Packit Service 5195f2
       autoconf:       `($AUTOCONF --version) 2>/dev/null |$SED 1q`
Packit Service 5195f2
Packit Service 5195f2
Report bugs to <bug-libtool@gnu.org>.
Packit Service 5195f2
GNU libtool home page: <http://www.gnu.org/software/libtool/>.
Packit Service 5195f2
General help using GNU software: <http://www.gnu.org/gethelp/>."
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
# func_lo2o OBJECT-NAME
Packit Service 5195f2
# ---------------------
Packit Service 5195f2
# Transform OBJECT-NAME from a '.lo' suffix to the platform specific
Packit Service 5195f2
# object suffix.
Packit Service 5195f2
Packit Service 5195f2
lo2o=s/\\.lo\$/.$objext/
Packit Service 5195f2
o2lo=s/\\.$objext\$/.lo/
Packit Service 5195f2
Packit Service 5195f2
if test yes = "$_G_HAVE_XSI_OPS"; then
Packit Service 5195f2
  eval 'func_lo2o ()
Packit Service 5195f2
  {
Packit Service 5195f2
    case $1 in
Packit Service 5195f2
      *.lo) func_lo2o_result=${1%.lo}.$objext ;;
Packit Service 5195f2
      *   ) func_lo2o_result=$1               ;;
Packit Service 5195f2
    esac
Packit Service 5195f2
  }'
Packit Service 5195f2
Packit Service 5195f2
  # func_xform LIBOBJ-OR-SOURCE
Packit Service 5195f2
  # ---------------------------
Packit Service 5195f2
  # Transform LIBOBJ-OR-SOURCE from a '.o' or '.c' (or otherwise)
Packit Service 5195f2
  # suffix to a '.lo' libtool-object suffix.
Packit Service 5195f2
  eval 'func_xform ()
Packit Service 5195f2
  {
Packit Service 5195f2
    func_xform_result=${1%.*}.lo
Packit Service 5195f2
  }'
Packit Service 5195f2
else
Packit Service 5195f2
  # ...otherwise fall back to using sed.
Packit Service 5195f2
  func_lo2o ()
Packit Service 5195f2
  {
Packit Service 5195f2
    func_lo2o_result=`$ECHO "$1" | $SED "$lo2o"`
Packit Service 5195f2
  }
Packit Service 5195f2
Packit Service 5195f2
  func_xform ()
Packit Service 5195f2
  {
Packit Service 5195f2
    func_xform_result=`$ECHO "$1" | $SED 's|\.[^.]*$|.lo|'`
Packit Service 5195f2
  }
Packit Service 5195f2
fi
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
# func_fatal_configuration ARG...
Packit Service 5195f2
# -------------------------------
Packit Service 5195f2
# Echo program name prefixed message to standard error, followed by
Packit Service 5195f2
# a configuration failure hint, and exit.
Packit Service 5195f2
func_fatal_configuration ()
Packit Service 5195f2
{
Packit Service 5195f2
    func__fatal_error ${1+"$@"} \
Packit Service 5195f2
      "See the $PACKAGE documentation for more information." \
Packit Service 5195f2
      "Fatal configuration error."
Packit Service 5195f2
}
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
# func_config
Packit Service 5195f2
# -----------
Packit Service 5195f2
# Display the configuration for all the tags in this script.
Packit Service 5195f2
func_config ()
Packit Service 5195f2
{
Packit Service 5195f2
    re_begincf='^# ### BEGIN LIBTOOL'
Packit Service 5195f2
    re_endcf='^# ### END LIBTOOL'
Packit Service 5195f2
Packit Service 5195f2
    # Default configuration.
Packit Service 5195f2
    $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath"
Packit Service 5195f2
Packit Service 5195f2
    # Now print the configurations for the tags.
Packit Service 5195f2
    for tagname in $taglist; do
Packit Service 5195f2
      $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath"
Packit Service 5195f2
    done
Packit Service 5195f2
Packit Service 5195f2
    exit $?
Packit Service 5195f2
}
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
# func_features
Packit Service 5195f2
# -------------
Packit Service 5195f2
# Display the features supported by this script.
Packit Service 5195f2
func_features ()
Packit Service 5195f2
{
Packit Service 5195f2
    echo "host: $host"
Packit Service 5195f2
    if test yes = "$build_libtool_libs"; then
Packit Service 5195f2
      echo "enable shared libraries"
Packit Service 5195f2
    else
Packit Service 5195f2
      echo "disable shared libraries"
Packit Service 5195f2
    fi
Packit Service 5195f2
    if test yes = "$build_old_libs"; then
Packit Service 5195f2
      echo "enable static libraries"
Packit Service 5195f2
    else
Packit Service 5195f2
      echo "disable static libraries"
Packit Service 5195f2
    fi
Packit Service 5195f2
Packit Service 5195f2
    exit $?
Packit Service 5195f2
}
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
# func_enable_tag TAGNAME
Packit Service 5195f2
# -----------------------
Packit Service 5195f2
# Verify that TAGNAME is valid, and either flag an error and exit, or
Packit Service 5195f2
# enable the TAGNAME tag.  We also add TAGNAME to the global $taglist
Packit Service 5195f2
# variable here.
Packit Service 5195f2
func_enable_tag ()
Packit Service 5195f2
{
Packit Service 5195f2
    # Global variable:
Packit Service 5195f2
    tagname=$1
Packit Service 5195f2
Packit Service 5195f2
    re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$"
Packit Service 5195f2
    re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$"
Packit Service 5195f2
    sed_extractcf=/$re_begincf/,/$re_endcf/p
Packit Service 5195f2
Packit Service 5195f2
    # Validate tagname.
Packit Service 5195f2
    case $tagname in
Packit Service 5195f2
      *[!-_A-Za-z0-9,/]*)
Packit Service 5195f2
        func_fatal_error "invalid tag name: $tagname"
Packit Service 5195f2
        ;;
Packit Service 5195f2
    esac
Packit Service 5195f2
Packit Service 5195f2
    # Don't test for the "default" C tag, as we know it's
Packit Service 5195f2
    # there but not specially marked.
Packit Service 5195f2
    case $tagname in
Packit Service 5195f2
        CC) ;;
Packit Service 5195f2
    *)
Packit Service 5195f2
        if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then
Packit Service 5195f2
	  taglist="$taglist $tagname"
Packit Service 5195f2
Packit Service 5195f2
	  # Evaluate the configuration.  Be careful to quote the path
Packit Service 5195f2
	  # and the sed script, to avoid splitting on whitespace, but
Packit Service 5195f2
	  # also don't use non-portable quotes within backquotes within
Packit Service 5195f2
	  # quotes we have to do it in 2 steps:
Packit Service 5195f2
	  extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"`
Packit Service 5195f2
	  eval "$extractedcf"
Packit Service 5195f2
        else
Packit Service 5195f2
	  func_error "ignoring unknown tag $tagname"
Packit Service 5195f2
        fi
Packit Service 5195f2
        ;;
Packit Service 5195f2
    esac
Packit Service 5195f2
}
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
# func_check_version_match
Packit Service 5195f2
# ------------------------
Packit Service 5195f2
# Ensure that we are using m4 macros, and libtool script from the same
Packit Service 5195f2
# release of libtool.
Packit Service 5195f2
func_check_version_match ()
Packit Service 5195f2
{
Packit Service 5195f2
    if test "$package_revision" != "$macro_revision"; then
Packit Service 5195f2
      if test "$VERSION" != "$macro_version"; then
Packit Service 5195f2
        if test -z "$macro_version"; then
Packit Service 5195f2
          cat >&2 <<_LT_EOF
Packit Service 5195f2
$progname: Version mismatch error.  This is $PACKAGE $VERSION, but the
Packit Service 5195f2
$progname: definition of this LT_INIT comes from an older release.
Packit Service 5195f2
$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
Packit Service 5195f2
$progname: and run autoconf again.
Packit Service 5195f2
_LT_EOF
Packit Service 5195f2
        else
Packit Service 5195f2
          cat >&2 <<_LT_EOF
Packit Service 5195f2
$progname: Version mismatch error.  This is $PACKAGE $VERSION, but the
Packit Service 5195f2
$progname: definition of this LT_INIT comes from $PACKAGE $macro_version.
Packit Service 5195f2
$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
Packit Service 5195f2
$progname: and run autoconf again.
Packit Service 5195f2
_LT_EOF
Packit Service 5195f2
        fi
Packit Service 5195f2
      else
Packit Service 5195f2
        cat >&2 <<_LT_EOF
Packit Service 5195f2
$progname: Version mismatch error.  This is $PACKAGE $VERSION, revision $package_revision,
Packit Service 5195f2
$progname: but the definition of this LT_INIT comes from revision $macro_revision.
Packit Service 5195f2
$progname: You should recreate aclocal.m4 with macros from revision $package_revision
Packit Service 5195f2
$progname: of $PACKAGE $VERSION and run autoconf again.
Packit Service 5195f2
_LT_EOF
Packit Service 5195f2
      fi
Packit Service 5195f2
Packit Service 5195f2
      exit $EXIT_MISMATCH
Packit Service 5195f2
    fi
Packit Service 5195f2
}
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
# libtool_options_prep [ARG]...
Packit Service 5195f2
# -----------------------------
Packit Service 5195f2
# Preparation for options parsed by libtool.
Packit Service 5195f2
libtool_options_prep ()
Packit Service 5195f2
{
Packit Service 5195f2
    $debug_mode
Packit Service 5195f2
Packit Service 5195f2
    # Option defaults:
Packit Service 5195f2
    opt_config=false
Packit Service 5195f2
    opt_dlopen=
Packit Service 5195f2
    opt_dry_run=false
Packit Service 5195f2
    opt_help=false
Packit Service 5195f2
    opt_mode=
Packit Service 5195f2
    opt_preserve_dup_deps=false
Packit Service 5195f2
    opt_quiet=false
Packit Service 5195f2
Packit Service 5195f2
    nonopt=
Packit Service 5195f2
    preserve_args=
Packit Service 5195f2
Packit Service 5195f2
    # Shorthand for --mode=foo, only valid as the first argument
Packit Service 5195f2
    case $1 in
Packit Service 5195f2
    clean|clea|cle|cl)
Packit Service 5195f2
      shift; set dummy --mode clean ${1+"$@"}; shift
Packit Service 5195f2
      ;;
Packit Service 5195f2
    compile|compil|compi|comp|com|co|c)
Packit Service 5195f2
      shift; set dummy --mode compile ${1+"$@"}; shift
Packit Service 5195f2
      ;;
Packit Service 5195f2
    execute|execut|execu|exec|exe|ex|e)
Packit Service 5195f2
      shift; set dummy --mode execute ${1+"$@"}; shift
Packit Service 5195f2
      ;;
Packit Service 5195f2
    finish|finis|fini|fin|fi|f)
Packit Service 5195f2
      shift; set dummy --mode finish ${1+"$@"}; shift
Packit Service 5195f2
      ;;
Packit Service 5195f2
    install|instal|insta|inst|ins|in|i)
Packit Service 5195f2
      shift; set dummy --mode install ${1+"$@"}; shift
Packit Service 5195f2
      ;;
Packit Service 5195f2
    link|lin|li|l)
Packit Service 5195f2
      shift; set dummy --mode link ${1+"$@"}; shift
Packit Service 5195f2
      ;;
Packit Service 5195f2
    uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u)
Packit Service 5195f2
      shift; set dummy --mode uninstall ${1+"$@"}; shift
Packit Service 5195f2
      ;;
Packit Service 5195f2
    esac
Packit Service 5195f2
Packit Service 5195f2
    # Pass back the list of options.
Packit Service 5195f2
    func_quote_for_eval ${1+"$@"}
Packit Service 5195f2
    libtool_options_prep_result=$func_quote_for_eval_result
Packit Service 5195f2
}
Packit Service 5195f2
func_add_hook func_options_prep libtool_options_prep
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
# libtool_parse_options [ARG]...
Packit Service 5195f2
# ---------------------------------
Packit Service 5195f2
# Provide handling for libtool specific options.
Packit Service 5195f2
libtool_parse_options ()
Packit Service 5195f2
{
Packit Service 5195f2
    $debug_cmd
Packit Service 5195f2
Packit Service 5195f2
    # Perform our own loop to consume as many options as possible in
Packit Service 5195f2
    # each iteration.
Packit Service 5195f2
    while test $# -gt 0; do
Packit Service 5195f2
      _G_opt=$1
Packit Service 5195f2
      shift
Packit Service 5195f2
      case $_G_opt in
Packit Service 5195f2
        --dry-run|--dryrun|-n)
Packit Service 5195f2
                        opt_dry_run=:
Packit Service 5195f2
                        ;;
Packit Service 5195f2
Packit Service 5195f2
        --config)       func_config ;;
Packit Service 5195f2
Packit Service 5195f2
        --dlopen|-dlopen)
Packit Service 5195f2
                        opt_dlopen="${opt_dlopen+$opt_dlopen
Packit Service 5195f2
}$1"
Packit Service 5195f2
                        shift
Packit Service 5195f2
                        ;;
Packit Service 5195f2
Packit Service 5195f2
        --preserve-dup-deps)
Packit Service 5195f2
                        opt_preserve_dup_deps=: ;;
Packit Service 5195f2
Packit Service 5195f2
        --features)     func_features ;;
Packit Service 5195f2
Packit Service 5195f2
        --finish)       set dummy --mode finish ${1+"$@"}; shift ;;
Packit Service 5195f2
Packit Service 5195f2
        --help)         opt_help=: ;;
Packit Service 5195f2
Packit Service 5195f2
        --help-all)     opt_help=': help-all' ;;
Packit Service 5195f2
Packit Service 5195f2
        --mode)         test $# = 0 && func_missing_arg $_G_opt && break
Packit Service 5195f2
                        opt_mode=$1
Packit Service 5195f2
                        case $1 in
Packit Service 5195f2
                          # Valid mode arguments:
Packit Service 5195f2
                          clean|compile|execute|finish|install|link|relink|uninstall) ;;
Packit Service 5195f2
Packit Service 5195f2
                          # Catch anything else as an error
Packit Service 5195f2
                          *) func_error "invalid argument for $_G_opt"
Packit Service 5195f2
                             exit_cmd=exit
Packit Service 5195f2
                             break
Packit Service 5195f2
                             ;;
Packit Service 5195f2
                        esac
Packit Service 5195f2
                        shift
Packit Service 5195f2
                        ;;
Packit Service 5195f2
Packit Service 5195f2
        --no-silent|--no-quiet)
Packit Service 5195f2
                        opt_quiet=false
Packit Service 5195f2
                        func_append preserve_args " $_G_opt"
Packit Service 5195f2
                        ;;
Packit Service 5195f2
Packit Service 5195f2
        --no-warnings|--no-warning|--no-warn)
Packit Service 5195f2
                        opt_warning=false
Packit Service 5195f2
                        func_append preserve_args " $_G_opt"
Packit Service 5195f2
                        ;;
Packit Service 5195f2
Packit Service 5195f2
        --no-verbose)
Packit Service 5195f2
                        opt_verbose=false
Packit Service 5195f2
                        func_append preserve_args " $_G_opt"
Packit Service 5195f2
                        ;;
Packit Service 5195f2
Packit Service 5195f2
        --silent|--quiet)
Packit Service 5195f2
                        opt_quiet=:
Packit Service 5195f2
                        opt_verbose=false
Packit Service 5195f2
                        func_append preserve_args " $_G_opt"
Packit Service 5195f2
                        ;;
Packit Service 5195f2
Packit Service 5195f2
        --tag)          test $# = 0 && func_missing_arg $_G_opt && break
Packit Service 5195f2
                        opt_tag=$1
Packit Service 5195f2
                        func_append preserve_args " $_G_opt $1"
Packit Service 5195f2
                        func_enable_tag "$1"
Packit Service 5195f2
                        shift
Packit Service 5195f2
                        ;;
Packit Service 5195f2
Packit Service 5195f2
        --verbose|-v)   opt_quiet=false
Packit Service 5195f2
                        opt_verbose=:
Packit Service 5195f2
                        func_append preserve_args " $_G_opt"
Packit Service 5195f2
                        ;;
Packit Service 5195f2
Packit Service 5195f2
	# An option not handled by this hook function:
Packit Service 5195f2
        *)		set dummy "$_G_opt" ${1+"$@"};	shift; break  ;;
Packit Service 5195f2
      esac
Packit Service 5195f2
    done
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
    # save modified positional parameters for caller
Packit Service 5195f2
    func_quote_for_eval ${1+"$@"}
Packit Service 5195f2
    libtool_parse_options_result=$func_quote_for_eval_result
Packit Service 5195f2
}
Packit Service 5195f2
func_add_hook func_parse_options libtool_parse_options
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
# libtool_validate_options [ARG]...
Packit Service 5195f2
# ---------------------------------
Packit Service 5195f2
# Perform any sanity checks on option settings and/or unconsumed
Packit Service 5195f2
# arguments.
Packit Service 5195f2
libtool_validate_options ()
Packit Service 5195f2
{
Packit Service 5195f2
    # save first non-option argument
Packit Service 5195f2
    if test 0 -lt $#; then
Packit Service 5195f2
      nonopt=$1
Packit Service 5195f2
      shift
Packit Service 5195f2
    fi
Packit Service 5195f2
Packit Service 5195f2
    # preserve --debug
Packit Service 5195f2
    test : = "$debug_cmd" || func_append preserve_args " --debug"
Packit Service 5195f2
Packit Service 5195f2
    case $host in
Packit Service 5195f2
      *cygwin* | *mingw* | *pw32* | *cegcc*)
Packit Service 5195f2
        # don't eliminate duplications in $postdeps and $predeps
Packit Service 5195f2
        opt_duplicate_compiler_generated_deps=:
Packit Service 5195f2
        ;;
Packit Service 5195f2
      *)
Packit Service 5195f2
        opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps
Packit Service 5195f2
        ;;
Packit Service 5195f2
    esac
Packit Service 5195f2
Packit Service 5195f2
    $opt_help || {
Packit Service 5195f2
      # Sanity checks first:
Packit Service 5195f2
      func_check_version_match
Packit Service 5195f2
Packit Service 5195f2
      test yes != "$build_libtool_libs" \
Packit Service 5195f2
        && test yes != "$build_old_libs" \
Packit Service 5195f2
        && func_fatal_configuration "not configured to build any kind of library"
Packit Service 5195f2
Packit Service 5195f2
      # Darwin sucks
Packit Service 5195f2
      eval std_shrext=\"$shrext_cmds\"
Packit Service 5195f2
Packit Service 5195f2
      # Only execute mode is allowed to have -dlopen flags.
Packit Service 5195f2
      if test -n "$opt_dlopen" && test execute != "$opt_mode"; then
Packit Service 5195f2
        func_error "unrecognized option '-dlopen'"
Packit Service 5195f2
        $ECHO "$help" 1>&2
Packit Service 5195f2
        exit $EXIT_FAILURE
Packit Service 5195f2
      fi
Packit Service 5195f2
Packit Service 5195f2
      # Change the help message to a mode-specific one.
Packit Service 5195f2
      generic_help=$help
Packit Service 5195f2
      help="Try '$progname --help --mode=$opt_mode' for more information."
Packit Service 5195f2
    }
Packit Service 5195f2
Packit Service 5195f2
    # Pass back the unparsed argument list
Packit Service 5195f2
    func_quote_for_eval ${1+"$@"}
Packit Service 5195f2
    libtool_validate_options_result=$func_quote_for_eval_result
Packit Service 5195f2
}
Packit Service 5195f2
func_add_hook func_validate_options libtool_validate_options
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
# Process options as early as possible so that --help and --version
Packit Service 5195f2
# can return quickly.
Packit Service 5195f2
func_options ${1+"$@"}
Packit Service 5195f2
eval set dummy "$func_options_result"; shift
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
## ----------- ##
Packit Service 5195f2
##    Main.    ##
Packit Service 5195f2
## ----------- ##
Packit Service 5195f2
Packit Service 5195f2
magic='%%%MAGIC variable%%%'
Packit Service 5195f2
magic_exe='%%%MAGIC EXE variable%%%'
Packit Service 5195f2
Packit Service 5195f2
# Global variables.
Packit Service 5195f2
extracted_archives=
Packit Service 5195f2
extracted_serial=0
Packit Service 5195f2
Packit Service 5195f2
# If this variable is set in any of the actions, the command in it
Packit Service 5195f2
# will be execed at the end.  This prevents here-documents from being
Packit Service 5195f2
# left over by shells.
Packit Service 5195f2
exec_cmd=
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
# A function that is used when there is no print builtin or printf.
Packit Service 5195f2
func_fallback_echo ()
Packit Service 5195f2
{
Packit Service 5195f2
  eval 'cat <<_LTECHO_EOF
Packit Service 5195f2
$1
Packit Service 5195f2
_LTECHO_EOF'
Packit Service 5195f2
}
Packit Service 5195f2
Packit Service 5195f2
# func_lalib_p file
Packit Service 5195f2
# True iff FILE is a libtool '.la' library or '.lo' object file.
Packit Service 5195f2
# This function is only a basic sanity check; it will hardly flush out
Packit Service 5195f2
# determined imposters.
Packit Service 5195f2
func_lalib_p ()
Packit Service 5195f2
{
Packit Service 5195f2
    test -f "$1" &&
Packit Service 5195f2
      $SED -e 4q "$1" 2>/dev/null \
Packit Service 5195f2
        | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1
Packit Service 5195f2
}
Packit Service 5195f2
Packit Service 5195f2
# func_lalib_unsafe_p file
Packit Service 5195f2
# True iff FILE is a libtool '.la' library or '.lo' object file.
Packit Service 5195f2
# This function implements the same check as func_lalib_p without
Packit Service 5195f2
# resorting to external programs.  To this end, it redirects stdin and
Packit Service 5195f2
# closes it afterwards, without saving the original file descriptor.
Packit Service 5195f2
# As a safety measure, use it only where a negative result would be
Packit Service 5195f2
# fatal anyway.  Works if 'file' does not exist.
Packit Service 5195f2
func_lalib_unsafe_p ()
Packit Service 5195f2
{
Packit Service 5195f2
    lalib_p=no
Packit Service 5195f2
    if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then
Packit Service 5195f2
	for lalib_p_l in 1 2 3 4
Packit Service 5195f2
	do
Packit Service 5195f2
	    read lalib_p_line
Packit Service 5195f2
	    case $lalib_p_line in
Packit Service 5195f2
		\#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;;
Packit Service 5195f2
	    esac
Packit Service 5195f2
	done
Packit Service 5195f2
	exec 0<&5 5<&-
Packit Service 5195f2
    fi
Packit Service 5195f2
    test yes = "$lalib_p"
Packit Service 5195f2
}
Packit Service 5195f2
Packit Service 5195f2
# func_ltwrapper_script_p file
Packit Service 5195f2
# True iff FILE is a libtool wrapper script
Packit Service 5195f2
# This function is only a basic sanity check; it will hardly flush out
Packit Service 5195f2
# determined imposters.
Packit Service 5195f2
func_ltwrapper_script_p ()
Packit Service 5195f2
{
Packit Service 5195f2
    func_lalib_p "$1"
Packit Service 5195f2
}
Packit Service 5195f2
Packit Service 5195f2
# func_ltwrapper_executable_p file
Packit Service 5195f2
# True iff FILE is a libtool wrapper executable
Packit Service 5195f2
# This function is only a basic sanity check; it will hardly flush out
Packit Service 5195f2
# determined imposters.
Packit Service 5195f2
func_ltwrapper_executable_p ()
Packit Service 5195f2
{
Packit Service 5195f2
    func_ltwrapper_exec_suffix=
Packit Service 5195f2
    case $1 in
Packit Service 5195f2
    *.exe) ;;
Packit Service 5195f2
    *) func_ltwrapper_exec_suffix=.exe ;;
Packit Service 5195f2
    esac
Packit Service 5195f2
    $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1
Packit Service 5195f2
}
Packit Service 5195f2
Packit Service 5195f2
# func_ltwrapper_scriptname file
Packit Service 5195f2
# Assumes file is an ltwrapper_executable
Packit Service 5195f2
# uses $file to determine the appropriate filename for a
Packit Service 5195f2
# temporary ltwrapper_script.
Packit Service 5195f2
func_ltwrapper_scriptname ()
Packit Service 5195f2
{
Packit Service 5195f2
    func_dirname_and_basename "$1" "" "."
Packit Service 5195f2
    func_stripname '' '.exe' "$func_basename_result"
Packit Service 5195f2
    func_ltwrapper_scriptname_result=$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper
Packit Service 5195f2
}
Packit Service 5195f2
Packit Service 5195f2
# func_ltwrapper_p file
Packit Service 5195f2
# True iff FILE is a libtool wrapper script or wrapper executable
Packit Service 5195f2
# This function is only a basic sanity check; it will hardly flush out
Packit Service 5195f2
# determined imposters.
Packit Service 5195f2
func_ltwrapper_p ()
Packit Service 5195f2
{
Packit Service 5195f2
    func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1"
Packit Service 5195f2
}
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
# func_execute_cmds commands fail_cmd
Packit Service 5195f2
# Execute tilde-delimited COMMANDS.
Packit Service 5195f2
# If FAIL_CMD is given, eval that upon failure.
Packit Service 5195f2
# FAIL_CMD may read-access the current command in variable CMD!
Packit Service 5195f2
func_execute_cmds ()
Packit Service 5195f2
{
Packit Service 5195f2
    $debug_cmd
Packit Service 5195f2
Packit Service 5195f2
    save_ifs=$IFS; IFS='~'
Packit Service 5195f2
    for cmd in $1; do
Packit Service 5195f2
      IFS=$sp$nl
Packit Service 5195f2
      eval cmd=\"$cmd\"
Packit Service 5195f2
      IFS=$save_ifs
Packit Service 5195f2
      func_show_eval "$cmd" "${2-:}"
Packit Service 5195f2
    done
Packit Service 5195f2
    IFS=$save_ifs
Packit Service 5195f2
}
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
# func_source file
Packit Service 5195f2
# Source FILE, adding directory component if necessary.
Packit Service 5195f2
# Note that it is not necessary on cygwin/mingw to append a dot to
Packit Service 5195f2
# FILE even if both FILE and FILE.exe exist: automatic-append-.exe
Packit Service 5195f2
# behavior happens only for exec(3), not for open(2)!  Also, sourcing
Packit Service 5195f2
# 'FILE.' does not work on cygwin managed mounts.
Packit Service 5195f2
func_source ()
Packit Service 5195f2
{
Packit Service 5195f2
    $debug_cmd
Packit Service 5195f2
Packit Service 5195f2
    case $1 in
Packit Service 5195f2
    */* | *\\*)	. "$1" ;;
Packit Service 5195f2
    *)		. "./$1" ;;
Packit Service 5195f2
    esac
Packit Service 5195f2
}
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
# func_resolve_sysroot PATH
Packit Service 5195f2
# Replace a leading = in PATH with a sysroot.  Store the result into
Packit Service 5195f2
# func_resolve_sysroot_result
Packit Service 5195f2
func_resolve_sysroot ()
Packit Service 5195f2
{
Packit Service 5195f2
  func_resolve_sysroot_result=$1
Packit Service 5195f2
  case $func_resolve_sysroot_result in
Packit Service 5195f2
  =*)
Packit Service 5195f2
    func_stripname '=' '' "$func_resolve_sysroot_result"
Packit Service 5195f2
    func_resolve_sysroot_result=$lt_sysroot$func_stripname_result
Packit Service 5195f2
    ;;
Packit Service 5195f2
  esac
Packit Service 5195f2
}
Packit Service 5195f2
Packit Service 5195f2
# func_replace_sysroot PATH
Packit Service 5195f2
# If PATH begins with the sysroot, replace it with = and
Packit Service 5195f2
# store the result into func_replace_sysroot_result.
Packit Service 5195f2
func_replace_sysroot ()
Packit Service 5195f2
{
Packit Service 5195f2
  case $lt_sysroot:$1 in
Packit Service 5195f2
  ?*:"$lt_sysroot"*)
Packit Service 5195f2
    func_stripname "$lt_sysroot" '' "$1"
Packit Service 5195f2
    func_replace_sysroot_result='='$func_stripname_result
Packit Service 5195f2
    ;;
Packit Service 5195f2
  *)
Packit Service 5195f2
    # Including no sysroot.
Packit Service 5195f2
    func_replace_sysroot_result=$1
Packit Service 5195f2
    ;;
Packit Service 5195f2
  esac
Packit Service 5195f2
}
Packit Service 5195f2
Packit Service 5195f2
# func_infer_tag arg
Packit Service 5195f2
# Infer tagged configuration to use if any are available and
Packit Service 5195f2
# if one wasn't chosen via the "--tag" command line option.
Packit Service 5195f2
# Only attempt this if the compiler in the base compile
Packit Service 5195f2
# command doesn't match the default compiler.
Packit Service 5195f2
# arg is usually of the form 'gcc ...'
Packit Service 5195f2
func_infer_tag ()
Packit Service 5195f2
{
Packit Service 5195f2
    $debug_cmd
Packit Service 5195f2
Packit Service 5195f2
    if test -n "$available_tags" && test -z "$tagname"; then
Packit Service 5195f2
      CC_quoted=
Packit Service 5195f2
      for arg in $CC; do
Packit Service 5195f2
	func_append_quoted CC_quoted "$arg"
Packit Service 5195f2
      done
Packit Service 5195f2
      CC_expanded=`func_echo_all $CC`
Packit Service 5195f2
      CC_quoted_expanded=`func_echo_all $CC_quoted`
Packit Service 5195f2
      case $@ in
Packit Service 5195f2
      # Blanks in the command may have been stripped by the calling shell,
Packit Service 5195f2
      # but not from the CC environment variable when configure was run.
Packit Service 5195f2
      " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \
Packit Service 5195f2
      " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;;
Packit Service 5195f2
      # Blanks at the start of $base_compile will cause this to fail
Packit Service 5195f2
      # if we don't check for them as well.
Packit Service 5195f2
      *)
Packit Service 5195f2
	for z in $available_tags; do
Packit Service 5195f2
	  if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then
Packit Service 5195f2
	    # Evaluate the configuration.
Packit Service 5195f2
	    eval "`$SED -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"
Packit Service 5195f2
	    CC_quoted=
Packit Service 5195f2
	    for arg in $CC; do
Packit Service 5195f2
	      # Double-quote args containing other shell metacharacters.
Packit Service 5195f2
	      func_append_quoted CC_quoted "$arg"
Packit Service 5195f2
	    done
Packit Service 5195f2
	    CC_expanded=`func_echo_all $CC`
Packit Service 5195f2
	    CC_quoted_expanded=`func_echo_all $CC_quoted`
Packit Service 5195f2
	    case "$@ " in
Packit Service 5195f2
	    " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \
Packit Service 5195f2
	    " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*)
Packit Service 5195f2
	      # The compiler in the base compile command matches
Packit Service 5195f2
	      # the one in the tagged configuration.
Packit Service 5195f2
	      # Assume this is the tagged configuration we want.
Packit Service 5195f2
	      tagname=$z
Packit Service 5195f2
	      break
Packit Service 5195f2
	      ;;
Packit Service 5195f2
	    esac
Packit Service 5195f2
	  fi
Packit Service 5195f2
	done
Packit Service 5195f2
	# If $tagname still isn't set, then no tagged configuration
Packit Service 5195f2
	# was found and let the user know that the "--tag" command
Packit Service 5195f2
	# line option must be used.
Packit Service 5195f2
	if test -z "$tagname"; then
Packit Service 5195f2
	  func_echo "unable to infer tagged configuration"
Packit Service 5195f2
	  func_fatal_error "specify a tag with '--tag'"
Packit Service 5195f2
#	else
Packit Service 5195f2
#	  func_verbose "using $tagname tagged configuration"
Packit Service 5195f2
	fi
Packit Service 5195f2
	;;
Packit Service 5195f2
      esac
Packit Service 5195f2
    fi
Packit Service 5195f2
}
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
# func_write_libtool_object output_name pic_name nonpic_name
Packit Service 5195f2
# Create a libtool object file (analogous to a ".la" file),
Packit Service 5195f2
# but don't create it if we're doing a dry run.
Packit Service 5195f2
func_write_libtool_object ()
Packit Service 5195f2
{
Packit Service 5195f2
    write_libobj=$1
Packit Service 5195f2
    if test yes = "$build_libtool_libs"; then
Packit Service 5195f2
      write_lobj=\'$2\'
Packit Service 5195f2
    else
Packit Service 5195f2
      write_lobj=none
Packit Service 5195f2
    fi
Packit Service 5195f2
Packit Service 5195f2
    if test yes = "$build_old_libs"; then
Packit Service 5195f2
      write_oldobj=\'$3\'
Packit Service 5195f2
    else
Packit Service 5195f2
      write_oldobj=none
Packit Service 5195f2
    fi
Packit Service 5195f2
Packit Service 5195f2
    $opt_dry_run || {
Packit Service 5195f2
      cat >${write_libobj}T <
Packit Service 5195f2
# $write_libobj - a libtool object file
Packit Service 5195f2
# Generated by $PROGRAM (GNU $PACKAGE) $VERSION
Packit Service 5195f2
#
Packit Service 5195f2
# Please DO NOT delete this file!
Packit Service 5195f2
# It is necessary for linking the library.
Packit Service 5195f2
Packit Service 5195f2
# Name of the PIC object.
Packit Service 5195f2
pic_object=$write_lobj
Packit Service 5195f2
Packit Service 5195f2
# Name of the non-PIC object
Packit Service 5195f2
non_pic_object=$write_oldobj
Packit Service 5195f2
Packit Service 5195f2
EOF
Packit Service 5195f2
      $MV "${write_libobj}T" "$write_libobj"
Packit Service 5195f2
    }
Packit Service 5195f2
}
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
##################################################
Packit Service 5195f2
# FILE NAME AND PATH CONVERSION HELPER FUNCTIONS #
Packit Service 5195f2
##################################################
Packit Service 5195f2
Packit Service 5195f2
# func_convert_core_file_wine_to_w32 ARG
Packit Service 5195f2
# Helper function used by file name conversion functions when $build is *nix,
Packit Service 5195f2
# and $host is mingw, cygwin, or some other w32 environment. Relies on a
Packit Service 5195f2
# correctly configured wine environment available, with the winepath program
Packit Service 5195f2
# in $build's $PATH.
Packit Service 5195f2
#
Packit Service 5195f2
# ARG is the $build file name to be converted to w32 format.
Packit Service 5195f2
# Result is available in $func_convert_core_file_wine_to_w32_result, and will
Packit Service 5195f2
# be empty on error (or when ARG is empty)
Packit Service 5195f2
func_convert_core_file_wine_to_w32 ()
Packit Service 5195f2
{
Packit Service 5195f2
  $debug_cmd
Packit Service 5195f2
Packit Service 5195f2
  func_convert_core_file_wine_to_w32_result=$1
Packit Service 5195f2
  if test -n "$1"; then
Packit Service 5195f2
    # Unfortunately, winepath does not exit with a non-zero error code, so we
Packit Service 5195f2
    # are forced to check the contents of stdout. On the other hand, if the
Packit Service 5195f2
    # command is not found, the shell will set an exit code of 127 and print
Packit Service 5195f2
    # *an error message* to stdout. So we must check for both error code of
Packit Service 5195f2
    # zero AND non-empty stdout, which explains the odd construction:
Packit Service 5195f2
    func_convert_core_file_wine_to_w32_tmp=`winepath -w "$1" 2>/dev/null`
Packit Service 5195f2
    if test "$?" -eq 0 && test -n "$func_convert_core_file_wine_to_w32_tmp"; then
Packit Service 5195f2
      func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" |
Packit Service 5195f2
        $SED -e "$sed_naive_backslashify"`
Packit Service 5195f2
    else
Packit Service 5195f2
      func_convert_core_file_wine_to_w32_result=
Packit Service 5195f2
    fi
Packit Service 5195f2
  fi
Packit Service 5195f2
}
Packit Service 5195f2
# end: func_convert_core_file_wine_to_w32
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
# func_convert_core_path_wine_to_w32 ARG
Packit Service 5195f2
# Helper function used by path conversion functions when $build is *nix, and
Packit Service 5195f2
# $host is mingw, cygwin, or some other w32 environment. Relies on a correctly
Packit Service 5195f2
# configured wine environment available, with the winepath program in $build's
Packit Service 5195f2
# $PATH. Assumes ARG has no leading or trailing path separator characters.
Packit Service 5195f2
#
Packit Service 5195f2
# ARG is path to be converted from $build format to win32.
Packit Service 5195f2
# Result is available in $func_convert_core_path_wine_to_w32_result.
Packit Service 5195f2
# Unconvertible file (directory) names in ARG are skipped; if no directory names
Packit Service 5195f2
# are convertible, then the result may be empty.
Packit Service 5195f2
func_convert_core_path_wine_to_w32 ()
Packit Service 5195f2
{
Packit Service 5195f2
  $debug_cmd
Packit Service 5195f2
Packit Service 5195f2
  # unfortunately, winepath doesn't convert paths, only file names
Packit Service 5195f2
  func_convert_core_path_wine_to_w32_result=
Packit Service 5195f2
  if test -n "$1"; then
Packit Service 5195f2
    oldIFS=$IFS
Packit Service 5195f2
    IFS=:
Packit Service 5195f2
    for func_convert_core_path_wine_to_w32_f in $1; do
Packit Service 5195f2
      IFS=$oldIFS
Packit Service 5195f2
      func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f"
Packit Service 5195f2
      if test -n "$func_convert_core_file_wine_to_w32_result"; then
Packit Service 5195f2
        if test -z "$func_convert_core_path_wine_to_w32_result"; then
Packit Service 5195f2
          func_convert_core_path_wine_to_w32_result=$func_convert_core_file_wine_to_w32_result
Packit Service 5195f2
        else
Packit Service 5195f2
          func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result"
Packit Service 5195f2
        fi
Packit Service 5195f2
      fi
Packit Service 5195f2
    done
Packit Service 5195f2
    IFS=$oldIFS
Packit Service 5195f2
  fi
Packit Service 5195f2
}
Packit Service 5195f2
# end: func_convert_core_path_wine_to_w32
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
# func_cygpath ARGS...
Packit Service 5195f2
# Wrapper around calling the cygpath program via LT_CYGPATH. This is used when
Packit Service 5195f2
# when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2)
Packit Service 5195f2
# $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or
Packit Service 5195f2
# (2), returns the Cygwin file name or path in func_cygpath_result (input
Packit Service 5195f2
# file name or path is assumed to be in w32 format, as previously converted
Packit Service 5195f2
# from $build's *nix or MSYS format). In case (3), returns the w32 file name
Packit Service 5195f2
# or path in func_cygpath_result (input file name or path is assumed to be in
Packit Service 5195f2
# Cygwin format). Returns an empty string on error.
Packit Service 5195f2
#
Packit Service 5195f2
# ARGS are passed to cygpath, with the last one being the file name or path to
Packit Service 5195f2
# be converted.
Packit Service 5195f2
#
Packit Service 5195f2
# Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH
Packit Service 5195f2
# environment variable; do not put it in $PATH.
Packit Service 5195f2
func_cygpath ()
Packit Service 5195f2
{
Packit Service 5195f2
  $debug_cmd
Packit Service 5195f2
Packit Service 5195f2
  if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then
Packit Service 5195f2
    func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null`
Packit Service 5195f2
    if test "$?" -ne 0; then
Packit Service 5195f2
      # on failure, ensure result is empty
Packit Service 5195f2
      func_cygpath_result=
Packit Service 5195f2
    fi
Packit Service 5195f2
  else
Packit Service 5195f2
    func_cygpath_result=
Packit Service 5195f2
    func_error "LT_CYGPATH is empty or specifies non-existent file: '$LT_CYGPATH'"
Packit Service 5195f2
  fi
Packit Service 5195f2
}
Packit Service 5195f2
#end: func_cygpath
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
# func_convert_core_msys_to_w32 ARG
Packit Service 5195f2
# Convert file name or path ARG from MSYS format to w32 format.  Return
Packit Service 5195f2
# result in func_convert_core_msys_to_w32_result.
Packit Service 5195f2
func_convert_core_msys_to_w32 ()
Packit Service 5195f2
{
Packit Service 5195f2
  $debug_cmd
Packit Service 5195f2
Packit Service 5195f2
  # awkward: cmd appends spaces to result
Packit Service 5195f2
  func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null |
Packit Service 5195f2
    $SED -e 's/[ ]*$//' -e "$sed_naive_backslashify"`
Packit Service 5195f2
}
Packit Service 5195f2
#end: func_convert_core_msys_to_w32
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
# func_convert_file_check ARG1 ARG2
Packit Service 5195f2
# Verify that ARG1 (a file name in $build format) was converted to $host
Packit Service 5195f2
# format in ARG2. Otherwise, emit an error message, but continue (resetting
Packit Service 5195f2
# func_to_host_file_result to ARG1).
Packit Service 5195f2
func_convert_file_check ()
Packit Service 5195f2
{
Packit Service 5195f2
  $debug_cmd
Packit Service 5195f2
Packit Service 5195f2
  if test -z "$2" && test -n "$1"; then
Packit Service 5195f2
    func_error "Could not determine host file name corresponding to"
Packit Service 5195f2
    func_error "  '$1'"
Packit Service 5195f2
    func_error "Continuing, but uninstalled executables may not work."
Packit Service 5195f2
    # Fallback:
Packit Service 5195f2
    func_to_host_file_result=$1
Packit Service 5195f2
  fi
Packit Service 5195f2
}
Packit Service 5195f2
# end func_convert_file_check
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
# func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH
Packit Service 5195f2
# Verify that FROM_PATH (a path in $build format) was converted to $host
Packit Service 5195f2
# format in TO_PATH. Otherwise, emit an error message, but continue, resetting
Packit Service 5195f2
# func_to_host_file_result to a simplistic fallback value (see below).
Packit Service 5195f2
func_convert_path_check ()
Packit Service 5195f2
{
Packit Service 5195f2
  $debug_cmd
Packit Service 5195f2
Packit Service 5195f2
  if test -z "$4" && test -n "$3"; then
Packit Service 5195f2
    func_error "Could not determine the host path corresponding to"
Packit Service 5195f2
    func_error "  '$3'"
Packit Service 5195f2
    func_error "Continuing, but uninstalled executables may not work."
Packit Service 5195f2
    # Fallback.  This is a deliberately simplistic "conversion" and
Packit Service 5195f2
    # should not be "improved".  See libtool.info.
Packit Service 5195f2
    if test "x$1" != "x$2"; then
Packit Service 5195f2
      lt_replace_pathsep_chars="s|$1|$2|g"
Packit Service 5195f2
      func_to_host_path_result=`echo "$3" |
Packit Service 5195f2
        $SED -e "$lt_replace_pathsep_chars"`
Packit Service 5195f2
    else
Packit Service 5195f2
      func_to_host_path_result=$3
Packit Service 5195f2
    fi
Packit Service 5195f2
  fi
Packit Service 5195f2
}
Packit Service 5195f2
# end func_convert_path_check
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
# func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG
Packit Service 5195f2
# Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT
Packit Service 5195f2
# and appending REPL if ORIG matches BACKPAT.
Packit Service 5195f2
func_convert_path_front_back_pathsep ()
Packit Service 5195f2
{
Packit Service 5195f2
  $debug_cmd
Packit Service 5195f2
Packit Service 5195f2
  case $4 in
Packit Service 5195f2
  $1 ) func_to_host_path_result=$3$func_to_host_path_result
Packit Service 5195f2
    ;;
Packit Service 5195f2
  esac
Packit Service 5195f2
  case $4 in
Packit Service 5195f2
  $2 ) func_append func_to_host_path_result "$3"
Packit Service 5195f2
    ;;
Packit Service 5195f2
  esac
Packit Service 5195f2
}
Packit Service 5195f2
# end func_convert_path_front_back_pathsep
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
##################################################
Packit Service 5195f2
# $build to $host FILE NAME CONVERSION FUNCTIONS #
Packit Service 5195f2
##################################################
Packit Service 5195f2
# invoked via '$to_host_file_cmd ARG'
Packit Service 5195f2
#
Packit Service 5195f2
# In each case, ARG is the path to be converted from $build to $host format.
Packit Service 5195f2
# Result will be available in $func_to_host_file_result.
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
# func_to_host_file ARG
Packit Service 5195f2
# Converts the file name ARG from $build format to $host format. Return result
Packit Service 5195f2
# in func_to_host_file_result.
Packit Service 5195f2
func_to_host_file ()
Packit Service 5195f2
{
Packit Service 5195f2
  $debug_cmd
Packit Service 5195f2
Packit Service 5195f2
  $to_host_file_cmd "$1"
Packit Service 5195f2
}
Packit Service 5195f2
# end func_to_host_file
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
# func_to_tool_file ARG LAZY
Packit Service 5195f2
# converts the file name ARG from $build format to toolchain format. Return
Packit Service 5195f2
# result in func_to_tool_file_result.  If the conversion in use is listed
Packit Service 5195f2
# in (the comma separated) LAZY, no conversion takes place.
Packit Service 5195f2
func_to_tool_file ()
Packit Service 5195f2
{
Packit Service 5195f2
  $debug_cmd
Packit Service 5195f2
Packit Service 5195f2
  case ,$2, in
Packit Service 5195f2
    *,"$to_tool_file_cmd",*)
Packit Service 5195f2
      func_to_tool_file_result=$1
Packit Service 5195f2
      ;;
Packit Service 5195f2
    *)
Packit Service 5195f2
      $to_tool_file_cmd "$1"
Packit Service 5195f2
      func_to_tool_file_result=$func_to_host_file_result
Packit Service 5195f2
      ;;
Packit Service 5195f2
  esac
Packit Service 5195f2
}
Packit Service 5195f2
# end func_to_tool_file
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
# func_convert_file_noop ARG
Packit Service 5195f2
# Copy ARG to func_to_host_file_result.
Packit Service 5195f2
func_convert_file_noop ()
Packit Service 5195f2
{
Packit Service 5195f2
  func_to_host_file_result=$1
Packit Service 5195f2
}
Packit Service 5195f2
# end func_convert_file_noop
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
# func_convert_file_msys_to_w32 ARG
Packit Service 5195f2
# Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic
Packit Service 5195f2
# conversion to w32 is not available inside the cwrapper.  Returns result in
Packit Service 5195f2
# func_to_host_file_result.
Packit Service 5195f2
func_convert_file_msys_to_w32 ()
Packit Service 5195f2
{
Packit Service 5195f2
  $debug_cmd
Packit Service 5195f2
Packit Service 5195f2
  func_to_host_file_result=$1
Packit Service 5195f2
  if test -n "$1"; then
Packit Service 5195f2
    func_convert_core_msys_to_w32 "$1"
Packit Service 5195f2
    func_to_host_file_result=$func_convert_core_msys_to_w32_result
Packit Service 5195f2
  fi
Packit Service 5195f2
  func_convert_file_check "$1" "$func_to_host_file_result"
Packit Service 5195f2
}
Packit Service 5195f2
# end func_convert_file_msys_to_w32
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
# func_convert_file_cygwin_to_w32 ARG
Packit Service 5195f2
# Convert file name ARG from Cygwin to w32 format.  Returns result in
Packit Service 5195f2
# func_to_host_file_result.
Packit Service 5195f2
func_convert_file_cygwin_to_w32 ()
Packit Service 5195f2
{
Packit Service 5195f2
  $debug_cmd
Packit Service 5195f2
Packit Service 5195f2
  func_to_host_file_result=$1
Packit Service 5195f2
  if test -n "$1"; then
Packit Service 5195f2
    # because $build is cygwin, we call "the" cygpath in $PATH; no need to use
Packit Service 5195f2
    # LT_CYGPATH in this case.
Packit Service 5195f2
    func_to_host_file_result=`cygpath -m "$1"`
Packit Service 5195f2
  fi
Packit Service 5195f2
  func_convert_file_check "$1" "$func_to_host_file_result"
Packit Service 5195f2
}
Packit Service 5195f2
# end func_convert_file_cygwin_to_w32
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
# func_convert_file_nix_to_w32 ARG
Packit Service 5195f2
# Convert file name ARG from *nix to w32 format.  Requires a wine environment
Packit Service 5195f2
# and a working winepath. Returns result in func_to_host_file_result.
Packit Service 5195f2
func_convert_file_nix_to_w32 ()
Packit Service 5195f2
{
Packit Service 5195f2
  $debug_cmd
Packit Service 5195f2
Packit Service 5195f2
  func_to_host_file_result=$1
Packit Service 5195f2
  if test -n "$1"; then
Packit Service 5195f2
    func_convert_core_file_wine_to_w32 "$1"
Packit Service 5195f2
    func_to_host_file_result=$func_convert_core_file_wine_to_w32_result
Packit Service 5195f2
  fi
Packit Service 5195f2
  func_convert_file_check "$1" "$func_to_host_file_result"
Packit Service 5195f2
}
Packit Service 5195f2
# end func_convert_file_nix_to_w32
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
# func_convert_file_msys_to_cygwin ARG
Packit Service 5195f2
# Convert file name ARG from MSYS to Cygwin format.  Requires LT_CYGPATH set.
Packit Service 5195f2
# Returns result in func_to_host_file_result.
Packit Service 5195f2
func_convert_file_msys_to_cygwin ()
Packit Service 5195f2
{
Packit Service 5195f2
  $debug_cmd
Packit Service 5195f2
Packit Service 5195f2
  func_to_host_file_result=$1
Packit Service 5195f2
  if test -n "$1"; then
Packit Service 5195f2
    func_convert_core_msys_to_w32 "$1"
Packit Service 5195f2
    func_cygpath -u "$func_convert_core_msys_to_w32_result"
Packit Service 5195f2
    func_to_host_file_result=$func_cygpath_result
Packit Service 5195f2
  fi
Packit Service 5195f2
  func_convert_file_check "$1" "$func_to_host_file_result"
Packit Service 5195f2
}
Packit Service 5195f2
# end func_convert_file_msys_to_cygwin
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
# func_convert_file_nix_to_cygwin ARG
Packit Service 5195f2
# Convert file name ARG from *nix to Cygwin format.  Requires Cygwin installed
Packit Service 5195f2
# in a wine environment, working winepath, and LT_CYGPATH set.  Returns result
Packit Service 5195f2
# in func_to_host_file_result.
Packit Service 5195f2
func_convert_file_nix_to_cygwin ()
Packit Service 5195f2
{
Packit Service 5195f2
  $debug_cmd
Packit Service 5195f2
Packit Service 5195f2
  func_to_host_file_result=$1
Packit Service 5195f2
  if test -n "$1"; then
Packit Service 5195f2
    # convert from *nix to w32, then use cygpath to convert from w32 to cygwin.
Packit Service 5195f2
    func_convert_core_file_wine_to_w32 "$1"
Packit Service 5195f2
    func_cygpath -u "$func_convert_core_file_wine_to_w32_result"
Packit Service 5195f2
    func_to_host_file_result=$func_cygpath_result
Packit Service 5195f2
  fi
Packit Service 5195f2
  func_convert_file_check "$1" "$func_to_host_file_result"
Packit Service 5195f2
}
Packit Service 5195f2
# end func_convert_file_nix_to_cygwin
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
#############################################
Packit Service 5195f2
# $build to $host PATH CONVERSION FUNCTIONS #
Packit Service 5195f2
#############################################
Packit Service 5195f2
# invoked via '$to_host_path_cmd ARG'
Packit Service 5195f2
#
Packit Service 5195f2
# In each case, ARG is the path to be converted from $build to $host format.
Packit Service 5195f2
# The result will be available in $func_to_host_path_result.
Packit Service 5195f2
#
Packit Service 5195f2
# Path separators are also converted from $build format to $host format.  If
Packit Service 5195f2
# ARG begins or ends with a path separator character, it is preserved (but
Packit Service 5195f2
# converted to $host format) on output.
Packit Service 5195f2
#
Packit Service 5195f2
# All path conversion functions are named using the following convention:
Packit Service 5195f2
#   file name conversion function    : func_convert_file_X_to_Y ()
Packit Service 5195f2
#   path conversion function         : func_convert_path_X_to_Y ()
Packit Service 5195f2
# where, for any given $build/$host combination the 'X_to_Y' value is the
Packit Service 5195f2
# same.  If conversion functions are added for new $build/$host combinations,
Packit Service 5195f2
# the two new functions must follow this pattern, or func_init_to_host_path_cmd
Packit Service 5195f2
# will break.
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
# func_init_to_host_path_cmd
Packit Service 5195f2
# Ensures that function "pointer" variable $to_host_path_cmd is set to the
Packit Service 5195f2
# appropriate value, based on the value of $to_host_file_cmd.
Packit Service 5195f2
to_host_path_cmd=
Packit Service 5195f2
func_init_to_host_path_cmd ()
Packit Service 5195f2
{
Packit Service 5195f2
  $debug_cmd
Packit Service 5195f2
Packit Service 5195f2
  if test -z "$to_host_path_cmd"; then
Packit Service 5195f2
    func_stripname 'func_convert_file_' '' "$to_host_file_cmd"
Packit Service 5195f2
    to_host_path_cmd=func_convert_path_$func_stripname_result
Packit Service 5195f2
  fi
Packit Service 5195f2
}
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
# func_to_host_path ARG
Packit Service 5195f2
# Converts the path ARG from $build format to $host format. Return result
Packit Service 5195f2
# in func_to_host_path_result.
Packit Service 5195f2
func_to_host_path ()
Packit Service 5195f2
{
Packit Service 5195f2
  $debug_cmd
Packit Service 5195f2
Packit Service 5195f2
  func_init_to_host_path_cmd
Packit Service 5195f2
  $to_host_path_cmd "$1"
Packit Service 5195f2
}
Packit Service 5195f2
# end func_to_host_path
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
# func_convert_path_noop ARG
Packit Service 5195f2
# Copy ARG to func_to_host_path_result.
Packit Service 5195f2
func_convert_path_noop ()
Packit Service 5195f2
{
Packit Service 5195f2
  func_to_host_path_result=$1
Packit Service 5195f2
}
Packit Service 5195f2
# end func_convert_path_noop
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
# func_convert_path_msys_to_w32 ARG
Packit Service 5195f2
# Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic
Packit Service 5195f2
# conversion to w32 is not available inside the cwrapper.  Returns result in
Packit Service 5195f2
# func_to_host_path_result.
Packit Service 5195f2
func_convert_path_msys_to_w32 ()
Packit Service 5195f2
{
Packit Service 5195f2
  $debug_cmd
Packit Service 5195f2
Packit Service 5195f2
  func_to_host_path_result=$1
Packit Service 5195f2
  if test -n "$1"; then
Packit Service 5195f2
    # Remove leading and trailing path separator characters from ARG.  MSYS
Packit Service 5195f2
    # behavior is inconsistent here; cygpath turns them into '.;' and ';.';
Packit Service 5195f2
    # and winepath ignores them completely.
Packit Service 5195f2
    func_stripname : : "$1"
Packit Service 5195f2
    func_to_host_path_tmp1=$func_stripname_result
Packit Service 5195f2
    func_convert_core_msys_to_w32 "$func_to_host_path_tmp1"
Packit Service 5195f2
    func_to_host_path_result=$func_convert_core_msys_to_w32_result
Packit Service 5195f2
    func_convert_path_check : ";" \
Packit Service 5195f2
      "$func_to_host_path_tmp1" "$func_to_host_path_result"
Packit Service 5195f2
    func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
Packit Service 5195f2
  fi
Packit Service 5195f2
}
Packit Service 5195f2
# end func_convert_path_msys_to_w32
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
# func_convert_path_cygwin_to_w32 ARG
Packit Service 5195f2
# Convert path ARG from Cygwin to w32 format.  Returns result in
Packit Service 5195f2
# func_to_host_file_result.
Packit Service 5195f2
func_convert_path_cygwin_to_w32 ()
Packit Service 5195f2
{
Packit Service 5195f2
  $debug_cmd
Packit Service 5195f2
Packit Service 5195f2
  func_to_host_path_result=$1
Packit Service 5195f2
  if test -n "$1"; then
Packit Service 5195f2
    # See func_convert_path_msys_to_w32:
Packit Service 5195f2
    func_stripname : : "$1"
Packit Service 5195f2
    func_to_host_path_tmp1=$func_stripname_result
Packit Service 5195f2
    func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"`
Packit Service 5195f2
    func_convert_path_check : ";" \
Packit Service 5195f2
      "$func_to_host_path_tmp1" "$func_to_host_path_result"
Packit Service 5195f2
    func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
Packit Service 5195f2
  fi
Packit Service 5195f2
}
Packit Service 5195f2
# end func_convert_path_cygwin_to_w32
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
# func_convert_path_nix_to_w32 ARG
Packit Service 5195f2
# Convert path ARG from *nix to w32 format.  Requires a wine environment and
Packit Service 5195f2
# a working winepath.  Returns result in func_to_host_file_result.
Packit Service 5195f2
func_convert_path_nix_to_w32 ()
Packit Service 5195f2
{
Packit Service 5195f2
  $debug_cmd
Packit Service 5195f2
Packit Service 5195f2
  func_to_host_path_result=$1
Packit Service 5195f2
  if test -n "$1"; then
Packit Service 5195f2
    # See func_convert_path_msys_to_w32:
Packit Service 5195f2
    func_stripname : : "$1"
Packit Service 5195f2
    func_to_host_path_tmp1=$func_stripname_result
Packit Service 5195f2
    func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1"
Packit Service 5195f2
    func_to_host_path_result=$func_convert_core_path_wine_to_w32_result
Packit Service 5195f2
    func_convert_path_check : ";" \
Packit Service 5195f2
      "$func_to_host_path_tmp1" "$func_to_host_path_result"
Packit Service 5195f2
    func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
Packit Service 5195f2
  fi
Packit Service 5195f2
}
Packit Service 5195f2
# end func_convert_path_nix_to_w32
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
# func_convert_path_msys_to_cygwin ARG
Packit Service 5195f2
# Convert path ARG from MSYS to Cygwin format.  Requires LT_CYGPATH set.
Packit Service 5195f2
# Returns result in func_to_host_file_result.
Packit Service 5195f2
func_convert_path_msys_to_cygwin ()
Packit Service 5195f2
{
Packit Service 5195f2
  $debug_cmd
Packit Service 5195f2
Packit Service 5195f2
  func_to_host_path_result=$1
Packit Service 5195f2
  if test -n "$1"; then
Packit Service 5195f2
    # See func_convert_path_msys_to_w32:
Packit Service 5195f2
    func_stripname : : "$1"
Packit Service 5195f2
    func_to_host_path_tmp1=$func_stripname_result
Packit Service 5195f2
    func_convert_core_msys_to_w32 "$func_to_host_path_tmp1"
Packit Service 5195f2
    func_cygpath -u -p "$func_convert_core_msys_to_w32_result"
Packit Service 5195f2
    func_to_host_path_result=$func_cygpath_result
Packit Service 5195f2
    func_convert_path_check : : \
Packit Service 5195f2
      "$func_to_host_path_tmp1" "$func_to_host_path_result"
Packit Service 5195f2
    func_convert_path_front_back_pathsep ":*" "*:" : "$1"
Packit Service 5195f2
  fi
Packit Service 5195f2
}
Packit Service 5195f2
# end func_convert_path_msys_to_cygwin
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
# func_convert_path_nix_to_cygwin ARG
Packit Service 5195f2
# Convert path ARG from *nix to Cygwin format.  Requires Cygwin installed in a
Packit Service 5195f2
# a wine environment, working winepath, and LT_CYGPATH set.  Returns result in
Packit Service 5195f2
# func_to_host_file_result.
Packit Service 5195f2
func_convert_path_nix_to_cygwin ()
Packit Service 5195f2
{
Packit Service 5195f2
  $debug_cmd
Packit Service 5195f2
Packit Service 5195f2
  func_to_host_path_result=$1
Packit Service 5195f2
  if test -n "$1"; then
Packit Service 5195f2
    # Remove leading and trailing path separator characters from
Packit Service 5195f2
    # ARG. msys behavior is inconsistent here, cygpath turns them
Packit Service 5195f2
    # into '.;' and ';.', and winepath ignores them completely.
Packit Service 5195f2
    func_stripname : : "$1"
Packit Service 5195f2
    func_to_host_path_tmp1=$func_stripname_result
Packit Service 5195f2
    func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1"
Packit Service 5195f2
    func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result"
Packit Service 5195f2
    func_to_host_path_result=$func_cygpath_result
Packit Service 5195f2
    func_convert_path_check : : \
Packit Service 5195f2
      "$func_to_host_path_tmp1" "$func_to_host_path_result"
Packit Service 5195f2
    func_convert_path_front_back_pathsep ":*" "*:" : "$1"
Packit Service 5195f2
  fi
Packit Service 5195f2
}
Packit Service 5195f2
# end func_convert_path_nix_to_cygwin
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
# func_dll_def_p FILE
Packit Service 5195f2
# True iff FILE is a Windows DLL '.def' file.
Packit Service 5195f2
# Keep in sync with _LT_DLL_DEF_P in libtool.m4
Packit Service 5195f2
func_dll_def_p ()
Packit Service 5195f2
{
Packit Service 5195f2
  $debug_cmd
Packit Service 5195f2
Packit Service 5195f2
  func_dll_def_p_tmp=`$SED -n \
Packit Service 5195f2
    -e 's/^[	 ]*//' \
Packit Service 5195f2
    -e '/^\(;.*\)*$/d' \
Packit Service 5195f2
    -e 's/^\(EXPORTS\|LIBRARY\)\([	 ].*\)*$/DEF/p' \
Packit Service 5195f2
    -e q \
Packit Service 5195f2
    "$1"`
Packit Service 5195f2
  test DEF = "$func_dll_def_p_tmp"
Packit Service 5195f2
}
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
# func_mode_compile arg...
Packit Service 5195f2
func_mode_compile ()
Packit Service 5195f2
{
Packit Service 5195f2
    $debug_cmd
Packit Service 5195f2
Packit Service 5195f2
    # Get the compilation command and the source file.
Packit Service 5195f2
    base_compile=
Packit Service 5195f2
    srcfile=$nonopt  #  always keep a non-empty value in "srcfile"
Packit Service 5195f2
    suppress_opt=yes
Packit Service 5195f2
    suppress_output=
Packit Service 5195f2
    arg_mode=normal
Packit Service 5195f2
    libobj=
Packit Service 5195f2
    later=
Packit Service 5195f2
    pie_flag=
Packit Service 5195f2
Packit Service 5195f2
    for arg
Packit Service 5195f2
    do
Packit Service 5195f2
      case $arg_mode in
Packit Service 5195f2
      arg  )
Packit Service 5195f2
	# do not "continue".  Instead, add this to base_compile
Packit Service 5195f2
	lastarg=$arg
Packit Service 5195f2
	arg_mode=normal
Packit Service 5195f2
	;;
Packit Service 5195f2
Packit Service 5195f2
      target )
Packit Service 5195f2
	libobj=$arg
Packit Service 5195f2
	arg_mode=normal
Packit Service 5195f2
	continue
Packit Service 5195f2
	;;
Packit Service 5195f2
Packit Service 5195f2
      normal )
Packit Service 5195f2
	# Accept any command-line options.
Packit Service 5195f2
	case $arg in
Packit Service 5195f2
	-o)
Packit Service 5195f2
	  test -n "$libobj" && \
Packit Service 5195f2
	    func_fatal_error "you cannot specify '-o' more than once"
Packit Service 5195f2
	  arg_mode=target
Packit Service 5195f2
	  continue
Packit Service 5195f2
	  ;;
Packit Service 5195f2
Packit Service 5195f2
	-pie | -fpie | -fPIE)
Packit Service 5195f2
          func_append pie_flag " $arg"
Packit Service 5195f2
	  continue
Packit Service 5195f2
	  ;;
Packit Service 5195f2
Packit Service 5195f2
	-shared | -static | -prefer-pic | -prefer-non-pic)
Packit Service 5195f2
	  func_append later " $arg"
Packit Service 5195f2
	  continue
Packit Service 5195f2
	  ;;
Packit Service 5195f2
Packit Service 5195f2
	-no-suppress)
Packit Service 5195f2
	  suppress_opt=no
Packit Service 5195f2
	  continue
Packit Service 5195f2
	  ;;
Packit Service 5195f2
Packit Service 5195f2
	-Xcompiler)
Packit Service 5195f2
	  arg_mode=arg  #  the next one goes into the "base_compile" arg list
Packit Service 5195f2
	  continue      #  The current "srcfile" will either be retained or
Packit Service 5195f2
	  ;;            #  replaced later.  I would guess that would be a bug.
Packit Service 5195f2
Packit Service 5195f2
	-Wc,*)
Packit Service 5195f2
	  func_stripname '-Wc,' '' "$arg"
Packit Service 5195f2
	  args=$func_stripname_result
Packit Service 5195f2
	  lastarg=
Packit Service 5195f2
	  save_ifs=$IFS; IFS=,
Packit Service 5195f2
	  for arg in $args; do
Packit Service 5195f2
	    IFS=$save_ifs
Packit Service 5195f2
	    func_append_quoted lastarg "$arg"
Packit Service 5195f2
	  done
Packit Service 5195f2
	  IFS=$save_ifs
Packit Service 5195f2
	  func_stripname ' ' '' "$lastarg"
Packit Service 5195f2
	  lastarg=$func_stripname_result
Packit Service 5195f2
Packit Service 5195f2
	  # Add the arguments to base_compile.
Packit Service 5195f2
	  func_append base_compile " $lastarg"
Packit Service 5195f2
	  continue
Packit Service 5195f2
	  ;;
Packit Service 5195f2
Packit Service 5195f2
	*)
Packit Service 5195f2
	  # Accept the current argument as the source file.
Packit Service 5195f2
	  # The previous "srcfile" becomes the current argument.
Packit Service 5195f2
	  #
Packit Service 5195f2
	  lastarg=$srcfile
Packit Service 5195f2
	  srcfile=$arg
Packit Service 5195f2
	  ;;
Packit Service 5195f2
	esac  #  case $arg
Packit Service 5195f2
	;;
Packit Service 5195f2
      esac    #  case $arg_mode
Packit Service 5195f2
Packit Service 5195f2
      # Aesthetically quote the previous argument.
Packit Service 5195f2
      func_append_quoted base_compile "$lastarg"
Packit Service 5195f2
    done # for arg
Packit Service 5195f2
Packit Service 5195f2
    case $arg_mode in
Packit Service 5195f2
    arg)
Packit Service 5195f2
      func_fatal_error "you must specify an argument for -Xcompile"
Packit Service 5195f2
      ;;
Packit Service 5195f2
    target)
Packit Service 5195f2
      func_fatal_error "you must specify a target with '-o'"
Packit Service 5195f2
      ;;
Packit Service 5195f2
    *)
Packit Service 5195f2
      # Get the name of the library object.
Packit Service 5195f2
      test -z "$libobj" && {
Packit Service 5195f2
	func_basename "$srcfile"
Packit Service 5195f2
	libobj=$func_basename_result
Packit Service 5195f2
      }
Packit Service 5195f2
      ;;
Packit Service 5195f2
    esac
Packit Service 5195f2
Packit Service 5195f2
    # Recognize several different file suffixes.
Packit Service 5195f2
    # If the user specifies -o file.o, it is replaced with file.lo
Packit Service 5195f2
    case $libobj in
Packit Service 5195f2
    *.[cCFSifmso] | \
Packit Service 5195f2
    *.ada | *.adb | *.ads | *.asm | \
Packit Service 5195f2
    *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \
Packit Service 5195f2
    *.[fF][09]? | *.for | *.java | *.go | *.obj | *.sx | *.cu | *.cup)
Packit Service 5195f2
      func_xform "$libobj"
Packit Service 5195f2
      libobj=$func_xform_result
Packit Service 5195f2
      ;;
Packit Service 5195f2
    esac
Packit Service 5195f2
Packit Service 5195f2
    case $libobj in
Packit Service 5195f2
    *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;;
Packit Service 5195f2
    *)
Packit Service 5195f2
      func_fatal_error "cannot determine name of library object from '$libobj'"
Packit Service 5195f2
      ;;
Packit Service 5195f2
    esac
Packit Service 5195f2
Packit Service 5195f2
    func_infer_tag $base_compile
Packit Service 5195f2
Packit Service 5195f2
    for arg in $later; do
Packit Service 5195f2
      case $arg in
Packit Service 5195f2
      -shared)
Packit Service 5195f2
	test yes = "$build_libtool_libs" \
Packit Service 5195f2
	  || func_fatal_configuration "cannot build a shared library"
Packit Service 5195f2
	build_old_libs=no
Packit Service 5195f2
	continue
Packit Service 5195f2
	;;
Packit Service 5195f2
Packit Service 5195f2
      -static)
Packit Service 5195f2
	build_libtool_libs=no
Packit Service 5195f2
	build_old_libs=yes
Packit Service 5195f2
	continue
Packit Service 5195f2
	;;
Packit Service 5195f2
Packit Service 5195f2
      -prefer-pic)
Packit Service 5195f2
	pic_mode=yes
Packit Service 5195f2
	continue
Packit Service 5195f2
	;;
Packit Service 5195f2
Packit Service 5195f2
      -prefer-non-pic)
Packit Service 5195f2
	pic_mode=no
Packit Service 5195f2
	continue
Packit Service 5195f2
	;;
Packit Service 5195f2
      esac
Packit Service 5195f2
    done
Packit Service 5195f2
Packit Service 5195f2
    func_quote_for_eval "$libobj"
Packit Service 5195f2
    test "X$libobj" != "X$func_quote_for_eval_result" \
Packit Service 5195f2
      && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"'	 &()|`$[]' \
Packit Service 5195f2
      && func_warning "libobj name '$libobj' may not contain shell special characters."
Packit Service 5195f2
    func_dirname_and_basename "$obj" "/" ""
Packit Service 5195f2
    objname=$func_basename_result