missing revision 8ff16396
10bd0e222Smrg#! /bin/sh 20bd0e222Smrg# Common stub for a few missing GNU programs while installing. 38ff16396Smrg 48ff16396Smrgscriptversion=2009-04-28.21; # UTC 58ff16396Smrg 68ff16396Smrg# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006, 78ff16396Smrg# 2008, 2009 Free Software Foundation, Inc. 80bd0e222Smrg# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996. 90bd0e222Smrg 100bd0e222Smrg# This program is free software; you can redistribute it and/or modify 110bd0e222Smrg# it under the terms of the GNU General Public License as published by 120bd0e222Smrg# the Free Software Foundation; either version 2, or (at your option) 130bd0e222Smrg# any later version. 140bd0e222Smrg 150bd0e222Smrg# This program is distributed in the hope that it will be useful, 160bd0e222Smrg# but WITHOUT ANY WARRANTY; without even the implied warranty of 170bd0e222Smrg# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 180bd0e222Smrg# GNU General Public License for more details. 190bd0e222Smrg 200bd0e222Smrg# You should have received a copy of the GNU General Public License 218ff16396Smrg# along with this program. If not, see <http://www.gnu.org/licenses/>. 220bd0e222Smrg 230bd0e222Smrg# As a special exception to the GNU General Public License, if you 240bd0e222Smrg# distribute this file as part of a program that contains a 250bd0e222Smrg# configuration script generated by Autoconf, you may include it under 260bd0e222Smrg# the same distribution terms that you use for the rest of that program. 270bd0e222Smrg 280bd0e222Smrgif test $# -eq 0; then 290bd0e222Smrg echo 1>&2 "Try \`$0 --help' for more information" 300bd0e222Smrg exit 1 310bd0e222Smrgfi 320bd0e222Smrg 330bd0e222Smrgrun=: 348ff16396Smrgsed_output='s/.* --output[ =]\([^ ]*\).*/\1/p' 358ff16396Smrgsed_minuso='s/.* -o \([^ ]*\).*/\1/p' 360bd0e222Smrg 370bd0e222Smrg# In the cases where this matters, `missing' is being run in the 380bd0e222Smrg# srcdir already. 390bd0e222Smrgif test -f configure.ac; then 400bd0e222Smrg configure_ac=configure.ac 410bd0e222Smrgelse 420bd0e222Smrg configure_ac=configure.in 430bd0e222Smrgfi 440bd0e222Smrg 458ff16396Smrgmsg="missing on your system" 468ff16396Smrg 478ff16396Smrgcase $1 in 480bd0e222Smrg--run) 490bd0e222Smrg # Try to run requested program, and just exit if it succeeds. 500bd0e222Smrg run= 510bd0e222Smrg shift 520bd0e222Smrg "$@" && exit 0 538ff16396Smrg # Exit code 63 means version mismatch. This often happens 548ff16396Smrg # when the user try to use an ancient version of a tool on 558ff16396Smrg # a file that requires a minimum version. In this case we 568ff16396Smrg # we should proceed has if the program had been absent, or 578ff16396Smrg # if --run hadn't been passed. 588ff16396Smrg if test $? = 63; then 598ff16396Smrg run=: 608ff16396Smrg msg="probably too old" 618ff16396Smrg fi 620bd0e222Smrg ;; 630bd0e222Smrg 640bd0e222Smrg -h|--h|--he|--hel|--help) 650bd0e222Smrg echo "\ 660bd0e222Smrg$0 [OPTION]... PROGRAM [ARGUMENT]... 670bd0e222Smrg 680bd0e222SmrgHandle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an 690bd0e222Smrgerror status if there is no known handling for PROGRAM. 700bd0e222Smrg 710bd0e222SmrgOptions: 720bd0e222Smrg -h, --help display this help and exit 730bd0e222Smrg -v, --version output version information and exit 740bd0e222Smrg --run try to run the given command, and emulate it if it fails 750bd0e222Smrg 760bd0e222SmrgSupported PROGRAM values: 770bd0e222Smrg aclocal touch file \`aclocal.m4' 780bd0e222Smrg autoconf touch file \`configure' 790bd0e222Smrg autoheader touch file \`config.h.in' 808ff16396Smrg autom4te touch the output file, or create a stub one 810bd0e222Smrg automake touch all \`Makefile.in' files 820bd0e222Smrg bison create \`y.tab.[ch]', if possible, from existing .[ch] 830bd0e222Smrg flex create \`lex.yy.c', if possible, from existing .c 840bd0e222Smrg help2man touch the output file 850bd0e222Smrg lex create \`lex.yy.c', if possible, from existing .c 860bd0e222Smrg makeinfo touch the output file 870bd0e222Smrg tar try tar, gnutar, gtar, then tar without non-portable flags 888ff16396Smrg yacc create \`y.tab.[ch]', if possible, from existing .[ch] 898ff16396Smrg 908ff16396SmrgVersion suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and 918ff16396Smrg\`g' are ignored when checking the name. 928ff16396Smrg 938ff16396SmrgSend bug reports to <bug-automake@gnu.org>." 948ff16396Smrg exit $? 950bd0e222Smrg ;; 960bd0e222Smrg 970bd0e222Smrg -v|--v|--ve|--ver|--vers|--versi|--versio|--version) 988ff16396Smrg echo "missing $scriptversion (GNU Automake)" 998ff16396Smrg exit $? 1000bd0e222Smrg ;; 1010bd0e222Smrg 1020bd0e222Smrg -*) 1030bd0e222Smrg echo 1>&2 "$0: Unknown \`$1' option" 1040bd0e222Smrg echo 1>&2 "Try \`$0 --help' for more information" 1050bd0e222Smrg exit 1 1060bd0e222Smrg ;; 1070bd0e222Smrg 1088ff16396Smrgesac 1098ff16396Smrg 1108ff16396Smrg# normalize program name to check for. 1118ff16396Smrgprogram=`echo "$1" | sed ' 1128ff16396Smrg s/^gnu-//; t 1138ff16396Smrg s/^gnu//; t 1148ff16396Smrg s/^g//; t'` 1158ff16396Smrg 1168ff16396Smrg# Now exit if we have it, but it failed. Also exit now if we 1178ff16396Smrg# don't have it and --version was passed (most likely to detect 1188ff16396Smrg# the program). This is about non-GNU programs, so use $1 not 1198ff16396Smrg# $program. 1208ff16396Smrgcase $1 in 1218ff16396Smrg lex*|yacc*) 1228ff16396Smrg # Not GNU programs, they don't have --version. 1238ff16396Smrg ;; 1248ff16396Smrg 1258ff16396Smrg tar*) 1268ff16396Smrg if test -n "$run"; then 1278ff16396Smrg echo 1>&2 "ERROR: \`tar' requires --run" 1288ff16396Smrg exit 1 1298ff16396Smrg elif test "x$2" = "x--version" || test "x$2" = "x--help"; then 1308ff16396Smrg exit 1 1318ff16396Smrg fi 1328ff16396Smrg ;; 1338ff16396Smrg 1348ff16396Smrg *) 1350bd0e222Smrg if test -z "$run" && ($1 --version) > /dev/null 2>&1; then 1360bd0e222Smrg # We have it, but it failed. 1370bd0e222Smrg exit 1 1388ff16396Smrg elif test "x$2" = "x--version" || test "x$2" = "x--help"; then 1398ff16396Smrg # Could not run --version or --help. This is probably someone 1408ff16396Smrg # running `$TOOL --version' or `$TOOL --help' to check whether 1418ff16396Smrg # $TOOL exists and not knowing $TOOL uses missing. 1428ff16396Smrg exit 1 1430bd0e222Smrg fi 1448ff16396Smrg ;; 1458ff16396Smrgesac 1460bd0e222Smrg 1478ff16396Smrg# If it does not exist, or fails to run (possibly an outdated version), 1488ff16396Smrg# try to emulate it. 1498ff16396Smrgcase $program in 1508ff16396Smrg aclocal*) 1510bd0e222Smrg echo 1>&2 "\ 1528ff16396SmrgWARNING: \`$1' is $msg. You should only need it if 1530bd0e222Smrg you modified \`acinclude.m4' or \`${configure_ac}'. You might want 1540bd0e222Smrg to install the \`Automake' and \`Perl' packages. Grab them from 1550bd0e222Smrg any GNU archive site." 1560bd0e222Smrg touch aclocal.m4 1570bd0e222Smrg ;; 1580bd0e222Smrg 1598ff16396Smrg autoconf*) 1600bd0e222Smrg echo 1>&2 "\ 1618ff16396SmrgWARNING: \`$1' is $msg. You should only need it if 1620bd0e222Smrg you modified \`${configure_ac}'. You might want to install the 1630bd0e222Smrg \`Autoconf' and \`GNU m4' packages. Grab them from any GNU 1640bd0e222Smrg archive site." 1650bd0e222Smrg touch configure 1660bd0e222Smrg ;; 1670bd0e222Smrg 1688ff16396Smrg autoheader*) 1690bd0e222Smrg echo 1>&2 "\ 1708ff16396SmrgWARNING: \`$1' is $msg. You should only need it if 1710bd0e222Smrg you modified \`acconfig.h' or \`${configure_ac}'. You might want 1720bd0e222Smrg to install the \`Autoconf' and \`GNU m4' packages. Grab them 1730bd0e222Smrg from any GNU archive site." 1740bd0e222Smrg files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` 1750bd0e222Smrg test -z "$files" && files="config.h" 1760bd0e222Smrg touch_files= 1770bd0e222Smrg for f in $files; do 1788ff16396Smrg case $f in 1790bd0e222Smrg *:*) touch_files="$touch_files "`echo "$f" | 1800bd0e222Smrg sed -e 's/^[^:]*://' -e 's/:.*//'`;; 1810bd0e222Smrg *) touch_files="$touch_files $f.in";; 1820bd0e222Smrg esac 1830bd0e222Smrg done 1840bd0e222Smrg touch $touch_files 1850bd0e222Smrg ;; 1860bd0e222Smrg 1870bd0e222Smrg automake*) 1880bd0e222Smrg echo 1>&2 "\ 1898ff16396SmrgWARNING: \`$1' is $msg. You should only need it if 1900bd0e222Smrg you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. 1910bd0e222Smrg You might want to install the \`Automake' and \`Perl' packages. 1920bd0e222Smrg Grab them from any GNU archive site." 1930bd0e222Smrg find . -type f -name Makefile.am -print | 1940bd0e222Smrg sed 's/\.am$/.in/' | 1950bd0e222Smrg while read f; do touch "$f"; done 1960bd0e222Smrg ;; 1970bd0e222Smrg 1988ff16396Smrg autom4te*) 1990bd0e222Smrg echo 1>&2 "\ 2008ff16396SmrgWARNING: \`$1' is needed, but is $msg. 2018ff16396Smrg You might have modified some files without having the 2020bd0e222Smrg proper tools for further handling them. 2030bd0e222Smrg You can get \`$1' as part of \`Autoconf' from any GNU 2040bd0e222Smrg archive site." 2050bd0e222Smrg 2068ff16396Smrg file=`echo "$*" | sed -n "$sed_output"` 2078ff16396Smrg test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` 2080bd0e222Smrg if test -f "$file"; then 2090bd0e222Smrg touch $file 2100bd0e222Smrg else 2110bd0e222Smrg test -z "$file" || exec >$file 2120bd0e222Smrg echo "#! /bin/sh" 2130bd0e222Smrg echo "# Created by GNU Automake missing as a replacement of" 2140bd0e222Smrg echo "# $ $@" 2150bd0e222Smrg echo "exit 0" 2160bd0e222Smrg chmod +x $file 2170bd0e222Smrg exit 1 2180bd0e222Smrg fi 2190bd0e222Smrg ;; 2200bd0e222Smrg 2218ff16396Smrg bison*|yacc*) 2220bd0e222Smrg echo 1>&2 "\ 2238ff16396SmrgWARNING: \`$1' $msg. You should only need it if 2240bd0e222Smrg you modified a \`.y' file. You may need the \`Bison' package 2250bd0e222Smrg in order for those modifications to take effect. You can get 2260bd0e222Smrg \`Bison' from any GNU archive site." 2270bd0e222Smrg rm -f y.tab.c y.tab.h 2288ff16396Smrg if test $# -ne 1; then 2290bd0e222Smrg eval LASTARG="\${$#}" 2308ff16396Smrg case $LASTARG in 2310bd0e222Smrg *.y) 2320bd0e222Smrg SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` 2338ff16396Smrg if test -f "$SRCFILE"; then 2340bd0e222Smrg cp "$SRCFILE" y.tab.c 2350bd0e222Smrg fi 2360bd0e222Smrg SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` 2378ff16396Smrg if test -f "$SRCFILE"; then 2380bd0e222Smrg cp "$SRCFILE" y.tab.h 2390bd0e222Smrg fi 2400bd0e222Smrg ;; 2410bd0e222Smrg esac 2420bd0e222Smrg fi 2438ff16396Smrg if test ! -f y.tab.h; then 2440bd0e222Smrg echo >y.tab.h 2450bd0e222Smrg fi 2468ff16396Smrg if test ! -f y.tab.c; then 2470bd0e222Smrg echo 'main() { return 0; }' >y.tab.c 2480bd0e222Smrg fi 2490bd0e222Smrg ;; 2500bd0e222Smrg 2518ff16396Smrg lex*|flex*) 2520bd0e222Smrg echo 1>&2 "\ 2538ff16396SmrgWARNING: \`$1' is $msg. You should only need it if 2540bd0e222Smrg you modified a \`.l' file. You may need the \`Flex' package 2550bd0e222Smrg in order for those modifications to take effect. You can get 2560bd0e222Smrg \`Flex' from any GNU archive site." 2570bd0e222Smrg rm -f lex.yy.c 2588ff16396Smrg if test $# -ne 1; then 2590bd0e222Smrg eval LASTARG="\${$#}" 2608ff16396Smrg case $LASTARG in 2610bd0e222Smrg *.l) 2620bd0e222Smrg SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` 2638ff16396Smrg if test -f "$SRCFILE"; then 2640bd0e222Smrg cp "$SRCFILE" lex.yy.c 2650bd0e222Smrg fi 2660bd0e222Smrg ;; 2670bd0e222Smrg esac 2680bd0e222Smrg fi 2698ff16396Smrg if test ! -f lex.yy.c; then 2700bd0e222Smrg echo 'main() { return 0; }' >lex.yy.c 2710bd0e222Smrg fi 2720bd0e222Smrg ;; 2730bd0e222Smrg 2748ff16396Smrg help2man*) 2750bd0e222Smrg echo 1>&2 "\ 2768ff16396SmrgWARNING: \`$1' is $msg. You should only need it if 2770bd0e222Smrg you modified a dependency of a manual page. You may need the 2780bd0e222Smrg \`Help2man' package in order for those modifications to take 2790bd0e222Smrg effect. You can get \`Help2man' from any GNU archive site." 2800bd0e222Smrg 2818ff16396Smrg file=`echo "$*" | sed -n "$sed_output"` 2828ff16396Smrg test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` 2838ff16396Smrg if test -f "$file"; then 2840bd0e222Smrg touch $file 2850bd0e222Smrg else 2860bd0e222Smrg test -z "$file" || exec >$file 2870bd0e222Smrg echo ".ab help2man is required to generate this page" 2888ff16396Smrg exit $? 2890bd0e222Smrg fi 2900bd0e222Smrg ;; 2910bd0e222Smrg 2928ff16396Smrg makeinfo*) 2930bd0e222Smrg echo 1>&2 "\ 2948ff16396SmrgWARNING: \`$1' is $msg. You should only need it if 2950bd0e222Smrg you modified a \`.texi' or \`.texinfo' file, or any other file 2960bd0e222Smrg indirectly affecting the aspect of the manual. The spurious 2970bd0e222Smrg call might also be the consequence of using a buggy \`make' (AIX, 2980bd0e222Smrg DU, IRIX). You might want to install the \`Texinfo' package or 2990bd0e222Smrg the \`GNU make' package. Grab either from any GNU archive site." 3008ff16396Smrg # The file to touch is that specified with -o ... 3018ff16396Smrg file=`echo "$*" | sed -n "$sed_output"` 3028ff16396Smrg test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` 3030bd0e222Smrg if test -z "$file"; then 3048ff16396Smrg # ... or it is the one specified with @setfilename ... 3058ff16396Smrg infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` 3068ff16396Smrg file=`sed -n ' 3078ff16396Smrg /^@setfilename/{ 3088ff16396Smrg s/.* \([^ ]*\) *$/\1/ 3098ff16396Smrg p 3108ff16396Smrg q 3118ff16396Smrg }' $infile` 3128ff16396Smrg # ... or it is derived from the source name (dir/f.texi becomes f.info) 3138ff16396Smrg test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info 3140bd0e222Smrg fi 3158ff16396Smrg # If the file does not exist, the user really needs makeinfo; 3168ff16396Smrg # let's fail without touching anything. 3178ff16396Smrg test -f $file || exit 1 3180bd0e222Smrg touch $file 3190bd0e222Smrg ;; 3200bd0e222Smrg 3218ff16396Smrg tar*) 3220bd0e222Smrg shift 3230bd0e222Smrg 3240bd0e222Smrg # We have already tried tar in the generic part. 3250bd0e222Smrg # Look for gnutar/gtar before invocation to avoid ugly error 3260bd0e222Smrg # messages. 3270bd0e222Smrg if (gnutar --version > /dev/null 2>&1); then 3280bd0e222Smrg gnutar "$@" && exit 0 3290bd0e222Smrg fi 3300bd0e222Smrg if (gtar --version > /dev/null 2>&1); then 3310bd0e222Smrg gtar "$@" && exit 0 3320bd0e222Smrg fi 3330bd0e222Smrg firstarg="$1" 3340bd0e222Smrg if shift; then 3358ff16396Smrg case $firstarg in 3360bd0e222Smrg *o*) 3370bd0e222Smrg firstarg=`echo "$firstarg" | sed s/o//` 3380bd0e222Smrg tar "$firstarg" "$@" && exit 0 3390bd0e222Smrg ;; 3400bd0e222Smrg esac 3418ff16396Smrg case $firstarg in 3420bd0e222Smrg *h*) 3430bd0e222Smrg firstarg=`echo "$firstarg" | sed s/h//` 3440bd0e222Smrg tar "$firstarg" "$@" && exit 0 3450bd0e222Smrg ;; 3460bd0e222Smrg esac 3470bd0e222Smrg fi 3480bd0e222Smrg 3490bd0e222Smrg echo 1>&2 "\ 3500bd0e222SmrgWARNING: I can't seem to be able to run \`tar' with the given arguments. 3510bd0e222Smrg You may want to install GNU tar or Free paxutils, or check the 3520bd0e222Smrg command line arguments." 3530bd0e222Smrg exit 1 3540bd0e222Smrg ;; 3550bd0e222Smrg 3560bd0e222Smrg *) 3570bd0e222Smrg echo 1>&2 "\ 3588ff16396SmrgWARNING: \`$1' is needed, and is $msg. 3598ff16396Smrg You might have modified some files without having the 3600bd0e222Smrg proper tools for further handling them. Check the \`README' file, 3610bd0e222Smrg it often tells you about the needed prerequisites for installing 3620bd0e222Smrg this package. You may also peek at any GNU archive site, in case 3630bd0e222Smrg some other package would contain this missing \`$1' program." 3640bd0e222Smrg exit 1 3650bd0e222Smrg ;; 3660bd0e222Smrgesac 3670bd0e222Smrg 3680bd0e222Smrgexit 0 3698ff16396Smrg 3708ff16396Smrg# Local variables: 3718ff16396Smrg# eval: (add-hook 'write-file-hooks 'time-stamp) 3728ff16396Smrg# time-stamp-start: "scriptversion=" 3738ff16396Smrg# time-stamp-format: "%:y-%02m-%02d.%02H" 3748ff16396Smrg# time-stamp-time-zone: "UTC" 3758ff16396Smrg# time-stamp-end: "; # UTC" 3768ff16396Smrg# End: 377