cbe2b0ef0e3aa005628a84fb179c341db985f7dc
[external/binutils.git] / missing
1 #! /bin/sh
2 # Common stub for a few missing GNU programs while installing.
3 # Copyright (C) 1996, 1997 Free Software Foundation, Inc.
4 # Franc,ois 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 case "$1" in
27
28   -h|--h|--he|--hel|--help)
29     echo "\
30 $0 [OPTION]... PROGRAM [ARGUMENT]...
31
32 Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
33 error status if there is no known handling for PROGRAM.
34
35 Options:
36   -h, --help      display this help and exit
37   -v, --version   output version information and exit
38
39 Supported PROGRAM values:
40   aclocal      touch file \`aclocal.m4'
41   autoconf     touch file \`configure'
42   autoheader   touch file \`config.h.in'
43   automake     touch all \`Makefile.in' files
44   bison        create \`y.tab.[ch]', if possible, from existing .[ch]
45   flex         create \`lex.yy.c', if possible, from existing .c
46   lex          create \`lex.yy.c', if possible, from existing .c
47   makeinfo     touch the output file
48   yacc         create \`y.tab.[ch]', if possible, from existing .[ch]"
49     ;;
50
51   -v|--v|--ve|--ver|--vers|--versi|--versio|--version)
52     echo "missing - GNU libit 0.0"
53     ;;
54
55   -*)
56     echo 1>&2 "$0: Unknown \`$1' option"
57     echo 1>&2 "Try \`$0 --help' for more information"
58     exit 1
59     ;;
60
61   aclocal)
62     echo 1>&2 "\
63 WARNING: \`$1' is missing on your system.  You should only need it if
64          you modified \`acinclude.m4' or \`configure.in'.  You might want
65          to install the \`Automake' and \`Perl' packages.  Grab them from
66          any GNU archive site."
67     touch aclocal.m4
68     ;;
69
70   autoconf)
71     echo 1>&2 "\
72 WARNING: \`$1' is missing on your system.  You should only need it if
73          you modified \`configure.in'.  You might want to install the
74          \`Autoconf' and \`GNU m4' packages.  Grab them from any GNU
75          archive site."
76     touch configure
77     ;;
78
79   autoheader)
80     echo 1>&2 "\
81 WARNING: \`$1' is missing on your system.  You should only need it if
82          you modified \`acconfig.h' or \`configure.in'.  You might want
83          to install the \`Autoconf' and \`GNU m4' packages.  Grab them
84          from any GNU archive site."
85     files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER([^):]*:\([^)]*\)).*/\1/p' configure.in`
86     if test -z "$files"; then
87       files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^):]*\)).*/\1/p' configure.in`
88       test -z "$files" || files="$files.in"
89     else
90       files=`echo "$files" | sed -e 's/:/ /g'`
91     fi
92     test -z "$files" && files="config.h.in"
93     touch $files
94     ;;
95
96   automake)
97     echo 1>&2 "\
98 WARNING: \`$1' is missing on your system.  You should only need it if
99          you modified \`Makefile.am', \`acinclude.m4' or \`configure.in'.
100          You might want to install the \`Automake' and \`Perl' packages.
101          Grab them from any GNU archive site."
102     find . -type f -name Makefile.am -print \
103       | sed 's/^\(.*\).am$/touch \1.in/' \
104       | sh
105     ;;
106
107   bison|yacc)
108     echo 1>&2 "\
109 WARNING: \`$1' is missing on your system.  You should only need it if
110          you modified a \`.y' file.  You may need the \`Bison' package
111          in order for those modifications to take effect.  You can get
112          \`Bison' from any GNU archive site."
113     rm -f y.tab.c y.tab.h
114     if [ $# -ne 1 ]; then
115         eval LASTARG="\${$#}"
116         case "$LASTARG" in
117         *.y)
118             SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
119             if [ -f "$SRCFILE" ]; then
120                  cp "$SRCFILE" y.tab.c
121             fi
122             SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
123             if [ -f "$SRCFILE" ]; then
124                  cp "$SRCFILE" y.tab.h
125             fi
126           ;;
127         esac
128     fi
129     if [ ! -f y.tab.h ]; then
130         echo >y.tab.h
131     fi
132     if [ ! -f y.tab.c ]; then
133         echo 'main() { return 0; }' >y.tab.c
134     fi
135     ;;
136
137   lex|flex)
138     echo 1>&2 "\
139 WARNING: \`$1' is missing on your system.  You should only need it if
140          you modified a \`.l' file.  You may need the \`Flex' package
141          in order for those modifications to take effect.  You can get
142          \`Flex' from any GNU archive site."
143     rm -f lex.yy.c
144     if [ $# -ne 1 ]; then
145         eval LASTARG="\${$#}"
146         case "$LASTARG" in
147         *.l)
148             SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
149             if [ -f "$SRCFILE" ]; then
150                  cp "$SRCFILE" lex.yy.c
151             fi
152           ;;
153         esac
154     fi
155     if [ ! -f lex.yy.c ]; then
156         echo 'main() { return 0; }' >lex.yy.c
157     fi
158     ;;
159
160   makeinfo)
161     echo 1>&2 "\
162 WARNING: \`$1' is missing on your system.  You should only need it if
163          you modified a \`.texi' or \`.texinfo' file, or any other file
164          indirectly affecting the aspect of the manual.  The spurious
165          call might also be the consequence of using a buggy \`make' (AIX,
166          DU, IRIX).  You might want to install the \`Texinfo' package or
167          the \`GNU make' package.  Grab either from any GNU archive site."
168     file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
169     if test -z "$file"; then
170       file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
171       file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file`
172     fi
173     touch $file
174     ;;
175
176   *)
177     echo 1>&2 "\
178 WARNING: \`$1' is needed, and you do not seem to have it handy on your
179          system.  You might have modified some files without having the
180          proper tools for further handling them.  Check the \`README' file,
181          it often tells you about the needed prerequirements for installing
182          this package.  You may also peek at any GNU archive site, in case
183          some other package would contain this missing \`$1' program."
184     exit 1
185     ;;
186 esac
187
188 exit 0