missing revision fe5e51b7
1fe5e51b7Smrg#! /bin/sh 2fe5e51b7Smrg# Common stub for a few missing GNU programs while installing. 3fe5e51b7Smrg 4fe5e51b7Smrgscriptversion=2006-05-10.23 5fe5e51b7Smrg 6fe5e51b7Smrg# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006 7fe5e51b7Smrg# Free Software Foundation, Inc. 8fe5e51b7Smrg# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996. 9fe5e51b7Smrg 10fe5e51b7Smrg# This program is free software; you can redistribute it and/or modify 11fe5e51b7Smrg# it under the terms of the GNU General Public License as published by 12fe5e51b7Smrg# the Free Software Foundation; either version 2, or (at your option) 13fe5e51b7Smrg# any later version. 14fe5e51b7Smrg 15fe5e51b7Smrg# This program is distributed in the hope that it will be useful, 16fe5e51b7Smrg# but WITHOUT ANY WARRANTY; without even the implied warranty of 17fe5e51b7Smrg# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18fe5e51b7Smrg# GNU General Public License for more details. 19fe5e51b7Smrg 20fe5e51b7Smrg# You should have received a copy of the GNU General Public License 21fe5e51b7Smrg# along with this program; if not, write to the Free Software 22fe5e51b7Smrg# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 23fe5e51b7Smrg# 02110-1301, USA. 24fe5e51b7Smrg 25fe5e51b7Smrg# As a special exception to the GNU General Public License, if you 26fe5e51b7Smrg# distribute this file as part of a program that contains a 27fe5e51b7Smrg# configuration script generated by Autoconf, you may include it under 28fe5e51b7Smrg# the same distribution terms that you use for the rest of that program. 29fe5e51b7Smrg 30fe5e51b7Smrgif test $# -eq 0; then 31fe5e51b7Smrg echo 1>&2 "Try \`$0 --help' for more information" 32fe5e51b7Smrg exit 1 33fe5e51b7Smrgfi 34fe5e51b7Smrg 35fe5e51b7Smrgrun=: 36fe5e51b7Smrgsed_output='s/.* --output[ =]\([^ ]*\).*/\1/p' 37fe5e51b7Smrgsed_minuso='s/.* -o \([^ ]*\).*/\1/p' 38fe5e51b7Smrg 39fe5e51b7Smrg# In the cases where this matters, `missing' is being run in the 40fe5e51b7Smrg# srcdir already. 41fe5e51b7Smrgif test -f configure.ac; then 42fe5e51b7Smrg configure_ac=configure.ac 43fe5e51b7Smrgelse 44fe5e51b7Smrg configure_ac=configure.in 45fe5e51b7Smrgfi 46fe5e51b7Smrg 47fe5e51b7Smrgmsg="missing on your system" 48fe5e51b7Smrg 49fe5e51b7Smrgcase $1 in 50fe5e51b7Smrg--run) 51fe5e51b7Smrg # Try to run requested program, and just exit if it succeeds. 52fe5e51b7Smrg run= 53fe5e51b7Smrg shift 54fe5e51b7Smrg "$@" && exit 0 55fe5e51b7Smrg # Exit code 63 means version mismatch. This often happens 56fe5e51b7Smrg # when the user try to use an ancient version of a tool on 57fe5e51b7Smrg # a file that requires a minimum version. In this case we 58fe5e51b7Smrg # we should proceed has if the program had been absent, or 59fe5e51b7Smrg # if --run hadn't been passed. 60fe5e51b7Smrg if test $? = 63; then 61fe5e51b7Smrg run=: 62fe5e51b7Smrg msg="probably too old" 63fe5e51b7Smrg fi 64fe5e51b7Smrg ;; 65fe5e51b7Smrg 66fe5e51b7Smrg -h|--h|--he|--hel|--help) 67fe5e51b7Smrg echo "\ 68fe5e51b7Smrg$0 [OPTION]... PROGRAM [ARGUMENT]... 69fe5e51b7Smrg 70fe5e51b7SmrgHandle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an 71fe5e51b7Smrgerror status if there is no known handling for PROGRAM. 72fe5e51b7Smrg 73fe5e51b7SmrgOptions: 74fe5e51b7Smrg -h, --help display this help and exit 75fe5e51b7Smrg -v, --version output version information and exit 76fe5e51b7Smrg --run try to run the given command, and emulate it if it fails 77fe5e51b7Smrg 78fe5e51b7SmrgSupported PROGRAM values: 79fe5e51b7Smrg aclocal touch file \`aclocal.m4' 80fe5e51b7Smrg autoconf touch file \`configure' 81fe5e51b7Smrg autoheader touch file \`config.h.in' 82fe5e51b7Smrg autom4te touch the output file, or create a stub one 83fe5e51b7Smrg automake touch all \`Makefile.in' files 84fe5e51b7Smrg bison create \`y.tab.[ch]', if possible, from existing .[ch] 85fe5e51b7Smrg flex create \`lex.yy.c', if possible, from existing .c 86fe5e51b7Smrg help2man touch the output file 87fe5e51b7Smrg lex create \`lex.yy.c', if possible, from existing .c 88fe5e51b7Smrg makeinfo touch the output file 89fe5e51b7Smrg tar try tar, gnutar, gtar, then tar without non-portable flags 90fe5e51b7Smrg yacc create \`y.tab.[ch]', if possible, from existing .[ch] 91fe5e51b7Smrg 92fe5e51b7SmrgSend bug reports to <bug-automake@gnu.org>." 93fe5e51b7Smrg exit $? 94fe5e51b7Smrg ;; 95fe5e51b7Smrg 96fe5e51b7Smrg -v|--v|--ve|--ver|--vers|--versi|--versio|--version) 97fe5e51b7Smrg echo "missing $scriptversion (GNU Automake)" 98fe5e51b7Smrg exit $? 99fe5e51b7Smrg ;; 100fe5e51b7Smrg 101fe5e51b7Smrg -*) 102fe5e51b7Smrg echo 1>&2 "$0: Unknown \`$1' option" 103fe5e51b7Smrg echo 1>&2 "Try \`$0 --help' for more information" 104fe5e51b7Smrg exit 1 105fe5e51b7Smrg ;; 106fe5e51b7Smrg 107fe5e51b7Smrgesac 108fe5e51b7Smrg 109fe5e51b7Smrg# Now exit if we have it, but it failed. Also exit now if we 110fe5e51b7Smrg# don't have it and --version was passed (most likely to detect 111fe5e51b7Smrg# the program). 112fe5e51b7Smrgcase $1 in 113fe5e51b7Smrg lex|yacc) 114fe5e51b7Smrg # Not GNU programs, they don't have --version. 115fe5e51b7Smrg ;; 116fe5e51b7Smrg 117fe5e51b7Smrg tar) 118fe5e51b7Smrg if test -n "$run"; then 119fe5e51b7Smrg echo 1>&2 "ERROR: \`tar' requires --run" 120fe5e51b7Smrg exit 1 121fe5e51b7Smrg elif test "x$2" = "x--version" || test "x$2" = "x--help"; then 122fe5e51b7Smrg exit 1 123fe5e51b7Smrg fi 124fe5e51b7Smrg ;; 125fe5e51b7Smrg 126fe5e51b7Smrg *) 127fe5e51b7Smrg if test -z "$run" && ($1 --version) > /dev/null 2>&1; then 128fe5e51b7Smrg # We have it, but it failed. 129fe5e51b7Smrg exit 1 130fe5e51b7Smrg elif test "x$2" = "x--version" || test "x$2" = "x--help"; then 131fe5e51b7Smrg # Could not run --version or --help. This is probably someone 132fe5e51b7Smrg # running `$TOOL --version' or `$TOOL --help' to check whether 133fe5e51b7Smrg # $TOOL exists and not knowing $TOOL uses missing. 134fe5e51b7Smrg exit 1 135fe5e51b7Smrg fi 136fe5e51b7Smrg ;; 137fe5e51b7Smrgesac 138fe5e51b7Smrg 139fe5e51b7Smrg# If it does not exist, or fails to run (possibly an outdated version), 140fe5e51b7Smrg# try to emulate it. 141fe5e51b7Smrgcase $1 in 142fe5e51b7Smrg aclocal*) 143fe5e51b7Smrg echo 1>&2 "\ 144fe5e51b7SmrgWARNING: \`$1' is $msg. You should only need it if 145fe5e51b7Smrg you modified \`acinclude.m4' or \`${configure_ac}'. You might want 146fe5e51b7Smrg to install the \`Automake' and \`Perl' packages. Grab them from 147fe5e51b7Smrg any GNU archive site." 148fe5e51b7Smrg touch aclocal.m4 149fe5e51b7Smrg ;; 150fe5e51b7Smrg 151fe5e51b7Smrg autoconf) 152fe5e51b7Smrg echo 1>&2 "\ 153fe5e51b7SmrgWARNING: \`$1' is $msg. You should only need it if 154fe5e51b7Smrg you modified \`${configure_ac}'. You might want to install the 155fe5e51b7Smrg \`Autoconf' and \`GNU m4' packages. Grab them from any GNU 156fe5e51b7Smrg archive site." 157fe5e51b7Smrg touch configure 158fe5e51b7Smrg ;; 159fe5e51b7Smrg 160fe5e51b7Smrg autoheader) 161fe5e51b7Smrg echo 1>&2 "\ 162fe5e51b7SmrgWARNING: \`$1' is $msg. You should only need it if 163fe5e51b7Smrg you modified \`acconfig.h' or \`${configure_ac}'. You might want 164fe5e51b7Smrg to install the \`Autoconf' and \`GNU m4' packages. Grab them 165fe5e51b7Smrg from any GNU archive site." 166fe5e51b7Smrg files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` 167fe5e51b7Smrg test -z "$files" && files="config.h" 168fe5e51b7Smrg touch_files= 169fe5e51b7Smrg for f in $files; do 170fe5e51b7Smrg case $f in 171fe5e51b7Smrg *:*) touch_files="$touch_files "`echo "$f" | 172fe5e51b7Smrg sed -e 's/^[^:]*://' -e 's/:.*//'`;; 173fe5e51b7Smrg *) touch_files="$touch_files $f.in";; 174fe5e51b7Smrg esac 175fe5e51b7Smrg done 176fe5e51b7Smrg touch $touch_files 177fe5e51b7Smrg ;; 178fe5e51b7Smrg 179fe5e51b7Smrg automake*) 180fe5e51b7Smrg echo 1>&2 "\ 181fe5e51b7SmrgWARNING: \`$1' is $msg. You should only need it if 182fe5e51b7Smrg you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. 183fe5e51b7Smrg You might want to install the \`Automake' and \`Perl' packages. 184fe5e51b7Smrg Grab them from any GNU archive site." 185fe5e51b7Smrg find . -type f -name Makefile.am -print | 186fe5e51b7Smrg sed 's/\.am$/.in/' | 187fe5e51b7Smrg while read f; do touch "$f"; done 188fe5e51b7Smrg ;; 189fe5e51b7Smrg 190fe5e51b7Smrg autom4te) 191fe5e51b7Smrg echo 1>&2 "\ 192fe5e51b7SmrgWARNING: \`$1' is needed, but is $msg. 193fe5e51b7Smrg You might have modified some files without having the 194fe5e51b7Smrg proper tools for further handling them. 195fe5e51b7Smrg You can get \`$1' as part of \`Autoconf' from any GNU 196fe5e51b7Smrg archive site." 197fe5e51b7Smrg 198fe5e51b7Smrg file=`echo "$*" | sed -n "$sed_output"` 199fe5e51b7Smrg test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` 200fe5e51b7Smrg if test -f "$file"; then 201fe5e51b7Smrg touch $file 202fe5e51b7Smrg else 203fe5e51b7Smrg test -z "$file" || exec >$file 204fe5e51b7Smrg echo "#! /bin/sh" 205fe5e51b7Smrg echo "# Created by GNU Automake missing as a replacement of" 206fe5e51b7Smrg echo "# $ $@" 207fe5e51b7Smrg echo "exit 0" 208fe5e51b7Smrg chmod +x $file 209fe5e51b7Smrg exit 1 210fe5e51b7Smrg fi 211fe5e51b7Smrg ;; 212fe5e51b7Smrg 213fe5e51b7Smrg bison|yacc) 214fe5e51b7Smrg echo 1>&2 "\ 215fe5e51b7SmrgWARNING: \`$1' $msg. You should only need it if 216fe5e51b7Smrg you modified a \`.y' file. You may need the \`Bison' package 217fe5e51b7Smrg in order for those modifications to take effect. You can get 218fe5e51b7Smrg \`Bison' from any GNU archive site." 219fe5e51b7Smrg rm -f y.tab.c y.tab.h 220fe5e51b7Smrg if test $# -ne 1; then 221fe5e51b7Smrg eval LASTARG="\${$#}" 222fe5e51b7Smrg case $LASTARG in 223fe5e51b7Smrg *.y) 224fe5e51b7Smrg SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` 225fe5e51b7Smrg if test -f "$SRCFILE"; then 226fe5e51b7Smrg cp "$SRCFILE" y.tab.c 227fe5e51b7Smrg fi 228fe5e51b7Smrg SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` 229fe5e51b7Smrg if test -f "$SRCFILE"; then 230fe5e51b7Smrg cp "$SRCFILE" y.tab.h 231fe5e51b7Smrg fi 232fe5e51b7Smrg ;; 233fe5e51b7Smrg esac 234fe5e51b7Smrg fi 235fe5e51b7Smrg if test ! -f y.tab.h; then 236fe5e51b7Smrg echo >y.tab.h 237fe5e51b7Smrg fi 238fe5e51b7Smrg if test ! -f y.tab.c; then 239fe5e51b7Smrg echo 'main() { return 0; }' >y.tab.c 240fe5e51b7Smrg fi 241fe5e51b7Smrg ;; 242fe5e51b7Smrg 243fe5e51b7Smrg lex|flex) 244fe5e51b7Smrg echo 1>&2 "\ 245fe5e51b7SmrgWARNING: \`$1' is $msg. You should only need it if 246fe5e51b7Smrg you modified a \`.l' file. You may need the \`Flex' package 247fe5e51b7Smrg in order for those modifications to take effect. You can get 248fe5e51b7Smrg \`Flex' from any GNU archive site." 249fe5e51b7Smrg rm -f lex.yy.c 250fe5e51b7Smrg if test $# -ne 1; then 251fe5e51b7Smrg eval LASTARG="\${$#}" 252fe5e51b7Smrg case $LASTARG in 253fe5e51b7Smrg *.l) 254fe5e51b7Smrg SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` 255fe5e51b7Smrg if test -f "$SRCFILE"; then 256fe5e51b7Smrg cp "$SRCFILE" lex.yy.c 257fe5e51b7Smrg fi 258fe5e51b7Smrg ;; 259fe5e51b7Smrg esac 260fe5e51b7Smrg fi 261fe5e51b7Smrg if test ! -f lex.yy.c; then 262fe5e51b7Smrg echo 'main() { return 0; }' >lex.yy.c 263fe5e51b7Smrg fi 264fe5e51b7Smrg ;; 265fe5e51b7Smrg 266fe5e51b7Smrg help2man) 267fe5e51b7Smrg echo 1>&2 "\ 268fe5e51b7SmrgWARNING: \`$1' is $msg. You should only need it if 269fe5e51b7Smrg you modified a dependency of a manual page. You may need the 270fe5e51b7Smrg \`Help2man' package in order for those modifications to take 271fe5e51b7Smrg effect. You can get \`Help2man' from any GNU archive site." 272fe5e51b7Smrg 273fe5e51b7Smrg file=`echo "$*" | sed -n "$sed_output"` 274fe5e51b7Smrg test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` 275fe5e51b7Smrg if test -f "$file"; then 276fe5e51b7Smrg touch $file 277fe5e51b7Smrg else 278fe5e51b7Smrg test -z "$file" || exec >$file 279fe5e51b7Smrg echo ".ab help2man is required to generate this page" 280fe5e51b7Smrg exit 1 281fe5e51b7Smrg fi 282fe5e51b7Smrg ;; 283fe5e51b7Smrg 284fe5e51b7Smrg makeinfo) 285fe5e51b7Smrg echo 1>&2 "\ 286fe5e51b7SmrgWARNING: \`$1' is $msg. You should only need it if 287fe5e51b7Smrg you modified a \`.texi' or \`.texinfo' file, or any other file 288fe5e51b7Smrg indirectly affecting the aspect of the manual. The spurious 289fe5e51b7Smrg call might also be the consequence of using a buggy \`make' (AIX, 290fe5e51b7Smrg DU, IRIX). You might want to install the \`Texinfo' package or 291fe5e51b7Smrg the \`GNU make' package. Grab either from any GNU archive site." 292fe5e51b7Smrg # The file to touch is that specified with -o ... 293fe5e51b7Smrg file=`echo "$*" | sed -n "$sed_output"` 294fe5e51b7Smrg test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` 295fe5e51b7Smrg if test -z "$file"; then 296fe5e51b7Smrg # ... or it is the one specified with @setfilename ... 297fe5e51b7Smrg infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` 298fe5e51b7Smrg file=`sed -n ' 299fe5e51b7Smrg /^@setfilename/{ 300fe5e51b7Smrg s/.* \([^ ]*\) *$/\1/ 301fe5e51b7Smrg p 302fe5e51b7Smrg q 303fe5e51b7Smrg }' $infile` 304fe5e51b7Smrg # ... or it is derived from the source name (dir/f.texi becomes f.info) 305fe5e51b7Smrg test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info 306fe5e51b7Smrg fi 307fe5e51b7Smrg # If the file does not exist, the user really needs makeinfo; 308fe5e51b7Smrg # let's fail without touching anything. 309fe5e51b7Smrg test -f $file || exit 1 310fe5e51b7Smrg touch $file 311fe5e51b7Smrg ;; 312fe5e51b7Smrg 313fe5e51b7Smrg tar) 314fe5e51b7Smrg shift 315fe5e51b7Smrg 316fe5e51b7Smrg # We have already tried tar in the generic part. 317fe5e51b7Smrg # Look for gnutar/gtar before invocation to avoid ugly error 318fe5e51b7Smrg # messages. 319fe5e51b7Smrg if (gnutar --version > /dev/null 2>&1); then 320fe5e51b7Smrg gnutar "$@" && exit 0 321fe5e51b7Smrg fi 322fe5e51b7Smrg if (gtar --version > /dev/null 2>&1); then 323fe5e51b7Smrg gtar "$@" && exit 0 324fe5e51b7Smrg fi 325fe5e51b7Smrg firstarg="$1" 326fe5e51b7Smrg if shift; then 327fe5e51b7Smrg case $firstarg in 328fe5e51b7Smrg *o*) 329fe5e51b7Smrg firstarg=`echo "$firstarg" | sed s/o//` 330fe5e51b7Smrg tar "$firstarg" "$@" && exit 0 331fe5e51b7Smrg ;; 332fe5e51b7Smrg esac 333fe5e51b7Smrg case $firstarg in 334fe5e51b7Smrg *h*) 335fe5e51b7Smrg firstarg=`echo "$firstarg" | sed s/h//` 336fe5e51b7Smrg tar "$firstarg" "$@" && exit 0 337fe5e51b7Smrg ;; 338fe5e51b7Smrg esac 339fe5e51b7Smrg fi 340fe5e51b7Smrg 341fe5e51b7Smrg echo 1>&2 "\ 342fe5e51b7SmrgWARNING: I can't seem to be able to run \`tar' with the given arguments. 343fe5e51b7Smrg You may want to install GNU tar or Free paxutils, or check the 344fe5e51b7Smrg command line arguments." 345fe5e51b7Smrg exit 1 346fe5e51b7Smrg ;; 347fe5e51b7Smrg 348fe5e51b7Smrg *) 349fe5e51b7Smrg echo 1>&2 "\ 350fe5e51b7SmrgWARNING: \`$1' is needed, and is $msg. 351fe5e51b7Smrg You might have modified some files without having the 352fe5e51b7Smrg proper tools for further handling them. Check the \`README' file, 353fe5e51b7Smrg it often tells you about the needed prerequisites for installing 354fe5e51b7Smrg this package. You may also peek at any GNU archive site, in case 355fe5e51b7Smrg some other package would contain this missing \`$1' program." 356fe5e51b7Smrg exit 1 357fe5e51b7Smrg ;; 358fe5e51b7Smrgesac 359fe5e51b7Smrg 360fe5e51b7Smrgexit 0 361fe5e51b7Smrg 362fe5e51b7Smrg# Local variables: 363fe5e51b7Smrg# eval: (add-hook 'write-file-hooks 'time-stamp) 364fe5e51b7Smrg# time-stamp-start: "scriptversion=" 365fe5e51b7Smrg# time-stamp-format: "%:y-%02m-%02d.%02H" 366fe5e51b7Smrg# time-stamp-end: "$" 367fe5e51b7Smrg# End: 368