source: rtems/missing @ c0456d7f

4.115
Last change on this file since c0456d7f was c0456d7f, checked in by Ralf Corsépius <ralf.corsepius@…>, on 07/19/12 at 13:24:36

Update from automake-1.12.2.

  • Property mode set to 100755
File size: 9.9 KB
RevLine 
[6903c7cd]1#! /bin/sh
2# Common stub for a few missing GNU programs while installing.
3
[c0456d7f]4scriptversion=2012-01-06.18; # UTC
[6903c7cd]5
[c0456d7f]6# Copyright (C) 1996-2012 Free Software Foundation, Inc.
[6903c7cd]7# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
8
9# This program is free software; you can redistribute it and/or modify
10# it under the terms of the GNU General Public License as published by
11# the Free Software Foundation; either version 2, or (at your option)
12# any later version.
13
14# This program is distributed in the hope that it will be useful,
15# but WITHOUT ANY WARRANTY; without even the implied warranty of
16# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17# GNU General Public License for more details.
18
19# 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
22# As a special exception to the GNU General Public License, if you
23# distribute this file as part of a program that contains a
24# configuration script generated by Autoconf, you may include it under
25# the same distribution terms that you use for the rest of that program.
26
27if test $# -eq 0; then
[c0456d7f]28  echo 1>&2 "Try '$0 --help' for more information"
[6903c7cd]29  exit 1
30fi
31
32run=:
33sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p'
34sed_minuso='s/.* -o \([^ ]*\).*/\1/p'
35
[c0456d7f]36# In the cases where this matters, 'missing' is being run in the
[6903c7cd]37# srcdir already.
38if test -f configure.ac; then
39  configure_ac=configure.ac
40else
41  configure_ac=configure.in
42fi
43
44msg="missing on your system"
45
46case $1 in
47--run)
48  # Try to run requested program, and just exit if it succeeds.
49  run=
50  shift
51  "$@" && exit 0
52  # Exit code 63 means version mismatch.  This often happens
53  # when the user try to use an ancient version of a tool on
54  # a file that requires a minimum version.  In this case we
55  # we should proceed has if the program had been absent, or
56  # if --run hadn't been passed.
57  if test $? = 63; then
58    run=:
59    msg="probably too old"
60  fi
61  ;;
62
63  -h|--h|--he|--hel|--help)
64    echo "\
65$0 [OPTION]... PROGRAM [ARGUMENT]...
66
[c0456d7f]67Handle 'PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
[6903c7cd]68error status if there is no known handling for PROGRAM.
69
70Options:
71  -h, --help      display this help and exit
72  -v, --version   output version information and exit
73  --run           try to run the given command, and emulate it if it fails
74
75Supported PROGRAM values:
[c0456d7f]76  aclocal      touch file 'aclocal.m4'
77  autoconf     touch file 'configure'
78  autoheader   touch file 'config.h.in'
[6903c7cd]79  autom4te     touch the output file, or create a stub one
[c0456d7f]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
[6903c7cd]83  help2man     touch the output file
[c0456d7f]84  lex          create 'lex.yy.c', if possible, from existing .c
[6903c7cd]85  makeinfo     touch the output file
[c0456d7f]86  yacc         create 'y.tab.[ch]', if possible, from existing .[ch]
[6903c7cd]87
[c0456d7f]88Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and
89'g' are ignored when checking the name.
[6903c7cd]90
91Send bug reports to <bug-automake@gnu.org>."
92    exit $?
93    ;;
94
95  -v|--v|--ve|--ver|--vers|--versi|--versio|--version)
96    echo "missing $scriptversion (GNU Automake)"
97    exit $?
98    ;;
99
100  -*)
[c0456d7f]101    echo 1>&2 "$0: Unknown '$1' option"
102    echo 1>&2 "Try '$0 --help' for more information"
[6903c7cd]103    exit 1
104    ;;
105
106esac
107
108# normalize program name to check for.
109program=`echo "$1" | sed '
110  s/^gnu-//; t
111  s/^gnu//; t
112  s/^g//; t'`
113
114# Now exit if we have it, but it failed.  Also exit now if we
115# don't have it and --version was passed (most likely to detect
116# the program).  This is about non-GNU programs, so use $1 not
117# $program.
118case $1 in
119  lex*|yacc*)
120    # Not GNU programs, they don't have --version.
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
[c0456d7f]129       # running '$TOOL --version' or '$TOOL --help' to check whether
[6903c7cd]130       # $TOOL exists and not knowing $TOOL uses missing.
131       exit 1
132    fi
133    ;;
134esac
135
136# If it does not exist, or fails to run (possibly an outdated version),
137# try to emulate it.
138case $program in
139  aclocal*)
140    echo 1>&2 "\
[c0456d7f]141WARNING: '$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
[6903c7cd]144         any GNU archive site."
145    touch aclocal.m4
146    ;;
147
148  autoconf*)
149    echo 1>&2 "\
[c0456d7f]150WARNING: '$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
[6903c7cd]153         archive site."
154    touch configure
155    ;;
156
157  autoheader*)
158    echo 1>&2 "\
[c0456d7f]159WARNING: '$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
[6903c7cd]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 "\
[c0456d7f]178WARNING: '$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.
[6903c7cd]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 "\
[c0456d7f]189WARNING: '$1' is needed, but is $msg.
[6903c7cd]190         You might have modified some files without having the
191         proper tools for further handling them.
[c0456d7f]192         You can get '$1' as part of Autoconf from any GNU
[6903c7cd]193         archive site."
194
195    file=`echo "$*" | sed -n "$sed_output"`
196    test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
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 "\
[c0456d7f]212WARNING: '$1' $msg.  You should only need it if
213         you modified a '.y' file.  You may need the Bison package
[6903c7cd]214         in order for those modifications to take effect.  You can get
[c0456d7f]215         Bison from any GNU archive site."
[6903c7cd]216    rm -f y.tab.c y.tab.h
217    if test $# -ne 1; then
218        eval LASTARG=\${$#}
219        case $LASTARG in
220        *.y)
221            SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
222            if test -f "$SRCFILE"; then
223                 cp "$SRCFILE" y.tab.c
224            fi
225            SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
226            if test -f "$SRCFILE"; then
227                 cp "$SRCFILE" y.tab.h
228            fi
229          ;;
230        esac
231    fi
232    if test ! -f y.tab.h; then
233        echo >y.tab.h
234    fi
235    if test ! -f y.tab.c; then
236        echo 'main() { return 0; }' >y.tab.c
237    fi
238    ;;
239
240  lex*|flex*)
241    echo 1>&2 "\
[c0456d7f]242WARNING: '$1' is $msg.  You should only need it if
243         you modified a '.l' file.  You may need the Flex package
[6903c7cd]244         in order for those modifications to take effect.  You can get
[c0456d7f]245         Flex from any GNU archive site."
[6903c7cd]246    rm -f lex.yy.c
247    if test $# -ne 1; then
248        eval LASTARG=\${$#}
249        case $LASTARG in
250        *.l)
251            SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
252            if test -f "$SRCFILE"; then
253                 cp "$SRCFILE" lex.yy.c
254            fi
255          ;;
256        esac
257    fi
258    if test ! -f lex.yy.c; then
259        echo 'main() { return 0; }' >lex.yy.c
260    fi
261    ;;
262
263  help2man*)
264    echo 1>&2 "\
[c0456d7f]265WARNING: '$1' is $msg.  You should only need it if
[6903c7cd]266         you modified a dependency of a manual page.  You may need the
[c0456d7f]267         Help2man package in order for those modifications to take
268         effect.  You can get Help2man from any GNU archive site."
[6903c7cd]269
270    file=`echo "$*" | sed -n "$sed_output"`
271    test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
272    if test -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 $?
278    fi
279    ;;
280
281  makeinfo*)
282    echo 1>&2 "\
[c0456d7f]283WARNING: '$1' is $msg.  You should only need it if
284         you modified a '.texi' or '.texinfo' file, or any other file
[6903c7cd]285         indirectly affecting the aspect of the manual.  The spurious
[c0456d7f]286         call might also be the consequence of using a buggy 'make' (AIX,
287         DU, IRIX).  You might want to install the Texinfo package or
288         the GNU make package.  Grab either from any GNU archive site."
[6903c7cd]289    # The file to touch is that specified with -o ...
290    file=`echo "$*" | sed -n "$sed_output"`
291    test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
292    if test -z "$file"; then
293      # ... or it is the one specified with @setfilename ...
294      infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
295      file=`sed -n '
296        /^@setfilename/{
297          s/.* \([^ ]*\) *$/\1/
298          p
299          q
300        }' $infile`
301      # ... or it is derived from the source name (dir/f.texi becomes f.info)
302      test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info
303    fi
304    # If the file does not exist, the user really needs makeinfo;
305    # let's fail without touching anything.
306    test -f $file || exit 1
307    touch $file
308    ;;
309
310  *)
311    echo 1>&2 "\
[c0456d7f]312WARNING: '$1' is needed, and is $msg.
[6903c7cd]313         You might have modified some files without having the
[c0456d7f]314         proper tools for further handling them.  Check the 'README' file,
[6903c7cd]315         it often tells you about the needed prerequisites for installing
316         this package.  You may also peek at any GNU archive site, in case
[c0456d7f]317         some other package would contain this missing '$1' program."
[6903c7cd]318    exit 1
319    ;;
320esac
321
322exit 0
323
324# Local variables:
325# eval: (add-hook 'write-file-hooks 'time-stamp)
326# time-stamp-start: "scriptversion="
327# time-stamp-format: "%:y-%02m-%02d.%02H"
328# time-stamp-time-zone: "UTC"
329# time-stamp-end: "; # UTC"
330# End:
Note: See TracBrowser for help on using the repository browser.