a b/unac/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