140dd5a57Smrg#! /bin/sh 240dd5a57Smrg# Common stub for a few missing GNU programs while installing. 340dd5a57Smrg 440dd5a57Smrgscriptversion=2009-04-28.21; # UTC 540dd5a57Smrg 640dd5a57Smrg# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006, 740dd5a57Smrg# 2008, 2009 Free Software Foundation, Inc. 840dd5a57Smrg# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996. 940dd5a57Smrg 1040dd5a57Smrg# This program is free software; you can redistribute it and/or modify 1140dd5a57Smrg# it under the terms of the GNU General Public License as published by 1240dd5a57Smrg# the Free Software Foundation; either version 2, or (at your option) 1340dd5a57Smrg# any later version. 1440dd5a57Smrg 1540dd5a57Smrg# This program is distributed in the hope that it will be useful, 1640dd5a57Smrg# but WITHOUT ANY WARRANTY; without even the implied warranty of 1740dd5a57Smrg# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 1840dd5a57Smrg# GNU General Public License for more details. 1940dd5a57Smrg 2040dd5a57Smrg# You should have received a copy of the GNU General Public License 2140dd5a57Smrg# along with this program. If not, see <http://www.gnu.org/licenses/>. 2240dd5a57Smrg 2340dd5a57Smrg# As a special exception to the GNU General Public License, if you 2440dd5a57Smrg# distribute this file as part of a program that contains a 2540dd5a57Smrg# configuration script generated by Autoconf, you may include it under 2640dd5a57Smrg# the same distribution terms that you use for the rest of that program. 2740dd5a57Smrg 2840dd5a57Smrgif test $# -eq 0; then 2940dd5a57Smrg echo 1>&2 "Try \`$0 --help' for more information" 3040dd5a57Smrg exit 1 3140dd5a57Smrgfi 3240dd5a57Smrg 3340dd5a57Smrgrun=: 3440dd5a57Smrgsed_output='s/.* --output[ =]\([^ ]*\).*/\1/p' 3540dd5a57Smrgsed_minuso='s/.* -o \([^ ]*\).*/\1/p' 3640dd5a57Smrg 3740dd5a57Smrg# In the cases where this matters, `missing' is being run in the 3840dd5a57Smrg# srcdir already. 3940dd5a57Smrgif test -f configure.ac; then 4040dd5a57Smrg configure_ac=configure.ac 4140dd5a57Smrgelse 4240dd5a57Smrg configure_ac=configure.in 4340dd5a57Smrgfi 4440dd5a57Smrg 4540dd5a57Smrgmsg="missing on your system" 4640dd5a57Smrg 4740dd5a57Smrgcase $1 in 4840dd5a57Smrg--run) 4940dd5a57Smrg # Try to run requested program, and just exit if it succeeds. 5040dd5a57Smrg run= 5140dd5a57Smrg shift 5240dd5a57Smrg "$@" && exit 0 5340dd5a57Smrg # Exit code 63 means version mismatch. This often happens 5440dd5a57Smrg # when the user try to use an ancient version of a tool on 5540dd5a57Smrg # a file that requires a minimum version. In this case we 5640dd5a57Smrg # we should proceed has if the program had been absent, or 5740dd5a57Smrg # if --run hadn't been passed. 5840dd5a57Smrg if test $? = 63; then 5940dd5a57Smrg run=: 6040dd5a57Smrg msg="probably too old" 6140dd5a57Smrg fi 6240dd5a57Smrg ;; 6340dd5a57Smrg 6440dd5a57Smrg -h|--h|--he|--hel|--help) 6540dd5a57Smrg echo "\ 6640dd5a57Smrg$0 [OPTION]... PROGRAM [ARGUMENT]... 6740dd5a57Smrg 6840dd5a57SmrgHandle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an 6940dd5a57Smrgerror status if there is no known handling for PROGRAM. 7040dd5a57Smrg 7140dd5a57SmrgOptions: 7240dd5a57Smrg -h, --help display this help and exit 7340dd5a57Smrg -v, --version output version information and exit 7440dd5a57Smrg --run try to run the given command, and emulate it if it fails 7540dd5a57Smrg 7640dd5a57SmrgSupported PROGRAM values: 7740dd5a57Smrg aclocal touch file \`aclocal.m4' 7840dd5a57Smrg autoconf touch file \`configure' 7940dd5a57Smrg autoheader touch file \`config.h.in' 8040dd5a57Smrg autom4te touch the output file, or create a stub one 8140dd5a57Smrg automake touch all \`Makefile.in' files 8240dd5a57Smrg bison create \`y.tab.[ch]', if possible, from existing .[ch] 8340dd5a57Smrg flex create \`lex.yy.c', if possible, from existing .c 8440dd5a57Smrg help2man touch the output file 8540dd5a57Smrg lex create \`lex.yy.c', if possible, from existing .c 8640dd5a57Smrg makeinfo touch the output file 8740dd5a57Smrg tar try tar, gnutar, gtar, then tar without non-portable flags 8840dd5a57Smrg yacc create \`y.tab.[ch]', if possible, from existing .[ch] 8940dd5a57Smrg 9040dd5a57SmrgVersion suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and 9140dd5a57Smrg\`g' are ignored when checking the name. 9240dd5a57Smrg 9340dd5a57SmrgSend bug reports to <bug-automake@gnu.org>." 9440dd5a57Smrg exit $? 9540dd5a57Smrg ;; 9640dd5a57Smrg 9740dd5a57Smrg -v|--v|--ve|--ver|--vers|--versi|--versio|--version) 9840dd5a57Smrg echo "missing $scriptversion (GNU Automake)" 9940dd5a57Smrg exit $? 10040dd5a57Smrg ;; 10140dd5a57Smrg 10240dd5a57Smrg -*) 10340dd5a57Smrg echo 1>&2 "$0: Unknown \`$1' option" 10440dd5a57Smrg echo 1>&2 "Try \`$0 --help' for more information" 10540dd5a57Smrg exit 1 10640dd5a57Smrg ;; 10740dd5a57Smrg 10840dd5a57Smrgesac 10940dd5a57Smrg 11040dd5a57Smrg# normalize program name to check for. 11140dd5a57Smrgprogram=`echo "$1" | sed ' 11240dd5a57Smrg s/^gnu-//; t 11340dd5a57Smrg s/^gnu//; t 11440dd5a57Smrg s/^g//; t'` 11540dd5a57Smrg 11640dd5a57Smrg# Now exit if we have it, but it failed. Also exit now if we 11740dd5a57Smrg# don't have it and --version was passed (most likely to detect 11840dd5a57Smrg# the program). This is about non-GNU programs, so use $1 not 11940dd5a57Smrg# $program. 12040dd5a57Smrgcase $1 in 12140dd5a57Smrg lex*|yacc*) 12240dd5a57Smrg # Not GNU programs, they don't have --version. 12340dd5a57Smrg ;; 12440dd5a57Smrg 12540dd5a57Smrg tar*) 12640dd5a57Smrg if test -n "$run"; then 12740dd5a57Smrg echo 1>&2 "ERROR: \`tar' requires --run" 12840dd5a57Smrg exit 1 12940dd5a57Smrg elif test "x$2" = "x--version" || test "x$2" = "x--help"; then 13040dd5a57Smrg exit 1 13140dd5a57Smrg fi 13240dd5a57Smrg ;; 13340dd5a57Smrg 13440dd5a57Smrg *) 13540dd5a57Smrg if test -z "$run" && ($1 --version) > /dev/null 2>&1; then 13640dd5a57Smrg # We have it, but it failed. 13740dd5a57Smrg exit 1 13840dd5a57Smrg elif test "x$2" = "x--version" || test "x$2" = "x--help"; then 13940dd5a57Smrg # Could not run --version or --help. This is probably someone 14040dd5a57Smrg # running `$TOOL --version' or `$TOOL --help' to check whether 14140dd5a57Smrg # $TOOL exists and not knowing $TOOL uses missing. 14240dd5a57Smrg exit 1 14340dd5a57Smrg fi 14440dd5a57Smrg ;; 14540dd5a57Smrgesac 14640dd5a57Smrg 14740dd5a57Smrg# If it does not exist, or fails to run (possibly an outdated version), 14840dd5a57Smrg# try to emulate it. 14940dd5a57Smrgcase $program in 15040dd5a57Smrg aclocal*) 15140dd5a57Smrg echo 1>&2 "\ 15240dd5a57SmrgWARNING: \`$1' is $msg. You should only need it if 15340dd5a57Smrg you modified \`acinclude.m4' or \`${configure_ac}'. You might want 15440dd5a57Smrg to install the \`Automake' and \`Perl' packages. Grab them from 15540dd5a57Smrg any GNU archive site." 15640dd5a57Smrg touch aclocal.m4 15740dd5a57Smrg ;; 15840dd5a57Smrg 15940dd5a57Smrg autoconf*) 16040dd5a57Smrg echo 1>&2 "\ 16140dd5a57SmrgWARNING: \`$1' is $msg. You should only need it if 16240dd5a57Smrg you modified \`${configure_ac}'. You might want to install the 16340dd5a57Smrg \`Autoconf' and \`GNU m4' packages. Grab them from any GNU 16440dd5a57Smrg archive site." 16540dd5a57Smrg touch configure 16640dd5a57Smrg ;; 16740dd5a57Smrg 16840dd5a57Smrg autoheader*) 16940dd5a57Smrg echo 1>&2 "\ 17040dd5a57SmrgWARNING: \`$1' is $msg. You should only need it if 17140dd5a57Smrg you modified \`acconfig.h' or \`${configure_ac}'. You might want 17240dd5a57Smrg to install the \`Autoconf' and \`GNU m4' packages. Grab them 17340dd5a57Smrg from any GNU archive site." 17440dd5a57Smrg files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` 17540dd5a57Smrg test -z "$files" && files="config.h" 17640dd5a57Smrg touch_files= 17740dd5a57Smrg for f in $files; do 17840dd5a57Smrg case $f in 17940dd5a57Smrg *:*) touch_files="$touch_files "`echo "$f" | 18040dd5a57Smrg sed -e 's/^[^:]*://' -e 's/:.*//'`;; 18140dd5a57Smrg *) touch_files="$touch_files $f.in";; 18240dd5a57Smrg esac 18340dd5a57Smrg done 18440dd5a57Smrg touch $touch_files 18540dd5a57Smrg ;; 18640dd5a57Smrg 18740dd5a57Smrg automake*) 18840dd5a57Smrg echo 1>&2 "\ 18940dd5a57SmrgWARNING: \`$1' is $msg. You should only need it if 19040dd5a57Smrg you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. 19140dd5a57Smrg You might want to install the \`Automake' and \`Perl' packages. 19240dd5a57Smrg Grab them from any GNU archive site." 19340dd5a57Smrg find . -type f -name Makefile.am -print | 19440dd5a57Smrg sed 's/\.am$/.in/' | 19540dd5a57Smrg while read f; do touch "$f"; done 19640dd5a57Smrg ;; 19740dd5a57Smrg 19840dd5a57Smrg autom4te*) 19940dd5a57Smrg echo 1>&2 "\ 20040dd5a57SmrgWARNING: \`$1' is needed, but is $msg. 20140dd5a57Smrg You might have modified some files without having the 20240dd5a57Smrg proper tools for further handling them. 20340dd5a57Smrg You can get \`$1' as part of \`Autoconf' from any GNU 20440dd5a57Smrg archive site." 20540dd5a57Smrg 20640dd5a57Smrg file=`echo "$*" | sed -n "$sed_output"` 20740dd5a57Smrg test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` 20840dd5a57Smrg if test -f "$file"; then 20940dd5a57Smrg touch $file 21040dd5a57Smrg else 21140dd5a57Smrg test -z "$file" || exec >$file 21240dd5a57Smrg echo "#! /bin/sh" 21340dd5a57Smrg echo "# Created by GNU Automake missing as a replacement of" 21440dd5a57Smrg echo "# $ $@" 21540dd5a57Smrg echo "exit 0" 21640dd5a57Smrg chmod +x $file 21740dd5a57Smrg exit 1 21840dd5a57Smrg fi 21940dd5a57Smrg ;; 22040dd5a57Smrg 22140dd5a57Smrg bison*|yacc*) 22240dd5a57Smrg echo 1>&2 "\ 22340dd5a57SmrgWARNING: \`$1' $msg. You should only need it if 22440dd5a57Smrg you modified a \`.y' file. You may need the \`Bison' package 22540dd5a57Smrg in order for those modifications to take effect. You can get 22640dd5a57Smrg \`Bison' from any GNU archive site." 22740dd5a57Smrg rm -f y.tab.c y.tab.h 22840dd5a57Smrg if test $# -ne 1; then 22940dd5a57Smrg eval LASTARG="\${$#}" 23040dd5a57Smrg case $LASTARG in 23140dd5a57Smrg *.y) 23240dd5a57Smrg SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` 23340dd5a57Smrg if test -f "$SRCFILE"; then 23440dd5a57Smrg cp "$SRCFILE" y.tab.c 23540dd5a57Smrg fi 23640dd5a57Smrg SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` 23740dd5a57Smrg if test -f "$SRCFILE"; then 23840dd5a57Smrg cp "$SRCFILE" y.tab.h 23940dd5a57Smrg fi 24040dd5a57Smrg ;; 24140dd5a57Smrg esac 24240dd5a57Smrg fi 24340dd5a57Smrg if test ! -f y.tab.h; then 24440dd5a57Smrg echo >y.tab.h 24540dd5a57Smrg fi 24640dd5a57Smrg if test ! -f y.tab.c; then 24740dd5a57Smrg echo 'main() { return 0; }' >y.tab.c 24840dd5a57Smrg fi 24940dd5a57Smrg ;; 25040dd5a57Smrg 25140dd5a57Smrg lex*|flex*) 25240dd5a57Smrg echo 1>&2 "\ 25340dd5a57SmrgWARNING: \`$1' is $msg. You should only need it if 25440dd5a57Smrg you modified a \`.l' file. You may need the \`Flex' package 25540dd5a57Smrg in order for those modifications to take effect. You can get 25640dd5a57Smrg \`Flex' from any GNU archive site." 25740dd5a57Smrg rm -f lex.yy.c 25840dd5a57Smrg if test $# -ne 1; then 25940dd5a57Smrg eval LASTARG="\${$#}" 26040dd5a57Smrg case $LASTARG in 26140dd5a57Smrg *.l) 26240dd5a57Smrg SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` 26340dd5a57Smrg if test -f "$SRCFILE"; then 26440dd5a57Smrg cp "$SRCFILE" lex.yy.c 26540dd5a57Smrg fi 26640dd5a57Smrg ;; 26740dd5a57Smrg esac 26840dd5a57Smrg fi 26940dd5a57Smrg if test ! -f lex.yy.c; then 27040dd5a57Smrg echo 'main() { return 0; }' >lex.yy.c 27140dd5a57Smrg fi 27240dd5a57Smrg ;; 27340dd5a57Smrg 27440dd5a57Smrg help2man*) 27540dd5a57Smrg echo 1>&2 "\ 27640dd5a57SmrgWARNING: \`$1' is $msg. You should only need it if 27740dd5a57Smrg you modified a dependency of a manual page. You may need the 27840dd5a57Smrg \`Help2man' package in order for those modifications to take 27940dd5a57Smrg effect. You can get \`Help2man' from any GNU archive site." 28040dd5a57Smrg 28140dd5a57Smrg file=`echo "$*" | sed -n "$sed_output"` 28240dd5a57Smrg test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` 28340dd5a57Smrg if test -f "$file"; then 28440dd5a57Smrg touch $file 28540dd5a57Smrg else 28640dd5a57Smrg test -z "$file" || exec >$file 28740dd5a57Smrg echo ".ab help2man is required to generate this page" 28840dd5a57Smrg exit $? 28940dd5a57Smrg fi 29040dd5a57Smrg ;; 29140dd5a57Smrg 29240dd5a57Smrg makeinfo*) 29340dd5a57Smrg echo 1>&2 "\ 29440dd5a57SmrgWARNING: \`$1' is $msg. You should only need it if 29540dd5a57Smrg you modified a \`.texi' or \`.texinfo' file, or any other file 29640dd5a57Smrg indirectly affecting the aspect of the manual. The spurious 29740dd5a57Smrg call might also be the consequence of using a buggy \`make' (AIX, 29840dd5a57Smrg DU, IRIX). You might want to install the \`Texinfo' package or 29940dd5a57Smrg the \`GNU make' package. Grab either from any GNU archive site." 30040dd5a57Smrg # The file to touch is that specified with -o ... 30140dd5a57Smrg file=`echo "$*" | sed -n "$sed_output"` 30240dd5a57Smrg test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` 30340dd5a57Smrg if test -z "$file"; then 30440dd5a57Smrg # ... or it is the one specified with @setfilename ... 30540dd5a57Smrg infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` 30640dd5a57Smrg file=`sed -n ' 30740dd5a57Smrg /^@setfilename/{ 30840dd5a57Smrg s/.* \([^ ]*\) *$/\1/ 30940dd5a57Smrg p 31040dd5a57Smrg q 31140dd5a57Smrg }' $infile` 31240dd5a57Smrg # ... or it is derived from the source name (dir/f.texi becomes f.info) 31340dd5a57Smrg test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info 31440dd5a57Smrg fi 31540dd5a57Smrg # If the file does not exist, the user really needs makeinfo; 31640dd5a57Smrg # let's fail without touching anything. 31740dd5a57Smrg test -f $file || exit 1 31840dd5a57Smrg touch $file 31940dd5a57Smrg ;; 32040dd5a57Smrg 32140dd5a57Smrg tar*) 32240dd5a57Smrg shift 32340dd5a57Smrg 32440dd5a57Smrg # We have already tried tar in the generic part. 32540dd5a57Smrg # Look for gnutar/gtar before invocation to avoid ugly error 32640dd5a57Smrg # messages. 32740dd5a57Smrg if (gnutar --version > /dev/null 2>&1); then 32840dd5a57Smrg gnutar "$@" && exit 0 32940dd5a57Smrg fi 33040dd5a57Smrg if (gtar --version > /dev/null 2>&1); then 33140dd5a57Smrg gtar "$@" && exit 0 33240dd5a57Smrg fi 33340dd5a57Smrg firstarg="$1" 33440dd5a57Smrg if shift; then 33540dd5a57Smrg case $firstarg in 33640dd5a57Smrg *o*) 33740dd5a57Smrg firstarg=`echo "$firstarg" | sed s/o//` 33840dd5a57Smrg tar "$firstarg" "$@" && exit 0 33940dd5a57Smrg ;; 34040dd5a57Smrg esac 34140dd5a57Smrg case $firstarg in 34240dd5a57Smrg *h*) 34340dd5a57Smrg firstarg=`echo "$firstarg" | sed s/h//` 34440dd5a57Smrg tar "$firstarg" "$@" && exit 0 34540dd5a57Smrg ;; 34640dd5a57Smrg esac 34740dd5a57Smrg fi 34840dd5a57Smrg 34940dd5a57Smrg echo 1>&2 "\ 35040dd5a57SmrgWARNING: I can't seem to be able to run \`tar' with the given arguments. 35140dd5a57Smrg You may want to install GNU tar or Free paxutils, or check the 35240dd5a57Smrg command line arguments." 35340dd5a57Smrg exit 1 35440dd5a57Smrg ;; 35540dd5a57Smrg 35640dd5a57Smrg *) 35740dd5a57Smrg echo 1>&2 "\ 35840dd5a57SmrgWARNING: \`$1' is needed, and is $msg. 35940dd5a57Smrg You might have modified some files without having the 36040dd5a57Smrg proper tools for further handling them. Check the \`README' file, 36140dd5a57Smrg it often tells you about the needed prerequisites for installing 36240dd5a57Smrg this package. You may also peek at any GNU archive site, in case 36340dd5a57Smrg some other package would contain this missing \`$1' program." 36440dd5a57Smrg exit 1 36540dd5a57Smrg ;; 36640dd5a57Smrgesac 36740dd5a57Smrg 36840dd5a57Smrgexit 0 36940dd5a57Smrg 37040dd5a57Smrg# Local variables: 37140dd5a57Smrg# eval: (add-hook 'write-file-hooks 'time-stamp) 37240dd5a57Smrg# time-stamp-start: "scriptversion=" 37340dd5a57Smrg# time-stamp-format: "%:y-%02m-%02d.%02H" 37440dd5a57Smrg# time-stamp-time-zone: "UTC" 37540dd5a57Smrg# time-stamp-end: "; # UTC" 37640dd5a57Smrg# End: 377