source: trunk/grep/missing@ 2745

Last change on this file since 2745 was 2557, checked in by bird, 20 years ago

grep 2.5.1a

File size: 8.6 KB
Line 
1#! /bin/sh
2# Common stub for a few missing GNU programs while installing.
3# Copyright 1996, 1997, 1999, 2000 Free Software Foundation, Inc.
4# Originally by Fran,cois Pinard <[email protected]>, 1996.
5
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
8# the Free Software Foundation; either version 2, or (at your option)
9# any later version.
10
11# This program is distributed in the hope that it will be useful,
12# but WITHOUT ANY WARRANTY; without even the implied warranty of
13# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14# GNU General Public License for more details.
15
16# You should have received a copy of the GNU General Public License
17# along with this program; if not, write to the Free Software
18# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
19# 02111-1307, USA.
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
26if test $# -eq 0; then
27 echo 1>&2 "Try \`$0 --help' for more information"
28 exit 1
29fi
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.
52case "$1" in
53
54 -h|--h|--he|--hel|--help)
55 echo "\
56$0 [OPTION]... PROGRAM [ARGUMENT]...
57
58Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
59error status if there is no known handling for PROGRAM.
60
61Options:
62 -h, --help display this help and exit
63 -v, --version output version information and exit
64 --run try to run the given command, and emulate it if it fails
65
66Supported PROGRAM values:
67 aclocal touch file \`aclocal.m4'
68 autoconf touch file \`configure'
69 autoheader touch file \`config.h.in'
70 automake touch all \`Makefile.in' files
71 bison create \`y.tab.[ch]', if possible, from existing .[ch]
72 flex create \`lex.yy.c', if possible, from existing .c
73 help2man touch the output file
74 lex create \`lex.yy.c', if possible, from existing .c
75 makeinfo touch the output file
76 tar try tar, gnutar, gtar, then tar without non-portable flags
77 yacc create \`y.tab.[ch]', if possible, from existing .[ch]"
78 ;;
79
80 -v|--v|--ve|--ver|--vers|--versi|--versio|--version)
81 echo "missing 0.3 - GNU automake"
82 ;;
83
84 -*)
85 echo 1>&2 "$0: Unknown \`$1' option"
86 echo 1>&2 "Try \`$0 --help' for more information"
87 exit 1
88 ;;
89
90 aclocal)
91 echo 1>&2 "\
92WARNING: \`$1' is missing on your system. You should only need it if
93 you modified \`acinclude.m4' or \`${configure_ac}'. You might want
94 to install the \`Automake' and \`Perl' packages. Grab them from
95 any GNU archive site."
96 touch aclocal.m4
97 ;;
98
99 autoconf)
100 echo 1>&2 "\
101WARNING: \`$1' is missing on your system. You should only need it if
102 you modified \`${configure_ac}'. You might want to install the
103 \`Autoconf' and \`GNU m4' packages. Grab them from any GNU
104 archive site."
105 touch configure
106 ;;
107
108 autoheader)
109 echo 1>&2 "\
110WARNING: \`$1' is missing on your system. You should only need it if
111 you modified \`acconfig.h' or \`${configure_ac}'. You might want
112 to install the \`Autoconf' and \`GNU m4' packages. Grab them
113 from any GNU archive site."
114 files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
115 test -z "$files" && files="config.h"
116 touch_files=
117 for f in $files; do
118 case "$f" in
119 *:*) touch_files="$touch_files "`echo "$f" |
120 sed -e 's/^[^:]*://' -e 's/:.*//'`;;
121 *) touch_files="$touch_files $f.in";;
122 esac
123 done
124 touch $touch_files
125 ;;
126
127 automake)
128 echo 1>&2 "\
129WARNING: \`$1' is missing on your system. You should only need it if
130 you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
131 You might want to install the \`Automake' and \`Perl' packages.
132 Grab them from any GNU archive site."
133 find . -type f -name Makefile.am -print |
134 sed 's/\.am$/.in/' |
135 while read f; do touch "$f"; done
136 ;;
137
138 bison|yacc)
139 echo 1>&2 "\
140WARNING: \`$1' is missing on your system. You should only need it if
141 you modified a \`.y' file. You may need the \`Bison' package
142 in order for those modifications to take effect. You can get
143 \`Bison' from any GNU archive site."
144 rm -f y.tab.c y.tab.h
145 if [ $# -ne 1 ]; then
146 eval LASTARG="\${$#}"
147 case "$LASTARG" in
148 *.y)
149 SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
150 if [ -f "$SRCFILE" ]; then
151 cp "$SRCFILE" y.tab.c
152 fi
153 SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
154 if [ -f "$SRCFILE" ]; then
155 cp "$SRCFILE" y.tab.h
156 fi
157 ;;
158 esac
159 fi
160 if [ ! -f y.tab.h ]; then
161 echo >y.tab.h
162 fi
163 if [ ! -f y.tab.c ]; then
164 echo 'main() { return 0; }' >y.tab.c
165 fi
166 ;;
167
168 lex|flex)
169 echo 1>&2 "\
170WARNING: \`$1' is missing on your system. You should only need it if
171 you modified a \`.l' file. You may need the \`Flex' package
172 in order for those modifications to take effect. You can get
173 \`Flex' from any GNU archive site."
174 rm -f lex.yy.c
175 if [ $# -ne 1 ]; then
176 eval LASTARG="\${$#}"
177 case "$LASTARG" in
178 *.l)
179 SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
180 if [ -f "$SRCFILE" ]; then
181 cp "$SRCFILE" lex.yy.c
182 fi
183 ;;
184 esac
185 fi
186 if [ ! -f lex.yy.c ]; then
187 echo 'main() { return 0; }' >lex.yy.c
188 fi
189 ;;
190
191 help2man)
192 echo 1>&2 "\
193WARNING: \`$1' is missing on your system. You should only need it if
194 you modified a dependency of a manual page. You may need the
195 \`Help2man' package in order for those modifications to take
196 effect. You can get \`Help2man' from any GNU archive site."
197
198 file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
199 if test -z "$file"; then
200 file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'`
201 fi
202 if [ -f "$file" ]; then
203 touch $file
204 else
205 test -z "$file" || exec >$file
206 echo ".ab help2man is required to generate this page"
207 exit 1
208 fi
209 ;;
210
211 makeinfo)
212 if test -z "$run" && (makeinfo --version) > /dev/null 2>&1; then
213 # We have makeinfo, but it failed.
214 exit 1
215 fi
216
217 echo 1>&2 "\
218WARNING: \`$1' is missing on your system. You should only need it if
219 you modified a \`.texi' or \`.texinfo' file, or any other file
220 indirectly affecting the aspect of the manual. The spurious
221 call might also be the consequence of using a buggy \`make' (AIX,
222 DU, IRIX). You might want to install the \`Texinfo' package or
223 the \`GNU make' package. Grab either from any GNU archive site."
224 file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
225 if test -z "$file"; then
226 file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
227 file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file`
228 fi
229 touch $file
230 ;;
231
232 tar)
233 shift
234 if test -n "$run"; then
235 echo 1>&2 "ERROR: \`tar' requires --run"
236 exit 1
237 fi
238
239 # We have already tried tar in the generic part.
240 # Look for gnutar/gtar before invocation to avoid ugly error
241 # messages.
242 if (gnutar --version > /dev/null 2>&1); then
243 gnutar ${1+"$@"} && exit 0
244 fi
245 if (gtar --version > /dev/null 2>&1); then
246 gtar ${1+"$@"} && exit 0
247 fi
248 firstarg="$1"
249 if shift; then
250 case "$firstarg" in
251 *o*)
252 firstarg=`echo "$firstarg" | sed s/o//`
253 tar "$firstarg" ${1+"$@"} && exit 0
254 ;;