Subversion Repositories Kolibri OS

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
5362 serge 1
#! /bin/sh
2
# Common wrapper for a few potentially missing GNU programs.
3
 
4
scriptversion=2013-10-28.13; # UTC
5
 
6
# Copyright (C) 1996-2013 Free Software Foundation, Inc.
7
# Originally written by Fran,cois Pinard , 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 .
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
 
27
if test $# -eq 0; then
28
  echo 1>&2 "Try '$0 --help' for more information"
29
  exit 1
30
fi
31
 
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
    ;;
44
 
45
  -h|--h|--he|--hel|--help)
46
    echo "\
47
$0 [OPTION]... PROGRAM [ARGUMENT]...
48
 
49
Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due
50
to PROGRAM being missing or too old.
51
 
52
Options:
53
  -h, --help      display this help and exit
54
  -v, --version   output version information and exit
55
 
56
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.
62
 
63
Send bug reports to ."
64
    exit $?
65
    ;;
66
 
67
  -v|--v|--ve|--ver|--vers|--versi|--versio|--version)
68
    echo "missing $scriptversion (GNU Automake)"
69
    exit $?
70
    ;;
71
 
72
  -*)
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 'autom4te' 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
208
 
209
# Local variables:
210
# eval: (add-hook 'write-file-hooks 'time-stamp)
211
# time-stamp-start: "scriptversion="
212
# time-stamp-format: "%:y-%02m-%02d.%02H"
213
# time-stamp-time-zone: "UTC"
214
# time-stamp-end: "; # UTC"
215
# End: