]> git.deb.at Git - pkg/abook.git/blob - missing
mutt import filter is better nowadays
[pkg/abook.git] / missing
1 #! /bin/sh
2 # Common stub for a few missing GNU programs while installing.
3 # Copyright 1996, 1997, 1999, 2000 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 # As a special exception to the GNU General Public License, if you
22 # distribute this file as part of a program that contains a
23 # configuration script generated by Autoconf, you may include it under
24 # the same distribution terms that you use for the rest of that program.
25
26 if test $# -eq 0; then
27   echo 1>&2 "Try \`$0 --help' for more information"
28   exit 1
29 fi
30
31 run=:
32
33 # In the cases where this matters, `missing' is being run in the
34 # srcdir already.
35 if test -f configure.ac; then
36   configure_ac=configure.ac
37 else
38   configure_ac=configure.in
39 fi
40
41 case "$1" in
42 --run)
43   # Try to run requested program, and just exit if it succeeds.
44   run=
45   shift
46   "$@" && exit 0
47   ;;
48 esac
49
50 # If it does not exist, or fails to run (possibly an outdated version),
51 # try to emulate it.
52 case "$1" in
53
54   -h|--h|--he|--hel|--help)
55     echo "\
56 $0 [OPTION]... PROGRAM [ARGUMENT]...
57
58 Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
59 error status if there is no known handling for PROGRAM.
60
61 Options:
62   -h, --help      display this help and exit
63   -v, --version   output version information and exit
64   --run           try to run the given command, and emulate it if it fails
65
66 Supported PROGRAM values:
67   aclocal      touch file \`aclocal.m4'
68   autoconf     touch file \`configure'
69   autoheader   touch file \`config.h.in'
70   automake     touch all \`Makefile.in' files
71   bison        create \`y.tab.[ch]', if possible, from existing .[ch]
72   flex         create \`lex.yy.c', if possible, from existing .c
73   help2man     touch the output file
74   lex          create \`lex.yy.c', if possible, from existing .c
75   makeinfo     touch the output file
76   tar          try tar, gnutar, gtar, then tar without non-portable flags
77   yacc         create \`y.tab.[ch]', if possible, from existing .[ch]"
78     ;;
79
80   -v|--v|--ve|--ver|--vers|--versi|--versio|--version)
81     echo "missing 0.3 - GNU automake"
82     ;;
83
84   -*)
85     echo 1>&2 "$0: Unknown \`$1' option"
86     echo 1>&2 "Try \`$0 --help' for more information"
87     exit 1
88     ;;
89
90   aclocal)
91     echo 1>&2 "\
92 WARNING: \`$1' is missing on your system.  You should only need it if
93          you modified \`acinclude.m4' or \`${configure_ac}'.  You might want
94          to install the \`Automake' and \`Perl' packages.  Grab them from
95          any GNU archive site."
96     touch aclocal.m4
97     ;;
98
99   autoconf)
100     echo 1>&2 "\
101 WARNING: \`$1' is missing on your system.  You should only need it if
102          you modified \`${configure_ac}'.  You might want to install the
103          \`Autoconf' and \`GNU m4' packages.  Grab them from any GNU
104          archive site."
105     touch configure
106     ;;
107
108   autoheader)
109     echo 1>&2 "\
110 WARNING: \`$1' is missing on your system.  You should only need it if
111          you modified \`acconfig.h' or \`${configure_ac}'.  You might want
112          to install the \`Autoconf' and \`GNU m4' packages.  Grab them
113          from any GNU archive site."
114     files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
115     test -z "$files" && files="config.h"
116     touch_files=
117     for f in $files; do
118       case "$f" in
119       *:*) touch_files="$touch_files "`echo "$f" |
120                                        sed -e 's/^[^:]*://' -e 's/:.*//'`;;
121       *) touch_files="$touch_files $f.in";;
122       esac
123     done
124     touch $touch_files
125     ;;
126
127   automake)
128     echo 1>&2 "\
129 WARNING: \`$1' is missing on your system.  You should only need it if
130          you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
131          You might want to install the \`Automake' and \`Perl' packages.
132          Grab them from any GNU archive site."
133     find . -type f -name Makefile.am -print |
134            sed 's/\.am$/.in/' |
135            while read f; do touch "$f"; done
136     ;;
137
138   bison|yacc)
139     echo 1>&2 "\
140 WARNING: \`$1' is missing on your system.  You should only need it if
141          you modified a \`.y' file.  You may need the \`Bison' package
142          in order for those modifications to take effect.  You can get
143          \`Bison' from any GNU archive site."
144     rm -f y.tab.c y.tab.h
145     if [ $# -ne 1 ]; then
146         eval LASTARG="\${$#}"
147         case "$LASTARG" in
148         *.y)
149             SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
150             if [ -f "$SRCFILE" ]; then
151                  cp "$SRCFILE" y.tab.c
152             fi
153             SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
154             if [ -f "$SRCFILE" ]; then
155                  cp "$SRCFILE" y.tab.h
156             fi
157           ;;
158         esac
159     fi
160     if [ ! -f y.tab.h ]; then
161         echo >y.tab.h
162     fi
163     if [ ! -f y.tab.c ]; then
164         echo 'main() { return 0; }' >y.tab.c
165     fi
166     ;;
167
168   lex|flex)
169     echo 1>&2 "\
170 WARNING: \`$1' is missing on your system.  You should only need it if
171          you modified a \`.l' file.  You may need the \`Flex' package
172          in order for those modifications to take effect.  You can get
173          \`Flex' from any GNU archive site."
174     rm -f lex.yy.c
175     if [ $# -ne 1 ]; then
176         eval LASTARG="\${$#}"
177         case "$LASTARG" in
178         *.l)
179             SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
180             if [ -f "$SRCFILE" ]; then
181                  cp "$SRCFILE" lex.yy.c
182             fi
183           ;;
184         esac
185     fi
186     if [ ! -f lex.yy.c ]; then
187         echo 'main() { return 0; }' >lex.yy.c
188     fi
189     ;;
190
191   help2man)
192     echo 1>&2 "\
193 WARNING: \`$1' is missing on your system.  You should only need it if
194          you modified a dependency of a manual page.  You may need the
195          \`Help2man' package in order for those modifications to take
196          effect.  You can get \`Help2man' from any GNU archive site."
197
198     file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
199     if test -z "$file"; then
200         file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'`
201     fi
202     if [ -f "$file" ]; then
203         touch $file
204     else
205         test -z "$file" || exec >$file
206         echo ".ab help2man is required to generate this page"
207         exit 1
208     fi
209     ;;
210
211   makeinfo)
212     if test -z "$run" && (makeinfo --version) > /dev/null 2>&1; then
213        # We have makeinfo, but it failed.
214        exit 1
215     fi
216
217     echo 1>&2 "\
218 WARNING: \`$1' is missing on your system.  You should only need it if
219          you modified a \`.texi' or \`.texinfo' file, or any other file
220          indirectly affecting the aspect of the manual.  The spurious
221          call might also be the consequence of using a buggy \`make' (AIX,
222          DU, IRIX).  You might want to install the \`Texinfo' package or
223          the \`GNU make' package.  Grab either from any GNU archive site."
224     file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
225     if test -z "$file"; then
226       file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
227       file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file`
228     fi
229     touch $file
230     ;;
231
232   tar)
233     shift
234     if test -n "$run"; then
235       echo 1>&2 "ERROR: \`tar' requires --run"
236       exit 1
237     fi
238
239     # We have already tried tar in the generic part.
240     # Look for gnutar/gtar before invocation to avoid ugly error
241     # messages.
242     if (gnutar --version > /dev/null 2>&1); then
243        gnutar ${1+"$@"} && exit 0
244     fi
245     if (gtar --version > /dev/null 2>&1); then
246        gtar ${1+"$@"} && exit 0
247     fi
248     firstarg="$1"
249     if shift; then
250         case "$firstarg" in
251         *o*)
252             firstarg=`echo "$firstarg" | sed s/o//`
253             tar "$firstarg" ${1+"$@"} && exit 0
254             ;;
255         esac
256         case "$firstarg" in
257         *h*)
258             firstarg=`echo "$firstarg" | sed s/h//`
259             tar "$firstarg" ${1+"$@"} && exit 0
260             ;;
261         esac
262     fi
263
264     echo 1>&2 "\
265 WARNING: I can't seem to be able to run \`tar' with the given arguments.
266          You may want to install GNU tar or Free paxutils, or check the
267          command line arguments."
268     exit 1
269     ;;
270
271   *)
272     echo 1>&2 "\
273 WARNING: \`$1' is needed, and you do not seem to have it handy on your
274          system.  You might have modified some files without having the
275          proper tools for further handling them.  Check the \`README' file,
276          it often tells you about the needed prerequirements for installing
277          this package.  You may also peek at any GNU archive site, in case
278          some other package would contain this missing \`$1' program."
279     exit 1
280     ;;
281 esac
282
283 exit 0