The R Project SVN R

Rev

Rev 25784 | Rev 34432 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

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