[gforth] / gforth / missing  

gforth: gforth/missing


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

CVS Admin

Powered by ViewCVS 1.0-dev
(Powered by ViewCVS)

ViewCVS and CVS Help