Blame ltmain.sh

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