ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/utils/missing
Revision: 1.5
Committed: Tue May 10 11:02:56 2022 UTC (2 years ago) by root
Branch: MAIN
CVS Tags: HEAD
Changes since 1.4: +1 -1 lines
Log Message:
*** empty log message ***

File Contents

# User Rev Content
1 root 1.1 #! /bin/sh
2 root 1.3 # Common wrapper for a few potentially missing GNU programs.
3 root 1.1
4 root 1.4 scriptversion=2018-03-07.03; # UTC
5 root 1.1
6 root 1.5 # Copyright (C) 1996-2020 Free Software Foundation, Inc.
7 root 1.3 # Originally written by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
8 root 1.1
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 root 1.4 # along with this program. If not, see <https://www.gnu.org/licenses/>.
21 root 1.1
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 root 1.3 echo 1>&2 "Try '$0 --help' for more information"
29 root 1.1 exit 1
30     fi
31    
32 root 1.3 case $1 in
33 root 1.1
34 root 1.3 --is-lightweight)
35     # Used by our autoconf macros to check whether the available missing
36     # script is modern enough.
37     exit 0
38     ;;
39 root 1.1
40 root 1.3 --run)
41     # Back-compat with the calling convention used by older automake.
42     shift
43     ;;
44 root 1.1
45     -h|--h|--he|--hel|--help)
46     echo "\
47     $0 [OPTION]... PROGRAM [ARGUMENT]...
48    
49 root 1.3 Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due
50     to PROGRAM being missing or too old.
51 root 1.1
52     Options:
53     -h, --help display this help and exit
54     -v, --version output version information and exit
55    
56     Supported PROGRAM values:
57 root 1.3 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 root 1.1
63     Send bug reports to <bug-automake@gnu.org>."
64 root 1.2 exit $?
65 root 1.1 ;;
66    
67     -v|--v|--ve|--ver|--vers|--versi|--versio|--version)
68     echo "missing $scriptversion (GNU Automake)"
69 root 1.2 exit $?
70 root 1.1 ;;
71    
72     -*)
73 root 1.3 echo 1>&2 "$0: unknown '$1' option"
74     echo 1>&2 "Try '$0 --help' for more information"
75 root 1.1 exit 1
76     ;;
77    
78     esac
79    
80 root 1.3 # Run the given program, remember its exit status.
81     "$@"; st=$?
82 root 1.1
83 root 1.3 # If it succeeded, we are done.
84     test $st -eq 0 && exit 0
85 root 1.1
86 root 1.3 # 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 root 1.1
104 root 1.4 perl_URL=https://www.perl.org/
105     flex_URL=https://github.com/westes/flex
106     gnu_software_URL=https://www.gnu.org/software
107 root 1.3
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 root 1.1
209     # Local variables:
210 root 1.4 # eval: (add-hook 'before-save-hook 'time-stamp)
211 root 1.1 # time-stamp-start: "scriptversion="
212     # time-stamp-format: "%:y-%02m-%02d.%02H"
213 root 1.4 # time-stamp-time-zone: "UTC0"
214 root 1.3 # time-stamp-end: "; # UTC"
215 root 1.1 # End: