save two more FP registers on ia64
[ghc-hetmet.git] / rts / gmp / missing
1 #! /bin/sh
2 # Common stub for a few missing GNU programs while installing.
3 # Copyright (C) 1996, 1997, 1999 Free Software Foundation, Inc.
4 # Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
5
6 # 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
8 # the Free Software Foundation; either version 2, or (at your option)
9 # any later version.
10
11 # This program is distributed in the hope that it will be useful,
12 # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 # GNU General Public License for more details.
15
16 # You should have received a copy of the GNU General Public License
17 # along with this program; if not, write to the Free Software
18 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
19 # 02111-1307, USA.
20
21 if test $# -eq 0; then
22   echo 1>&2 "Try \`$0 --help' for more information"
23   exit 1
24 fi
25
26 run=:
27
28 case "$1" in
29 --run)
30   # Try to run requested program, and just exit if it succeeds.
31   run=
32   shift
33   "$@" && exit 0
34   ;;
35 esac
36
37 # If it does not exist, or fails to run (possibly an outdated version),
38 # try to emulate it.
39 case "$1" in
40
41   -h|--h|--he|--hel|--help)
42     echo "\
43 $0 [OPTION]... PROGRAM [ARGUMENT]...
44
45 Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
46 error status if there is no known handling for PROGRAM.
47
48 Options:
49   -h, --help      display this help and exit
50   -v, --version   output version information and exit
51   --run           try to run the given command, and emulate it if it fails
52
53 Supported PROGRAM values:
54   aclocal      touch file \`aclocal.m4'
55   autoconf     touch file \`configure'
56   autoheader   touch file \`config.h.in'
57   automake     touch all \`Makefile.in' files
58   bison        create \`y.tab.[ch]', if possible, from existing .[ch]
59   flex         create \`lex.yy.c', if possible, from existing .c
60   lex          create \`lex.yy.c', if possible, from existing .c
61   makeinfo     touch the output file
62   tar          try tar, gnutar, gtar, then tar without non-portable flags
63   yacc         create \`y.tab.[ch]', if possible, from existing .[ch]"
64     ;;
65
66   -v|--v|--ve|--ver|--vers|--versi|--versio|--version)
67     echo "missing 0.2 - GNU automake"
68     ;;
69
70   -*)
71     echo 1>&2 "$0: Unknown \`$1' option"
72     echo 1>&2 "Try \`$0 --help' for more information"
73     exit 1
74     ;;
75
76   aclocal)
77     echo 1>&2 "\
78 WARNING: \`$1' is missing on your system.  You should only need it if
79          you modified \`acinclude.m4' or \`configure.in'.  You might want
80          to install the \`Automake' and \`Perl' packages.  Grab them from
81          any GNU archive site."
82     touch aclocal.m4
83     ;;
84
85   autoconf)
86     echo 1>&2 "\
87 WARNING: \`$1' is missing on your system.  You should only need it if
88          you modified \`configure.in'.  You might want to install the
89          \`Autoconf' and \`GNU m4' packages.  Grab them from any GNU
90          archive site."
91     touch configure
92     ;;
93
94   autoheader)
95     echo 1>&2 "\
96 WARNING: \`$1' is missing on your system.  You should only need it if
97          you modified \`acconfig.h' or \`configure.in'.  You might want
98          to install the \`Autoconf' and \`GNU m4' packages.  Grab them
99          from any GNU archive site."
100     files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' configure.in`
101     test -z "$files" && files="config.h"
102     touch_files=
103     for f in $files; do
104       case "$f" in
105       *:*) touch_files="$touch_files "`echo "$f" |
106                                        sed -e 's/^[^:]*://' -e 's/:.*//'`;;
107       *) touch_files="$touch_files $f.in";;
108       esac
109     done
110     touch $touch_files
111     ;;
112
113   automake)
114     echo 1>&2 "\
115 WARNING: \`$1' is missing on your system.  You should only need it if
116          you modified \`Makefile.am', \`acinclude.m4' or \`configure.in'.
117          You might want to install the \`Automake' and \`Perl' packages.
118          Grab them from any GNU archive site."
119     find . -type f -name Makefile.am -print |
120            sed 's/\.am$/.in/' |
121            while read f; do touch "$f"; done
122     ;;
123
124   bison|yacc)
125     echo 1>&2 "\
126 WARNING: \`$1' is missing on your system.  You should only need it if
127          you modified a \`.y' file.  You may need the \`Bison' package
128          in order for those modifications to take effect.  You can get
129          \`Bison' from any GNU archive site."
130     rm -f y.tab.c y.tab.h
131     if [ $# -ne 1 ]; then
132         eval LASTARG="\${$#}"
133         case "$LASTARG" in
134         *.y)
135             SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
136             if [ -f "$SRCFILE" ]; then
137                  cp "$SRCFILE" y.tab.c
138             fi
139             SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
140             if [ -f "$SRCFILE" ]; then
141                  cp "$SRCFILE" y.tab.h
142             fi
143           ;;
144         esac
145     fi
146     if [ ! -f y.tab.h ]; then
147         echo >y.tab.h
148     fi
149     if [ ! -f y.tab.c ]; then
150         echo 'main() { return 0; }' >y.tab.c
151     fi
152     ;;
153
154   lex|flex)
155     echo 1>&2 "\
156 WARNING: \`$1' is missing on your system.  You should only need it if
157          you modified a \`.l' file.  You may need the \`Flex' package
158          in order for those modifications to take effect.  You can get
159          \`Flex' from any GNU archive site."
160     rm -f lex.yy.c
161     if [ $# -ne 1 ]; then
162         eval LASTARG="\${$#}"
163         case "$LASTARG" in
164         *.l)
165             SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
166             if [ -f "$SRCFILE" ]; then
167                  cp "$SRCFILE" lex.yy.c
168             fi
169           ;;
170         esac
171     fi
172     if [ ! -f lex.yy.c ]; then
173         echo 'main() { return 0; }' >lex.yy.c
174     fi
175     ;;
176
177   makeinfo)
178     echo 1>&2 "\
179 WARNING: \`$1' is missing on your system.  You should only need it if
180          you modified a \`.texi' or \`.texinfo' file, or any other file
181          indirectly affecting the aspect of the manual.  The spurious
182          call might also be the consequence of using a buggy \`make' (AIX,
183          DU, IRIX).  You might want to install the \`Texinfo' package or
184          the \`GNU make' package.  Grab either from any GNU archive site."
185     file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
186     if test -z "$file"; then
187       file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
188       file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file`
189     fi
190     touch $file
191     ;;
192
193   tar)
194     shift
195     if test -n "$run"; then
196       echo 1>&2 "ERROR: \`tar' requires --run"
197       exit 1
198     fi
199
200     # We have already tried tar in the generic part.
201     # Look for gnutar/gtar before invocation to avoid ugly error
202     # messages.
203     if (gnutar --version > /dev/null 2>&1); then
204        gnutar ${1+"$@"} && exit 0
205     fi
206     if (gtar --version > /dev/null 2>&1); then
207        gtar ${1+"$@"} && exit 0
208     fi
209     firstarg="$1"
210     if shift; then
211         case "$firstarg" in
212         *o*)
213             firstarg=`echo "$firstarg" | sed s/o//`
214             tar "$firstarg" ${1+"$@"} && exit 0
215             ;;
216         esac
217         case "$firstarg" in
218         *h*)
219             firstarg=`echo "$firstarg" | sed s/h//`
220             tar "$firstarg" ${1+"$@"} && exit 0
221             ;;
222         esac
223     fi
224
225     echo 1>&2 "\
226 WARNING: I can't seem to be able to run \`tar' with the given arguments.
227          You may want to install GNU tar or Free paxutils, or check the
228          command line arguments."
229     exit 1
230     ;;
231
232   *)
233     echo 1>&2 "\
234 WARNING: \`$1' is needed, and you do not seem to have it handy on your
235          system.  You might have modified some files without having the
236          proper tools for further handling them.  Check the \`README' file,
237          it often tells you about the needed prerequirements for installing
238          this package.  You may also peek at any GNU archive site, in case
239          some other package would contain this missing \`$1' program."
240     exit 1
241     ;;
242 esac
243
244 exit 0