/[gentoo-src]/portage/missing
Gentoo

Contents of /portage/missing

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1 - (show annotations) (download)
Sat Nov 20 10:20:52 2004 UTC (9 years, 8 months ago) by ferringb
Branch: MAIN
CVS Tags: portage_041204, HEAD
Branch point for: portage_2_1
autotooling of portage.

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

  ViewVC Help
Powered by ViewVC 1.1.20