Skip to content

Latest commit

 

History

History
executable file
·
330 lines (293 loc) · 9.94 KB

missing

File metadata and controls

executable file
·
330 lines (293 loc) · 9.94 KB
 
1
2
3
#! /bin/sh
# Common stub for a few missing GNU programs while installing.
Oct 18, 2018
Oct 18, 2018
4
scriptversion=2012-01-06.18; # UTC
Oct 18, 2018
Oct 18, 2018
6
# Copyright (C) 1996-2012 Free Software Foundation, Inc.
7
8
9
10
11
12
13
14
15
16
17
18
19
# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
Oct 18, 2018
Oct 18, 2018
20
# along with this program. If not, see <http://www.gnu.org/licenses/>.
21
22
23
24
25
26
27
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
if test $# -eq 0; then
Oct 18, 2018
Oct 18, 2018
28
echo 1>&2 "Try '$0 --help' for more information"
29
30
31
32
33
34
35
exit 1
fi
run=:
sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p'
sed_minuso='s/.* -o \([^ ]*\).*/\1/p'
Oct 18, 2018
Oct 18, 2018
36
# In the cases where this matters, 'missing' is being run in the
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# srcdir already.
if test -f configure.ac; then
configure_ac=configure.ac
else
configure_ac=configure.in
fi
msg="missing on your system"
case $1 in
--run)
# Try to run requested program, and just exit if it succeeds.
run=
shift
"$@" && exit 0
# Exit code 63 means version mismatch. This often happens
# when the user try to use an ancient version of a tool on
# a file that requires a minimum version. In this case we
# we should proceed has if the program had been absent, or
# if --run hadn't been passed.
if test $? = 63; then
run=:
msg="probably too old"
fi
;;
-h|--h|--he|--hel|--help)
echo "\
$0 [OPTION]... PROGRAM [ARGUMENT]...
Oct 18, 2018
Oct 18, 2018
67
Handle 'PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
68
69
70
71
72
73
74
75
error status if there is no known handling for PROGRAM.
Options:
-h, --help display this help and exit
-v, --version output version information and exit
--run try to run the given command, and emulate it if it fails
Supported PROGRAM values:
Oct 18, 2018
Oct 18, 2018
76
77
78
aclocal touch file 'aclocal.m4'
autoconf touch file 'configure'
autoheader touch file 'config.h.in'
79
autom4te touch the output file, or create a stub one
Oct 18, 2018
Oct 18, 2018
80
81
82
automake touch all 'Makefile.in' files
bison create 'y.tab.[ch]', if possible, from existing .[ch]
flex create 'lex.yy.c', if possible, from existing .c
83
help2man touch the output file
Oct 18, 2018
Oct 18, 2018
84
lex create 'lex.yy.c', if possible, from existing .c
85
makeinfo touch the output file
Oct 18, 2018
Oct 18, 2018
86
87
88
89
yacc create 'y.tab.[ch]', if possible, from existing .[ch]
Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and
'g' are ignored when checking the name.
90
91
92
93
94
95
96
97
98
99
100
Send bug reports to <bug-automake@gnu.org>."
exit $?
;;
-v|--v|--ve|--ver|--vers|--versi|--versio|--version)
echo "missing $scriptversion (GNU Automake)"
exit $?
;;
-*)
Oct 18, 2018
Oct 18, 2018
101
102
echo 1>&2 "$0: Unknown '$1' option"
echo 1>&2 "Try '$0 --help' for more information"
103
104
105
106
107
exit 1
;;
esac
Oct 18, 2018
Oct 18, 2018
108
109
110
111
112
113
# normalize program name to check for.
program=`echo "$1" | sed '
s/^gnu-//; t
s/^gnu//; t
s/^g//; t'`
114
115
# Now exit if we have it, but it failed. Also exit now if we
# don't have it and --version was passed (most likely to detect
Oct 18, 2018
Oct 18, 2018
116
117
# the program). This is about non-GNU programs, so use $1 not
# $program.
Oct 18, 2018
Oct 18, 2018
119
lex*|yacc*)
120
121
122
123
124
125
126
127
128
# Not GNU programs, they don't have --version.
;;
*)
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
# We have it, but it failed.
exit 1
elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
# Could not run --version or --help. This is probably someone
Oct 18, 2018
Oct 18, 2018
129
# running '$TOOL --version' or '$TOOL --help' to check whether
130
131
132
133
134
135
136
137
# $TOOL exists and not knowing $TOOL uses missing.
exit 1
fi
;;
esac
# If it does not exist, or fails to run (possibly an outdated version),
# try to emulate it.
Oct 18, 2018
Oct 18, 2018
138
case $program in
139
140
aclocal*)
echo 1>&2 "\
Oct 18, 2018
Oct 18, 2018
141
142
143
WARNING: '$1' is $msg. You should only need it if
you modified 'acinclude.m4' or '${configure_ac}'. You might want
to install the Automake and Perl packages. Grab them from
144
145
146
147
any GNU archive site."
touch aclocal.m4
;;
Oct 18, 2018
Oct 18, 2018
148
autoconf*)
Oct 18, 2018
Oct 18, 2018
150
151
152
WARNING: '$1' is $msg. You should only need it if
you modified '${configure_ac}'. You might want to install the
Autoconf and GNU m4 packages. Grab them from any GNU
153
154
155
156
archive site."
touch configure
;;
Oct 18, 2018
Oct 18, 2018
157
autoheader*)
Oct 18, 2018
Oct 18, 2018
159
160
161
WARNING: '$1' is $msg. You should only need it if
you modified 'acconfig.h' or '${configure_ac}'. You might want
to install the Autoconf and GNU m4 packages. Grab them
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
from any GNU archive site."
files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
test -z "$files" && files="config.h"
touch_files=
for f in $files; do
case $f in
*:*) touch_files="$touch_files "`echo "$f" |
sed -e 's/^[^:]*://' -e 's/:.*//'`;;
*) touch_files="$touch_files $f.in";;
esac
done
touch $touch_files
;;
automake*)
echo 1>&2 "\
Oct 18, 2018
Oct 18, 2018
178
179
180
WARNING: '$1' is $msg. You should only need it if
you modified 'Makefile.am', 'acinclude.m4' or '${configure_ac}'.
You might want to install the Automake and Perl packages.
181
182
183
184
185
186
Grab them from any GNU archive site."
find . -type f -name Makefile.am -print |
sed 's/\.am$/.in/' |
while read f; do touch "$f"; done
;;
Oct 18, 2018
Oct 18, 2018
187
autom4te*)
Oct 18, 2018
Oct 18, 2018
189
WARNING: '$1' is needed, but is $msg.
190
191
You might have modified some files without having the
proper tools for further handling them.
Oct 18, 2018
Oct 18, 2018
192
You can get '$1' as part of Autoconf from any GNU
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
archive site."
file=`echo "$*" | sed -n "$sed_output"`
test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
if test -f "$file"; then
touch $file
else
test -z "$file" || exec >$file
echo "#! /bin/sh"
echo "# Created by GNU Automake missing as a replacement of"
echo "# $ $@"
echo "exit 0"
chmod +x $file
exit 1
fi
;;
Oct 18, 2018
Oct 18, 2018
210
bison*|yacc*)
Oct 18, 2018
Oct 18, 2018
212
213
WARNING: '$1' $msg. You should only need it if
you modified a '.y' file. You may need the Bison package
214
in order for those modifications to take effect. You can get
Oct 18, 2018
Oct 18, 2018
215
Bison from any GNU archive site."
216
217
rm -f y.tab.c y.tab.h
if test $# -ne 1; then
Oct 18, 2018
Oct 18, 2018
218
eval LASTARG=\${$#}
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
case $LASTARG in
*.y)
SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
if test -f "$SRCFILE"; then
cp "$SRCFILE" y.tab.c
fi
SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
if test -f "$SRCFILE"; then
cp "$SRCFILE" y.tab.h
fi
;;
esac
fi
if test ! -f y.tab.h; then
echo >y.tab.h
fi
if test ! -f y.tab.c; then
echo 'main() { return 0; }' >y.tab.c
fi
;;
Oct 18, 2018
Oct 18, 2018
240
lex*|flex*)
Oct 18, 2018
Oct 18, 2018
242
243
WARNING: '$1' is $msg. You should only need it if
you modified a '.l' file. You may need the Flex package
244
in order for those modifications to take effect. You can get
Oct 18, 2018
Oct 18, 2018
245
Flex from any GNU archive site."
246
247
rm -f lex.yy.c
if test $# -ne 1; then
Oct 18, 2018
Oct 18, 2018
248
eval LASTARG=\${$#}
249
250
251
252
253
254
255
256
257
258
259
260
261
262
case $LASTARG in
*.l)
SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
if test -f "$SRCFILE"; then
cp "$SRCFILE" lex.yy.c
fi
;;
esac
fi
if test ! -f lex.yy.c; then
echo 'main() { return 0; }' >lex.yy.c
fi
;;
Oct 18, 2018
Oct 18, 2018
263
help2man*)
Oct 18, 2018
Oct 18, 2018
265
WARNING: '$1' is $msg. You should only need it if
266
you modified a dependency of a manual page. You may need the
Oct 18, 2018
Oct 18, 2018
267
268
Help2man package in order for those modifications to take
effect. You can get Help2man from any GNU archive site."
269
270
271
272
273
274
275
276
file=`echo "$*" | sed -n "$sed_output"`
test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
if test -f "$file"; then
touch $file
else
test -z "$file" || exec >$file
echo ".ab help2man is required to generate this page"
Oct 18, 2018
Oct 18, 2018
277
exit $?
Oct 18, 2018
Oct 18, 2018
281
makeinfo*)
Oct 18, 2018
Oct 18, 2018
283
284
WARNING: '$1' is $msg. You should only need it if
you modified a '.texi' or '.texinfo' file, or any other file
285
indirectly affecting the aspect of the manual. The spurious
Oct 18, 2018
Oct 18, 2018
286
287
288
call might also be the consequence of using a buggy 'make' (AIX,
DU, IRIX). You might want to install the Texinfo package or
the GNU make package. Grab either from any GNU archive site."
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
# The file to touch is that specified with -o ...
file=`echo "$*" | sed -n "$sed_output"`
test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
if test -z "$file"; then
# ... or it is the one specified with @setfilename ...
infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
file=`sed -n '
/^@setfilename/{
s/.* \([^ ]*\) *$/\1/
p
q
}' $infile`
# ... or it is derived from the source name (dir/f.texi becomes f.info)
test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info
fi
# If the file does not exist, the user really needs makeinfo;
# let's fail without touching anything.
test -f $file || exit 1
touch $file
;;
*)
echo 1>&2 "\
Oct 18, 2018
Oct 18, 2018
312
WARNING: '$1' is needed, and is $msg.
313
You might have modified some files without having the
Oct 18, 2018
Oct 18, 2018
314
proper tools for further handling them. Check the 'README' file,
315
316
it often tells you about the needed prerequisites for installing
this package. You may also peek at any GNU archive site, in case
Oct 18, 2018
Oct 18, 2018
317
some other package would contain this missing '$1' program."
318
319
320
321
322
323
324
325
326
327
exit 1
;;
esac
exit 0
# Local variables:
# eval: (add-hook 'write-file-hooks 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
Oct 18, 2018
Oct 18, 2018
328
329
# time-stamp-time-zone: "UTC"
# time-stamp-end: "; # UTC"