/rusxmms/librcc

To get this branch, use:
bzr branch http://suren.me/webbzr/rusxmms/librcc

« back to all changes in this revision

Viewing changes to missing

  • Committer: Suren A. Chilingaryan
  • Date: 2013-11-16 00:17:56 UTC
  • Revision ID: csa@dside.dyndns.org-20131116001756-qz8dfb6q6fue6r1l
Compatibility with older automake and fixes to release script

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
#! /bin/sh
2
 
# Common wrapper for a few potentially missing GNU programs.
3
 
 
4
 
scriptversion=2012-06-26.16; # UTC
5
 
 
6
 
# Copyright (C) 1996-2013 Free Software Foundation, Inc.
7
 
# Originally written by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
 
2
# Common stub for a few missing GNU programs while installing.
 
3
 
 
4
scriptversion=2005-06-08.21
 
5
 
 
6
# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005
 
7
#   Free Software Foundation, Inc.
 
8
# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
8
9
 
9
10
# This program is free software; you can redistribute it and/or modify
10
11
# it under the terms of the GNU General Public License as published by
17
18
# GNU General Public License for more details.
18
19
 
19
20
# You should have received a copy of the GNU General Public License
20
 
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
21
# along with this program; if not, write to the Free Software
 
22
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 
23
# 02110-1301, USA.
21
24
 
22
25
# As a special exception to the GNU General Public License, if you
23
26
# distribute this file as part of a program that contains a
25
28
# the same distribution terms that you use for the rest of that program.
26
29
 
27
30
if test $# -eq 0; then
28
 
  echo 1>&2 "Try '$0 --help' for more information"
 
31
  echo 1>&2 "Try \`$0 --help' for more information"
29
32
  exit 1
30
33
fi
31
34
 
32
 
case $1 in
33
 
 
34
 
  --is-lightweight)
35
 
    # Used by our autoconf macros to check whether the available missing
36
 
    # script is modern enough.
37
 
    exit 0
38
 
    ;;
39
 
 
40
 
  --run)
41
 
    # Back-compat with the calling convention used by older automake.
42
 
    shift
43
 
    ;;
 
35
run=:
 
36
 
 
37
# In the cases where this matters, `missing' is being run in the
 
38
# srcdir already.
 
39
if test -f configure.ac; then
 
40
  configure_ac=configure.ac
 
41
else
 
42
  configure_ac=configure.in
 
43
fi
 
44
 
 
45
msg="missing on your system"
 
46
 
 
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
 
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
 
62
  ;;
44
63
 
45
64
  -h|--h|--he|--hel|--help)
46
65
    echo "\
47
66
$0 [OPTION]... PROGRAM [ARGUMENT]...
48
67
 
49
 
Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due
50
 
to PROGRAM being missing or too old.
 
68
Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
 
69
error status if there is no known handling for PROGRAM.
51
70
 
52
71
Options:
53
72
  -h, --help      display this help and exit
54
73
  -v, --version   output version information and exit
 
74
  --run           try to run the given command, and emulate it if it fails
55
75
 
56
76
Supported PROGRAM values:
57
 
  aclocal   autoconf  autoheader   autom4te  automake  makeinfo
58
 
  bison     yacc      flex         lex       help2man
59
 
 
60
 
Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and
61
 
'g' are ignored when checking the name.
 
77
  aclocal      touch file \`aclocal.m4'
 
78
  autoconf     touch file \`configure'
 
79
  autoheader   touch file \`config.h.in'
 
80
  automake     touch all \`Makefile.in' files
 
81
  bison        create \`y.tab.[ch]', if possible, from existing .[ch]
 
82
  flex         create \`lex.yy.c', if possible, from existing .c
 
83
  help2man     touch the output file
 
84
  lex          create \`lex.yy.c', if possible, from existing .c
 
85
  makeinfo     touch the output file
 
86
  tar          try tar, gnutar, gtar, then tar without non-portable flags
 
87
  yacc         create \`y.tab.[ch]', if possible, from existing .[ch]
62
88
 
63
89
Send bug reports to <bug-automake@gnu.org>."
64
90
    exit $?
70
96
    ;;
71
97
 
72
98
  -*)
73
 
    echo 1>&2 "$0: unknown '$1' option"
74
 
    echo 1>&2 "Try '$0 --help' for more information"
75
 
    exit 1
76
 
    ;;
77
 
 
78
 
esac
79
 
 
80
 
# Run the given program, remember its exit status.
81
 
"$@"; st=$?
82
 
 
83
 
# If it succeeded, we are done.
84
 
test $st -eq 0 && exit 0
85
 
 
86
 
# Also exit now if we it failed (or wasn't found), and '--version' was
87
 
# passed; such an option is passed most likely to detect whether the
88
 
# program is present and works.
89
 
case $2 in --version|--help) exit $st;; esac
90
 
 
91
 
# Exit code 63 means version mismatch.  This often happens when the user
92
 
# tries to use an ancient version of a tool on a file that requires a
93
 
# minimum version.
94
 
if test $st -eq 63; then
95
 
  msg="probably too old"
96
 
elif test $st -eq 127; then
97
 
  # Program was missing.
98
 
  msg="missing on your system"
99
 
else
100
 
  # Program was found and executed, but failed.  Give up.
101
 
  exit $st
102
 
fi
103
 
 
104
 
perl_URL=http://www.perl.org/
105
 
flex_URL=http://flex.sourceforge.net/
106
 
gnu_software_URL=http://www.gnu.org/software
107
 
 
108
 
program_details ()
109
 
{
110
 
  case $1 in
111
 
    aclocal|automake)
112
 
      echo "The '$1' program is part of the GNU Automake package:"
113
 
      echo "<$gnu_software_URL/automake>"
114
 
      echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:"
115
 
      echo "<$gnu_software_URL/autoconf>"
116
 
      echo "<$gnu_software_URL/m4/>"
117
 
      echo "<$perl_URL>"
118
 
      ;;
119
 
    autoconf|autom4te|autoheader)
120
 
      echo "The '$1' program is part of the GNU Autoconf package:"
121
 
      echo "<$gnu_software_URL/autoconf/>"
122
 
      echo "It also requires GNU m4 and Perl in order to run:"
123
 
      echo "<$gnu_software_URL/m4/>"
124
 
      echo "<$perl_URL>"
125
 
      ;;
126
 
  esac
127
 
}
128
 
 
129
 
give_advice ()
130
 
{
131
 
  # Normalize program name to check for.
132
 
  normalized_program=`echo "$1" | sed '
133
 
    s/^gnu-//; t
134
 
    s/^gnu//; t
135
 
    s/^g//; t'`
136
 
 
137
 
  printf '%s\n' "'$1' is $msg."
138
 
 
139
 
  configure_deps="'configure.ac' or m4 files included by 'configure.ac'"
140
 
  case $normalized_program in
141
 
    autoconf*)
142
 
      echo "You should only need it if you modified 'configure.ac',"
143
 
      echo "or m4 files included by it."
144
 
      program_details 'autoconf'
145
 
      ;;
146
 
    autoheader*)
147
 
      echo "You should only need it if you modified 'acconfig.h' or"
148
 
      echo "$configure_deps."
149
 
      program_details 'autoheader'
150
 
      ;;
151
 
    automake*)
152
 
      echo "You should only need it if you modified 'Makefile.am' or"
153
 
      echo "$configure_deps."
154
 
      program_details 'automake'
155
 
      ;;
156
 
    aclocal*)
157
 
      echo "You should only need it if you modified 'acinclude.m4' or"
158
 
      echo "$configure_deps."
159
 
      program_details 'aclocal'
160
 
      ;;
161
 
   autom4te*)
162
 
      echo "You might have modified some maintainer files that require"
163
 
      echo "the 'automa4te' program to be rebuilt."
164
 
      program_details 'autom4te'
165
 
      ;;
166
 
    bison*|yacc*)
167
 
      echo "You should only need it if you modified a '.y' file."
168
 
      echo "You may want to install the GNU Bison package:"
169
 
      echo "<$gnu_software_URL/bison/>"
170
 
      ;;
171
 
    lex*|flex*)
172
 
      echo "You should only need it if you modified a '.l' file."
173
 
      echo "You may want to install the Fast Lexical Analyzer package:"
174
 
      echo "<$flex_URL>"
175
 
      ;;
176
 
    help2man*)
177
 
      echo "You should only need it if you modified a dependency" \
178
 
           "of a man page."
179
 
      echo "You may want to install the GNU Help2man package:"
180
 
      echo "<$gnu_software_URL/help2man/>"
181
 
    ;;
182
 
    makeinfo*)
183
 
      echo "You should only need it if you modified a '.texi' file, or"
184
 
      echo "any other file indirectly affecting the aspect of the manual."
185
 
      echo "You might want to install the Texinfo package:"
186
 
      echo "<$gnu_software_URL/texinfo/>"
187
 
      echo "The spurious makeinfo call might also be the consequence of"
188
 
      echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might"
189
 
      echo "want to install GNU make:"
190
 
      echo "<$gnu_software_URL/make/>"
191
 
      ;;
192
 
    *)
193
 
      echo "You might have modified some files without having the proper"
194
 
      echo "tools for further handling them.  Check the 'README' file, it"
195
 
      echo "often tells you about the needed prerequisites for installing"
196
 
      echo "this package.  You may also peek at any GNU archive site, in"
197
 
      echo "case some other package contains this missing '$1' program."
198
 
      ;;
199
 
  esac
200
 
}
201
 
 
202
 
give_advice "$1" | sed -e '1s/^/WARNING: /' \
203
 
                       -e '2,$s/^/         /' >&2
204
 
 
205
 
# Propagate the correct exit status (expected to be 127 for a program
206
 
# not found, 63 for a program that failed due to version mismatch).
207
 
exit $st
 
99
    echo 1>&2 "$0: Unknown \`$1' option"
 
100
    echo 1>&2 "Try \`$0 --help' for more information"
 
101
    exit 1
 
102
    ;;
 
103
 
 
104
esac
 
105
 
 
106
# Now exit if we have it, but it failed.  Also exit now if we
 
107
# don't have it and --version was passed (most likely to detect
 
108
# the program).
 
109
case "$1" in
 
110
  lex|yacc)
 
111
    # Not GNU programs, they don't have --version.
 
112
    ;;
 
113
 
 
114
  tar)
 
115
    if test -n "$run"; then
 
116
       echo 1>&2 "ERROR: \`tar' requires --run"
 
117
       exit 1
 
118
    elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
 
119
       exit 1
 
120
    fi
 
121
    ;;
 
122
 
 
123
  *)
 
124
    if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
 
125
       # We have it, but it failed.
 
126
       exit 1
 
127
    elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
 
128
       # Could not run --version or --help.  This is probably someone
 
129
       # running `$TOOL --version' or `$TOOL --help' to check whether
 
130
       # $TOOL exists and not knowing $TOOL uses missing.
 
131
       exit 1
 
132
    fi
 
133
    ;;
 
134
esac
 
135
 
 
136
# If it does not exist, or fails to run (possibly an outdated version),
 
137
# try to emulate it.
 
138
case "$1" in
 
139
  aclocal*)
 
140
    echo 1>&2 "\
 
141
WARNING: \`$1' is $msg.  You should only need it if
 
142
         you modified \`acinclude.m4' or \`${configure_ac}'.  You might want
 
143
         to install the \`Automake' and \`Perl' packages.  Grab them from
 
144
         any GNU archive site."
 
145
    touch aclocal.m4
 
146
    ;;
 
147
 
 
148
  autoconf)
 
149
    echo 1>&2 "\
 
150
WARNING: \`$1' is $msg.  You should only need it if
 
151
         you modified \`${configure_ac}'.  You might want to install the
 
152
         \`Autoconf' and \`GNU m4' packages.  Grab them from any GNU
 
153
         archive site."
 
154
    touch configure
 
155
    ;;
 
156
 
 
157
  autoheader)
 
158
    echo 1>&2 "\
 
159
WARNING: \`$1' is $msg.  You should only need it if
 
160
         you modified \`acconfig.h' or \`${configure_ac}'.  You might want
 
161
         to install the \`Autoconf' and \`GNU m4' packages.  Grab them
 
162
         from any GNU archive site."
 
163
    files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
 
164
    test -z "$files" && files="config.h"
 
165
    touch_files=
 
166
    for f in $files; do
 
167
      case "$f" in
 
168
      *:*) touch_files="$touch_files "`echo "$f" |
 
169
                                       sed -e 's/^[^:]*://' -e 's/:.*//'`;;
 
170
      *) touch_files="$touch_files $f.in";;
 
171
      esac
 
172
    done
 
173
    touch $touch_files
 
174
    ;;
 
175
 
 
176
  automake*)
 
177
    echo 1>&2 "\
 
178
WARNING: \`$1' is $msg.  You should only need it if
 
179
         you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
 
180
         You might want to install the \`Automake' and \`Perl' packages.
 
181
         Grab them from any GNU archive site."
 
182
    find . -type f -name Makefile.am -print |
 
183
           sed 's/\.am$/.in/' |
 
184
           while read f; do touch "$f"; done
 
185
    ;;
 
186
 
 
187
  autom4te)
 
188
    echo 1>&2 "\
 
189
WARNING: \`$1' is needed, but is $msg.
 
190
         You might have modified some files without having the
 
191
         proper tools for further handling them.
 
192
         You can get \`$1' as part of \`Autoconf' from any GNU
 
193
         archive site."
 
194
 
 
195
    file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'`
 
196
    test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'`
 
197
    if test -f "$file"; then
 
198
        touch $file
 
199
    else
 
200
        test -z "$file" || exec >$file
 
201
        echo "#! /bin/sh"
 
202
        echo "# Created by GNU Automake missing as a replacement of"
 
203
        echo "#  $ $@"
 
204
        echo "exit 0"
 
205
        chmod +x $file
 
206
        exit 1
 
207
    fi
 
208
    ;;
 
209
 
 
210
  bison|yacc)
 
211
    echo 1>&2 "\
 
212
WARNING: \`$1' $msg.  You should only need it if
 
213
         you modified a \`.y' file.  You may need the \`Bison' package
 
214
         in order for those modifications to take effect.  You can get
 
215
         \`Bison' from any GNU archive site."
 
216
    rm -f y.tab.c y.tab.h
 
217
    if [ $# -ne 1 ]; then
 
218
        eval LASTARG="\${$#}"
 
219
        case "$LASTARG" in
 
220
        *.y)
 
221
            SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
 
222
            if [ -f "$SRCFILE" ]; then
 
223
                 cp "$SRCFILE" y.tab.c
 
224
            fi
 
225
            SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
 
226
            if [ -f "$SRCFILE" ]; then
 
227
                 cp "$SRCFILE" y.tab.h
 
228
            fi
 
229
          ;;
 
230
        esac
 
231
    fi
 
232
    if [ ! -f y.tab.h ]; then
 
233
        echo >y.tab.h
 
234
    fi
 
235
    if [ ! -f y.tab.c ]; then
 
236
        echo 'main() { return 0; }' >y.tab.c
 
237
    fi
 
238
    ;;
 
239
 
 
240
  lex|flex)
 
241
    echo 1>&2 "\
 
242
WARNING: \`$1' is $msg.  You should only need it if
 
243
         you modified a \`.l' file.  You may need the \`Flex' package
 
244
         in order for those modifications to take effect.  You can get
 
245
         \`Flex' from any GNU archive site."
 
246
    rm -f lex.yy.c
 
247
    if [ $# -ne 1 ]; then
 
248
        eval LASTARG="\${$#}"
 
249
        case "$LASTARG" in
 
250
        *.l)
 
251
            SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
 
252
            if [ -f "$SRCFILE" ]; then
 
253
                 cp "$SRCFILE" lex.yy.c
 
254
            fi
 
255
          ;;
 
256
        esac
 
257
    fi
 
258
    if [ ! -f lex.yy.c ]; then
 
259
        echo 'main() { return 0; }' >lex.yy.c
 
260
    fi
 
261
    ;;
 
262
 
 
263
  help2man)
 
264
    echo 1>&2 "\
 
265
WARNING: \`$1' is $msg.  You should only need it if
 
266
         you modified a dependency of a manual page.  You may need the
 
267
         \`Help2man' package in order for those modifications to take
 
268
         effect.  You can get \`Help2man' from any GNU archive site."
 
269
 
 
270
    file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
 
271
    if test -z "$file"; then
 
272
        file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'`
 
273
    fi
 
274
    if [ -f "$file" ]; then
 
275
        touch $file
 
276
    else
 
277
        test -z "$file" || exec >$file
 
278
        echo ".ab help2man is required to generate this page"
 
279
        exit 1
 
280
    fi
 
281
    ;;
 
282
 
 
283
  makeinfo)
 
284
    echo 1>&2 "\
 
285
WARNING: \`$1' is $msg.  You should only need it if
 
286
         you modified a \`.texi' or \`.texinfo' file, or any other file
 
287
         indirectly affecting the aspect of the manual.  The spurious
 
288
         call might also be the consequence of using a buggy \`make' (AIX,
 
289
         DU, IRIX).  You might want to install the \`Texinfo' package or
 
290
         the \`GNU make' package.  Grab either from any GNU archive site."
 
291
    # The file to touch is that specified with -o ...
 
292
    file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
 
293
    if test -z "$file"; then
 
294
      # ... or it is the one specified with @setfilename ...
 
295
      infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
 
296
      file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $infile`
 
297
      # ... or it is derived from the source name (dir/f.texi becomes f.info)
 
298
      test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info
 
299
    fi
 
300
    # If the file does not exist, the user really needs makeinfo;
 
301
    # let's fail without touching anything.
 
302
    test -f $file || exit 1
 
303
    touch $file
 
304
    ;;
 
305
 
 
306
  tar)
 
307
    shift
 
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
 
313
       gnutar "$@" && exit 0
 
314
    fi
 
315
    if (gtar --version > /dev/null 2>&1); then
 
316
       gtar "$@" && exit 0
 
317
    fi
 
318
    firstarg="$1"
 
319
    if shift; then
 
320
        case "$firstarg" in
 
321
        *o*)
 
322
            firstarg=`echo "$firstarg" | sed s/o//`
 
323
            tar "$firstarg" "$@" && exit 0
 
324
            ;;
 
325
        esac
 
326
        case "$firstarg" in
 
327
        *h*)
 
328
            firstarg=`echo "$firstarg" | sed s/h//`
 
329
            tar "$firstarg" "$@" && exit 0
 
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 "\
 
343
WARNING: \`$1' is needed, and is $msg.
 
344
         You might have modified some files without having the
 
345
         proper tools for further handling them.  Check the \`README' file,
 
346
         it often tells you about the needed prerequisites for installing
 
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
208
354
 
209
355
# Local variables:
210
356
# eval: (add-hook 'write-file-hooks 'time-stamp)
211
357
# time-stamp-start: "scriptversion="
212
358
# time-stamp-format: "%:y-%02m-%02d.%02H"
213
 
# time-stamp-time-zone: "UTC"
214
 
# time-stamp-end: "; # UTC"
 
359
# time-stamp-end: "$"
215
360
# End: