1#! /bin/sh 2# Common stub for a few missing GNU programs while installing. 3 4scriptversion=2003-09-02.23 5 6# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003 7# Free Software Foundation, Inc. 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 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 30if test $# -eq 0; then 31 echo 1>&2 "Try \`$0 --help' for more information" 32 exit 1 33fi 34 35run=: 36 37# In the cases where this matters, `missing' is being run in the 38# srcdir already. 39if test -f configure.ac; then 40 configure_ac=configure.ac 41else 42 configure_ac=configure.in 43fi 44 45msg="missing on your system" 46 47case "$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 ;; 63esac 64 65# If it does not exist, or fails to run (possibly an outdated version), 66# try to emulate it. 67case "$1" in 68 69 -h|--h|--he|--hel|--help) 70 echo "\ 71$0 [OPTION]... PROGRAM [ARGUMENT]... 72 73Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an 74error status if there is no known handling for PROGRAM. 75 76Options: 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 81Supported 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 92 yacc create \`y.tab.[ch]', if possible, from existing .[ch] 93 94Send bug reports to <bug-automake@gnu.org>." 95 ;; 96 97 -v|--v|--ve|--ver|--vers|--versi|--versio|--version) 98 echo "missing $scriptversion (GNU Automake)" 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 107 aclocal*) 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 113 echo 1>&2 "\ 114WARNING: \`$1' is $msg. You should only need it if 115 you modified \`acinclude.m4' or \`${configure_ac}'. You might want 116 to install the \`Automake' and \`Perl' packages. Grab them from 117 any GNU archive site." 118 touch aclocal.m4 119 ;; 120 121 autoconf) 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 127 echo 1>&2 "\ 128WARNING: \`$1' is $msg. You should only need it if 129 you modified \`${configure_ac}'. You might want to install the 130 \`Autoconf' and \`GNU m4' packages. Grab them from any GNU 131 archive site." 132 touch configure 133 ;; 134 135 autoheader) 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 141 echo 1>&2 "\ 142WARNING: \`$1' is $msg. You should only need it if 143 you modified \`acconfig.h' or \`${configure_ac}'. You might want 144 to install the \`Autoconf' and \`GNU m4' packages. Grab them 145 from any GNU archive site." 146 files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` 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 159 automake*) 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 165 echo 1>&2 "\ 166WARNING: \`$1' is $msg. You should only need it if 167 you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. 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 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 "\ 182WARNING: \`$1' is needed, but is $msg. 183 You might have modified some files without having the 184 proper tools for further handling them. 185 You can get \`$1' as part of \`Autoconf' from any GNU 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 203 bison|yacc) 204 echo 1>&2 "\ 205WARNING: \`$1' $msg. You should only need it if 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 "\ 235WARNING: \`$1' is $msg. You should only need it if 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) 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 262 echo 1>&2 "\ 263WARNING: \`$1' is $msg. You should only need it if 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) 282 if test -z "$run" && (makeinfo --version) > /dev/null 2>&1; then 283 # We have makeinfo, but it failed. 284 exit 1 285 fi 286 287 echo 1>&2 "\ 288WARNING: \`$1' is $msg. You should only need it if 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 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 "\ 335WARNING: 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 "\ 343WARNING: \`$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 ;; 351esac 352 353exit 0 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: 361