blob: a9f9d941e91bab8301684262fdc42385dd818230 [file] [log] [blame]
Daniel Stenbergae1912c1999-12-29 14:20:26 +00001#! /bin/sh
2# Common stub for a few missing GNU programs while installing.
Daniel Stenberg1180ef42001-08-28 09:01:50 +00003# Copyright 1996, 1997, 1999, 2000 Free Software Foundation, Inc.
4# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
Daniel Stenbergae1912c1999-12-29 14:20:26 +00005
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
Daniel Stenberg1180ef42001-08-28 09:01:50 +000021# 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
Daniel Stenbergae1912c1999-12-29 14:20:26 +000026if test $# -eq 0; then
27 echo 1>&2 "Try \`$0 --help' for more information"
28 exit 1
29fi
30
Daniel Stenberg1180ef42001-08-28 09:01:50 +000031run=:
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.
Daniel Stenbergae1912c1999-12-29 14:20:26 +000052case "$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
Daniel Stenberg1180ef42001-08-28 09:01:50 +000064 --run try to run the given command, and emulate it if it fails
Daniel Stenbergae1912c1999-12-29 14:20:26 +000065
66Supported PROGRAM values:
67 aclocal touch file \`aclocal.m4'
68 autoconf touch file \`configure'
Gunter Knauff671d052009-07-14 13:25:14 +000069 autoheader touch file \`curl_config.h.in'
Daniel Stenbergae1912c1999-12-29 14:20:26 +000070 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
Daniel Stenberg1180ef42001-08-28 09:01:50 +000073 help2man touch the output file
Daniel Stenbergae1912c1999-12-29 14:20:26 +000074 lex create \`lex.yy.c', if possible, from existing .c
75 makeinfo touch the output file
Daniel Stenberg1180ef42001-08-28 09:01:50 +000076 tar try tar, gnutar, gtar, then tar without non-portable flags
Daniel Stenbergae1912c1999-12-29 14:20:26 +000077 yacc create \`y.tab.[ch]', if possible, from existing .[ch]"
78 ;;
79
80 -v|--v|--ve|--ver|--vers|--versi|--versio|--version)
Daniel Stenberg1180ef42001-08-28 09:01:50 +000081 echo "missing 0.3 - GNU automake"
Daniel Stenbergae1912c1999-12-29 14:20:26 +000082 ;;
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
Daniel Stenberg1180ef42001-08-28 09:01:50 +000093 you modified \`acinclude.m4' or \`${configure_ac}'. You might want
Daniel Stenbergae1912c1999-12-29 14:20:26 +000094 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
Daniel Stenberg1180ef42001-08-28 09:01:50 +0000102 you modified \`${configure_ac}'. You might want to install the
Daniel Stenbergae1912c1999-12-29 14:20:26 +0000103 \`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
Daniel Stenberg1180ef42001-08-28 09:01:50 +0000111 you modified \`acconfig.h' or \`${configure_ac}'. You might want
Daniel Stenbergae1912c1999-12-29 14:20:26 +0000112 to install the \`Autoconf' and \`GNU m4' packages. Grab them
113 from any GNU archive site."
Daniel Stenberg1180ef42001-08-28 09:01:50 +0000114 files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
Gunter Knauff671d052009-07-14 13:25:14 +0000115 test -z "$files" && files="curl_config.h"
Daniel Stenberg1180ef42001-08-28 09:01:50 +0000116 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
Daniel Stenbergae1912c1999-12-29 14:20:26 +0000125 ;;
126
127 automake)
128 echo 1>&2 "\
129WARNING: \`$1' is missing on your system. You should only need it if
Daniel Stenberg1180ef42001-08-28 09:01:50 +0000130 you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
Daniel Stenbergae1912c1999-12-29 14:20:26 +0000131 You might want to install the \`Automake' and \`Perl' packages.
132 Grab them from any GNU archive site."
Daniel Stenberg1180ef42001-08-28 09:01:50 +0000133 find . -type f -name Makefile.am -print |
134 sed 's/\.am$/.in/' |
135 while read f; do touch "$f"; done
Daniel Stenbergae1912c1999-12-29 14:20:26 +0000136 ;;
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="\${$#}"
147case "$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 ;;
158esac
159 fi
160 if [ ! -f y.tab.h ]; then
161echo >y.tab.h
162 fi
163 if [ ! -f y.tab.c ]; then
164echo '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="\${$#}"
177case "$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 ;;
184esac
185 fi
186 if [ ! -f lex.yy.c ]; then
187echo 'main() { return 0; }' >lex.yy.c
188 fi
189 ;;
190
Daniel Stenberg1180ef42001-08-28 09:01:50 +0000191 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
200file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'`
201 fi
202 if [ -f "$file" ]; then
203touch $file
204 else
205test -z "$file" || exec >$file
206echo ".ab help2man is required to generate this page"
207exit 1
208 fi
209 ;;
210
Daniel Stenbergae1912c1999-12-29 14:20:26 +0000211 makeinfo)
Daniel Stenberg1180ef42001-08-28 09:01:50 +0000212 if test -z "$run" && (makeinfo --version) > /dev/null 2>&1; then
213 # We have makeinfo, but it failed.
214 exit 1
215 fi
216
Daniel Stenbergae1912c1999-12-29 14:20:26 +0000217 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
Daniel Stenberg1180ef42001-08-28 09:01:50 +0000232 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
250case "$firstarg" in
251*o*)
252 firstarg=`echo "$firstarg" | sed s/o//`
253 tar "$firstarg" ${1+"$@"} && exit 0
254 ;;
255esac
256case "$firstarg" in
257*h*)
258 firstarg=`echo "$firstarg" | sed s/h//`
259 tar "$firstarg" ${1+"$@"} && exit 0
260 ;;
261esac
262 fi
263
264 echo 1>&2 "\
265WARNING: I can't seem to be able to run \`tar' with the given arguments.
266 You may want to install GNU tar or Free paxutils, or check the
267 command line arguments."
268 exit 1
269 ;;
270
Daniel Stenbergae1912c1999-12-29 14:20:26 +0000271 *)
272 echo 1>&2 "\
273WARNING: \`$1' is needed, and you do not seem to have it handy on your
274 system. You might have modified some files without having the
275 proper tools for further handling them. Check the \`README' file,
276 it often tells you about the needed prerequirements for installing
277 this package. You may also peek at any GNU archive site, in case
278 some other package would contain this missing \`$1' program."
279 exit 1
280 ;;
281esac
282
283exit 0