missing revision 55de1df9
155de1df9Smrg#! /bin/sh 255de1df9Smrg# Common stub for a few missing GNU programs while installing. 355de1df9Smrg 455de1df9Smrgscriptversion=2009-04-28.21; # UTC 555de1df9Smrg 655de1df9Smrg# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006, 755de1df9Smrg# 2008, 2009 Free Software Foundation, Inc. 855de1df9Smrg# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996. 955de1df9Smrg 1055de1df9Smrg# This program is free software; you can redistribute it and/or modify 1155de1df9Smrg# it under the terms of the GNU General Public License as published by 1255de1df9Smrg# the Free Software Foundation; either version 2, or (at your option) 1355de1df9Smrg# any later version. 1455de1df9Smrg 1555de1df9Smrg# This program is distributed in the hope that it will be useful, 1655de1df9Smrg# but WITHOUT ANY WARRANTY; without even the implied warranty of 1755de1df9Smrg# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 1855de1df9Smrg# GNU General Public License for more details. 1955de1df9Smrg 2055de1df9Smrg# You should have received a copy of the GNU General Public License 2155de1df9Smrg# along with this program. If not, see <http://www.gnu.org/licenses/>. 2255de1df9Smrg 2355de1df9Smrg# As a special exception to the GNU General Public License, if you 2455de1df9Smrg# distribute this file as part of a program that contains a 2555de1df9Smrg# configuration script generated by Autoconf, you may include it under 2655de1df9Smrg# the same distribution terms that you use for the rest of that program. 2755de1df9Smrg 2855de1df9Smrgif test $# -eq 0; then 2955de1df9Smrg echo 1>&2 "Try \`$0 --help' for more information" 3055de1df9Smrg exit 1 3155de1df9Smrgfi 3255de1df9Smrg 3355de1df9Smrgrun=: 3455de1df9Smrgsed_output='s/.* --output[ =]\([^ ]*\).*/\1/p' 3555de1df9Smrgsed_minuso='s/.* -o \([^ ]*\).*/\1/p' 3655de1df9Smrg 3755de1df9Smrg# In the cases where this matters, `missing' is being run in the 3855de1df9Smrg# srcdir already. 3955de1df9Smrgif test -f configure.ac; then 4055de1df9Smrg configure_ac=configure.ac 4155de1df9Smrgelse 4255de1df9Smrg configure_ac=configure.in 4355de1df9Smrgfi 4455de1df9Smrg 4555de1df9Smrgmsg="missing on your system" 4655de1df9Smrg 4755de1df9Smrgcase $1 in 4855de1df9Smrg--run) 4955de1df9Smrg # Try to run requested program, and just exit if it succeeds. 5055de1df9Smrg run= 5155de1df9Smrg shift 5255de1df9Smrg "$@" && exit 0 5355de1df9Smrg # Exit code 63 means version mismatch. This often happens 5455de1df9Smrg # when the user try to use an ancient version of a tool on 5555de1df9Smrg # a file that requires a minimum version. In this case we 5655de1df9Smrg # we should proceed has if the program had been absent, or 5755de1df9Smrg # if --run hadn't been passed. 5855de1df9Smrg if test $? = 63; then 5955de1df9Smrg run=: 6055de1df9Smrg msg="probably too old" 6155de1df9Smrg fi 6255de1df9Smrg ;; 6355de1df9Smrg 6455de1df9Smrg -h|--h|--he|--hel|--help) 6555de1df9Smrg echo "\ 6655de1df9Smrg$0 [OPTION]... PROGRAM [ARGUMENT]... 6755de1df9Smrg 6855de1df9SmrgHandle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an 6955de1df9Smrgerror status if there is no known handling for PROGRAM. 7055de1df9Smrg 7155de1df9SmrgOptions: 7255de1df9Smrg -h, --help display this help and exit 7355de1df9Smrg -v, --version output version information and exit 7455de1df9Smrg --run try to run the given command, and emulate it if it fails 7555de1df9Smrg 7655de1df9SmrgSupported PROGRAM values: 7755de1df9Smrg aclocal touch file \`aclocal.m4' 7855de1df9Smrg autoconf touch file \`configure' 7955de1df9Smrg autoheader touch file \`config.h.in' 8055de1df9Smrg autom4te touch the output file, or create a stub one 8155de1df9Smrg automake touch all \`Makefile.in' files 8255de1df9Smrg bison create \`y.tab.[ch]', if possible, from existing .[ch] 8355de1df9Smrg flex create \`lex.yy.c', if possible, from existing .c 8455de1df9Smrg help2man touch the output file 8555de1df9Smrg lex create \`lex.yy.c', if possible, from existing .c 8655de1df9Smrg makeinfo touch the output file 8755de1df9Smrg tar try tar, gnutar, gtar, then tar without non-portable flags 8855de1df9Smrg yacc create \`y.tab.[ch]', if possible, from existing .[ch] 8955de1df9Smrg 9055de1df9SmrgVersion suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and 9155de1df9Smrg\`g' are ignored when checking the name. 9255de1df9Smrg 9355de1df9SmrgSend bug reports to <bug-automake@gnu.org>." 9455de1df9Smrg exit $? 9555de1df9Smrg ;; 9655de1df9Smrg 9755de1df9Smrg -v|--v|--ve|--ver|--vers|--versi|--versio|--version) 9855de1df9Smrg echo "missing $scriptversion (GNU Automake)" 9955de1df9Smrg exit $? 10055de1df9Smrg ;; 10155de1df9Smrg 10255de1df9Smrg -*) 10355de1df9Smrg echo 1>&2 "$0: Unknown \`$1' option" 10455de1df9Smrg echo 1>&2 "Try \`$0 --help' for more information" 10555de1df9Smrg exit 1 10655de1df9Smrg ;; 10755de1df9Smrg 10855de1df9Smrgesac 10955de1df9Smrg 11055de1df9Smrg# normalize program name to check for. 11155de1df9Smrgprogram=`echo "$1" | sed ' 11255de1df9Smrg s/^gnu-//; t 11355de1df9Smrg s/^gnu//; t 11455de1df9Smrg s/^g//; t'` 11555de1df9Smrg 11655de1df9Smrg# Now exit if we have it, but it failed. Also exit now if we 11755de1df9Smrg# don't have it and --version was passed (most likely to detect 11855de1df9Smrg# the program). This is about non-GNU programs, so use $1 not 11955de1df9Smrg# $program. 12055de1df9Smrgcase $1 in 12155de1df9Smrg lex*|yacc*) 12255de1df9Smrg # Not GNU programs, they don't have --version. 12355de1df9Smrg ;; 12455de1df9Smrg 12555de1df9Smrg tar*) 12655de1df9Smrg if test -n "$run"; then 12755de1df9Smrg echo 1>&2 "ERROR: \`tar' requires --run" 12855de1df9Smrg exit 1 12955de1df9Smrg elif test "x$2" = "x--version" || test "x$2" = "x--help"; then 13055de1df9Smrg exit 1 13155de1df9Smrg fi 13255de1df9Smrg ;; 13355de1df9Smrg 13455de1df9Smrg *) 13555de1df9Smrg if test -z "$run" && ($1 --version) > /dev/null 2>&1; then 13655de1df9Smrg # We have it, but it failed. 13755de1df9Smrg exit 1 13855de1df9Smrg elif test "x$2" = "x--version" || test "x$2" = "x--help"; then 13955de1df9Smrg # Could not run --version or --help. This is probably someone 14055de1df9Smrg # running `$TOOL --version' or `$TOOL --help' to check whether 14155de1df9Smrg # $TOOL exists and not knowing $TOOL uses missing. 14255de1df9Smrg exit 1 14355de1df9Smrg fi 14455de1df9Smrg ;; 14555de1df9Smrgesac 14655de1df9Smrg 14755de1df9Smrg# If it does not exist, or fails to run (possibly an outdated version), 14855de1df9Smrg# try to emulate it. 14955de1df9Smrgcase $program in 15055de1df9Smrg aclocal*) 15155de1df9Smrg echo 1>&2 "\ 15255de1df9SmrgWARNING: \`$1' is $msg. You should only need it if 15355de1df9Smrg you modified \`acinclude.m4' or \`${configure_ac}'. You might want 15455de1df9Smrg to install the \`Automake' and \`Perl' packages. Grab them from 15555de1df9Smrg any GNU archive site." 15655de1df9Smrg touch aclocal.m4 15755de1df9Smrg ;; 15855de1df9Smrg 15955de1df9Smrg autoconf*) 16055de1df9Smrg echo 1>&2 "\ 16155de1df9SmrgWARNING: \`$1' is $msg. You should only need it if 16255de1df9Smrg you modified \`${configure_ac}'. You might want to install the 16355de1df9Smrg \`Autoconf' and \`GNU m4' packages. Grab them from any GNU 16455de1df9Smrg archive site." 16555de1df9Smrg touch configure 16655de1df9Smrg ;; 16755de1df9Smrg 16855de1df9Smrg autoheader*) 16955de1df9Smrg echo 1>&2 "\ 17055de1df9SmrgWARNING: \`$1' is $msg. You should only need it if 17155de1df9Smrg you modified \`acconfig.h' or \`${configure_ac}'. You might want 17255de1df9Smrg to install the \`Autoconf' and \`GNU m4' packages. Grab them 17355de1df9Smrg from any GNU archive site." 17455de1df9Smrg files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` 17555de1df9Smrg test -z "$files" && files="config.h" 17655de1df9Smrg touch_files= 17755de1df9Smrg for f in $files; do 17855de1df9Smrg case $f in 17955de1df9Smrg *:*) touch_files="$touch_files "`echo "$f" | 18055de1df9Smrg sed -e 's/^[^:]*://' -e 's/:.*//'`;; 18155de1df9Smrg *) touch_files="$touch_files $f.in";; 18255de1df9Smrg esac 18355de1df9Smrg done 18455de1df9Smrg touch $touch_files 18555de1df9Smrg ;; 18655de1df9Smrg 18755de1df9Smrg automake*) 18855de1df9Smrg echo 1>&2 "\ 18955de1df9SmrgWARNING: \`$1' is $msg. You should only need it if 19055de1df9Smrg you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. 19155de1df9Smrg You might want to install the \`Automake' and \`Perl' packages. 19255de1df9Smrg Grab them from any GNU archive site." 19355de1df9Smrg find . -type f -name Makefile.am -print | 19455de1df9Smrg sed 's/\.am$/.in/' | 19555de1df9Smrg while read f; do touch "$f"; done 19655de1df9Smrg ;; 19755de1df9Smrg 19855de1df9Smrg autom4te*) 19955de1df9Smrg echo 1>&2 "\ 20055de1df9SmrgWARNING: \`$1' is needed, but is $msg. 20155de1df9Smrg You might have modified some files without having the 20255de1df9Smrg proper tools for further handling them. 20355de1df9Smrg You can get \`$1' as part of \`Autoconf' from any GNU 20455de1df9Smrg archive site." 20555de1df9Smrg 20655de1df9Smrg file=`echo "$*" | sed -n "$sed_output"` 20755de1df9Smrg test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` 20855de1df9Smrg if test -f "$file"; then 20955de1df9Smrg touch $file 21055de1df9Smrg else 21155de1df9Smrg test -z "$file" || exec >$file 21255de1df9Smrg echo "#! /bin/sh" 21355de1df9Smrg echo "# Created by GNU Automake missing as a replacement of" 21455de1df9Smrg echo "# $ $@" 21555de1df9Smrg echo "exit 0" 21655de1df9Smrg chmod +x $file 21755de1df9Smrg exit 1 21855de1df9Smrg fi 21955de1df9Smrg ;; 22055de1df9Smrg 22155de1df9Smrg bison*|yacc*) 22255de1df9Smrg echo 1>&2 "\ 22355de1df9SmrgWARNING: \`$1' $msg. You should only need it if 22455de1df9Smrg you modified a \`.y' file. You may need the \`Bison' package 22555de1df9Smrg in order for those modifications to take effect. You can get 22655de1df9Smrg \`Bison' from any GNU archive site." 22755de1df9Smrg rm -f y.tab.c y.tab.h 22855de1df9Smrg if test $# -ne 1; then 22955de1df9Smrg eval LASTARG="\${$#}" 23055de1df9Smrg case $LASTARG in 23155de1df9Smrg *.y) 23255de1df9Smrg SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` 23355de1df9Smrg if test -f "$SRCFILE"; then 23455de1df9Smrg cp "$SRCFILE" y.tab.c 23555de1df9Smrg fi 23655de1df9Smrg SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` 23755de1df9Smrg if test -f "$SRCFILE"; then 23855de1df9Smrg cp "$SRCFILE" y.tab.h 23955de1df9Smrg fi 24055de1df9Smrg ;; 24155de1df9Smrg esac 24255de1df9Smrg fi 24355de1df9Smrg if test ! -f y.tab.h; then 24455de1df9Smrg echo >y.tab.h 24555de1df9Smrg fi 24655de1df9Smrg if test ! -f y.tab.c; then 24755de1df9Smrg echo 'main() { return 0; }' >y.tab.c 24855de1df9Smrg fi 24955de1df9Smrg ;; 25055de1df9Smrg 25155de1df9Smrg lex*|flex*) 25255de1df9Smrg echo 1>&2 "\ 25355de1df9SmrgWARNING: \`$1' is $msg. You should only need it if 25455de1df9Smrg you modified a \`.l' file. You may need the \`Flex' package 25555de1df9Smrg in order for those modifications to take effect. You can get 25655de1df9Smrg \`Flex' from any GNU archive site." 25755de1df9Smrg rm -f lex.yy.c 25855de1df9Smrg if test $# -ne 1; then 25955de1df9Smrg eval LASTARG="\${$#}" 26055de1df9Smrg case $LASTARG in 26155de1df9Smrg *.l) 26255de1df9Smrg SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` 26355de1df9Smrg if test -f "$SRCFILE"; then 26455de1df9Smrg cp "$SRCFILE" lex.yy.c 26555de1df9Smrg fi 26655de1df9Smrg ;; 26755de1df9Smrg esac 26855de1df9Smrg fi 26955de1df9Smrg if test ! -f lex.yy.c; then 27055de1df9Smrg echo 'main() { return 0; }' >lex.yy.c 27155de1df9Smrg fi 27255de1df9Smrg ;; 27355de1df9Smrg 27455de1df9Smrg help2man*) 27555de1df9Smrg echo 1>&2 "\ 27655de1df9SmrgWARNING: \`$1' is $msg. You should only need it if 27755de1df9Smrg you modified a dependency of a manual page. You may need the 27855de1df9Smrg \`Help2man' package in order for those modifications to take 27955de1df9Smrg effect. You can get \`Help2man' from any GNU archive site." 28055de1df9Smrg 28155de1df9Smrg file=`echo "$*" | sed -n "$sed_output"` 28255de1df9Smrg test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` 28355de1df9Smrg if test -f "$file"; then 28455de1df9Smrg touch $file 28555de1df9Smrg else 28655de1df9Smrg test -z "$file" || exec >$file 28755de1df9Smrg echo ".ab help2man is required to generate this page" 28855de1df9Smrg exit $? 28955de1df9Smrg fi 29055de1df9Smrg ;; 29155de1df9Smrg 29255de1df9Smrg makeinfo*) 29355de1df9Smrg echo 1>&2 "\ 29455de1df9SmrgWARNING: \`$1' is $msg. You should only need it if 29555de1df9Smrg you modified a \`.texi' or \`.texinfo' file, or any other file 29655de1df9Smrg indirectly affecting the aspect of the manual. The spurious 29755de1df9Smrg call might also be the consequence of using a buggy \`make' (AIX, 29855de1df9Smrg DU, IRIX). You might want to install the \`Texinfo' package or 29955de1df9Smrg the \`GNU make' package. Grab either from any GNU archive site." 30055de1df9Smrg # The file to touch is that specified with -o ... 30155de1df9Smrg file=`echo "$*" | sed -n "$sed_output"` 30255de1df9Smrg test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` 30355de1df9Smrg if test -z "$file"; then 30455de1df9Smrg # ... or it is the one specified with @setfilename ... 30555de1df9Smrg infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` 30655de1df9Smrg file=`sed -n ' 30755de1df9Smrg /^@setfilename/{ 30855de1df9Smrg s/.* \([^ ]*\) *$/\1/ 30955de1df9Smrg p 31055de1df9Smrg q 31155de1df9Smrg }' $infile` 31255de1df9Smrg # ... or it is derived from the source name (dir/f.texi becomes f.info) 31355de1df9Smrg test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info 31455de1df9Smrg fi 31555de1df9Smrg # If the file does not exist, the user really needs makeinfo; 31655de1df9Smrg # let's fail without touching anything. 31755de1df9Smrg test -f $file || exit 1 31855de1df9Smrg touch $file 31955de1df9Smrg ;; 32055de1df9Smrg 32155de1df9Smrg tar*) 32255de1df9Smrg shift 32355de1df9Smrg 32455de1df9Smrg # We have already tried tar in the generic part. 32555de1df9Smrg # Look for gnutar/gtar before invocation to avoid ugly error 32655de1df9Smrg # messages. 32755de1df9Smrg if (gnutar --version > /dev/null 2>&1); then 32855de1df9Smrg gnutar "$@" && exit 0 32955de1df9Smrg fi 33055de1df9Smrg if (gtar --version > /dev/null 2>&1); then 33155de1df9Smrg gtar "$@" && exit 0 33255de1df9Smrg fi 33355de1df9Smrg firstarg="$1" 33455de1df9Smrg if shift; then 33555de1df9Smrg case $firstarg in 33655de1df9Smrg *o*) 33755de1df9Smrg firstarg=`echo "$firstarg" | sed s/o//` 33855de1df9Smrg tar "$firstarg" "$@" && exit 0 33955de1df9Smrg ;; 34055de1df9Smrg esac 34155de1df9Smrg case $firstarg in 34255de1df9Smrg *h*) 34355de1df9Smrg firstarg=`echo "$firstarg" | sed s/h//` 34455de1df9Smrg tar "$firstarg" "$@" && exit 0 34555de1df9Smrg ;; 34655de1df9Smrg esac 34755de1df9Smrg fi 34855de1df9Smrg 34955de1df9Smrg echo 1>&2 "\ 35055de1df9SmrgWARNING: I can't seem to be able to run \`tar' with the given arguments. 35155de1df9Smrg You may want to install GNU tar or Free paxutils, or check the 35255de1df9Smrg command line arguments." 35355de1df9Smrg exit 1 35455de1df9Smrg ;; 35555de1df9Smrg 35655de1df9Smrg *) 35755de1df9Smrg echo 1>&2 "\ 35855de1df9SmrgWARNING: \`$1' is needed, and is $msg. 35955de1df9Smrg You might have modified some files without having the 36055de1df9Smrg proper tools for further handling them. Check the \`README' file, 36155de1df9Smrg it often tells you about the needed prerequisites for installing 36255de1df9Smrg this package. You may also peek at any GNU archive site, in case 36355de1df9Smrg some other package would contain this missing \`$1' program." 36455de1df9Smrg exit 1 36555de1df9Smrg ;; 36655de1df9Smrgesac 36755de1df9Smrg 36855de1df9Smrgexit 0 36955de1df9Smrg 37055de1df9Smrg# Local variables: 37155de1df9Smrg# eval: (add-hook 'write-file-hooks 'time-stamp) 37255de1df9Smrg# time-stamp-start: "scriptversion=" 37355de1df9Smrg# time-stamp-format: "%:y-%02m-%02d.%02H" 37455de1df9Smrg# time-stamp-time-zone: "UTC" 37555de1df9Smrg# time-stamp-end: "; # UTC" 37655de1df9Smrg# End: 377