Annotation of embedaddon/confuse/support/missing, revision 1.1.1.2
1.1 misho 1: #! /bin/sh
1.1.1.2 ! misho 2: # Common wrapper for a few potentially missing GNU programs.
1.1 misho 3:
1.1.1.2 ! misho 4: scriptversion=2018-03-07.03; # UTC
1.1 misho 5:
1.1.1.2 ! misho 6: # Copyright (C) 1996-2018 Free Software Foundation, Inc.
! 7: # Originally written by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
1.1 misho 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
1.1.1.2 ! misho 20: # along with this program. If not, see <https://www.gnu.org/licenses/>.
1.1 misho 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
1.1.1.2 ! misho 28: echo 1>&2 "Try '$0 --help' for more information"
1.1 misho 29: exit 1
30: fi
31:
1.1.1.2 ! misho 32: case $1 in
1.1 misho 33:
1.1.1.2 ! misho 34: --is-lightweight)
! 35: # Used by our autoconf macros to check whether the available missing
! 36: # script is modern enough.
! 37: exit 0
! 38: ;;
1.1 misho 39:
1.1.1.2 ! misho 40: --run)
! 41: # Back-compat with the calling convention used by older automake.
! 42: shift
! 43: ;;
1.1 misho 44:
45: -h|--h|--he|--hel|--help)
46: echo "\
47: $0 [OPTION]... PROGRAM [ARGUMENT]...
48:
1.1.1.2 ! misho 49: Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due
! 50: to PROGRAM being missing or too old.
1.1 misho 51:
52: Options:
53: -h, --help display this help and exit
54: -v, --version output version information and exit
55:
56: Supported PROGRAM values:
1.1.1.2 ! misho 57: aclocal autoconf autoheader autom4te automake makeinfo
! 58: bison yacc flex lex help2man
1.1 misho 59:
1.1.1.2 ! misho 60: Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and
! 61: 'g' are ignored when checking the name.
1.1 misho 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: -*)
1.1.1.2 ! misho 73: echo 1>&2 "$0: unknown '$1' option"
! 74: echo 1>&2 "Try '$0 --help' for more information"
1.1 misho 75: exit 1
76: ;;
77:
78: esac
79:
1.1.1.2 ! misho 80: # Run the given program, remember its exit status.
! 81: "$@"; st=$?
1.1 misho 82:
1.1.1.2 ! misho 83: # If it succeeded, we are done.
! 84: test $st -eq 0 && exit 0
1.1 misho 85:
1.1.1.2 ! misho 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
1.1 misho 103:
1.1.1.2 ! misho 104: perl_URL=https://www.perl.org/
! 105: flex_URL=https://github.com/westes/flex
! 106: gnu_software_URL=https://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
1.1 misho 208:
209: # Local variables:
1.1.1.2 ! misho 210: # eval: (add-hook 'before-save-hook 'time-stamp)
1.1 misho 211: # time-stamp-start: "scriptversion="
212: # time-stamp-format: "%:y-%02m-%02d.%02H"
1.1.1.2 ! misho 213: # time-stamp-time-zone: "UTC0"
1.1 misho 214: # time-stamp-end: "; # UTC"
215: # End:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>