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