summaryrefslogtreecommitdiffstats
path: root/missing
diff options
context:
space:
mode:
Diffstat (limited to 'missing')
-rwxr-xr-xmissing166
1 files changed, 156 insertions, 10 deletions
diff --git a/missing b/missing
index 7789652e..6a37006e 100755
--- a/missing
+++ b/missing
@@ -1,7 +1,7 @@
1#! /bin/sh 1#! /bin/sh
2# Common stub for a few missing GNU programs while installing. 2# Common stub for a few missing GNU programs while installing.
3# Copyright (C) 1996, 1997 Free Software Foundation, Inc. 3# Copyright (C) 1996, 1997, 1999, 2000, 2002 Free Software Foundation, Inc.
4# Franc,ois Pinard <pinard@iro.umontreal.ca>, 1996. 4# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
5 5
6# This program is free software; you can redistribute it and/or modify 6# This program is free software; you can redistribute it and/or modify
7# it under the terms of the GNU General Public License as published by 7# it under the terms of the GNU General Public License as published by
@@ -18,11 +18,37 @@
18# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 18# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
19# 02111-1307, USA. 19# 02111-1307, USA.
20 20
21# As a special exception to the GNU General Public License, if you
22# distribute this file as part of a program that contains a
23# configuration script generated by Autoconf, you may include it under
24# the same distribution terms that you use for the rest of that program.
25
21if test $# -eq 0; then 26if test $# -eq 0; then
22 echo 1>&2 "Try \`$0 --help' for more information" 27 echo 1>&2 "Try \`$0 --help' for more information"
23 exit 1 28 exit 1
24fi 29fi
25 30
31run=:
32
33# In the cases where this matters, `missing' is being run in the
34# srcdir already.
35if test -f configure.ac; then
36 configure_ac=configure.ac
37else
38 configure_ac=configure.in
39fi
40
41case "$1" in
42--run)
43 # Try to run requested program, and just exit if it succeeds.
44 run=
45 shift
46 "$@" && exit 0
47 ;;
48esac
49
50# If it does not exist, or fails to run (possibly an outdated version),
51# try to emulate it.
26case "$1" in 52case "$1" in
27 53
28 -h|--h|--he|--hel|--help) 54 -h|--h|--he|--hel|--help)
@@ -35,6 +61,7 @@ error status if there is no known handling for PROGRAM.
35Options: 61Options:
36 -h, --help display this help and exit 62 -h, --help display this help and exit
37 -v, --version output version information and exit 63 -v, --version output version information and exit
64 --run try to run the given command, and emulate it if it fails
38 65
39Supported PROGRAM values: 66Supported PROGRAM values:
40 aclocal touch file \`aclocal.m4' 67 aclocal touch file \`aclocal.m4'
@@ -43,13 +70,15 @@ Supported PROGRAM values:
43 automake touch all \`Makefile.in' files 70 automake touch all \`Makefile.in' files
44 bison create \`y.tab.[ch]', if possible, from existing .[ch] 71 bison create \`y.tab.[ch]', if possible, from existing .[ch]
45 flex create \`lex.yy.c', if possible, from existing .c 72 flex create \`lex.yy.c', if possible, from existing .c
73 help2man touch the output file
46 lex create \`lex.yy.c', if possible, from existing .c 74 lex create \`lex.yy.c', if possible, from existing .c
47 makeinfo touch the output file 75 makeinfo touch the output file
76 tar try tar, gnutar, gtar, then tar without non-portable flags
48 yacc create \`y.tab.[ch]', if possible, from existing .[ch]" 77 yacc create \`y.tab.[ch]', if possible, from existing .[ch]"
49 ;; 78 ;;
50 79
51 -v|--v|--ve|--ver|--vers|--versi|--versio|--version) 80 -v|--v|--ve|--ver|--vers|--versi|--versio|--version)
52 echo "missing - GNU libit 0.0" 81 echo "missing 0.4 - GNU automake"
53 ;; 82 ;;
54 83
55 -*) 84 -*)
@@ -58,31 +87,46 @@ Supported PROGRAM values:
58 exit 1 87 exit 1
59 ;; 88 ;;
60 89
61 aclocal) 90 aclocal*)
91 if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
92 # We have it, but it failed.
93 exit 1
94 fi
95
62 echo 1>&2 "\ 96 echo 1>&2 "\
63WARNING: \`$1' is missing on your system. You should only need it if 97WARNING: \`$1' is missing on your system. You should only need it if
64 you modified \`acinclude.m4' or \`configure.in'. You might want 98 you modified \`acinclude.m4' or \`${configure_ac}'. You might want
65 to install the \`Automake' and \`Perl' packages. Grab them from 99 to install the \`Automake' and \`Perl' packages. Grab them from
66 any GNU archive site." 100 any GNU archive site."
67 touch aclocal.m4 101 touch aclocal.m4
68 ;; 102 ;;
69 103
70 autoconf) 104 autoconf)
105 if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
106 # We have it, but it failed.
107 exit 1
108 fi
109
71 echo 1>&2 "\ 110 echo 1>&2 "\
72WARNING: \`$1' is missing on your system. You should only need it if 111WARNING: \`$1' is missing on your system. You should only need it if
73 you modified \`configure.in'. You might want to install the 112 you modified \`${configure_ac}'. You might want to install the
74 \`Autoconf' and \`GNU m4' packages. Grab them from any GNU 113 \`Autoconf' and \`GNU m4' packages. Grab them from any GNU
75 archive site." 114 archive site."
76 touch configure 115 touch configure
77 ;; 116 ;;
78 117
79 autoheader) 118 autoheader)
119 if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
120 # We have it, but it failed.
121 exit 1
122 fi
123
80 echo 1>&2 "\ 124 echo 1>&2 "\
81WARNING: \`$1' is missing on your system. You should only need it if 125WARNING: \`$1' is missing on your system. You should only need it if
82 you modified \`acconfig.h' or \`configure.in'. You might want 126 you modified \`acconfig.h' or \`${configure_ac}'. You might want
83 to install the \`Autoconf' and \`GNU m4' packages. Grab them 127 to install the \`Autoconf' and \`GNU m4' packages. Grab them
84 from any GNU archive site." 128 from any GNU archive site."
85 files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' configure.in` 129 files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
86 test -z "$files" && files="config.h" 130 test -z "$files" && files="config.h"
87 touch_files= 131 touch_files=
88 for f in $files; do 132 for f in $files; do
@@ -95,10 +139,15 @@ WARNING: \`$1' is missing on your system. You should only need it if
95 touch $touch_files 139 touch $touch_files
96 ;; 140 ;;
97 141
98 automake) 142 automake*)
143 if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
144 # We have it, but it failed.
145 exit 1
146 fi
147
99 echo 1>&2 "\ 148 echo 1>&2 "\
100WARNING: \`$1' is missing on your system. You should only need it if 149WARNING: \`$1' is missing on your system. You should only need it if
101 you modified \`Makefile.am', \`acinclude.m4' or \`configure.in'. 150 you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
102 You might want to install the \`Automake' and \`Perl' packages. 151 You might want to install the \`Automake' and \`Perl' packages.
103 Grab them from any GNU archive site." 152 Grab them from any GNU archive site."
104 find . -type f -name Makefile.am -print | 153 find . -type f -name Makefile.am -print |
@@ -106,6 +155,34 @@ WARNING: \`$1' is missing on your system. You should only need it if
106 while read f; do touch "$f"; done 155 while read f; do touch "$f"; done
107 ;; 156 ;;
108 157
158 autom4te)
159 if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
160 # We have it, but it failed.
161 exit 1
162 fi
163
164 echo 1>&2 "\
165WARNING: \`$1' is needed, and you do not seem to have it handy on your
166 system. You might have modified some files without having the
167 proper tools for further handling them.
168 You can get \`$1Help2man' as part of \`Autoconf' from any GNU
169 archive site."
170
171 file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'`
172 test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'`
173 if test -f "$file"; then
174 touch $file
175 else
176 test -z "$file" || exec >$file
177 echo "#! /bin/sh"
178 echo "# Created by GNU Automake missing as a replacement of"
179 echo "# $ $@"
180 echo "exit 0"
181 chmod +x $file
182 exit 1
183 fi
184 ;;
185
109 bison|yacc) 186 bison|yacc)
110 echo 1>&2 "\ 187 echo 1>&2 "\
111WARNING: \`$1' is missing on your system. You should only need it if 188WARNING: \`$1' is missing on your system. You should only need it if
@@ -159,7 +236,37 @@ WARNING: \`$1' is missing on your system. You should only need it if
159 fi 236 fi
160 ;; 237 ;;
161 238
239 help2man)
240 if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
241 # We have it, but it failed.
242 exit 1
243 fi
244
245 echo 1>&2 "\
246WARNING: \`$1' is missing on your system. You should only need it if
247 you modified a dependency of a manual page. You may need the
248 \`Help2man' package in order for those modifications to take
249 effect. You can get \`Help2man' from any GNU archive site."
250
251 file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
252 if test -z "$file"; then
253 file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'`
254 fi
255 if [ -f "$file" ]; then
256 touch $file
257 else
258 test -z "$file" || exec >$file
259 echo ".ab help2man is required to generate this page"
260 exit 1
261 fi
262 ;;
263
162 makeinfo) 264 makeinfo)
265 if test -z "$run" && (makeinfo --version) > /dev/null 2>&1; then
266 # We have makeinfo, but it failed.
267 exit 1
268 fi
269
163 echo 1>&2 "\ 270 echo 1>&2 "\
164WARNING: \`$1' is missing on your system. You should only need it if 271WARNING: \`$1' is missing on your system. You should only need it if
165 you modified a \`.texi' or \`.texinfo' file, or any other file 272 you modified a \`.texi' or \`.texinfo' file, or any other file
@@ -175,6 +282,45 @@ WARNING: \`$1' is missing on your system. You should only need it if
175 touch $file 282 touch $file
176 ;; 283 ;;
177 284
285 tar)
286 shift
287 if test -n "$run"; then
288 echo 1>&2 "ERROR: \`tar' requires --run"
289 exit 1
290 fi
291
292 # We have already tried tar in the generic part.
293 # Look for gnutar/gtar before invocation to avoid ugly error
294 # messages.
295 if (gnutar --version > /dev/null 2>&1); then
296 gnutar "$@" && exit 0
297 fi
298 if (gtar --version > /dev/null 2>&1); then
299 gtar "$@" && exit 0
300 fi
301 firstarg="$1"
302 if shift; then
303 case "$firstarg" in
304 *o*)
305 firstarg=`echo "$firstarg" | sed s/o//`
306 tar "$firstarg" "$@" && exit 0
307 ;;
308 esac
309 case "$firstarg" in
310 *h*)
311 firstarg=`echo "$firstarg" | sed s/h//`
312 tar "$firstarg" "$@" && exit 0
313 ;;
314 esac
315 fi
316
317 echo 1>&2 "\
318WARNING: I can't seem to be able to run \`tar' with the given arguments.
319 You may want to install GNU tar or Free paxutils, or check the
320 command line arguments."
321 exit 1
322 ;;
323
178 *) 324 *)
179 echo 1>&2 "\ 325 echo 1>&2 "\
180WARNING: \`$1' is needed, and you do not seem to have it handy on your 326WARNING: \`$1' is needed, and you do not seem to have it handy on your