missing revision 350952b9
1fd7d9bd3Smrg#! /bin/sh 2fd7d9bd3Smrg# Common stub for a few missing GNU programs while installing. 3350952b9Smrg 4350952b9Smrgscriptversion=2009-04-28.21; # UTC 5350952b9Smrg 6350952b9Smrg# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006, 7350952b9Smrg# 2008, 2009 Free Software Foundation, Inc. 8fd7d9bd3Smrg# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996. 9fd7d9bd3Smrg 10fd7d9bd3Smrg# This program is free software; you can redistribute it and/or modify 11fd7d9bd3Smrg# it under the terms of the GNU General Public License as published by 12fd7d9bd3Smrg# the Free Software Foundation; either version 2, or (at your option) 13fd7d9bd3Smrg# any later version. 14fd7d9bd3Smrg 15fd7d9bd3Smrg# This program is distributed in the hope that it will be useful, 16fd7d9bd3Smrg# but WITHOUT ANY WARRANTY; without even the implied warranty of 17fd7d9bd3Smrg# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18fd7d9bd3Smrg# GNU General Public License for more details. 19fd7d9bd3Smrg 20fd7d9bd3Smrg# You should have received a copy of the GNU General Public License 21350952b9Smrg# along with this program. If not, see <http://www.gnu.org/licenses/>. 22fd7d9bd3Smrg 23fd7d9bd3Smrg# As a special exception to the GNU General Public License, if you 24fd7d9bd3Smrg# distribute this file as part of a program that contains a 25fd7d9bd3Smrg# configuration script generated by Autoconf, you may include it under 26fd7d9bd3Smrg# the same distribution terms that you use for the rest of that program. 27fd7d9bd3Smrg 28fd7d9bd3Smrgif test $# -eq 0; then 29fd7d9bd3Smrg echo 1>&2 "Try \`$0 --help' for more information" 30fd7d9bd3Smrg exit 1 31fd7d9bd3Smrgfi 32fd7d9bd3Smrg 33fd7d9bd3Smrgrun=: 34350952b9Smrgsed_output='s/.* --output[ =]\([^ ]*\).*/\1/p' 35350952b9Smrgsed_minuso='s/.* -o \([^ ]*\).*/\1/p' 36fd7d9bd3Smrg 37fd7d9bd3Smrg# In the cases where this matters, `missing' is being run in the 38fd7d9bd3Smrg# srcdir already. 39fd7d9bd3Smrgif test -f configure.ac; then 40fd7d9bd3Smrg configure_ac=configure.ac 41fd7d9bd3Smrgelse 42fd7d9bd3Smrg configure_ac=configure.in 43fd7d9bd3Smrgfi 44fd7d9bd3Smrg 45350952b9Smrgmsg="missing on your system" 46350952b9Smrg 47350952b9Smrgcase $1 in 48fd7d9bd3Smrg--run) 49fd7d9bd3Smrg # Try to run requested program, and just exit if it succeeds. 50fd7d9bd3Smrg run= 51fd7d9bd3Smrg shift 52fd7d9bd3Smrg "$@" && exit 0 53350952b9Smrg # Exit code 63 means version mismatch. This often happens 54350952b9Smrg # when the user try to use an ancient version of a tool on 55350952b9Smrg # a file that requires a minimum version. In this case we 56350952b9Smrg # we should proceed has if the program had been absent, or 57350952b9Smrg # if --run hadn't been passed. 58350952b9Smrg if test $? = 63; then 59350952b9Smrg run=: 60350952b9Smrg msg="probably too old" 61350952b9Smrg fi 62fd7d9bd3Smrg ;; 63fd7d9bd3Smrg 64fd7d9bd3Smrg -h|--h|--he|--hel|--help) 65fd7d9bd3Smrg echo "\ 66fd7d9bd3Smrg$0 [OPTION]... PROGRAM [ARGUMENT]... 67fd7d9bd3Smrg 68fd7d9bd3SmrgHandle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an 69fd7d9bd3Smrgerror status if there is no known handling for PROGRAM. 70fd7d9bd3Smrg 71fd7d9bd3SmrgOptions: 72fd7d9bd3Smrg -h, --help display this help and exit 73fd7d9bd3Smrg -v, --version output version information and exit 74fd7d9bd3Smrg --run try to run the given command, and emulate it if it fails 75fd7d9bd3Smrg 76fd7d9bd3SmrgSupported PROGRAM values: 77fd7d9bd3Smrg aclocal touch file \`aclocal.m4' 78fd7d9bd3Smrg autoconf touch file \`configure' 79fd7d9bd3Smrg autoheader touch file \`config.h.in' 80350952b9Smrg autom4te touch the output file, or create a stub one 81fd7d9bd3Smrg automake touch all \`Makefile.in' files 82fd7d9bd3Smrg bison create \`y.tab.[ch]', if possible, from existing .[ch] 83fd7d9bd3Smrg flex create \`lex.yy.c', if possible, from existing .c 84fd7d9bd3Smrg help2man touch the output file 85fd7d9bd3Smrg lex create \`lex.yy.c', if possible, from existing .c 86fd7d9bd3Smrg makeinfo touch the output file 87fd7d9bd3Smrg tar try tar, gnutar, gtar, then tar without non-portable flags 88350952b9Smrg yacc create \`y.tab.[ch]', if possible, from existing .[ch] 89350952b9Smrg 90350952b9SmrgVersion suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and 91350952b9Smrg\`g' are ignored when checking the name. 92350952b9Smrg 93350952b9SmrgSend bug reports to <bug-automake@gnu.org>." 94350952b9Smrg exit $? 95fd7d9bd3Smrg ;; 96fd7d9bd3Smrg 97fd7d9bd3Smrg -v|--v|--ve|--ver|--vers|--versi|--versio|--version) 98350952b9Smrg echo "missing $scriptversion (GNU Automake)" 99350952b9Smrg exit $? 100fd7d9bd3Smrg ;; 101fd7d9bd3Smrg 102fd7d9bd3Smrg -*) 103fd7d9bd3Smrg echo 1>&2 "$0: Unknown \`$1' option" 104fd7d9bd3Smrg echo 1>&2 "Try \`$0 --help' for more information" 105fd7d9bd3Smrg exit 1 106fd7d9bd3Smrg ;; 107fd7d9bd3Smrg 108350952b9Smrgesac 109350952b9Smrg 110350952b9Smrg# normalize program name to check for. 111350952b9Smrgprogram=`echo "$1" | sed ' 112350952b9Smrg s/^gnu-//; t 113350952b9Smrg s/^gnu//; t 114350952b9Smrg s/^g//; t'` 115350952b9Smrg 116350952b9Smrg# Now exit if we have it, but it failed. Also exit now if we 117350952b9Smrg# don't have it and --version was passed (most likely to detect 118350952b9Smrg# the program). This is about non-GNU programs, so use $1 not 119350952b9Smrg# $program. 120350952b9Smrgcase $1 in 121350952b9Smrg lex*|yacc*) 122350952b9Smrg # Not GNU programs, they don't have --version. 123350952b9Smrg ;; 124350952b9Smrg 125350952b9Smrg tar*) 126350952b9Smrg if test -n "$run"; then 127350952b9Smrg echo 1>&2 "ERROR: \`tar' requires --run" 128350952b9Smrg exit 1 129350952b9Smrg elif test "x$2" = "x--version" || test "x$2" = "x--help"; then 130350952b9Smrg exit 1 131350952b9Smrg fi 132350952b9Smrg ;; 133350952b9Smrg 134350952b9Smrg *) 135fd7d9bd3Smrg if test -z "$run" && ($1 --version) > /dev/null 2>&1; then 136fd7d9bd3Smrg # We have it, but it failed. 137fd7d9bd3Smrg exit 1 138350952b9Smrg elif test "x$2" = "x--version" || test "x$2" = "x--help"; then 139350952b9Smrg # Could not run --version or --help. This is probably someone 140350952b9Smrg # running `$TOOL --version' or `$TOOL --help' to check whether 141350952b9Smrg # $TOOL exists and not knowing $TOOL uses missing. 142350952b9Smrg exit 1 143fd7d9bd3Smrg fi 144350952b9Smrg ;; 145350952b9Smrgesac 146fd7d9bd3Smrg 147350952b9Smrg# If it does not exist, or fails to run (possibly an outdated version), 148350952b9Smrg# try to emulate it. 149350952b9Smrgcase $program in 150350952b9Smrg aclocal*) 151fd7d9bd3Smrg echo 1>&2 "\ 152350952b9SmrgWARNING: \`$1' is $msg. You should only need it if 153fd7d9bd3Smrg you modified \`acinclude.m4' or \`${configure_ac}'. You might want 154fd7d9bd3Smrg to install the \`Automake' and \`Perl' packages. Grab them from 155fd7d9bd3Smrg any GNU archive site." 156fd7d9bd3Smrg touch aclocal.m4 157fd7d9bd3Smrg ;; 158fd7d9bd3Smrg 159350952b9Smrg autoconf*) 160fd7d9bd3Smrg echo 1>&2 "\ 161350952b9SmrgWARNING: \`$1' is $msg. You should only need it if 162fd7d9bd3Smrg you modified \`${configure_ac}'. You might want to install the 163fd7d9bd3Smrg \`Autoconf' and \`GNU m4' packages. Grab them from any GNU 164fd7d9bd3Smrg archive site." 165fd7d9bd3Smrg touch configure 166fd7d9bd3Smrg ;; 167fd7d9bd3Smrg 168350952b9Smrg autoheader*) 169fd7d9bd3Smrg echo 1>&2 "\ 170350952b9SmrgWARNING: \`$1' is $msg. You should only need it if 171fd7d9bd3Smrg you modified \`acconfig.h' or \`${configure_ac}'. You might want 172fd7d9bd3Smrg to install the \`Autoconf' and \`GNU m4' packages. Grab them 173fd7d9bd3Smrg from any GNU archive site." 174fd7d9bd3Smrg files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` 175fd7d9bd3Smrg test -z "$files" && files="config.h" 176fd7d9bd3Smrg touch_files= 177fd7d9bd3Smrg for f in $files; do 178350952b9Smrg case $f in 179fd7d9bd3Smrg *:*) touch_files="$touch_files "`echo "$f" | 180fd7d9bd3Smrg sed -e 's/^[^:]*://' -e 's/:.*//'`;; 181fd7d9bd3Smrg *) touch_files="$touch_files $f.in";; 182fd7d9bd3Smrg esac 183fd7d9bd3Smrg done 184fd7d9bd3Smrg touch $touch_files 185fd7d9bd3Smrg ;; 186fd7d9bd3Smrg 187fd7d9bd3Smrg automake*) 188fd7d9bd3Smrg echo 1>&2 "\ 189350952b9SmrgWARNING: \`$1' is $msg. You should only need it if 190fd7d9bd3Smrg you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. 191fd7d9bd3Smrg You might want to install the \`Automake' and \`Perl' packages. 192fd7d9bd3Smrg Grab them from any GNU archive site." 193fd7d9bd3Smrg find . -type f -name Makefile.am -print | 194fd7d9bd3Smrg sed 's/\.am$/.in/' | 195fd7d9bd3Smrg while read f; do touch "$f"; done 196fd7d9bd3Smrg ;; 197fd7d9bd3Smrg 198350952b9Smrg autom4te*) 199fd7d9bd3Smrg echo 1>&2 "\ 200350952b9SmrgWARNING: \`$1' is needed, but is $msg. 201350952b9Smrg You might have modified some files without having the 202fd7d9bd3Smrg proper tools for further handling them. 203fd7d9bd3Smrg You can get \`$1' as part of \`Autoconf' from any GNU 204fd7d9bd3Smrg archive site." 205fd7d9bd3Smrg 206350952b9Smrg file=`echo "$*" | sed -n "$sed_output"` 207350952b9Smrg test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` 208fd7d9bd3Smrg if test -f "$file"; then 209fd7d9bd3Smrg touch $file 210fd7d9bd3Smrg else 211fd7d9bd3Smrg test -z "$file" || exec >$file 212fd7d9bd3Smrg echo "#! /bin/sh" 213fd7d9bd3Smrg echo "# Created by GNU Automake missing as a replacement of" 214fd7d9bd3Smrg echo "# $ $@" 215fd7d9bd3Smrg echo "exit 0" 216fd7d9bd3Smrg chmod +x $file 217fd7d9bd3Smrg exit 1 218fd7d9bd3Smrg fi 219fd7d9bd3Smrg ;; 220fd7d9bd3Smrg 221350952b9Smrg bison*|yacc*) 222fd7d9bd3Smrg echo 1>&2 "\ 223350952b9SmrgWARNING: \`$1' $msg. You should only need it if 224fd7d9bd3Smrg you modified a \`.y' file. You may need the \`Bison' package 225fd7d9bd3Smrg in order for those modifications to take effect. You can get 226fd7d9bd3Smrg \`Bison' from any GNU archive site." 227fd7d9bd3Smrg rm -f y.tab.c y.tab.h 228350952b9Smrg if test $# -ne 1; then 229fd7d9bd3Smrg eval LASTARG="\${$#}" 230350952b9Smrg case $LASTARG in 231fd7d9bd3Smrg *.y) 232fd7d9bd3Smrg SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` 233350952b9Smrg if test -f "$SRCFILE"; then 234fd7d9bd3Smrg cp "$SRCFILE" y.tab.c 235fd7d9bd3Smrg fi 236fd7d9bd3Smrg SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` 237350952b9Smrg if test -f "$SRCFILE"; then 238fd7d9bd3Smrg cp "$SRCFILE" y.tab.h 239fd7d9bd3Smrg fi 240fd7d9bd3Smrg ;; 241fd7d9bd3Smrg esac 242fd7d9bd3Smrg fi 243350952b9Smrg if test ! -f y.tab.h; then 244fd7d9bd3Smrg echo >y.tab.h 245fd7d9bd3Smrg fi 246350952b9Smrg if test ! -f y.tab.c; then 247fd7d9bd3Smrg echo 'main() { return 0; }' >y.tab.c 248fd7d9bd3Smrg fi 249fd7d9bd3Smrg ;; 250fd7d9bd3Smrg 251350952b9Smrg lex*|flex*) 252fd7d9bd3Smrg echo 1>&2 "\ 253350952b9SmrgWARNING: \`$1' is $msg. You should only need it if 254fd7d9bd3Smrg you modified a \`.l' file. You may need the \`Flex' package 255fd7d9bd3Smrg in order for those modifications to take effect. You can get 256fd7d9bd3Smrg \`Flex' from any GNU archive site." 257fd7d9bd3Smrg rm -f lex.yy.c 258350952b9Smrg if test $# -ne 1; then 259fd7d9bd3Smrg eval LASTARG="\${$#}" 260350952b9Smrg case $LASTARG in 261fd7d9bd3Smrg *.l) 262fd7d9bd3Smrg SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` 263350952b9Smrg if test -f "$SRCFILE"; then 264fd7d9bd3Smrg cp "$SRCFILE" lex.yy.c 265fd7d9bd3Smrg fi 266fd7d9bd3Smrg ;; 267fd7d9bd3Smrg esac 268fd7d9bd3Smrg fi 269350952b9Smrg if test ! -f lex.yy.c; then 270fd7d9bd3Smrg echo 'main() { return 0; }' >lex.yy.c 271fd7d9bd3Smrg fi 272fd7d9bd3Smrg ;; 273fd7d9bd3Smrg 274350952b9Smrg help2man*) 275fd7d9bd3Smrg echo 1>&2 "\ 276350952b9SmrgWARNING: \`$1' is $msg. You should only need it if 277fd7d9bd3Smrg you modified a dependency of a manual page. You may need the 278fd7d9bd3Smrg \`Help2man' package in order for those modifications to take 279fd7d9bd3Smrg effect. You can get \`Help2man' from any GNU archive site." 280fd7d9bd3Smrg 281350952b9Smrg file=`echo "$*" | sed -n "$sed_output"` 282350952b9Smrg test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` 283350952b9Smrg if test -f "$file"; then 284fd7d9bd3Smrg touch $file 285fd7d9bd3Smrg else 286fd7d9bd3Smrg test -z "$file" || exec >$file 287fd7d9bd3Smrg echo ".ab help2man is required to generate this page" 288350952b9Smrg exit $? 289fd7d9bd3Smrg fi 290fd7d9bd3Smrg ;; 291fd7d9bd3Smrg 292350952b9Smrg makeinfo*) 293fd7d9bd3Smrg echo 1>&2 "\ 294350952b9SmrgWARNING: \`$1' is $msg. You should only need it if 295fd7d9bd3Smrg you modified a \`.texi' or \`.texinfo' file, or any other file 296fd7d9bd3Smrg indirectly affecting the aspect of the manual. The spurious 297fd7d9bd3Smrg call might also be the consequence of using a buggy \`make' (AIX, 298fd7d9bd3Smrg DU, IRIX). You might want to install the \`Texinfo' package or 299fd7d9bd3Smrg the \`GNU make' package. Grab either from any GNU archive site." 300350952b9Smrg # The file to touch is that specified with -o ... 301350952b9Smrg file=`echo "$*" | sed -n "$sed_output"` 302350952b9Smrg test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` 303fd7d9bd3Smrg if test -z "$file"; then 304350952b9Smrg # ... or it is the one specified with @setfilename ... 305350952b9Smrg infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` 306350952b9Smrg file=`sed -n ' 307350952b9Smrg /^@setfilename/{ 308350952b9Smrg s/.* \([^ ]*\) *$/\1/ 309350952b9Smrg p 310350952b9Smrg q 311350952b9Smrg }' $infile` 312350952b9Smrg # ... or it is derived from the source name (dir/f.texi becomes f.info) 313350952b9Smrg test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info 314fd7d9bd3Smrg fi 315350952b9Smrg # If the file does not exist, the user really needs makeinfo; 316350952b9Smrg # let's fail without touching anything. 317350952b9Smrg test -f $file || exit 1 318fd7d9bd3Smrg touch $file 319fd7d9bd3Smrg ;; 320fd7d9bd3Smrg 321350952b9Smrg tar*) 322fd7d9bd3Smrg shift 323fd7d9bd3Smrg 324fd7d9bd3Smrg # We have already tried tar in the generic part. 325fd7d9bd3Smrg # Look for gnutar/gtar before invocation to avoid ugly error 326fd7d9bd3Smrg # messages. 327fd7d9bd3Smrg if (gnutar --version > /dev/null 2>&1); then 328fd7d9bd3Smrg gnutar "$@" && exit 0 329fd7d9bd3Smrg fi 330fd7d9bd3Smrg if (gtar --version > /dev/null 2>&1); then 331fd7d9bd3Smrg gtar "$@" && exit 0 332fd7d9bd3Smrg fi 333fd7d9bd3Smrg firstarg="$1" 334fd7d9bd3Smrg if shift; then 335350952b9Smrg case $firstarg in 336fd7d9bd3Smrg *o*) 337fd7d9bd3Smrg firstarg=`echo "$firstarg" | sed s/o//` 338fd7d9bd3Smrg tar "$firstarg" "$@" && exit 0 339fd7d9bd3Smrg ;; 340fd7d9bd3Smrg esac 341350952b9Smrg case $firstarg in 342fd7d9bd3Smrg *h*) 343fd7d9bd3Smrg firstarg=`echo "$firstarg" | sed s/h//` 344fd7d9bd3Smrg tar "$firstarg" "$@" && exit 0 345fd7d9bd3Smrg ;; 346fd7d9bd3Smrg esac 347fd7d9bd3Smrg fi 348fd7d9bd3Smrg 349fd7d9bd3Smrg echo 1>&2 "\ 350fd7d9bd3SmrgWARNING: I can't seem to be able to run \`tar' with the given arguments. 351fd7d9bd3Smrg You may want to install GNU tar or Free paxutils, or check the 352fd7d9bd3Smrg command line arguments." 353fd7d9bd3Smrg exit 1 354fd7d9bd3Smrg ;; 355fd7d9bd3Smrg 356fd7d9bd3Smrg *) 357fd7d9bd3Smrg echo 1>&2 "\ 358350952b9SmrgWARNING: \`$1' is needed, and is $msg. 359350952b9Smrg You might have modified some files without having the 360fd7d9bd3Smrg proper tools for further handling them. Check the \`README' file, 361fd7d9bd3Smrg it often tells you about the needed prerequisites for installing 362fd7d9bd3Smrg this package. You may also peek at any GNU archive site, in case 363fd7d9bd3Smrg some other package would contain this missing \`$1' program." 364fd7d9bd3Smrg exit 1 365fd7d9bd3Smrg ;; 366fd7d9bd3Smrgesac 367fd7d9bd3Smrg 368fd7d9bd3Smrgexit 0 369350952b9Smrg 370350952b9Smrg# Local variables: 371350952b9Smrg# eval: (add-hook 'write-file-hooks 'time-stamp) 372350952b9Smrg# time-stamp-start: "scriptversion=" 373350952b9Smrg# time-stamp-format: "%:y-%02m-%02d.%02H" 374350952b9Smrg# time-stamp-time-zone: "UTC" 375350952b9Smrg# time-stamp-end: "; # UTC" 376350952b9Smrg# End: 377