ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/svn/hopm/trunk/src/libopm/missing
Revision: 5059
Committed: Mon Dec 22 13:43:00 2014 UTC (9 years, 2 months ago) by michael
File size: 6872 byte(s)
Log Message:
- C99 is now mandatory. Removed snprintf.c and related code

File Contents

# User Rev Content
1 michael 5052 #! /bin/sh
2 michael 5059 # Common wrapper for a few potentially missing GNU programs.
3 michael 5052
4 michael 5059 scriptversion=2013-10-28.13; # UTC
5    
6     # Copyright (C) 1996-2013 Free Software Foundation, Inc.
7     # Originally written by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
8    
9 michael 5052 # 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 michael 5059 # along with this program. If not, see <http://www.gnu.org/licenses/>.
21 michael 5052
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 michael 5059 echo 1>&2 "Try '$0 --help' for more information"
29 michael 5052 exit 1
30     fi
31    
32 michael 5059 case $1 in
33 michael 5052
34 michael 5059 --is-lightweight)
35     # Used by our autoconf macros to check whether the available missing
36     # script is modern enough.
37     exit 0
38     ;;
39 michael 5052
40 michael 5059 --run)
41     # Back-compat with the calling convention used by older automake.
42     shift
43     ;;
44 michael 5052
45     -h|--h|--he|--hel|--help)
46     echo "\
47     $0 [OPTION]... PROGRAM [ARGUMENT]...
48    
49 michael 5059 Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due
50     to PROGRAM being missing or too old.
51 michael 5052
52     Options:
53     -h, --help display this help and exit
54     -v, --version output version information and exit
55    
56     Supported PROGRAM values:
57 michael 5059 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 michael 5052 ;;
66    
67     -v|--v|--ve|--ver|--vers|--versi|--versio|--version)
68 michael 5059 echo "missing $scriptversion (GNU Automake)"
69     exit $?
70 michael 5052 ;;
71    
72     -*)
73 michael 5059 echo 1>&2 "$0: unknown '$1' option"
74     echo 1>&2 "Try '$0 --help' for more information"
75 michael 5052 exit 1
76     ;;
77    
78 michael 5059 esac
79 michael 5052
80 michael 5059 # Run the given program, remember its exit status.
81     "$@"; st=$?
82 michael 5052
83 michael 5059 # If it succeeded, we are done.
84     test $st -eq 0 && exit 0
85 michael 5052
86 michael 5059 # 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 michael 5052
91 michael 5059 # 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 michael 5052
104 michael 5059 perl_URL=http://www.perl.org/
105     flex_URL=http://flex.sourceforge.net/
106     gnu_software_URL=http://www.gnu.org/software
107 michael 5052
108 michael 5059 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 michael 5052
129 michael 5059 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 michael 5052
137 michael 5059 printf '%s\n' "'$1' is $msg."
138 michael 5052
139 michael 5059 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 michael 5052 ;;
182 michael 5059 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 michael 5052
202 michael 5059 give_advice "$1" | sed -e '1s/^/WARNING: /' \
203     -e '2,$s/^/ /' >&2
204 michael 5052
205 michael 5059 # 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 michael 5052
209 michael 5059 # 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:

Properties

Name Value
svn:executable