missing revision 35d5702b
1a6fdc6faSmrg#! /bin/sh 2a6fdc6faSmrg# Common stub for a few missing GNU programs while installing. 335d5702bSmrg 435d5702bSmrgscriptversion=2009-04-28.21; # UTC 535d5702bSmrg 635d5702bSmrg# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006, 735d5702bSmrg# 2008, 2009 Free Software Foundation, Inc. 8a6fdc6faSmrg# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996. 9a6fdc6faSmrg 10a6fdc6faSmrg# This program is free software; you can redistribute it and/or modify 11a6fdc6faSmrg# it under the terms of the GNU General Public License as published by 12a6fdc6faSmrg# the Free Software Foundation; either version 2, or (at your option) 13a6fdc6faSmrg# any later version. 14a6fdc6faSmrg 15a6fdc6faSmrg# This program is distributed in the hope that it will be useful, 16a6fdc6faSmrg# but WITHOUT ANY WARRANTY; without even the implied warranty of 17a6fdc6faSmrg# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18a6fdc6faSmrg# GNU General Public License for more details. 19a6fdc6faSmrg 20a6fdc6faSmrg# You should have received a copy of the GNU General Public License 2135d5702bSmrg# along with this program. If not, see <http://www.gnu.org/licenses/>. 22a6fdc6faSmrg 23a6fdc6faSmrg# As a special exception to the GNU General Public License, if you 24a6fdc6faSmrg# distribute this file as part of a program that contains a 25a6fdc6faSmrg# configuration script generated by Autoconf, you may include it under 26a6fdc6faSmrg# the same distribution terms that you use for the rest of that program. 27a6fdc6faSmrg 28a6fdc6faSmrgif test $# -eq 0; then 29a6fdc6faSmrg echo 1>&2 "Try \`$0 --help' for more information" 30a6fdc6faSmrg exit 1 31a6fdc6faSmrgfi 32a6fdc6faSmrg 33a6fdc6faSmrgrun=: 3435d5702bSmrgsed_output='s/.* --output[ =]\([^ ]*\).*/\1/p' 3535d5702bSmrgsed_minuso='s/.* -o \([^ ]*\).*/\1/p' 36a6fdc6faSmrg 37a6fdc6faSmrg# In the cases where this matters, `missing' is being run in the 38a6fdc6faSmrg# srcdir already. 39a6fdc6faSmrgif test -f configure.ac; then 40a6fdc6faSmrg configure_ac=configure.ac 41a6fdc6faSmrgelse 42a6fdc6faSmrg configure_ac=configure.in 43a6fdc6faSmrgfi 44a6fdc6faSmrg 4535d5702bSmrgmsg="missing on your system" 4635d5702bSmrg 4735d5702bSmrgcase $1 in 48a6fdc6faSmrg--run) 49a6fdc6faSmrg # Try to run requested program, and just exit if it succeeds. 50a6fdc6faSmrg run= 51a6fdc6faSmrg shift 52a6fdc6faSmrg "$@" && exit 0 5335d5702bSmrg # Exit code 63 means version mismatch. This often happens 5435d5702bSmrg # when the user try to use an ancient version of a tool on 5535d5702bSmrg # a file that requires a minimum version. In this case we 5635d5702bSmrg # we should proceed has if the program had been absent, or 5735d5702bSmrg # if --run hadn't been passed. 5835d5702bSmrg if test $? = 63; then 5935d5702bSmrg run=: 6035d5702bSmrg msg="probably too old" 6135d5702bSmrg fi 62a6fdc6faSmrg ;; 63a6fdc6faSmrg 64a6fdc6faSmrg -h|--h|--he|--hel|--help) 65a6fdc6faSmrg echo "\ 66a6fdc6faSmrg$0 [OPTION]... PROGRAM [ARGUMENT]... 67a6fdc6faSmrg 68a6fdc6faSmrgHandle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an 69a6fdc6faSmrgerror status if there is no known handling for PROGRAM. 70a6fdc6faSmrg 71a6fdc6faSmrgOptions: 72a6fdc6faSmrg -h, --help display this help and exit 73a6fdc6faSmrg -v, --version output version information and exit 74a6fdc6faSmrg --run try to run the given command, and emulate it if it fails 75a6fdc6faSmrg 76a6fdc6faSmrgSupported PROGRAM values: 77a6fdc6faSmrg aclocal touch file \`aclocal.m4' 78a6fdc6faSmrg autoconf touch file \`configure' 79a6fdc6faSmrg autoheader touch file \`config.h.in' 8035d5702bSmrg autom4te touch the output file, or create a stub one 81a6fdc6faSmrg automake touch all \`Makefile.in' files 82a6fdc6faSmrg bison create \`y.tab.[ch]', if possible, from existing .[ch] 83a6fdc6faSmrg flex create \`lex.yy.c', if possible, from existing .c 84a6fdc6faSmrg help2man touch the output file 85a6fdc6faSmrg lex create \`lex.yy.c', if possible, from existing .c 86a6fdc6faSmrg makeinfo touch the output file 87a6fdc6faSmrg tar try tar, gnutar, gtar, then tar without non-portable flags 8835d5702bSmrg yacc create \`y.tab.[ch]', if possible, from existing .[ch] 8935d5702bSmrg 9035d5702bSmrgVersion suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and 9135d5702bSmrg\`g' are ignored when checking the name. 9235d5702bSmrg 9335d5702bSmrgSend bug reports to <bug-automake@gnu.org>." 9435d5702bSmrg exit $? 95a6fdc6faSmrg ;; 96a6fdc6faSmrg 97a6fdc6faSmrg -v|--v|--ve|--ver|--vers|--versi|--versio|--version) 9835d5702bSmrg echo "missing $scriptversion (GNU Automake)" 9935d5702bSmrg exit $? 100a6fdc6faSmrg ;; 101a6fdc6faSmrg 102a6fdc6faSmrg -*) 103a6fdc6faSmrg echo 1>&2 "$0: Unknown \`$1' option" 104a6fdc6faSmrg echo 1>&2 "Try \`$0 --help' for more information" 105a6fdc6faSmrg exit 1 106a6fdc6faSmrg ;; 107a6fdc6faSmrg 10835d5702bSmrgesac 10935d5702bSmrg 11035d5702bSmrg# normalize program name to check for. 11135d5702bSmrgprogram=`echo "$1" | sed ' 11235d5702bSmrg s/^gnu-//; t 11335d5702bSmrg s/^gnu//; t 11435d5702bSmrg s/^g//; t'` 11535d5702bSmrg 11635d5702bSmrg# Now exit if we have it, but it failed. Also exit now if we 11735d5702bSmrg# don't have it and --version was passed (most likely to detect 11835d5702bSmrg# the program). This is about non-GNU programs, so use $1 not 11935d5702bSmrg# $program. 12035d5702bSmrgcase $1 in 12135d5702bSmrg lex*|yacc*) 12235d5702bSmrg # Not GNU programs, they don't have --version. 12335d5702bSmrg ;; 12435d5702bSmrg 12535d5702bSmrg tar*) 12635d5702bSmrg if test -n "$run"; then 12735d5702bSmrg echo 1>&2 "ERROR: \`tar' requires --run" 12835d5702bSmrg exit 1 12935d5702bSmrg elif test "x$2" = "x--version" || test "x$2" = "x--help"; then 13035d5702bSmrg exit 1 13135d5702bSmrg fi 13235d5702bSmrg ;; 13335d5702bSmrg 13435d5702bSmrg *) 135a6fdc6faSmrg if test -z "$run" && ($1 --version) > /dev/null 2>&1; then 136a6fdc6faSmrg # We have it, but it failed. 137a6fdc6faSmrg exit 1 13835d5702bSmrg elif test "x$2" = "x--version" || test "x$2" = "x--help"; then 13935d5702bSmrg # Could not run --version or --help. This is probably someone 14035d5702bSmrg # running `$TOOL --version' or `$TOOL --help' to check whether 14135d5702bSmrg # $TOOL exists and not knowing $TOOL uses missing. 14235d5702bSmrg exit 1 143a6fdc6faSmrg fi 14435d5702bSmrg ;; 14535d5702bSmrgesac 146a6fdc6faSmrg 14735d5702bSmrg# If it does not exist, or fails to run (possibly an outdated version), 14835d5702bSmrg# try to emulate it. 14935d5702bSmrgcase $program in 15035d5702bSmrg aclocal*) 151a6fdc6faSmrg echo 1>&2 "\ 15235d5702bSmrgWARNING: \`$1' is $msg. You should only need it if 153a6fdc6faSmrg you modified \`acinclude.m4' or \`${configure_ac}'. You might want 154a6fdc6faSmrg to install the \`Automake' and \`Perl' packages. Grab them from 155a6fdc6faSmrg any GNU archive site." 156a6fdc6faSmrg touch aclocal.m4 157a6fdc6faSmrg ;; 158a6fdc6faSmrg 15935d5702bSmrg autoconf*) 160a6fdc6faSmrg echo 1>&2 "\ 16135d5702bSmrgWARNING: \`$1' is $msg. You should only need it if 162a6fdc6faSmrg you modified \`${configure_ac}'. You might want to install the 163a6fdc6faSmrg \`Autoconf' and \`GNU m4' packages. Grab them from any GNU 164a6fdc6faSmrg archive site." 165a6fdc6faSmrg touch configure 166a6fdc6faSmrg ;; 167a6fdc6faSmrg 16835d5702bSmrg autoheader*) 169a6fdc6faSmrg echo 1>&2 "\ 17035d5702bSmrgWARNING: \`$1' is $msg. You should only need it if 171a6fdc6faSmrg you modified \`acconfig.h' or \`${configure_ac}'. You might want 172a6fdc6faSmrg to install the \`Autoconf' and \`GNU m4' packages. Grab them 173a6fdc6faSmrg from any GNU archive site." 174a6fdc6faSmrg files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` 175a6fdc6faSmrg test -z "$files" && files="config.h" 176a6fdc6faSmrg touch_files= 177a6fdc6faSmrg for f in $files; do 17835d5702bSmrg case $f in 179a6fdc6faSmrg *:*) touch_files="$touch_files "`echo "$f" | 180a6fdc6faSmrg sed -e 's/^[^:]*://' -e 's/:.*//'`;; 181a6fdc6faSmrg *) touch_files="$touch_files $f.in";; 182a6fdc6faSmrg esac 183a6fdc6faSmrg done 184a6fdc6faSmrg touch $touch_files 185a6fdc6faSmrg ;; 186a6fdc6faSmrg 187a6fdc6faSmrg automake*) 188a6fdc6faSmrg echo 1>&2 "\ 18935d5702bSmrgWARNING: \`$1' is $msg. You should only need it if 190a6fdc6faSmrg you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. 191a6fdc6faSmrg You might want to install the \`Automake' and \`Perl' packages. 192a6fdc6faSmrg Grab them from any GNU archive site." 193a6fdc6faSmrg find . -type f -name Makefile.am -print | 194a6fdc6faSmrg sed 's/\.am$/.in/' | 195a6fdc6faSmrg while read f; do touch "$f"; done 196a6fdc6faSmrg ;; 197a6fdc6faSmrg 19835d5702bSmrg autom4te*) 199a6fdc6faSmrg echo 1>&2 "\ 20035d5702bSmrgWARNING: \`$1' is needed, but is $msg. 20135d5702bSmrg You might have modified some files without having the 202a6fdc6faSmrg proper tools for further handling them. 203a6fdc6faSmrg You can get \`$1' as part of \`Autoconf' from any GNU 204a6fdc6faSmrg archive site." 205a6fdc6faSmrg 20635d5702bSmrg file=`echo "$*" | sed -n "$sed_output"` 20735d5702bSmrg test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` 208a6fdc6faSmrg if test -f "$file"; then 209a6fdc6faSmrg touch $file 210a6fdc6faSmrg else 211a6fdc6faSmrg test -z "$file" || exec >$file 212a6fdc6faSmrg echo "#! /bin/sh" 213a6fdc6faSmrg echo "# Created by GNU Automake missing as a replacement of" 214a6fdc6faSmrg echo "# $ $@" 215a6fdc6faSmrg echo "exit 0" 216a6fdc6faSmrg chmod +x $file 217a6fdc6faSmrg exit 1 218a6fdc6faSmrg fi 219a6fdc6faSmrg ;; 220a6fdc6faSmrg 22135d5702bSmrg bison*|yacc*) 222a6fdc6faSmrg echo 1>&2 "\ 22335d5702bSmrgWARNING: \`$1' $msg. You should only need it if 224a6fdc6faSmrg you modified a \`.y' file. You may need the \`Bison' package 225a6fdc6faSmrg in order for those modifications to take effect. You can get 226a6fdc6faSmrg \`Bison' from any GNU archive site." 227a6fdc6faSmrg rm -f y.tab.c y.tab.h 22835d5702bSmrg if test $# -ne 1; then 229a6fdc6faSmrg eval LASTARG="\${$#}" 23035d5702bSmrg case $LASTARG in 231a6fdc6faSmrg *.y) 232a6fdc6faSmrg SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` 23335d5702bSmrg if test -f "$SRCFILE"; then 234a6fdc6faSmrg cp "$SRCFILE" y.tab.c 235a6fdc6faSmrg fi 236a6fdc6faSmrg SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` 23735d5702bSmrg if test -f "$SRCFILE"; then 238a6fdc6faSmrg cp "$SRCFILE" y.tab.h 239a6fdc6faSmrg fi 240a6fdc6faSmrg ;; 241a6fdc6faSmrg esac 242a6fdc6faSmrg fi 24335d5702bSmrg if test ! -f y.tab.h; then 244a6fdc6faSmrg echo >y.tab.h 245a6fdc6faSmrg fi 24635d5702bSmrg if test ! -f y.tab.c; then 247a6fdc6faSmrg echo 'main() { return 0; }' >y.tab.c 248a6fdc6faSmrg fi 249a6fdc6faSmrg ;; 250a6fdc6faSmrg 25135d5702bSmrg lex*|flex*) 252a6fdc6faSmrg echo 1>&2 "\ 25335d5702bSmrgWARNING: \`$1' is $msg. You should only need it if 254a6fdc6faSmrg you modified a \`.l' file. You may need the \`Flex' package 255a6fdc6faSmrg in order for those modifications to take effect. You can get 256a6fdc6faSmrg \`Flex' from any GNU archive site." 257a6fdc6faSmrg rm -f lex.yy.c 25835d5702bSmrg if test $# -ne 1; then 259a6fdc6faSmrg eval LASTARG="\${$#}" 26035d5702bSmrg case $LASTARG in 261a6fdc6faSmrg *.l) 262a6fdc6faSmrg SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` 26335d5702bSmrg if test -f "$SRCFILE"; then 264a6fdc6faSmrg cp "$SRCFILE" lex.yy.c 265a6fdc6faSmrg fi 266a6fdc6faSmrg ;; 267a6fdc6faSmrg esac 268a6fdc6faSmrg fi 26935d5702bSmrg if test ! -f lex.yy.c; then 270a6fdc6faSmrg echo 'main() { return 0; }' >lex.yy.c 271a6fdc6faSmrg fi 272a6fdc6faSmrg ;; 273a6fdc6faSmrg 27435d5702bSmrg help2man*) 275a6fdc6faSmrg echo 1>&2 "\ 27635d5702bSmrgWARNING: \`$1' is $msg. You should only need it if 277a6fdc6faSmrg you modified a dependency of a manual page. You may need the 278a6fdc6faSmrg \`Help2man' package in order for those modifications to take 279a6fdc6faSmrg effect. You can get \`Help2man' from any GNU archive site." 280a6fdc6faSmrg 28135d5702bSmrg file=`echo "$*" | sed -n "$sed_output"` 28235d5702bSmrg test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` 28335d5702bSmrg if test -f "$file"; then 284a6fdc6faSmrg touch $file 285a6fdc6faSmrg else 286a6fdc6faSmrg test -z "$file" || exec >$file 287a6fdc6faSmrg echo ".ab help2man is required to generate this page" 28835d5702bSmrg exit $? 289a6fdc6faSmrg fi 290a6fdc6faSmrg ;; 291a6fdc6faSmrg 29235d5702bSmrg makeinfo*) 293a6fdc6faSmrg echo 1>&2 "\ 29435d5702bSmrgWARNING: \`$1' is $msg. You should only need it if 295a6fdc6faSmrg you modified a \`.texi' or \`.texinfo' file, or any other file 296a6fdc6faSmrg indirectly affecting the aspect of the manual. The spurious 297a6fdc6faSmrg call might also be the consequence of using a buggy \`make' (AIX, 298a6fdc6faSmrg DU, IRIX). You might want to install the \`Texinfo' package or 299a6fdc6faSmrg the \`GNU make' package. Grab either from any GNU archive site." 30035d5702bSmrg # The file to touch is that specified with -o ... 30135d5702bSmrg file=`echo "$*" | sed -n "$sed_output"` 30235d5702bSmrg test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` 303a6fdc6faSmrg if test -z "$file"; then 30435d5702bSmrg # ... or it is the one specified with @setfilename ... 30535d5702bSmrg infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` 30635d5702bSmrg file=`sed -n ' 30735d5702bSmrg /^@setfilename/{ 30835d5702bSmrg s/.* \([^ ]*\) *$/\1/ 30935d5702bSmrg p 31035d5702bSmrg q 31135d5702bSmrg }' $infile` 31235d5702bSmrg # ... or it is derived from the source name (dir/f.texi becomes f.info) 31335d5702bSmrg test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info 314a6fdc6faSmrg fi 31535d5702bSmrg # If the file does not exist, the user really needs makeinfo; 31635d5702bSmrg # let's fail without touching anything. 31735d5702bSmrg test -f $file || exit 1 318a6fdc6faSmrg touch $file 319a6fdc6faSmrg ;; 320a6fdc6faSmrg 32135d5702bSmrg tar*) 322a6fdc6faSmrg shift 323a6fdc6faSmrg 324a6fdc6faSmrg # We have already tried tar in the generic part. 325a6fdc6faSmrg # Look for gnutar/gtar before invocation to avoid ugly error 326a6fdc6faSmrg # messages. 327a6fdc6faSmrg if (gnutar --version > /dev/null 2>&1); then 328a6fdc6faSmrg gnutar "$@" && exit 0 329a6fdc6faSmrg fi 330a6fdc6faSmrg if (gtar --version > /dev/null 2>&1); then 331a6fdc6faSmrg gtar "$@" && exit 0 332a6fdc6faSmrg fi 333a6fdc6faSmrg firstarg="$1" 334a6fdc6faSmrg if shift; then 33535d5702bSmrg case $firstarg in 336a6fdc6faSmrg *o*) 337a6fdc6faSmrg firstarg=`echo "$firstarg" | sed s/o//` 338a6fdc6faSmrg tar "$firstarg" "$@" && exit 0 339a6fdc6faSmrg ;; 340a6fdc6faSmrg esac 34135d5702bSmrg case $firstarg in 342a6fdc6faSmrg *h*) 343a6fdc6faSmrg firstarg=`echo "$firstarg" | sed s/h//` 344a6fdc6faSmrg tar "$firstarg" "$@" && exit 0 345a6fdc6faSmrg ;; 346a6fdc6faSmrg esac 347a6fdc6faSmrg fi 348a6fdc6faSmrg 349a6fdc6faSmrg echo 1>&2 "\ 350a6fdc6faSmrgWARNING: I can't seem to be able to run \`tar' with the given arguments. 351a6fdc6faSmrg You may want to install GNU tar or Free paxutils, or check the 352a6fdc6faSmrg command line arguments." 353a6fdc6faSmrg exit 1 354a6fdc6faSmrg ;; 355a6fdc6faSmrg 356a6fdc6faSmrg *) 357a6fdc6faSmrg echo 1>&2 "\ 35835d5702bSmrgWARNING: \`$1' is needed, and is $msg. 35935d5702bSmrg You might have modified some files without having the 360a6fdc6faSmrg proper tools for further handling them. Check the \`README' file, 361a6fdc6faSmrg it often tells you about the needed prerequisites for installing 362a6fdc6faSmrg this package. You may also peek at any GNU archive site, in case 363a6fdc6faSmrg some other package would contain this missing \`$1' program." 364a6fdc6faSmrg exit 1 365a6fdc6faSmrg ;; 366a6fdc6faSmrgesac 367a6fdc6faSmrg 368a6fdc6faSmrgexit 0 36935d5702bSmrg 37035d5702bSmrg# Local variables: 37135d5702bSmrg# eval: (add-hook 'write-file-hooks 'time-stamp) 37235d5702bSmrg# time-stamp-start: "scriptversion=" 37335d5702bSmrg# time-stamp-format: "%:y-%02m-%02d.%02H" 37435d5702bSmrg# time-stamp-time-zone: "UTC" 37535d5702bSmrg# time-stamp-end: "; # UTC" 37635d5702bSmrg# End: 377