comparison missing @ 9645:4531741e5236

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