2 # Common stub for a few missing GNU programs while installing.
4 # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005
5 # Free Software Foundation, Inc.
6 # Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
8 # This program is free software; you can redistribute it and/or modify
9 # it under the terms of the GNU General Public License as published by
10 # the Free Software Foundation; either version 2, or (at your option)
13 # This program is distributed in the hope that it will be useful,
14 # but WITHOUT ANY WARRANTY; without even the implied warranty of
15 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 # GNU General Public License for more details.
18 # You should have received a copy of the GNU General Public License
19 # along with this program; if not, write to the Free Software
20 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
23 # As a special exception to the GNU General Public License, if you
24 # distribute this file as part of a program that contains a
25 # configuration script generated by Autoconf, you may include it under
26 # the same distribution terms that you use for the rest of that program.
28 # This file is distributed with OpenLDAP Software, which contains a
29 # configuration script generated by Autoconf, and is distributable
30 # under the same distributions terms as OpenLDAP itself.
32 ## Copyright 1998-2007 The OpenLDAP Foundation.
33 ## All rights reserved.
35 ## Redistribution and use in source and binary forms, with or without
36 ## modification, are permitted only as authorized by the OpenLDAP
39 ## A copy of this license is available in the file LICENSE in the
40 ## top-level directory of the distribution or, alternatively, at
43 if test $# -eq 0; then
44 echo 1>&2 "Try \`$0 --help' for more information"
50 # In the cases where this matters, `missing' is being run in the
52 if test -f configure.ac; then
53 configure_ac=configure.ac
55 configure_ac=configure.in
58 msg="missing on your system"
62 # Try to run requested program, and just exit if it succeeds.
66 # Exit code 63 means version mismatch. This often happens
67 # when the user try to use an ancient version of a tool on
68 # a file that requires a minimum version. In this case we
69 # we should proceed has if the program had been absent, or
70 # if --run hadn't been passed.
73 msg="probably too old"
77 -h|--h|--he|--hel|--help)
79 $0 [OPTION]... PROGRAM [ARGUMENT]...
81 Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
82 error status if there is no known handling for PROGRAM.
85 -h, --help display this help and exit
86 -v, --version output version information and exit
87 --run try to run the given command, and emulate it if it fails
89 Supported PROGRAM values:
90 aclocal touch file \`aclocal.m4'
91 autoconf touch file \`configure'
92 autoheader touch file \`config.h.in'
93 automake touch all \`Makefile.in' files
94 bison create \`y.tab.[ch]', if possible, from existing .[ch]
95 flex create \`lex.yy.c', if possible, from existing .c
96 help2man touch the output file
97 lex create \`lex.yy.c', if possible, from existing .c
98 makeinfo touch the output file
99 tar try tar, gnutar, gtar, then tar without non-portable flags
100 yacc create \`y.tab.[ch]', if possible, from existing .[ch]
102 Send bug reports to <bug-automake@gnu.org>."
106 -v|--v|--ve|--ver|--vers|--versi|--versio|--version)
107 echo "missing $scriptversion (GNU Automake)"
112 echo 1>&2 "$0: Unknown \`$1' option"
113 echo 1>&2 "Try \`$0 --help' for more information"
119 # Now exit if we have it, but it failed. Also exit now if we
120 # don't have it and --version was passed (most likely to detect
124 # Not GNU programs, they don't have --version.
128 if test -n "$run"; then
129 echo 1>&2 "ERROR: \`tar' requires --run"
131 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
137 if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
138 # We have it, but it failed.
140 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
141 # Could not run --version or --help. This is probably someone
142 # running `$TOOL --version' or `$TOOL --help' to check whether
143 # $TOOL exists and not knowing $TOOL uses missing.
149 # If it does not exist, or fails to run (possibly an outdated version),
154 WARNING: \`$1' is $msg. You should only need it if
155 you modified \`acinclude.m4' or \`${configure_ac}'. You might want
156 to install the \`Automake' and \`Perl' packages. Grab them from
157 any GNU archive site."
163 WARNING: \`$1' is $msg. You should only need it if
164 you modified \`${configure_ac}'. You might want to install the
165 \`Autoconf' and \`GNU m4' packages. Grab them from any GNU
172 WARNING: \`$1' is $msg. You should only need it if
173 you modified \`acconfig.h' or \`${configure_ac}'. You might want
174 to install the \`Autoconf' and \`GNU m4' packages. Grab them
175 from any GNU archive site."
176 files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
177 test -z "$files" && files="config.h"
181 *:*) touch_files="$touch_files "`echo "$f" |
182 sed -e 's/^[^:]*://' -e 's/:.*//'`;;
183 *) touch_files="$touch_files $f.in";;
191 WARNING: \`$1' is $msg. You should only need it if
192 you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
193 You might want to install the \`Automake' and \`Perl' packages.
194 Grab them from any GNU archive site."
195 find . -type f -name Makefile.am -print |
197 while read f; do touch "$f"; done
202 WARNING: \`$1' is needed, but is $msg.
203 You might have modified some files without having the
204 proper tools for further handling them.
205 You can get \`$1' as part of \`Autoconf' from any GNU
208 file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'`
209 test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'`
210 if test -f "$file"; then
213 test -z "$file" || exec >$file
215 echo "# Created by GNU Automake missing as a replacement of"
225 WARNING: \`$1' $msg. You should only need it if
226 you modified a \`.y' file. You may need the \`Bison' package
227 in order for those modifications to take effect. You can get
228 \`Bison' from any GNU archive site."
229 rm -f y.tab.c y.tab.h
230 if [ $# -ne 1 ]; then
231 eval LASTARG="\${$#}"
234 SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
235 if [ -f "$SRCFILE" ]; then
236 cp "$SRCFILE" y.tab.c
238 SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
239 if [ -f "$SRCFILE" ]; then
240 cp "$SRCFILE" y.tab.h
245 if [ ! -f y.tab.h ]; then
248 if [ ! -f y.tab.c ]; then
249 echo 'main() { return 0; }' >y.tab.c
255 WARNING: \`$1' is $msg. You should only need it if
256 you modified a \`.l' file. You may need the \`Flex' package
257 in order for those modifications to take effect. You can get
258 \`Flex' from any GNU archive site."
260 if [ $# -ne 1 ]; then
261 eval LASTARG="\${$#}"
264 SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
265 if [ -f "$SRCFILE" ]; then
266 cp "$SRCFILE" lex.yy.c
271 if [ ! -f lex.yy.c ]; then
272 echo 'main() { return 0; }' >lex.yy.c
278 WARNING: \`$1' is $msg. You should only need it if
279 you modified a dependency of a manual page. You may need the
280 \`Help2man' package in order for those modifications to take
281 effect. You can get \`Help2man' from any GNU archive site."
283 file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
284 if test -z "$file"; then
285 file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'`
287 if [ -f "$file" ]; then
290 test -z "$file" || exec >$file
291 echo ".ab help2man is required to generate this page"
298 WARNING: \`$1' is $msg. You should only need it if
299 you modified a \`.texi' or \`.texinfo' file, or any other file
300 indirectly affecting the aspect of the manual. The spurious
301 call might also be the consequence of using a buggy \`make' (AIX,
302 DU, IRIX). You might want to install the \`Texinfo' package or
303 the \`GNU make' package. Grab either from any GNU archive site."
304 # The file to touch is that specified with -o ...
305 file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
306 if test -z "$file"; then
307 # ... or it is the one specified with @setfilename ...
308 infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
309 file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $infile`
310 # ... or it is derived from the source name (dir/f.texi becomes f.info)
311 test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info
313 # If the file does not exist, the user really needs makeinfo;
314 # let's fail without touching anything.
315 test -f $file || exit 1
322 # We have already tried tar in the generic part.
323 # Look for gnutar/gtar before invocation to avoid ugly error
325 if (gnutar --version > /dev/null 2>&1); then
326 gnutar "$@" && exit 0
328 if (gtar --version > /dev/null 2>&1); then
335 firstarg=`echo "$firstarg" | sed s/o//`
336 tar "$firstarg" "$@" && exit 0
341 firstarg=`echo "$firstarg" | sed s/h//`
342 tar "$firstarg" "$@" && exit 0
348 WARNING: I can't seem to be able to run \`tar' with the given arguments.
349 You may want to install GNU tar or Free paxutils, or check the
350 command line arguments."
356 WARNING: \`$1' is needed, and is $msg.
357 You might have modified some files without having the
358 proper tools for further handling them. Check the \`README' file,
359 it often tells you about the needed prerequisites for installing
360 this package. You may also peek at any GNU archive site, in case
361 some other package would contain this missing \`$1' program."
369 # eval: (add-hook 'write-file-hooks 'time-stamp)
370 # time-stamp-start: "scriptversion="
371 # time-stamp-format: "%:y-%02m-%02d.%02H"
372 # time-stamp-end: "$"