missing revision d7accfef
197e8a2e8Smrg#! /bin/sh 297e8a2e8Smrg# Common stub for a few missing GNU programs while installing. 3d7accfefSmrg 4d7accfefSmrgscriptversion=2009-04-28.21; # UTC 5d7accfefSmrg 6d7accfefSmrg# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006, 7d7accfefSmrg# 2008, 2009 Free Software Foundation, Inc. 897e8a2e8Smrg# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996. 997e8a2e8Smrg 1097e8a2e8Smrg# This program is free software; you can redistribute it and/or modify 1197e8a2e8Smrg# it under the terms of the GNU General Public License as published by 1297e8a2e8Smrg# the Free Software Foundation; either version 2, or (at your option) 1397e8a2e8Smrg# any later version. 1497e8a2e8Smrg 1597e8a2e8Smrg# This program is distributed in the hope that it will be useful, 1697e8a2e8Smrg# but WITHOUT ANY WARRANTY; without even the implied warranty of 1797e8a2e8Smrg# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 1897e8a2e8Smrg# GNU General Public License for more details. 1997e8a2e8Smrg 2097e8a2e8Smrg# You should have received a copy of the GNU General Public License 21d7accfefSmrg# along with this program. If not, see <http://www.gnu.org/licenses/>. 2297e8a2e8Smrg 2397e8a2e8Smrg# As a special exception to the GNU General Public License, if you 2497e8a2e8Smrg# distribute this file as part of a program that contains a 2597e8a2e8Smrg# configuration script generated by Autoconf, you may include it under 2697e8a2e8Smrg# the same distribution terms that you use for the rest of that program. 2797e8a2e8Smrg 2897e8a2e8Smrgif test $# -eq 0; then 2997e8a2e8Smrg echo 1>&2 "Try \`$0 --help' for more information" 3097e8a2e8Smrg exit 1 3197e8a2e8Smrgfi 3297e8a2e8Smrg 3397e8a2e8Smrgrun=: 34d7accfefSmrgsed_output='s/.* --output[ =]\([^ ]*\).*/\1/p' 35d7accfefSmrgsed_minuso='s/.* -o \([^ ]*\).*/\1/p' 3697e8a2e8Smrg 3797e8a2e8Smrg# In the cases where this matters, `missing' is being run in the 3897e8a2e8Smrg# srcdir already. 3997e8a2e8Smrgif test -f configure.ac; then 4097e8a2e8Smrg configure_ac=configure.ac 4197e8a2e8Smrgelse 4297e8a2e8Smrg configure_ac=configure.in 4397e8a2e8Smrgfi 4497e8a2e8Smrg 45d7accfefSmrgmsg="missing on your system" 46d7accfefSmrg 47d7accfefSmrgcase $1 in 4897e8a2e8Smrg--run) 4997e8a2e8Smrg # Try to run requested program, and just exit if it succeeds. 5097e8a2e8Smrg run= 5197e8a2e8Smrg shift 5297e8a2e8Smrg "$@" && exit 0 53d7accfefSmrg # Exit code 63 means version mismatch. This often happens 54d7accfefSmrg # when the user try to use an ancient version of a tool on 55d7accfefSmrg # a file that requires a minimum version. In this case we 56d7accfefSmrg # we should proceed has if the program had been absent, or 57d7accfefSmrg # if --run hadn't been passed. 58d7accfefSmrg if test $? = 63; then 59d7accfefSmrg run=: 60d7accfefSmrg msg="probably too old" 61d7accfefSmrg fi 6297e8a2e8Smrg ;; 6397e8a2e8Smrg 6497e8a2e8Smrg -h|--h|--he|--hel|--help) 6597e8a2e8Smrg echo "\ 6697e8a2e8Smrg$0 [OPTION]... PROGRAM [ARGUMENT]... 6797e8a2e8Smrg 6897e8a2e8SmrgHandle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an 6997e8a2e8Smrgerror status if there is no known handling for PROGRAM. 7097e8a2e8Smrg 7197e8a2e8SmrgOptions: 7297e8a2e8Smrg -h, --help display this help and exit 7397e8a2e8Smrg -v, --version output version information and exit 7497e8a2e8Smrg --run try to run the given command, and emulate it if it fails 7597e8a2e8Smrg 7697e8a2e8SmrgSupported PROGRAM values: 7797e8a2e8Smrg aclocal touch file \`aclocal.m4' 7897e8a2e8Smrg autoconf touch file \`configure' 7997e8a2e8Smrg autoheader touch file \`config.h.in' 80d7accfefSmrg autom4te touch the output file, or create a stub one 8197e8a2e8Smrg automake touch all \`Makefile.in' files 8297e8a2e8Smrg bison create \`y.tab.[ch]', if possible, from existing .[ch] 8397e8a2e8Smrg flex create \`lex.yy.c', if possible, from existing .c 8497e8a2e8Smrg help2man touch the output file 8597e8a2e8Smrg lex create \`lex.yy.c', if possible, from existing .c 8697e8a2e8Smrg makeinfo touch the output file 8797e8a2e8Smrg tar try tar, gnutar, gtar, then tar without non-portable flags 88d7accfefSmrg yacc create \`y.tab.[ch]', if possible, from existing .[ch] 89d7accfefSmrg 90d7accfefSmrgVersion suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and 91d7accfefSmrg\`g' are ignored when checking the name. 92d7accfefSmrg 93d7accfefSmrgSend bug reports to <bug-automake@gnu.org>." 94d7accfefSmrg exit $? 9597e8a2e8Smrg ;; 9697e8a2e8Smrg 9797e8a2e8Smrg -v|--v|--ve|--ver|--vers|--versi|--versio|--version) 98d7accfefSmrg echo "missing $scriptversion (GNU Automake)" 99d7accfefSmrg exit $? 10097e8a2e8Smrg ;; 10197e8a2e8Smrg 10297e8a2e8Smrg -*) 10397e8a2e8Smrg echo 1>&2 "$0: Unknown \`$1' option" 10497e8a2e8Smrg echo 1>&2 "Try \`$0 --help' for more information" 10597e8a2e8Smrg exit 1 10697e8a2e8Smrg ;; 10797e8a2e8Smrg 108d7accfefSmrgesac 109d7accfefSmrg 110d7accfefSmrg# normalize program name to check for. 111d7accfefSmrgprogram=`echo "$1" | sed ' 112d7accfefSmrg s/^gnu-//; t 113d7accfefSmrg s/^gnu//; t 114d7accfefSmrg s/^g//; t'` 115d7accfefSmrg 116d7accfefSmrg# Now exit if we have it, but it failed. Also exit now if we 117d7accfefSmrg# don't have it and --version was passed (most likely to detect 118d7accfefSmrg# the program). This is about non-GNU programs, so use $1 not 119d7accfefSmrg# $program. 120d7accfefSmrgcase $1 in 121d7accfefSmrg lex*|yacc*) 122d7accfefSmrg # Not GNU programs, they don't have --version. 123d7accfefSmrg ;; 124d7accfefSmrg 125d7accfefSmrg tar*) 126d7accfefSmrg if test -n "$run"; then 127d7accfefSmrg echo 1>&2 "ERROR: \`tar' requires --run" 128d7accfefSmrg exit 1 129d7accfefSmrg elif test "x$2" = "x--version" || test "x$2" = "x--help"; then 130d7accfefSmrg exit 1 131d7accfefSmrg fi 132d7accfefSmrg ;; 133d7accfefSmrg 134d7accfefSmrg *) 13597e8a2e8Smrg if test -z "$run" && ($1 --version) > /dev/null 2>&1; then 13697e8a2e8Smrg # We have it, but it failed. 13797e8a2e8Smrg exit 1 138d7accfefSmrg elif test "x$2" = "x--version" || test "x$2" = "x--help"; then 139d7accfefSmrg # Could not run --version or --help. This is probably someone 140d7accfefSmrg # running `$TOOL --version' or `$TOOL --help' to check whether 141d7accfefSmrg # $TOOL exists and not knowing $TOOL uses missing. 142d7accfefSmrg exit 1 14397e8a2e8Smrg fi 144d7accfefSmrg ;; 145d7accfefSmrgesac 14697e8a2e8Smrg 147d7accfefSmrg# If it does not exist, or fails to run (possibly an outdated version), 148d7accfefSmrg# try to emulate it. 149d7accfefSmrgcase $program in 150d7accfefSmrg aclocal*) 15197e8a2e8Smrg echo 1>&2 "\ 152d7accfefSmrgWARNING: \`$1' is $msg. You should only need it if 15397e8a2e8Smrg you modified \`acinclude.m4' or \`${configure_ac}'. You might want 15497e8a2e8Smrg to install the \`Automake' and \`Perl' packages. Grab them from 15597e8a2e8Smrg any GNU archive site." 15697e8a2e8Smrg touch aclocal.m4 15797e8a2e8Smrg ;; 15897e8a2e8Smrg 159d7accfefSmrg autoconf*) 16097e8a2e8Smrg echo 1>&2 "\ 161d7accfefSmrgWARNING: \`$1' is $msg. You should only need it if 16297e8a2e8Smrg you modified \`${configure_ac}'. You might want to install the 16397e8a2e8Smrg \`Autoconf' and \`GNU m4' packages. Grab them from any GNU 16497e8a2e8Smrg archive site." 16597e8a2e8Smrg touch configure 16697e8a2e8Smrg ;; 16797e8a2e8Smrg 168d7accfefSmrg autoheader*) 16997e8a2e8Smrg echo 1>&2 "\ 170d7accfefSmrgWARNING: \`$1' is $msg. You should only need it if 17197e8a2e8Smrg you modified \`acconfig.h' or \`${configure_ac}'. You might want 17297e8a2e8Smrg to install the \`Autoconf' and \`GNU m4' packages. Grab them 17397e8a2e8Smrg from any GNU archive site." 17497e8a2e8Smrg files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` 17597e8a2e8Smrg test -z "$files" && files="config.h" 17697e8a2e8Smrg touch_files= 17797e8a2e8Smrg for f in $files; do 178d7accfefSmrg case $f in 17997e8a2e8Smrg *:*) touch_files="$touch_files "`echo "$f" | 18097e8a2e8Smrg sed -e 's/^[^:]*://' -e 's/:.*//'`;; 18197e8a2e8Smrg *) touch_files="$touch_files $f.in";; 18297e8a2e8Smrg esac 18397e8a2e8Smrg done 18497e8a2e8Smrg touch $touch_files 18597e8a2e8Smrg ;; 18697e8a2e8Smrg 18797e8a2e8Smrg automake*) 18897e8a2e8Smrg echo 1>&2 "\ 189d7accfefSmrgWARNING: \`$1' is $msg. You should only need it if 19097e8a2e8Smrg you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. 19197e8a2e8Smrg You might want to install the \`Automake' and \`Perl' packages. 19297e8a2e8Smrg Grab them from any GNU archive site." 19397e8a2e8Smrg find . -type f -name Makefile.am -print | 19497e8a2e8Smrg sed 's/\.am$/.in/' | 19597e8a2e8Smrg while read f; do touch "$f"; done 19697e8a2e8Smrg ;; 19797e8a2e8Smrg 198d7accfefSmrg autom4te*) 19997e8a2e8Smrg echo 1>&2 "\ 200d7accfefSmrgWARNING: \`$1' is needed, but is $msg. 201d7accfefSmrg You might have modified some files without having the 20297e8a2e8Smrg proper tools for further handling them. 20397e8a2e8Smrg You can get \`$1' as part of \`Autoconf' from any GNU 20497e8a2e8Smrg archive site." 20597e8a2e8Smrg 206d7accfefSmrg file=`echo "$*" | sed -n "$sed_output"` 207d7accfefSmrg test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` 20897e8a2e8Smrg if test -f "$file"; then 20997e8a2e8Smrg touch $file 21097e8a2e8Smrg else 21197e8a2e8Smrg test -z "$file" || exec >$file 21297e8a2e8Smrg echo "#! /bin/sh" 21397e8a2e8Smrg echo "# Created by GNU Automake missing as a replacement of" 21497e8a2e8Smrg echo "# $ $@" 21597e8a2e8Smrg echo "exit 0" 21697e8a2e8Smrg chmod +x $file 21797e8a2e8Smrg exit 1 21897e8a2e8Smrg fi 21997e8a2e8Smrg ;; 22097e8a2e8Smrg 221d7accfefSmrg bison*|yacc*) 22297e8a2e8Smrg echo 1>&2 "\ 223d7accfefSmrgWARNING: \`$1' $msg. You should only need it if 22497e8a2e8Smrg you modified a \`.y' file. You may need the \`Bison' package 22597e8a2e8Smrg in order for those modifications to take effect. You can get 22697e8a2e8Smrg \`Bison' from any GNU archive site." 22797e8a2e8Smrg rm -f y.tab.c y.tab.h 228d7accfefSmrg if test $# -ne 1; then 22997e8a2e8Smrg eval LASTARG="\${$#}" 230d7accfefSmrg case $LASTARG in 23197e8a2e8Smrg *.y) 23297e8a2e8Smrg SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` 233d7accfefSmrg if test -f "$SRCFILE"; then 23497e8a2e8Smrg cp "$SRCFILE" y.tab.c 23597e8a2e8Smrg fi 23697e8a2e8Smrg SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` 237d7accfefSmrg if test -f "$SRCFILE"; then 23897e8a2e8Smrg cp "$SRCFILE" y.tab.h 23997e8a2e8Smrg fi 24097e8a2e8Smrg ;; 24197e8a2e8Smrg esac 24297e8a2e8Smrg fi 243d7accfefSmrg if test ! -f y.tab.h; then 24497e8a2e8Smrg echo >y.tab.h 24597e8a2e8Smrg fi 246d7accfefSmrg if test ! -f y.tab.c; then 24797e8a2e8Smrg echo 'main() { return 0; }' >y.tab.c 24897e8a2e8Smrg fi 24997e8a2e8Smrg ;; 25097e8a2e8Smrg 251d7accfefSmrg lex*|flex*) 25297e8a2e8Smrg echo 1>&2 "\ 253d7accfefSmrgWARNING: \`$1' is $msg. You should only need it if 25497e8a2e8Smrg you modified a \`.l' file. You may need the \`Flex' package 25597e8a2e8Smrg in order for those modifications to take effect. You can get 25697e8a2e8Smrg \`Flex' from any GNU archive site." 25797e8a2e8Smrg rm -f lex.yy.c 258d7accfefSmrg if test $# -ne 1; then 25997e8a2e8Smrg eval LASTARG="\${$#}" 260d7accfefSmrg case $LASTARG in 26197e8a2e8Smrg *.l) 26297e8a2e8Smrg SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` 263d7accfefSmrg if test -f "$SRCFILE"; then 26497e8a2e8Smrg cp "$SRCFILE" lex.yy.c 26597e8a2e8Smrg fi 26697e8a2e8Smrg ;; 26797e8a2e8Smrg esac 26897e8a2e8Smrg fi 269d7accfefSmrg if test ! -f lex.yy.c; then 27097e8a2e8Smrg echo 'main() { return 0; }' >lex.yy.c 27197e8a2e8Smrg fi 27297e8a2e8Smrg ;; 27397e8a2e8Smrg 274d7accfefSmrg help2man*) 27597e8a2e8Smrg echo 1>&2 "\ 276d7accfefSmrgWARNING: \`$1' is $msg. You should only need it if 27797e8a2e8Smrg you modified a dependency of a manual page. You may need the 27897e8a2e8Smrg \`Help2man' package in order for those modifications to take 27997e8a2e8Smrg effect. You can get \`Help2man' from any GNU archive site." 28097e8a2e8Smrg 281d7accfefSmrg file=`echo "$*" | sed -n "$sed_output"` 282d7accfefSmrg test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` 283d7accfefSmrg if test -f "$file"; then 28497e8a2e8Smrg touch $file 28597e8a2e8Smrg else 28697e8a2e8Smrg test -z "$file" || exec >$file 28797e8a2e8Smrg echo ".ab help2man is required to generate this page" 288d7accfefSmrg exit $? 28997e8a2e8Smrg fi 29097e8a2e8Smrg ;; 29197e8a2e8Smrg 292d7accfefSmrg makeinfo*) 29397e8a2e8Smrg echo 1>&2 "\ 294d7accfefSmrgWARNING: \`$1' is $msg. You should only need it if 29597e8a2e8Smrg you modified a \`.texi' or \`.texinfo' file, or any other file 29697e8a2e8Smrg indirectly affecting the aspect of the manual. The spurious 29797e8a2e8Smrg call might also be the consequence of using a buggy \`make' (AIX, 29897e8a2e8Smrg DU, IRIX). You might want to install the \`Texinfo' package or 29997e8a2e8Smrg the \`GNU make' package. Grab either from any GNU archive site." 300d7accfefSmrg # The file to touch is that specified with -o ... 301d7accfefSmrg file=`echo "$*" | sed -n "$sed_output"` 302d7accfefSmrg test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` 30397e8a2e8Smrg if test -z "$file"; then 304d7accfefSmrg # ... or it is the one specified with @setfilename ... 305d7accfefSmrg infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` 306d7accfefSmrg file=`sed -n ' 307d7accfefSmrg /^@setfilename/{ 308d7accfefSmrg s/.* \([^ ]*\) *$/\1/ 309d7accfefSmrg p 310d7accfefSmrg q 311d7accfefSmrg }' $infile` 312d7accfefSmrg # ... or it is derived from the source name (dir/f.texi becomes f.info) 313d7accfefSmrg test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info 31497e8a2e8Smrg fi 315d7accfefSmrg # If the file does not exist, the user really needs makeinfo; 316d7accfefSmrg # let's fail without touching anything. 317d7accfefSmrg test -f $file || exit 1 31897e8a2e8Smrg touch $file 31997e8a2e8Smrg ;; 32097e8a2e8Smrg 321d7accfefSmrg tar*) 32297e8a2e8Smrg shift 32397e8a2e8Smrg 32497e8a2e8Smrg # We have already tried tar in the generic part. 32597e8a2e8Smrg # Look for gnutar/gtar before invocation to avoid ugly error 32697e8a2e8Smrg # messages. 32797e8a2e8Smrg if (gnutar --version > /dev/null 2>&1); then 32897e8a2e8Smrg gnutar "$@" && exit 0 32997e8a2e8Smrg fi 33097e8a2e8Smrg if (gtar --version > /dev/null 2>&1); then 33197e8a2e8Smrg gtar "$@" && exit 0 33297e8a2e8Smrg fi 33397e8a2e8Smrg firstarg="$1" 33497e8a2e8Smrg if shift; then 335d7accfefSmrg case $firstarg in 33697e8a2e8Smrg *o*) 33797e8a2e8Smrg firstarg=`echo "$firstarg" | sed s/o//` 33897e8a2e8Smrg tar "$firstarg" "$@" && exit 0 33997e8a2e8Smrg ;; 34097e8a2e8Smrg esac 341d7accfefSmrg case $firstarg in 34297e8a2e8Smrg *h*) 34397e8a2e8Smrg firstarg=`echo "$firstarg" | sed s/h//` 34497e8a2e8Smrg tar "$firstarg" "$@" && exit 0 34597e8a2e8Smrg ;; 34697e8a2e8Smrg esac 34797e8a2e8Smrg fi 34897e8a2e8Smrg 34997e8a2e8Smrg echo 1>&2 "\ 35097e8a2e8SmrgWARNING: I can't seem to be able to run \`tar' with the given arguments. 35197e8a2e8Smrg You may want to install GNU tar or Free paxutils, or check the 35297e8a2e8Smrg command line arguments." 35397e8a2e8Smrg exit 1 35497e8a2e8Smrg ;; 35597e8a2e8Smrg 35697e8a2e8Smrg *) 35797e8a2e8Smrg echo 1>&2 "\ 358d7accfefSmrgWARNING: \`$1' is needed, and is $msg. 359d7accfefSmrg You might have modified some files without having the 36097e8a2e8Smrg proper tools for further handling them. Check the \`README' file, 36197e8a2e8Smrg it often tells you about the needed prerequisites for installing 36297e8a2e8Smrg this package. You may also peek at any GNU archive site, in case 36397e8a2e8Smrg some other package would contain this missing \`$1' program." 36497e8a2e8Smrg exit 1 36597e8a2e8Smrg ;; 36697e8a2e8Smrgesac 36797e8a2e8Smrg 36897e8a2e8Smrgexit 0 369d7accfefSmrg 370d7accfefSmrg# Local variables: 371d7accfefSmrg# eval: (add-hook 'write-file-hooks 'time-stamp) 372d7accfefSmrg# time-stamp-start: "scriptversion=" 373d7accfefSmrg# time-stamp-format: "%:y-%02m-%02d.%02H" 374d7accfefSmrg# time-stamp-time-zone: "UTC" 375d7accfefSmrg# time-stamp-end: "; # UTC" 376d7accfefSmrg# End: 377