Annotation of embedaddon/mtr/missing, revision 1.1.1.3
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=2013-10-28.13; # UTC
1.1 misho 5:
1.1.1.3 ! misho 6: # Copyright (C) 1996-2014 Free Software Foundation, Inc.
1.1.1.2 misho 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
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
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=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
1.1 misho 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>