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

CVS Admin

Powered by ViewCVS 1.0-dev
(Powered by ViewCVS)

ViewCVS and CVS Help