missing revision 9e0146f7
1492e1cfeSmrg#! /bin/sh 2492e1cfeSmrg# Common stub for a few missing GNU programs while installing. 39e0146f7Smrg 49e0146f7Smrgscriptversion=2009-04-28.21; # UTC 59e0146f7Smrg 69e0146f7Smrg# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006, 79e0146f7Smrg# 2008, 2009 Free Software Foundation, Inc. 8492e1cfeSmrg# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996. 9492e1cfeSmrg 10492e1cfeSmrg# This program is free software; you can redistribute it and/or modify 11492e1cfeSmrg# it under the terms of the GNU General Public License as published by 12492e1cfeSmrg# the Free Software Foundation; either version 2, or (at your option) 13492e1cfeSmrg# any later version. 14492e1cfeSmrg 15492e1cfeSmrg# This program is distributed in the hope that it will be useful, 16492e1cfeSmrg# but WITHOUT ANY WARRANTY; without even the implied warranty of 17492e1cfeSmrg# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18492e1cfeSmrg# GNU General Public License for more details. 19492e1cfeSmrg 20492e1cfeSmrg# You should have received a copy of the GNU General Public License 219e0146f7Smrg# along with this program. If not, see <http://www.gnu.org/licenses/>. 22492e1cfeSmrg 23492e1cfeSmrg# As a special exception to the GNU General Public License, if you 24492e1cfeSmrg# distribute this file as part of a program that contains a 25492e1cfeSmrg# configuration script generated by Autoconf, you may include it under 26492e1cfeSmrg# the same distribution terms that you use for the rest of that program. 27492e1cfeSmrg 28492e1cfeSmrgif test $# -eq 0; then 29492e1cfeSmrg echo 1>&2 "Try \`$0 --help' for more information" 30492e1cfeSmrg exit 1 31492e1cfeSmrgfi 32492e1cfeSmrg 33492e1cfeSmrgrun=: 349e0146f7Smrgsed_output='s/.* --output[ =]\([^ ]*\).*/\1/p' 359e0146f7Smrgsed_minuso='s/.* -o \([^ ]*\).*/\1/p' 36492e1cfeSmrg 37492e1cfeSmrg# In the cases where this matters, `missing' is being run in the 38492e1cfeSmrg# srcdir already. 39492e1cfeSmrgif test -f configure.ac; then 40492e1cfeSmrg configure_ac=configure.ac 41492e1cfeSmrgelse 42492e1cfeSmrg configure_ac=configure.in 43492e1cfeSmrgfi 44492e1cfeSmrg 459e0146f7Smrgmsg="missing on your system" 469e0146f7Smrg 479e0146f7Smrgcase $1 in 48492e1cfeSmrg--run) 49492e1cfeSmrg # Try to run requested program, and just exit if it succeeds. 50492e1cfeSmrg run= 51492e1cfeSmrg shift 52492e1cfeSmrg "$@" && exit 0 539e0146f7Smrg # Exit code 63 means version mismatch. This often happens 549e0146f7Smrg # when the user try to use an ancient version of a tool on 559e0146f7Smrg # a file that requires a minimum version. In this case we 569e0146f7Smrg # we should proceed has if the program had been absent, or 579e0146f7Smrg # if --run hadn't been passed. 589e0146f7Smrg if test $? = 63; then 599e0146f7Smrg run=: 609e0146f7Smrg msg="probably too old" 619e0146f7Smrg fi 62492e1cfeSmrg ;; 63492e1cfeSmrg 64492e1cfeSmrg -h|--h|--he|--hel|--help) 65492e1cfeSmrg echo "\ 66492e1cfeSmrg$0 [OPTION]... PROGRAM [ARGUMENT]... 67492e1cfeSmrg 68492e1cfeSmrgHandle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an 69492e1cfeSmrgerror status if there is no known handling for PROGRAM. 70492e1cfeSmrg 71492e1cfeSmrgOptions: 72492e1cfeSmrg -h, --help display this help and exit 73492e1cfeSmrg -v, --version output version information and exit 74492e1cfeSmrg --run try to run the given command, and emulate it if it fails 75492e1cfeSmrg 76492e1cfeSmrgSupported PROGRAM values: 77492e1cfeSmrg aclocal touch file \`aclocal.m4' 78492e1cfeSmrg autoconf touch file \`configure' 79492e1cfeSmrg autoheader touch file \`config.h.in' 809e0146f7Smrg autom4te touch the output file, or create a stub one 81492e1cfeSmrg automake touch all \`Makefile.in' files 82492e1cfeSmrg bison create \`y.tab.[ch]', if possible, from existing .[ch] 83492e1cfeSmrg flex create \`lex.yy.c', if possible, from existing .c 84492e1cfeSmrg help2man touch the output file 85492e1cfeSmrg lex create \`lex.yy.c', if possible, from existing .c 86492e1cfeSmrg makeinfo touch the output file 87492e1cfeSmrg tar try tar, gnutar, gtar, then tar without non-portable flags 889e0146f7Smrg yacc create \`y.tab.[ch]', if possible, from existing .[ch] 899e0146f7Smrg 909e0146f7SmrgVersion suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and 919e0146f7Smrg\`g' are ignored when checking the name. 929e0146f7Smrg 939e0146f7SmrgSend bug reports to <bug-automake@gnu.org>." 949e0146f7Smrg exit $? 95492e1cfeSmrg ;; 96492e1cfeSmrg 97492e1cfeSmrg -v|--v|--ve|--ver|--vers|--versi|--versio|--version) 989e0146f7Smrg echo "missing $scriptversion (GNU Automake)" 999e0146f7Smrg exit $? 100492e1cfeSmrg ;; 101492e1cfeSmrg 102492e1cfeSmrg -*) 103492e1cfeSmrg echo 1>&2 "$0: Unknown \`$1' option" 104492e1cfeSmrg echo 1>&2 "Try \`$0 --help' for more information" 105492e1cfeSmrg exit 1 106492e1cfeSmrg ;; 107492e1cfeSmrg 1089e0146f7Smrgesac 1099e0146f7Smrg 1109e0146f7Smrg# normalize program name to check for. 1119e0146f7Smrgprogram=`echo "$1" | sed ' 1129e0146f7Smrg s/^gnu-//; t 1139e0146f7Smrg s/^gnu//; t 1149e0146f7Smrg s/^g//; t'` 1159e0146f7Smrg 1169e0146f7Smrg# Now exit if we have it, but it failed. Also exit now if we 1179e0146f7Smrg# don't have it and --version was passed (most likely to detect 1189e0146f7Smrg# the program). This is about non-GNU programs, so use $1 not 1199e0146f7Smrg# $program. 1209e0146f7Smrgcase $1 in 1219e0146f7Smrg lex*|yacc*) 1229e0146f7Smrg # Not GNU programs, they don't have --version. 1239e0146f7Smrg ;; 1249e0146f7Smrg 1259e0146f7Smrg tar*) 1269e0146f7Smrg if test -n "$run"; then 1279e0146f7Smrg echo 1>&2 "ERROR: \`tar' requires --run" 1289e0146f7Smrg exit 1 1299e0146f7Smrg elif test "x$2" = "x--version" || test "x$2" = "x--help"; then 1309e0146f7Smrg exit 1 1319e0146f7Smrg fi 1329e0146f7Smrg ;; 1339e0146f7Smrg 1349e0146f7Smrg *) 135492e1cfeSmrg if test -z "$run" && ($1 --version) > /dev/null 2>&1; then 136492e1cfeSmrg # We have it, but it failed. 137492e1cfeSmrg exit 1 1389e0146f7Smrg elif test "x$2" = "x--version" || test "x$2" = "x--help"; then 1399e0146f7Smrg # Could not run --version or --help. This is probably someone 1409e0146f7Smrg # running `$TOOL --version' or `$TOOL --help' to check whether 1419e0146f7Smrg # $TOOL exists and not knowing $TOOL uses missing. 1429e0146f7Smrg exit 1 143492e1cfeSmrg fi 1449e0146f7Smrg ;; 1459e0146f7Smrgesac 146492e1cfeSmrg 1479e0146f7Smrg# If it does not exist, or fails to run (possibly an outdated version), 1489e0146f7Smrg# try to emulate it. 1499e0146f7Smrgcase $program in 1509e0146f7Smrg aclocal*) 151492e1cfeSmrg echo 1>&2 "\ 1529e0146f7SmrgWARNING: \`$1' is $msg. You should only need it if 153492e1cfeSmrg you modified \`acinclude.m4' or \`${configure_ac}'. You might want 154492e1cfeSmrg to install the \`Automake' and \`Perl' packages. Grab them from 155492e1cfeSmrg any GNU archive site." 156492e1cfeSmrg touch aclocal.m4 157492e1cfeSmrg ;; 158492e1cfeSmrg 1599e0146f7Smrg autoconf*) 160492e1cfeSmrg echo 1>&2 "\ 1619e0146f7SmrgWARNING: \`$1' is $msg. You should only need it if 162492e1cfeSmrg you modified \`${configure_ac}'. You might want to install the 163492e1cfeSmrg \`Autoconf' and \`GNU m4' packages. Grab them from any GNU 164492e1cfeSmrg archive site." 165492e1cfeSmrg touch configure 166492e1cfeSmrg ;; 167492e1cfeSmrg 1689e0146f7Smrg autoheader*) 169492e1cfeSmrg echo 1>&2 "\ 1709e0146f7SmrgWARNING: \`$1' is $msg. You should only need it if 171492e1cfeSmrg you modified \`acconfig.h' or \`${configure_ac}'. You might want 172492e1cfeSmrg to install the \`Autoconf' and \`GNU m4' packages. Grab them 173492e1cfeSmrg from any GNU archive site." 174492e1cfeSmrg files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` 175492e1cfeSmrg test -z "$files" && files="config.h" 176492e1cfeSmrg touch_files= 177492e1cfeSmrg for f in $files; do 1789e0146f7Smrg case $f in 179492e1cfeSmrg *:*) touch_files="$touch_files "`echo "$f" | 180492e1cfeSmrg sed -e 's/^[^:]*://' -e 's/:.*//'`;; 181492e1cfeSmrg *) touch_files="$touch_files $f.in";; 182492e1cfeSmrg esac 183492e1cfeSmrg done 184492e1cfeSmrg touch $touch_files 185492e1cfeSmrg ;; 186492e1cfeSmrg 187492e1cfeSmrg automake*) 188492e1cfeSmrg echo 1>&2 "\ 1899e0146f7SmrgWARNING: \`$1' is $msg. You should only need it if 190492e1cfeSmrg you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. 191492e1cfeSmrg You might want to install the \`Automake' and \`Perl' packages. 192492e1cfeSmrg Grab them from any GNU archive site." 193492e1cfeSmrg find . -type f -name Makefile.am -print | 194492e1cfeSmrg sed 's/\.am$/.in/' | 195492e1cfeSmrg while read f; do touch "$f"; done 196492e1cfeSmrg ;; 197492e1cfeSmrg 1989e0146f7Smrg autom4te*) 199492e1cfeSmrg echo 1>&2 "\ 2009e0146f7SmrgWARNING: \`$1' is needed, but is $msg. 2019e0146f7Smrg You might have modified some files without having the 202492e1cfeSmrg proper tools for further handling them. 203492e1cfeSmrg You can get \`$1' as part of \`Autoconf' from any GNU 204492e1cfeSmrg archive site." 205492e1cfeSmrg 2069e0146f7Smrg file=`echo "$*" | sed -n "$sed_output"` 2079e0146f7Smrg test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` 208492e1cfeSmrg if test -f "$file"; then 209492e1cfeSmrg touch $file 210492e1cfeSmrg else 211492e1cfeSmrg test -z "$file" || exec >$file 212492e1cfeSmrg echo "#! /bin/sh" 213492e1cfeSmrg echo "# Created by GNU Automake missing as a replacement of" 214492e1cfeSmrg echo "# $ $@" 215492e1cfeSmrg echo "exit 0" 216492e1cfeSmrg chmod +x $file 217492e1cfeSmrg exit 1 218492e1cfeSmrg fi 219492e1cfeSmrg ;; 220492e1cfeSmrg 2219e0146f7Smrg bison*|yacc*) 222492e1cfeSmrg echo 1>&2 "\ 2239e0146f7SmrgWARNING: \`$1' $msg. You should only need it if 224492e1cfeSmrg you modified a \`.y' file. You may need the \`Bison' package 225492e1cfeSmrg in order for those modifications to take effect. You can get 226492e1cfeSmrg \`Bison' from any GNU archive site." 227492e1cfeSmrg rm -f y.tab.c y.tab.h 2289e0146f7Smrg if test $# -ne 1; then 229492e1cfeSmrg eval LASTARG="\${$#}" 2309e0146f7Smrg case $LASTARG in 231492e1cfeSmrg *.y) 232492e1cfeSmrg SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` 2339e0146f7Smrg if test -f "$SRCFILE"; then 234492e1cfeSmrg cp "$SRCFILE" y.tab.c 235492e1cfeSmrg fi 236492e1cfeSmrg SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` 2379e0146f7Smrg if test -f "$SRCFILE"; then 238492e1cfeSmrg cp "$SRCFILE" y.tab.h 239492e1cfeSmrg fi 240492e1cfeSmrg ;; 241492e1cfeSmrg esac 242492e1cfeSmrg fi 2439e0146f7Smrg if test ! -f y.tab.h; then 244492e1cfeSmrg echo >y.tab.h 245492e1cfeSmrg fi 2469e0146f7Smrg if test ! -f y.tab.c; then 247492e1cfeSmrg echo 'main() { return 0; }' >y.tab.c 248492e1cfeSmrg fi 249492e1cfeSmrg ;; 250492e1cfeSmrg 2519e0146f7Smrg lex*|flex*) 252492e1cfeSmrg echo 1>&2 "\ 2539e0146f7SmrgWARNING: \`$1' is $msg. You should only need it if 254492e1cfeSmrg you modified a \`.l' file. You may need the \`Flex' package 255492e1cfeSmrg in order for those modifications to take effect. You can get 256492e1cfeSmrg \`Flex' from any GNU archive site." 257492e1cfeSmrg rm -f lex.yy.c 2589e0146f7Smrg if test $# -ne 1; then 259492e1cfeSmrg eval LASTARG="\${$#}" 2609e0146f7Smrg case $LASTARG in 261492e1cfeSmrg *.l) 262492e1cfeSmrg SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` 2639e0146f7Smrg if test -f "$SRCFILE"; then 264492e1cfeSmrg cp "$SRCFILE" lex.yy.c 265492e1cfeSmrg fi 266492e1cfeSmrg ;; 267492e1cfeSmrg esac 268492e1cfeSmrg fi 2699e0146f7Smrg if test ! -f lex.yy.c; then 270492e1cfeSmrg echo 'main() { return 0; }' >lex.yy.c 271492e1cfeSmrg fi 272492e1cfeSmrg ;; 273492e1cfeSmrg 2749e0146f7Smrg help2man*) 275492e1cfeSmrg echo 1>&2 "\ 2769e0146f7SmrgWARNING: \`$1' is $msg. You should only need it if 277492e1cfeSmrg you modified a dependency of a manual page. You may need the 278492e1cfeSmrg \`Help2man' package in order for those modifications to take 279492e1cfeSmrg effect. You can get \`Help2man' from any GNU archive site." 280492e1cfeSmrg 2819e0146f7Smrg file=`echo "$*" | sed -n "$sed_output"` 2829e0146f7Smrg test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` 2839e0146f7Smrg if test -f "$file"; then 284492e1cfeSmrg touch $file 285492e1cfeSmrg else 286492e1cfeSmrg test -z "$file" || exec >$file 287492e1cfeSmrg echo ".ab help2man is required to generate this page" 2889e0146f7Smrg exit $? 289492e1cfeSmrg fi 290492e1cfeSmrg ;; 291492e1cfeSmrg 2929e0146f7Smrg makeinfo*) 293492e1cfeSmrg echo 1>&2 "\ 2949e0146f7SmrgWARNING: \`$1' is $msg. You should only need it if 295492e1cfeSmrg you modified a \`.texi' or \`.texinfo' file, or any other file 296492e1cfeSmrg indirectly affecting the aspect of the manual. The spurious 297492e1cfeSmrg call might also be the consequence of using a buggy \`make' (AIX, 298492e1cfeSmrg DU, IRIX). You might want to install the \`Texinfo' package or 299492e1cfeSmrg the \`GNU make' package. Grab either from any GNU archive site." 3009e0146f7Smrg # The file to touch is that specified with -o ... 3019e0146f7Smrg file=`echo "$*" | sed -n "$sed_output"` 3029e0146f7Smrg test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` 303492e1cfeSmrg if test -z "$file"; then 3049e0146f7Smrg # ... or it is the one specified with @setfilename ... 3059e0146f7Smrg infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` 3069e0146f7Smrg file=`sed -n ' 3079e0146f7Smrg /^@setfilename/{ 3089e0146f7Smrg s/.* \([^ ]*\) *$/\1/ 3099e0146f7Smrg p 3109e0146f7Smrg q 3119e0146f7Smrg }' $infile` 3129e0146f7Smrg # ... or it is derived from the source name (dir/f.texi becomes f.info) 3139e0146f7Smrg test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info 314492e1cfeSmrg fi 3159e0146f7Smrg # If the file does not exist, the user really needs makeinfo; 3169e0146f7Smrg # let's fail without touching anything. 3179e0146f7Smrg test -f $file || exit 1 318492e1cfeSmrg touch $file 319492e1cfeSmrg ;; 320492e1cfeSmrg 3219e0146f7Smrg tar*) 322492e1cfeSmrg shift 323492e1cfeSmrg 324492e1cfeSmrg # We have already tried tar in the generic part. 325492e1cfeSmrg # Look for gnutar/gtar before invocation to avoid ugly error 326492e1cfeSmrg # messages. 327492e1cfeSmrg if (gnutar --version > /dev/null 2>&1); then 328492e1cfeSmrg gnutar "$@" && exit 0 329492e1cfeSmrg fi 330492e1cfeSmrg if (gtar --version > /dev/null 2>&1); then 331492e1cfeSmrg gtar "$@" && exit 0 332492e1cfeSmrg fi 333492e1cfeSmrg firstarg="$1" 334492e1cfeSmrg if shift; then 3359e0146f7Smrg case $firstarg in 336492e1cfeSmrg *o*) 337492e1cfeSmrg firstarg=`echo "$firstarg" | sed s/o//` 338492e1cfeSmrg tar "$firstarg" "$@" && exit 0 339492e1cfeSmrg ;; 340492e1cfeSmrg esac 3419e0146f7Smrg case $firstarg in 342492e1cfeSmrg *h*) 343492e1cfeSmrg firstarg=`echo "$firstarg" | sed s/h//` 344492e1cfeSmrg tar "$firstarg" "$@" && exit 0 345492e1cfeSmrg ;; 346492e1cfeSmrg esac 347492e1cfeSmrg fi 348492e1cfeSmrg 349492e1cfeSmrg echo 1>&2 "\ 350492e1cfeSmrgWARNING: I can't seem to be able to run \`tar' with the given arguments. 351492e1cfeSmrg You may want to install GNU tar or Free paxutils, or check the 352492e1cfeSmrg command line arguments." 353492e1cfeSmrg exit 1 354492e1cfeSmrg ;; 355492e1cfeSmrg 356492e1cfeSmrg *) 357492e1cfeSmrg echo 1>&2 "\ 3589e0146f7SmrgWARNING: \`$1' is needed, and is $msg. 3599e0146f7Smrg You might have modified some files without having the 360492e1cfeSmrg proper tools for further handling them. Check the \`README' file, 361492e1cfeSmrg it often tells you about the needed prerequisites for installing 362492e1cfeSmrg this package. You may also peek at any GNU archive site, in case 363492e1cfeSmrg some other package would contain this missing \`$1' program." 364492e1cfeSmrg exit 1 365492e1cfeSmrg ;; 366492e1cfeSmrgesac 367492e1cfeSmrg 368492e1cfeSmrgexit 0 3699e0146f7Smrg 3709e0146f7Smrg# Local variables: 3719e0146f7Smrg# eval: (add-hook 'write-file-hooks 'time-stamp) 3729e0146f7Smrg# time-stamp-start: "scriptversion=" 3739e0146f7Smrg# time-stamp-format: "%:y-%02m-%02d.%02H" 3749e0146f7Smrg# time-stamp-time-zone: "UTC" 3759e0146f7Smrg# time-stamp-end: "; # UTC" 3769e0146f7Smrg# End: 377