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