Blame build-aux/missing

Packit Service fdd496
#! /bin/sh
Packit Service fdd496
# Common wrapper for a few potentially missing GNU programs.
Packit Service fdd496
Packit Service fdd496
scriptversion=2016-01-11.22; # UTC
Packit Service fdd496
Packit Service fdd496
# Copyright (C) 1996-2015 Free Software Foundation, Inc.
Packit Service fdd496
# Originally written by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
Packit Service fdd496
Packit Service fdd496
# This program is free software; you can redistribute it and/or modify
Packit Service fdd496
# it under the terms of the GNU General Public License as published by
Packit Service fdd496
# the Free Software Foundation; either version 2, or (at your option)
Packit Service fdd496
# any later version.
Packit Service fdd496
Packit Service fdd496
# This program is distributed in the hope that it will be useful,
Packit Service fdd496
# but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit Service fdd496
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
Packit Service fdd496
# GNU General Public License for more details.
Packit Service fdd496
Packit Service fdd496
# You should have received a copy of the GNU General Public License
Packit Service fdd496
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
Packit Service fdd496
Packit Service fdd496
# As a special exception to the GNU General Public License, if you
Packit Service fdd496
# distribute this file as part of a program that contains a
Packit Service fdd496
# configuration script generated by Autoconf, you may include it under
Packit Service fdd496
# the same distribution terms that you use for the rest of that program.
Packit Service fdd496
Packit Service fdd496
if test $# -eq 0; then
Packit Service fdd496
  echo 1>&2 "Try '$0 --help' for more information"
Packit Service fdd496
  exit 1
Packit Service fdd496
fi
Packit Service fdd496
Packit Service fdd496
case $1 in
Packit Service fdd496
Packit Service fdd496
  --is-lightweight)
Packit Service fdd496
    # Used by our autoconf macros to check whether the available missing
Packit Service fdd496
    # script is modern enough.
Packit Service fdd496
    exit 0
Packit Service fdd496
    ;;
Packit Service fdd496
Packit Service fdd496
  --run)
Packit Service fdd496
    # Back-compat with the calling convention used by older automake.
Packit Service fdd496
    shift
Packit Service fdd496
    ;;
Packit Service fdd496
Packit Service fdd496
  -h|--h|--he|--hel|--help)
Packit Service fdd496
    echo "\
Packit Service fdd496
$0 [OPTION]... PROGRAM [ARGUMENT]...
Packit Service fdd496
Packit Service fdd496
Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due
Packit Service fdd496
to PROGRAM being missing or too old.
Packit Service fdd496
Packit Service fdd496
Options:
Packit Service fdd496
  -h, --help      display this help and exit
Packit Service fdd496
  -v, --version   output version information and exit
Packit Service fdd496
Packit Service fdd496
Supported PROGRAM values:
Packit Service fdd496
  aclocal   autoconf  autoheader   autom4te  automake  makeinfo
Packit Service fdd496
  bison     yacc      flex         lex       help2man
Packit Service fdd496
Packit Service fdd496
Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and
Packit Service fdd496
'g' are ignored when checking the name.
Packit Service fdd496
Packit Service fdd496
Send bug reports to <bug-automake@gnu.org>."
Packit Service fdd496
    exit $?
Packit Service fdd496
    ;;
Packit Service fdd496
Packit Service fdd496
  -v|--v|--ve|--ver|--vers|--versi|--versio|--version)
Packit Service fdd496
    echo "missing $scriptversion (GNU Automake)"
Packit Service fdd496
    exit $?
Packit Service fdd496
    ;;
Packit Service fdd496
Packit Service fdd496
  -*)
Packit Service fdd496
    echo 1>&2 "$0: unknown '$1' option"
Packit Service fdd496
    echo 1>&2 "Try '$0 --help' for more information"
Packit Service fdd496
    exit 1
Packit Service fdd496
    ;;
Packit Service fdd496
Packit Service fdd496
esac
Packit Service fdd496
Packit Service fdd496
# Run the given program, remember its exit status.
Packit Service fdd496
"$@"; st=$?
Packit Service fdd496
Packit Service fdd496
# If it succeeded, we are done.
Packit Service fdd496
test $st -eq 0 && exit 0
Packit Service fdd496
Packit Service fdd496
# Also exit now if we it failed (or wasn't found), and '--version' was
Packit Service fdd496
# passed; such an option is passed most likely to detect whether the
Packit Service fdd496
# program is present and works.
Packit Service fdd496
case $2 in --version|--help) exit $st;; esac
Packit Service fdd496
Packit Service fdd496
# Exit code 63 means version mismatch.  This often happens when the user
Packit Service fdd496
# tries to use an ancient version of a tool on a file that requires a
Packit Service fdd496
# minimum version.
Packit Service fdd496
if test $st -eq 63; then
Packit Service fdd496
  msg="probably too old"
Packit Service fdd496
elif test $st -eq 127; then
Packit Service fdd496
  # Program was missing.
Packit Service fdd496
  msg="missing on your system"
Packit Service fdd496
else
Packit Service fdd496
  # Program was found and executed, but failed.  Give up.
Packit Service fdd496
  exit $st
Packit Service fdd496
fi
Packit Service fdd496
Packit Service fdd496
perl_URL=http://www.perl.org/
Packit Service fdd496
flex_URL=http://flex.sourceforge.net/
Packit Service fdd496
gnu_software_URL=http://www.gnu.org/software
Packit Service fdd496
Packit Service fdd496
program_details ()
Packit Service fdd496
{
Packit Service fdd496
  case $1 in
Packit Service fdd496
    aclocal|automake)
Packit Service fdd496
      echo "The '$1' program is part of the GNU Automake package:"
Packit Service fdd496
      echo "<$gnu_software_URL/automake>"
Packit Service fdd496
      echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:"
Packit Service fdd496
      echo "<$gnu_software_URL/autoconf>"
Packit Service fdd496
      echo "<$gnu_software_URL/m4/>"
Packit Service fdd496
      echo "<$perl_URL>"
Packit Service fdd496
      ;;
Packit Service fdd496
    autoconf|autom4te|autoheader)
Packit Service fdd496
      echo "The '$1' program is part of the GNU Autoconf package:"
Packit Service fdd496
      echo "<$gnu_software_URL/autoconf/>"
Packit Service fdd496
      echo "It also requires GNU m4 and Perl in order to run:"
Packit Service fdd496
      echo "<$gnu_software_URL/m4/>"
Packit Service fdd496
      echo "<$perl_URL>"
Packit Service fdd496
      ;;
Packit Service fdd496
  esac
Packit Service fdd496
}
Packit Service fdd496
Packit Service fdd496
give_advice ()
Packit Service fdd496
{
Packit Service fdd496
  # Normalize program name to check for.
Packit Service fdd496
  normalized_program=`echo "$1" | sed '
Packit Service fdd496
    s/^gnu-//; t
Packit Service fdd496
    s/^gnu//; t
Packit Service fdd496
    s/^g//; t'`
Packit Service fdd496
Packit Service fdd496
  printf '%s\n' "'$1' is $msg."
Packit Service fdd496
Packit Service fdd496
  configure_deps="'configure.ac' or m4 files included by 'configure.ac'"
Packit Service fdd496
  case $normalized_program in
Packit Service fdd496
    autoconf*)
Packit Service fdd496
      echo "You should only need it if you modified 'configure.ac',"
Packit Service fdd496
      echo "or m4 files included by it."
Packit Service fdd496
      program_details 'autoconf'
Packit Service fdd496
      ;;
Packit Service fdd496
    autoheader*)
Packit Service fdd496
      echo "You should only need it if you modified 'acconfig.h' or"
Packit Service fdd496
      echo "$configure_deps."
Packit Service fdd496
      program_details 'autoheader'
Packit Service fdd496
      ;;
Packit Service fdd496
    automake*)
Packit Service fdd496
      echo "You should only need it if you modified 'Makefile.am' or"
Packit Service fdd496
      echo "$configure_deps."
Packit Service fdd496
      program_details 'automake'
Packit Service fdd496
      ;;
Packit Service fdd496
    aclocal*)
Packit Service fdd496
      echo "You should only need it if you modified 'acinclude.m4' or"
Packit Service fdd496
      echo "$configure_deps."
Packit Service fdd496
      program_details 'aclocal'
Packit Service fdd496
      ;;
Packit Service fdd496
   autom4te*)
Packit Service fdd496
      echo "You might have modified some maintainer files that require"
Packit Service fdd496
      echo "the 'autom4te' program to be rebuilt."
Packit Service fdd496
      program_details 'autom4te'
Packit Service fdd496
      ;;
Packit Service fdd496
    bison*|yacc*)
Packit Service fdd496
      echo "You should only need it if you modified a '.y' file."
Packit Service fdd496
      echo "You may want to install the GNU Bison package:"
Packit Service fdd496
      echo "<$gnu_software_URL/bison/>"
Packit Service fdd496
      ;;
Packit Service fdd496
    lex*|flex*)
Packit Service fdd496
      echo "You should only need it if you modified a '.l' file."
Packit Service fdd496
      echo "You may want to install the Fast Lexical Analyzer package:"
Packit Service fdd496
      echo "<$flex_URL>"
Packit Service fdd496
      ;;
Packit Service fdd496
    help2man*)
Packit Service fdd496
      echo "You should only need it if you modified a dependency" \
Packit Service fdd496
           "of a man page."
Packit Service fdd496
      echo "You may want to install the GNU Help2man package:"
Packit Service fdd496
      echo "<$gnu_software_URL/help2man/>"
Packit Service fdd496
    ;;
Packit Service fdd496
    makeinfo*)
Packit Service fdd496
      echo "You should only need it if you modified a '.texi' file, or"
Packit Service fdd496
      echo "any other file indirectly affecting the aspect of the manual."
Packit Service fdd496
      echo "You might want to install the Texinfo package:"
Packit Service fdd496
      echo "<$gnu_software_URL/texinfo/>"
Packit Service fdd496
      echo "The spurious makeinfo call might also be the consequence of"
Packit Service fdd496
      echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might"
Packit Service fdd496
      echo "want to install GNU make:"
Packit Service fdd496
      echo "<$gnu_software_URL/make/>"
Packit Service fdd496
      ;;
Packit Service fdd496
    *)
Packit Service fdd496
      echo "You might have modified some files without having the proper"
Packit Service fdd496
      echo "tools for further handling them.  Check the 'README' file, it"
Packit Service fdd496
      echo "often tells you about the needed prerequisites for installing"
Packit Service fdd496
      echo "this package.  You may also peek at any GNU archive site, in"
Packit Service fdd496
      echo "case some other package contains this missing '$1' program."
Packit Service fdd496
      ;;
Packit Service fdd496
  esac
Packit Service fdd496
}
Packit Service fdd496
Packit Service fdd496
give_advice "$1" | sed -e '1s/^/WARNING: /' \
Packit Service fdd496
                       -e '2,$s/^/         /' >&2
Packit Service fdd496
Packit Service fdd496
# Propagate the correct exit status (expected to be 127 for a program
Packit Service fdd496
# not found, 63 for a program that failed due to version mismatch).
Packit Service fdd496
exit $st
Packit Service fdd496
Packit Service fdd496
# Local variables:
Packit Service fdd496
# eval: (add-hook 'write-file-hooks 'time-stamp)
Packit Service fdd496
# time-stamp-start: "scriptversion="
Packit Service fdd496
# time-stamp-format: "%:y-%02m-%02d.%02H"
Packit Service fdd496
# time-stamp-time-zone: "UTC0"
Packit Service fdd496
# time-stamp-end: "; # UTC"
Packit Service fdd496
# End: