Annotation of embedaddon/tmux/etc/missing, revision 1.1
1.1 ! misho 1: #! /bin/sh
! 2: # Common wrapper for a few potentially missing GNU programs.
! 3:
! 4: scriptversion=2013-10-28.13; # UTC
! 5:
! 6: # Copyright (C) 1996-2014 Free Software Foundation, Inc.
! 7: # Originally written by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
! 8:
! 9: # This program is free software; you can redistribute it and/or modify
! 10: # it under the terms of the GNU General Public License as published by
! 11: # the Free Software Foundation; either version 2, or (at your option)
! 12: # any later version.
! 13:
! 14: # This program is distributed in the hope that it will be useful,
! 15: # but WITHOUT ANY WARRANTY; without even the implied warranty of
! 16: # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
! 17: # GNU General Public License for more details.
! 18:
! 19: # You should have received a copy of the GNU General Public License
! 20: # along with this program. If not, see <http://www.gnu.org/licenses/>.
! 21:
! 22: # As a special exception to the GNU General Public License, if you
! 23: # distribute this file as part of a program that contains a
! 24: # configuration script generated by Autoconf, you may include it under
! 25: # the same distribution terms that you use for the rest of that program.
! 26:
! 27: if test $# -eq 0; then
! 28: echo 1>&2 "Try '$0 --help' for more information"
! 29: exit 1
! 30: fi
! 31:
! 32: case $1 in
! 33:
! 34: --is-lightweight)
! 35: # Used by our autoconf macros to check whether the available missing
! 36: # script is modern enough.
! 37: exit 0
! 38: ;;
! 39:
! 40: --run)
! 41: # Back-compat with the calling convention used by older automake.
! 42: shift
! 43: ;;
! 44:
! 45: -h|--h|--he|--hel|--help)
! 46: echo "\
! 47: $0 [OPTION]... PROGRAM [ARGUMENT]...
! 48:
! 49: Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due
! 50: to PROGRAM being missing or too old.
! 51:
! 52: Options:
! 53: -h, --help display this help and exit
! 54: -v, --version output version information and exit
! 55:
! 56: Supported PROGRAM values:
! 57: aclocal autoconf autoheader autom4te automake makeinfo
! 58: bison yacc flex lex help2man
! 59:
! 60: Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and
! 61: 'g' are ignored when checking the name.
! 62:
! 63: Send bug reports to <bug-automake@gnu.org>."
! 64: exit $?
! 65: ;;
! 66:
! 67: -v|--v|--ve|--ver|--vers|--versi|--versio|--version)
! 68: echo "missing $scriptversion (GNU Automake)"
! 69: exit $?
! 70: ;;
! 71:
! 72: -*)
! 73: echo 1>&2 "$0: unknown '$1' option"
! 74: echo 1>&2 "Try '$0 --help' for more information"
! 75: exit 1
! 76: ;;
! 77:
! 78: esac
! 79:
! 80: # Run the given program, remember its exit status.
! 81: "$@"; st=$?
! 82:
! 83: # If it succeeded, we are done.
! 84: test $st -eq 0 && exit 0
! 85:
! 86: # Also exit now if we it failed (or wasn't found), and '--version' was
! 87: # passed; such an option is passed most likely to detect whether the
! 88: # program is present and works.
! 89: case $2 in --version|--help) exit $st;; esac
! 90:
! 91: # Exit code 63 means version mismatch. This often happens when the user
! 92: # tries to use an ancient version of a tool on a file that requires a
! 93: # minimum version.
! 94: if test $st -eq 63; then
! 95: msg="probably too old"
! 96: elif test $st -eq 127; then
! 97: # Program was missing.
! 98: msg="missing on your system"
! 99: else
! 100: # Program was found and executed, but failed. Give up.
! 101: exit $st
! 102: fi
! 103:
! 104: perl_URL=http://www.perl.org/
! 105: flex_URL=http://flex.sourceforge.net/
! 106: gnu_software_URL=http://www.gnu.org/software
! 107:
! 108: program_details ()
! 109: {
! 110: case $1 in
! 111: aclocal|automake)
! 112: echo "The '$1' program is part of the GNU Automake package:"
! 113: echo "<$gnu_software_URL/automake>"
! 114: echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:"
! 115: echo "<$gnu_software_URL/autoconf>"
! 116: echo "<$gnu_software_URL/m4/>"
! 117: echo "<$perl_URL>"
! 118: ;;
! 119: autoconf|autom4te|autoheader)
! 120: echo "The '$1' program is part of the GNU Autoconf package:"
! 121: echo "<$gnu_software_URL/autoconf/>"
! 122: echo "It also requires GNU m4 and Perl in order to run:"
! 123: echo "<$gnu_software_URL/m4/>"
! 124: echo "<$perl_URL>"
! 125: ;;
! 126: esac
! 127: }
! 128:
! 129: give_advice ()
! 130: {
! 131: # Normalize program name to check for.
! 132: normalized_program=`echo "$1" | sed '
! 133: s/^gnu-//; t
! 134: s/^gnu//; t
! 135: s/^g//; t'`
! 136:
! 137: printf '%s\n' "'$1' is $msg."
! 138:
! 139: configure_deps="'configure.ac' or m4 files included by 'configure.ac'"
! 140: case $normalized_program in
! 141: autoconf*)
! 142: echo "You should only need it if you modified 'configure.ac',"
! 143: echo "or m4 files included by it."
! 144: program_details 'autoconf'
! 145: ;;
! 146: autoheader*)
! 147: echo "You should only need it if you modified 'acconfig.h' or"
! 148: echo "$configure_deps."
! 149: program_details 'autoheader'
! 150: ;;
! 151: automake*)
! 152: echo "You should only need it if you modified 'Makefile.am' or"
! 153: echo "$configure_deps."
! 154: program_details 'automake'
! 155: ;;
! 156: aclocal*)
! 157: echo "You should only need it if you modified 'acinclude.m4' or"
! 158: echo "$configure_deps."
! 159: program_details 'aclocal'
! 160: ;;
! 161: autom4te*)
! 162: echo "You might have modified some maintainer files that require"
! 163: echo "the 'autom4te' program to be rebuilt."
! 164: program_details 'autom4te'
! 165: ;;
! 166: bison*|yacc*)
! 167: echo "You should only need it if you modified a '.y' file."
! 168: echo "You may want to install the GNU Bison package:"
! 169: echo "<$gnu_software_URL/bison/>"
! 170: ;;
! 171: lex*|flex*)
! 172: echo "You should only need it if you modified a '.l' file."
! 173: echo "You may want to install the Fast Lexical Analyzer package:"
! 174: echo "<$flex_URL>"
! 175: ;;
! 176: help2man*)
! 177: echo "You should only need it if you modified a dependency" \
! 178: "of a man page."
! 179: echo "You may want to install the GNU Help2man package:"
! 180: echo "<$gnu_software_URL/help2man/>"
! 181: ;;
! 182: makeinfo*)
! 183: echo "You should only need it if you modified a '.texi' file, or"
! 184: echo "any other file indirectly affecting the aspect of the manual."
! 185: echo "You might want to install the Texinfo package:"
! 186: echo "<$gnu_software_URL/texinfo/>"
! 187: echo "The spurious makeinfo call might also be the consequence of"
! 188: echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might"
! 189: echo "want to install GNU make:"
! 190: echo "<$gnu_software_URL/make/>"
! 191: ;;
! 192: *)
! 193: echo "You might have modified some files without having the proper"
! 194: echo "tools for further handling them. Check the 'README' file, it"
! 195: echo "often tells you about the needed prerequisites for installing"
! 196: echo "this package. You may also peek at any GNU archive site, in"
! 197: echo "case some other package contains this missing '$1' program."
! 198: ;;
! 199: esac
! 200: }
! 201:
! 202: give_advice "$1" | sed -e '1s/^/WARNING: /' \
! 203: -e '2,$s/^/ /' >&2
! 204:
! 205: # Propagate the correct exit status (expected to be 127 for a program
! 206: # not found, 63 for a program that failed due to version mismatch).
! 207: exit $st
! 208:
! 209: # Local variables:
! 210: # eval: (add-hook 'write-file-hooks 'time-stamp)
! 211: # time-stamp-start: "scriptversion="
! 212: # time-stamp-format: "%:y-%02m-%02d.%02H"
! 213: # time-stamp-time-zone: "UTC"
! 214: # time-stamp-end: "; # UTC"
! 215: # End:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>