missing revision b7d53ee5
1b7d53ee5Smrg#! /bin/sh
2b7d53ee5Smrg# Common stub for a few missing GNU programs while installing.
3b7d53ee5Smrg# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003 Free Software Foundation, Inc.
4b7d53ee5Smrg# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
5b7d53ee5Smrg
6b7d53ee5Smrg# This program is free software; you can redistribute it and/or modify
7b7d53ee5Smrg# it under the terms of the GNU General Public License as published by
8b7d53ee5Smrg# the Free Software Foundation; either version 2, or (at your option)
9b7d53ee5Smrg# any later version.
10b7d53ee5Smrg
11b7d53ee5Smrg# This program is distributed in the hope that it will be useful,
12b7d53ee5Smrg# but WITHOUT ANY WARRANTY; without even the implied warranty of
13b7d53ee5Smrg# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14b7d53ee5Smrg# GNU General Public License for more details.
15b7d53ee5Smrg
16b7d53ee5Smrg# You should have received a copy of the GNU General Public License
17b7d53ee5Smrg# along with this program; if not, write to the Free Software
18b7d53ee5Smrg# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
19b7d53ee5Smrg# 02111-1307, USA.
20b7d53ee5Smrg
21b7d53ee5Smrg# As a special exception to the GNU General Public License, if you
22b7d53ee5Smrg# distribute this file as part of a program that contains a
23b7d53ee5Smrg# configuration script generated by Autoconf, you may include it under
24b7d53ee5Smrg# the same distribution terms that you use for the rest of that program.
25b7d53ee5Smrg
26b7d53ee5Smrgif test $# -eq 0; then
27b7d53ee5Smrg  echo 1>&2 "Try \`$0 --help' for more information"
28b7d53ee5Smrg  exit 1
29b7d53ee5Smrgfi
30b7d53ee5Smrg
31b7d53ee5Smrgrun=:
32b7d53ee5Smrg
33b7d53ee5Smrg# In the cases where this matters, `missing' is being run in the
34b7d53ee5Smrg# srcdir already.
35b7d53ee5Smrgif test -f configure.ac; then
36b7d53ee5Smrg  configure_ac=configure.ac
37b7d53ee5Smrgelse
38b7d53ee5Smrg  configure_ac=configure.in
39b7d53ee5Smrgfi
40b7d53ee5Smrg
41b7d53ee5Smrgcase "$1" in
42b7d53ee5Smrg--run)
43b7d53ee5Smrg  # Try to run requested program, and just exit if it succeeds.
44b7d53ee5Smrg  run=
45b7d53ee5Smrg  shift
46b7d53ee5Smrg  "$@" && exit 0
47b7d53ee5Smrg  ;;
48b7d53ee5Smrgesac
49b7d53ee5Smrg
50b7d53ee5Smrg# If it does not exist, or fails to run (possibly an outdated version),
51b7d53ee5Smrg# try to emulate it.
52b7d53ee5Smrgcase "$1" in
53b7d53ee5Smrg
54b7d53ee5Smrg  -h|--h|--he|--hel|--help)
55b7d53ee5Smrg    echo "\
56b7d53ee5Smrg$0 [OPTION]... PROGRAM [ARGUMENT]...
57b7d53ee5Smrg
58b7d53ee5SmrgHandle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
59b7d53ee5Smrgerror status if there is no known handling for PROGRAM.
60b7d53ee5Smrg
61b7d53ee5SmrgOptions:
62b7d53ee5Smrg  -h, --help      display this help and exit
63b7d53ee5Smrg  -v, --version   output version information and exit
64b7d53ee5Smrg  --run           try to run the given command, and emulate it if it fails
65b7d53ee5Smrg
66b7d53ee5SmrgSupported PROGRAM values:
67b7d53ee5Smrg  aclocal      touch file \`aclocal.m4'
68b7d53ee5Smrg  autoconf     touch file \`configure'
69b7d53ee5Smrg  autoheader   touch file \`config.h.in'
70b7d53ee5Smrg  automake     touch all \`Makefile.in' files
71b7d53ee5Smrg  bison        create \`y.tab.[ch]', if possible, from existing .[ch]
72b7d53ee5Smrg  flex         create \`lex.yy.c', if possible, from existing .c
73b7d53ee5Smrg  help2man     touch the output file
74b7d53ee5Smrg  lex          create \`lex.yy.c', if possible, from existing .c
75b7d53ee5Smrg  makeinfo     touch the output file
76b7d53ee5Smrg  tar          try tar, gnutar, gtar, then tar without non-portable flags
77b7d53ee5Smrg  yacc         create \`y.tab.[ch]', if possible, from existing .[ch]"
78b7d53ee5Smrg    ;;
79b7d53ee5Smrg
80b7d53ee5Smrg  -v|--v|--ve|--ver|--vers|--versi|--versio|--version)
81b7d53ee5Smrg    echo "missing 0.4 - GNU automake"
82b7d53ee5Smrg    ;;
83b7d53ee5Smrg
84b7d53ee5Smrg  -*)
85b7d53ee5Smrg    echo 1>&2 "$0: Unknown \`$1' option"
86b7d53ee5Smrg    echo 1>&2 "Try \`$0 --help' for more information"
87b7d53ee5Smrg    exit 1
88b7d53ee5Smrg    ;;
89b7d53ee5Smrg
90b7d53ee5Smrg  aclocal*)
91b7d53ee5Smrg    if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
92b7d53ee5Smrg       # We have it, but it failed.
93b7d53ee5Smrg       exit 1
94b7d53ee5Smrg    fi
95b7d53ee5Smrg
96b7d53ee5Smrg    echo 1>&2 "\
97b7d53ee5SmrgWARNING: \`$1' is missing on your system.  You should only need it if
98b7d53ee5Smrg         you modified \`acinclude.m4' or \`${configure_ac}'.  You might want
99b7d53ee5Smrg         to install the \`Automake' and \`Perl' packages.  Grab them from
100b7d53ee5Smrg         any GNU archive site."
101b7d53ee5Smrg    touch aclocal.m4
102b7d53ee5Smrg    ;;
103b7d53ee5Smrg
104b7d53ee5Smrg  autoconf)
105b7d53ee5Smrg    if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
106b7d53ee5Smrg       # We have it, but it failed.
107b7d53ee5Smrg       exit 1
108b7d53ee5Smrg    fi
109b7d53ee5Smrg
110b7d53ee5Smrg    echo 1>&2 "\
111b7d53ee5SmrgWARNING: \`$1' is missing on your system.  You should only need it if
112b7d53ee5Smrg         you modified \`${configure_ac}'.  You might want to install the
113b7d53ee5Smrg         \`Autoconf' and \`GNU m4' packages.  Grab them from any GNU
114b7d53ee5Smrg         archive site."
115b7d53ee5Smrg    touch configure
116b7d53ee5Smrg    ;;
117b7d53ee5Smrg
118b7d53ee5Smrg  autoheader)
119b7d53ee5Smrg    if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
120b7d53ee5Smrg       # We have it, but it failed.
121b7d53ee5Smrg       exit 1
122b7d53ee5Smrg    fi
123b7d53ee5Smrg
124b7d53ee5Smrg    echo 1>&2 "\
125b7d53ee5SmrgWARNING: \`$1' is missing on your system.  You should only need it if
126b7d53ee5Smrg         you modified \`acconfig.h' or \`${configure_ac}'.  You might want
127b7d53ee5Smrg         to install the \`Autoconf' and \`GNU m4' packages.  Grab them
128b7d53ee5Smrg         from any GNU archive site."
129b7d53ee5Smrg    files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
130b7d53ee5Smrg    test -z "$files" && files="config.h"
131b7d53ee5Smrg    touch_files=
132b7d53ee5Smrg    for f in $files; do
133b7d53ee5Smrg      case "$f" in
134b7d53ee5Smrg      *:*) touch_files="$touch_files "`echo "$f" |
135b7d53ee5Smrg				       sed -e 's/^[^:]*://' -e 's/:.*//'`;;
136b7d53ee5Smrg      *) touch_files="$touch_files $f.in";;
137b7d53ee5Smrg      esac
138b7d53ee5Smrg    done
139b7d53ee5Smrg    touch $touch_files
140b7d53ee5Smrg    ;;
141b7d53ee5Smrg
142b7d53ee5Smrg  automake*)
143b7d53ee5Smrg    if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
144b7d53ee5Smrg       # We have it, but it failed.
145b7d53ee5Smrg       exit 1
146b7d53ee5Smrg    fi
147b7d53ee5Smrg
148b7d53ee5Smrg    echo 1>&2 "\
149b7d53ee5SmrgWARNING: \`$1' is missing on your system.  You should only need it if
150b7d53ee5Smrg         you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
151b7d53ee5Smrg         You might want to install the \`Automake' and \`Perl' packages.
152b7d53ee5Smrg         Grab them from any GNU archive site."
153b7d53ee5Smrg    find . -type f -name Makefile.am -print |
154b7d53ee5Smrg	   sed 's/\.am$/.in/' |
155b7d53ee5Smrg	   while read f; do touch "$f"; done
156b7d53ee5Smrg    ;;
157b7d53ee5Smrg
158b7d53ee5Smrg  autom4te)
159b7d53ee5Smrg    if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
160b7d53ee5Smrg       # We have it, but it failed.
161b7d53ee5Smrg       exit 1
162b7d53ee5Smrg    fi
163b7d53ee5Smrg
164b7d53ee5Smrg    echo 1>&2 "\
165b7d53ee5SmrgWARNING: \`$1' is needed, and you do not seem to have it handy on your
166b7d53ee5Smrg         system.  You might have modified some files without having the
167b7d53ee5Smrg         proper tools for further handling them.
168b7d53ee5Smrg         You can get \`$1' as part of \`Autoconf' from any GNU
169b7d53ee5Smrg         archive site."
170b7d53ee5Smrg
171b7d53ee5Smrg    file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'`
172b7d53ee5Smrg    test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'`
173b7d53ee5Smrg    if test -f "$file"; then
174b7d53ee5Smrg	touch $file
175b7d53ee5Smrg    else
176b7d53ee5Smrg	test -z "$file" || exec >$file
177b7d53ee5Smrg	echo "#! /bin/sh"
178b7d53ee5Smrg	echo "# Created by GNU Automake missing as a replacement of"
179b7d53ee5Smrg	echo "#  $ $@"
180b7d53ee5Smrg	echo "exit 0"
181b7d53ee5Smrg	chmod +x $file
182b7d53ee5Smrg	exit 1
183b7d53ee5Smrg    fi
184b7d53ee5Smrg    ;;
185b7d53ee5Smrg
186b7d53ee5Smrg  bison|yacc)
187b7d53ee5Smrg    echo 1>&2 "\
188b7d53ee5SmrgWARNING: \`$1' is missing on your system.  You should only need it if
189b7d53ee5Smrg         you modified a \`.y' file.  You may need the \`Bison' package
190b7d53ee5Smrg         in order for those modifications to take effect.  You can get
191b7d53ee5Smrg         \`Bison' from any GNU archive site."
192b7d53ee5Smrg    rm -f y.tab.c y.tab.h
193b7d53ee5Smrg    if [ $# -ne 1 ]; then
194b7d53ee5Smrg        eval LASTARG="\${$#}"
195b7d53ee5Smrg	case "$LASTARG" in
196b7d53ee5Smrg	*.y)
197b7d53ee5Smrg	    SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
198b7d53ee5Smrg	    if [ -f "$SRCFILE" ]; then
199b7d53ee5Smrg	         cp "$SRCFILE" y.tab.c
200b7d53ee5Smrg	    fi
201b7d53ee5Smrg	    SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
202b7d53ee5Smrg	    if [ -f "$SRCFILE" ]; then
203b7d53ee5Smrg	         cp "$SRCFILE" y.tab.h
204b7d53ee5Smrg	    fi
205b7d53ee5Smrg	  ;;
206b7d53ee5Smrg	esac
207b7d53ee5Smrg    fi
208b7d53ee5Smrg    if [ ! -f y.tab.h ]; then
209b7d53ee5Smrg	echo >y.tab.h
210b7d53ee5Smrg    fi
211b7d53ee5Smrg    if [ ! -f y.tab.c ]; then
212b7d53ee5Smrg	echo 'main() { return 0; }' >y.tab.c
213b7d53ee5Smrg    fi
214b7d53ee5Smrg    ;;
215b7d53ee5Smrg
216b7d53ee5Smrg  lex|flex)
217b7d53ee5Smrg    echo 1>&2 "\
218b7d53ee5SmrgWARNING: \`$1' is missing on your system.  You should only need it if
219b7d53ee5Smrg         you modified a \`.l' file.  You may need the \`Flex' package
220b7d53ee5Smrg         in order for those modifications to take effect.  You can get
221b7d53ee5Smrg         \`Flex' from any GNU archive site."
222b7d53ee5Smrg    rm -f lex.yy.c
223b7d53ee5Smrg    if [ $# -ne 1 ]; then
224b7d53ee5Smrg        eval LASTARG="\${$#}"
225b7d53ee5Smrg	case "$LASTARG" in
226b7d53ee5Smrg	*.l)
227b7d53ee5Smrg	    SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
228b7d53ee5Smrg	    if [ -f "$SRCFILE" ]; then
229b7d53ee5Smrg	         cp "$SRCFILE" lex.yy.c
230b7d53ee5Smrg	    fi
231b7d53ee5Smrg	  ;;
232b7d53ee5Smrg	esac
233b7d53ee5Smrg    fi
234b7d53ee5Smrg    if [ ! -f lex.yy.c ]; then
235b7d53ee5Smrg	echo 'main() { return 0; }' >lex.yy.c
236b7d53ee5Smrg    fi
237b7d53ee5Smrg    ;;
238b7d53ee5Smrg
239b7d53ee5Smrg  help2man)
240b7d53ee5Smrg    if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
241b7d53ee5Smrg       # We have it, but it failed.
242b7d53ee5Smrg       exit 1
243b7d53ee5Smrg    fi
244b7d53ee5Smrg
245b7d53ee5Smrg    echo 1>&2 "\
246b7d53ee5SmrgWARNING: \`$1' is missing on your system.  You should only need it if
247b7d53ee5Smrg	 you modified a dependency of a manual page.  You may need the
248b7d53ee5Smrg	 \`Help2man' package in order for those modifications to take
249b7d53ee5Smrg	 effect.  You can get \`Help2man' from any GNU archive site."
250b7d53ee5Smrg
251b7d53ee5Smrg    file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
252b7d53ee5Smrg    if test -z "$file"; then
253b7d53ee5Smrg	file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'`
254b7d53ee5Smrg    fi
255b7d53ee5Smrg    if [ -f "$file" ]; then
256b7d53ee5Smrg	touch $file
257b7d53ee5Smrg    else
258b7d53ee5Smrg	test -z "$file" || exec >$file
259b7d53ee5Smrg	echo ".ab help2man is required to generate this page"
260b7d53ee5Smrg	exit 1
261b7d53ee5Smrg    fi
262b7d53ee5Smrg    ;;
263b7d53ee5Smrg
264b7d53ee5Smrg  makeinfo)
265b7d53ee5Smrg    if test -z "$run" && (makeinfo --version) > /dev/null 2>&1; then
266b7d53ee5Smrg       # We have makeinfo, but it failed.
267b7d53ee5Smrg       exit 1
268b7d53ee5Smrg    fi
269b7d53ee5Smrg
270b7d53ee5Smrg    echo 1>&2 "\
271b7d53ee5SmrgWARNING: \`$1' is missing on your system.  You should only need it if
272b7d53ee5Smrg         you modified a \`.texi' or \`.texinfo' file, or any other file
273b7d53ee5Smrg         indirectly affecting the aspect of the manual.  The spurious
274b7d53ee5Smrg         call might also be the consequence of using a buggy \`make' (AIX,
275b7d53ee5Smrg         DU, IRIX).  You might want to install the \`Texinfo' package or
276b7d53ee5Smrg         the \`GNU make' package.  Grab either from any GNU archive site."
277b7d53ee5Smrg    file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
278b7d53ee5Smrg    if test -z "$file"; then
279b7d53ee5Smrg      file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
280b7d53ee5Smrg      file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file`
281b7d53ee5Smrg    fi
282b7d53ee5Smrg    touch $file
283b7d53ee5Smrg    ;;
284b7d53ee5Smrg
285b7d53ee5Smrg  tar)
286b7d53ee5Smrg    shift
287b7d53ee5Smrg    if test -n "$run"; then
288b7d53ee5Smrg      echo 1>&2 "ERROR: \`tar' requires --run"
289b7d53ee5Smrg      exit 1
290b7d53ee5Smrg    fi
291b7d53ee5Smrg
292b7d53ee5Smrg    # We have already tried tar in the generic part.
293b7d53ee5Smrg    # Look for gnutar/gtar before invocation to avoid ugly error
294b7d53ee5Smrg    # messages.
295b7d53ee5Smrg    if (gnutar --version > /dev/null 2>&1); then
296b7d53ee5Smrg       gnutar "$@" && exit 0
297b7d53ee5Smrg    fi
298b7d53ee5Smrg    if (gtar --version > /dev/null 2>&1); then
299b7d53ee5Smrg       gtar "$@" && exit 0
300b7d53ee5Smrg    fi
301b7d53ee5Smrg    firstarg="$1"
302b7d53ee5Smrg    if shift; then
303b7d53ee5Smrg	case "$firstarg" in
304b7d53ee5Smrg	*o*)
305b7d53ee5Smrg	    firstarg=`echo "$firstarg" | sed s/o//`
306b7d53ee5Smrg	    tar "$firstarg" "$@" && exit 0
307b7d53ee5Smrg	    ;;
308b7d53ee5Smrg	esac
309b7d53ee5Smrg	case "$firstarg" in
310b7d53ee5Smrg	*h*)
311b7d53ee5Smrg	    firstarg=`echo "$firstarg" | sed s/h//`
312b7d53ee5Smrg	    tar "$firstarg" "$@" && exit 0
313b7d53ee5Smrg	    ;;
314b7d53ee5Smrg	esac
315b7d53ee5Smrg    fi
316b7d53ee5Smrg
317b7d53ee5Smrg    echo 1>&2 "\
318b7d53ee5SmrgWARNING: I can't seem to be able to run \`tar' with the given arguments.
319b7d53ee5Smrg         You may want to install GNU tar or Free paxutils, or check the
320b7d53ee5Smrg         command line arguments."
321b7d53ee5Smrg    exit 1
322b7d53ee5Smrg    ;;
323b7d53ee5Smrg
324b7d53ee5Smrg  *)
325b7d53ee5Smrg    echo 1>&2 "\
326b7d53ee5SmrgWARNING: \`$1' is needed, and you do not seem to have it handy on your
327b7d53ee5Smrg         system.  You might have modified some files without having the
328b7d53ee5Smrg         proper tools for further handling them.  Check the \`README' file,
329b7d53ee5Smrg         it often tells you about the needed prerequisites for installing
330b7d53ee5Smrg         this package.  You may also peek at any GNU archive site, in case
331b7d53ee5Smrg         some other package would contain this missing \`$1' program."
332b7d53ee5Smrg    exit 1
333b7d53ee5Smrg    ;;
334b7d53ee5Smrgesac
335b7d53ee5Smrg
336b7d53ee5Smrgexit 0
337