missing revision 21ecb1ef
11e00de39Smrg#! /bin/sh 21e00de39Smrg# Common stub for a few missing GNU programs while installing. 31e00de39Smrg 421ecb1efSmrgscriptversion=2009-04-28.21; # UTC 51e00de39Smrg 621ecb1efSmrg# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006, 721ecb1efSmrg# 2008, 2009 Free Software Foundation, Inc. 81e00de39Smrg# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996. 91e00de39Smrg 101e00de39Smrg# This program is free software; you can redistribute it and/or modify 111e00de39Smrg# it under the terms of the GNU General Public License as published by 121e00de39Smrg# the Free Software Foundation; either version 2, or (at your option) 131e00de39Smrg# any later version. 141e00de39Smrg 151e00de39Smrg# This program is distributed in the hope that it will be useful, 161e00de39Smrg# but WITHOUT ANY WARRANTY; without even the implied warranty of 171e00de39Smrg# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 181e00de39Smrg# GNU General Public License for more details. 191e00de39Smrg 201e00de39Smrg# You should have received a copy of the GNU General Public License 2121ecb1efSmrg# along with this program. If not, see <http://www.gnu.org/licenses/>. 221e00de39Smrg 231e00de39Smrg# As a special exception to the GNU General Public License, if you 241e00de39Smrg# distribute this file as part of a program that contains a 251e00de39Smrg# configuration script generated by Autoconf, you may include it under 261e00de39Smrg# the same distribution terms that you use for the rest of that program. 271e00de39Smrg 281e00de39Smrgif test $# -eq 0; then 291e00de39Smrg echo 1>&2 "Try \`$0 --help' for more information" 301e00de39Smrg exit 1 311e00de39Smrgfi 321e00de39Smrg 331e00de39Smrgrun=: 341e00de39Smrgsed_output='s/.* --output[ =]\([^ ]*\).*/\1/p' 351e00de39Smrgsed_minuso='s/.* -o \([^ ]*\).*/\1/p' 361e00de39Smrg 371e00de39Smrg# In the cases where this matters, `missing' is being run in the 381e00de39Smrg# srcdir already. 391e00de39Smrgif test -f configure.ac; then 401e00de39Smrg configure_ac=configure.ac 411e00de39Smrgelse 421e00de39Smrg configure_ac=configure.in 431e00de39Smrgfi 441e00de39Smrg 451e00de39Smrgmsg="missing on your system" 461e00de39Smrg 471e00de39Smrgcase $1 in 481e00de39Smrg--run) 491e00de39Smrg # Try to run requested program, and just exit if it succeeds. 501e00de39Smrg run= 511e00de39Smrg shift 521e00de39Smrg "$@" && exit 0 531e00de39Smrg # Exit code 63 means version mismatch. This often happens 541e00de39Smrg # when the user try to use an ancient version of a tool on 551e00de39Smrg # a file that requires a minimum version. In this case we 561e00de39Smrg # we should proceed has if the program had been absent, or 571e00de39Smrg # if --run hadn't been passed. 581e00de39Smrg if test $? = 63; then 591e00de39Smrg run=: 601e00de39Smrg msg="probably too old" 611e00de39Smrg fi 621e00de39Smrg ;; 631e00de39Smrg 641e00de39Smrg -h|--h|--he|--hel|--help) 651e00de39Smrg echo "\ 661e00de39Smrg$0 [OPTION]... PROGRAM [ARGUMENT]... 671e00de39Smrg 681e00de39SmrgHandle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an 691e00de39Smrgerror status if there is no known handling for PROGRAM. 701e00de39Smrg 711e00de39SmrgOptions: 721e00de39Smrg -h, --help display this help and exit 731e00de39Smrg -v, --version output version information and exit 741e00de39Smrg --run try to run the given command, and emulate it if it fails 751e00de39Smrg 761e00de39SmrgSupported PROGRAM values: 771e00de39Smrg aclocal touch file \`aclocal.m4' 781e00de39Smrg autoconf touch file \`configure' 791e00de39Smrg autoheader touch file \`config.h.in' 801e00de39Smrg autom4te touch the output file, or create a stub one 811e00de39Smrg automake touch all \`Makefile.in' files 821e00de39Smrg bison create \`y.tab.[ch]', if possible, from existing .[ch] 831e00de39Smrg flex create \`lex.yy.c', if possible, from existing .c 841e00de39Smrg help2man touch the output file 851e00de39Smrg lex create \`lex.yy.c', if possible, from existing .c 861e00de39Smrg makeinfo touch the output file 871e00de39Smrg tar try tar, gnutar, gtar, then tar without non-portable flags 881e00de39Smrg yacc create \`y.tab.[ch]', if possible, from existing .[ch] 891e00de39Smrg 9021ecb1efSmrgVersion suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and 9121ecb1efSmrg\`g' are ignored when checking the name. 9221ecb1efSmrg 931e00de39SmrgSend bug reports to <bug-automake@gnu.org>." 941e00de39Smrg exit $? 951e00de39Smrg ;; 961e00de39Smrg 971e00de39Smrg -v|--v|--ve|--ver|--vers|--versi|--versio|--version) 981e00de39Smrg echo "missing $scriptversion (GNU Automake)" 991e00de39Smrg exit $? 1001e00de39Smrg ;; 1011e00de39Smrg 1021e00de39Smrg -*) 1031e00de39Smrg echo 1>&2 "$0: Unknown \`$1' option" 1041e00de39Smrg echo 1>&2 "Try \`$0 --help' for more information" 1051e00de39Smrg exit 1 1061e00de39Smrg ;; 1071e00de39Smrg 1081e00de39Smrgesac 1091e00de39Smrg 11021ecb1efSmrg# normalize program name to check for. 11121ecb1efSmrgprogram=`echo "$1" | sed ' 11221ecb1efSmrg s/^gnu-//; t 11321ecb1efSmrg s/^gnu//; t 11421ecb1efSmrg s/^g//; t'` 11521ecb1efSmrg 1161e00de39Smrg# Now exit if we have it, but it failed. Also exit now if we 1171e00de39Smrg# don't have it and --version was passed (most likely to detect 11821ecb1efSmrg# the program). This is about non-GNU programs, so use $1 not 11921ecb1efSmrg# $program. 1201e00de39Smrgcase $1 in 12121ecb1efSmrg lex*|yacc*) 1221e00de39Smrg # Not GNU programs, they don't have --version. 1231e00de39Smrg ;; 1241e00de39Smrg 12521ecb1efSmrg tar*) 1261e00de39Smrg if test -n "$run"; then 1271e00de39Smrg echo 1>&2 "ERROR: \`tar' requires --run" 1281e00de39Smrg exit 1 1291e00de39Smrg elif test "x$2" = "x--version" || test "x$2" = "x--help"; then 1301e00de39Smrg exit 1 1311e00de39Smrg fi 1321e00de39Smrg ;; 1331e00de39Smrg 1341e00de39Smrg *) 1351e00de39Smrg if test -z "$run" && ($1 --version) > /dev/null 2>&1; then 1361e00de39Smrg # We have it, but it failed. 1371e00de39Smrg exit 1 1381e00de39Smrg elif test "x$2" = "x--version" || test "x$2" = "x--help"; then 1391e00de39Smrg # Could not run --version or --help. This is probably someone 1401e00de39Smrg # running `$TOOL --version' or `$TOOL --help' to check whether 1411e00de39Smrg # $TOOL exists and not knowing $TOOL uses missing. 1421e00de39Smrg exit 1 1431e00de39Smrg fi 1441e00de39Smrg ;; 1451e00de39Smrgesac 1461e00de39Smrg 1471e00de39Smrg# If it does not exist, or fails to run (possibly an outdated version), 1481e00de39Smrg# try to emulate it. 14921ecb1efSmrgcase $program in 1501e00de39Smrg aclocal*) 1511e00de39Smrg echo 1>&2 "\ 1521e00de39SmrgWARNING: \`$1' is $msg. You should only need it if 1531e00de39Smrg you modified \`acinclude.m4' or \`${configure_ac}'. You might want 1541e00de39Smrg to install the \`Automake' and \`Perl' packages. Grab them from 1551e00de39Smrg any GNU archive site." 1561e00de39Smrg touch aclocal.m4 1571e00de39Smrg ;; 1581e00de39Smrg 15921ecb1efSmrg autoconf*) 1601e00de39Smrg echo 1>&2 "\ 1611e00de39SmrgWARNING: \`$1' is $msg. You should only need it if 1621e00de39Smrg you modified \`${configure_ac}'. You might want to install the 1631e00de39Smrg \`Autoconf' and \`GNU m4' packages. Grab them from any GNU 1641e00de39Smrg archive site." 1651e00de39Smrg touch configure 1661e00de39Smrg ;; 1671e00de39Smrg 16821ecb1efSmrg autoheader*) 1691e00de39Smrg echo 1>&2 "\ 1701e00de39SmrgWARNING: \`$1' is $msg. You should only need it if 1711e00de39Smrg you modified \`acconfig.h' or \`${configure_ac}'. You might want 1721e00de39Smrg to install the \`Autoconf' and \`GNU m4' packages. Grab them 1731e00de39Smrg from any GNU archive site." 1741e00de39Smrg files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` 1751e00de39Smrg test -z "$files" && files="config.h" 1761e00de39Smrg touch_files= 1771e00de39Smrg for f in $files; do 1781e00de39Smrg case $f in 1791e00de39Smrg *:*) touch_files="$touch_files "`echo "$f" | 1801e00de39Smrg sed -e 's/^[^:]*://' -e 's/:.*//'`;; 1811e00de39Smrg *) touch_files="$touch_files $f.in";; 1821e00de39Smrg esac 1831e00de39Smrg done 1841e00de39Smrg touch $touch_files 1851e00de39Smrg ;; 1861e00de39Smrg 1871e00de39Smrg automake*) 1881e00de39Smrg echo 1>&2 "\ 1891e00de39SmrgWARNING: \`$1' is $msg. You should only need it if 1901e00de39Smrg you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. 1911e00de39Smrg You might want to install the \`Automake' and \`Perl' packages. 1921e00de39Smrg Grab them from any GNU archive site." 1931e00de39Smrg find . -type f -name Makefile.am -print | 1941e00de39Smrg sed 's/\.am$/.in/' | 1951e00de39Smrg while read f; do touch "$f"; done 1961e00de39Smrg ;; 1971e00de39Smrg 19821ecb1efSmrg autom4te*) 1991e00de39Smrg echo 1>&2 "\ 2001e00de39SmrgWARNING: \`$1' is needed, but is $msg. 2011e00de39Smrg You might have modified some files without having the 2021e00de39Smrg proper tools for further handling them. 2031e00de39Smrg You can get \`$1' as part of \`Autoconf' from any GNU 2041e00de39Smrg archive site." 2051e00de39Smrg 2061e00de39Smrg file=`echo "$*" | sed -n "$sed_output"` 2071e00de39Smrg test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` 2081e00de39Smrg if test -f "$file"; then 2091e00de39Smrg touch $file 2101e00de39Smrg else 2111e00de39Smrg test -z "$file" || exec >$file 2121e00de39Smrg echo "#! /bin/sh" 2131e00de39Smrg echo "# Created by GNU Automake missing as a replacement of" 2141e00de39Smrg echo "# $ $@" 2151e00de39Smrg echo "exit 0" 2161e00de39Smrg chmod +x $file 2171e00de39Smrg exit 1 2181e00de39Smrg fi 2191e00de39Smrg ;; 2201e00de39Smrg 22121ecb1efSmrg bison*|yacc*) 2221e00de39Smrg echo 1>&2 "\ 2231e00de39SmrgWARNING: \`$1' $msg. You should only need it if 2241e00de39Smrg you modified a \`.y' file. You may need the \`Bison' package 2251e00de39Smrg in order for those modifications to take effect. You can get 2261e00de39Smrg \`Bison' from any GNU archive site." 2271e00de39Smrg rm -f y.tab.c y.tab.h 2281e00de39Smrg if test $# -ne 1; then 2291e00de39Smrg eval LASTARG="\${$#}" 2301e00de39Smrg case $LASTARG in 2311e00de39Smrg *.y) 2321e00de39Smrg SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` 2331e00de39Smrg if test -f "$SRCFILE"; then 2341e00de39Smrg cp "$SRCFILE" y.tab.c 2351e00de39Smrg fi 2361e00de39Smrg SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` 2371e00de39Smrg if test -f "$SRCFILE"; then 2381e00de39Smrg cp "$SRCFILE" y.tab.h 2391e00de39Smrg fi 2401e00de39Smrg ;; 2411e00de39Smrg esac 2421e00de39Smrg fi 2431e00de39Smrg if test ! -f y.tab.h; then 2441e00de39Smrg echo >y.tab.h 2451e00de39Smrg fi 2461e00de39Smrg if test ! -f y.tab.c; then 2471e00de39Smrg echo 'main() { return 0; }' >y.tab.c 2481e00de39Smrg fi 2491e00de39Smrg ;; 2501e00de39Smrg 25121ecb1efSmrg lex*|flex*) 2521e00de39Smrg echo 1>&2 "\ 2531e00de39SmrgWARNING: \`$1' is $msg. You should only need it if 2541e00de39Smrg you modified a \`.l' file. You may need the \`Flex' package 2551e00de39Smrg in order for those modifications to take effect. You can get 2561e00de39Smrg \`Flex' from any GNU archive site." 2571e00de39Smrg rm -f lex.yy.c 2581e00de39Smrg if test $# -ne 1; then 2591e00de39Smrg eval LASTARG="\${$#}" 2601e00de39Smrg case $LASTARG in 2611e00de39Smrg *.l) 2621e00de39Smrg SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` 2631e00de39Smrg if test -f "$SRCFILE"; then 2641e00de39Smrg cp "$SRCFILE" lex.yy.c 2651e00de39Smrg fi 2661e00de39Smrg ;; 2671e00de39Smrg esac 2681e00de39Smrg fi 2691e00de39Smrg if test ! -f lex.yy.c; then 2701e00de39Smrg echo 'main() { return 0; }' >lex.yy.c 2711e00de39Smrg fi 2721e00de39Smrg ;; 2731e00de39Smrg 27421ecb1efSmrg help2man*) 2751e00de39Smrg echo 1>&2 "\ 2761e00de39SmrgWARNING: \`$1' is $msg. You should only need it if 2771e00de39Smrg you modified a dependency of a manual page. You may need the 2781e00de39Smrg \`Help2man' package in order for those modifications to take 2791e00de39Smrg effect. You can get \`Help2man' from any GNU archive site." 2801e00de39Smrg 2811e00de39Smrg file=`echo "$*" | sed -n "$sed_output"` 2821e00de39Smrg test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` 2831e00de39Smrg if test -f "$file"; then 2841e00de39Smrg touch $file 2851e00de39Smrg else 2861e00de39Smrg test -z "$file" || exec >$file 2871e00de39Smrg echo ".ab help2man is required to generate this page" 28821ecb1efSmrg exit $? 2891e00de39Smrg fi 2901e00de39Smrg ;; 2911e00de39Smrg 29221ecb1efSmrg makeinfo*) 2931e00de39Smrg echo 1>&2 "\ 2941e00de39SmrgWARNING: \`$1' is $msg. You should only need it if 2951e00de39Smrg you modified a \`.texi' or \`.texinfo' file, or any other file 2961e00de39Smrg indirectly affecting the aspect of the manual. The spurious 2971e00de39Smrg call might also be the consequence of using a buggy \`make' (AIX, 2981e00de39Smrg DU, IRIX). You might want to install the \`Texinfo' package or 2991e00de39Smrg the \`GNU make' package. Grab either from any GNU archive site." 3001e00de39Smrg # The file to touch is that specified with -o ... 3011e00de39Smrg file=`echo "$*" | sed -n "$sed_output"` 3021e00de39Smrg test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` 3031e00de39Smrg if test -z "$file"; then 3041e00de39Smrg # ... or it is the one specified with @setfilename ... 3051e00de39Smrg infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` 3061e00de39Smrg file=`sed -n ' 3071e00de39Smrg /^@setfilename/{ 3081e00de39Smrg s/.* \([^ ]*\) *$/\1/ 3091e00de39Smrg p 3101e00de39Smrg q 3111e00de39Smrg }' $infile` 3121e00de39Smrg # ... or it is derived from the source name (dir/f.texi becomes f.info) 3131e00de39Smrg test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info 3141e00de39Smrg fi 3151e00de39Smrg # If the file does not exist, the user really needs makeinfo; 3161e00de39Smrg # let's fail without touching anything. 3171e00de39Smrg test -f $file || exit 1 3181e00de39Smrg touch $file 3191e00de39Smrg ;; 3201e00de39Smrg 32121ecb1efSmrg tar*) 3221e00de39Smrg shift 3231e00de39Smrg 3241e00de39Smrg # We have already tried tar in the generic part. 3251e00de39Smrg # Look for gnutar/gtar before invocation to avoid ugly error 3261e00de39Smrg # messages. 3271e00de39Smrg if (gnutar --version > /dev/null 2>&1); then 3281e00de39Smrg gnutar "$@" && exit 0 3291e00de39Smrg fi 3301e00de39Smrg if (gtar --version > /dev/null 2>&1); then 3311e00de39Smrg gtar "$@" && exit 0 3321e00de39Smrg fi 3331e00de39Smrg firstarg="$1" 3341e00de39Smrg if shift; then 3351e00de39Smrg case $firstarg in 3361e00de39Smrg *o*) 3371e00de39Smrg firstarg=`echo "$firstarg" | sed s/o//` 3381e00de39Smrg tar "$firstarg" "$@" && exit 0 3391e00de39Smrg ;; 3401e00de39Smrg esac 3411e00de39Smrg case $firstarg in 3421e00de39Smrg *h*) 3431e00de39Smrg firstarg=`echo "$firstarg" | sed s/h//` 3441e00de39Smrg tar "$firstarg" "$@" && exit 0 3451e00de39Smrg ;; 3461e00de39Smrg esac 3471e00de39Smrg fi 3481e00de39Smrg 3491e00de39Smrg echo 1>&2 "\ 3501e00de39SmrgWARNING: I can't seem to be able to run \`tar' with the given arguments. 3511e00de39Smrg You may want to install GNU tar or Free paxutils, or check the 3521e00de39Smrg command line arguments." 3531e00de39Smrg exit 1 3541e00de39Smrg ;; 3551e00de39Smrg 3561e00de39Smrg *) 3571e00de39Smrg echo 1>&2 "\ 3581e00de39SmrgWARNING: \`$1' is needed, and is $msg. 3591e00de39Smrg You might have modified some files without having the 3601e00de39Smrg proper tools for further handling them. Check the \`README' file, 3611e00de39Smrg it often tells you about the needed prerequisites for installing 3621e00de39Smrg this package. You may also peek at any GNU archive site, in case 3631e00de39Smrg some other package would contain this missing \`$1' program." 3641e00de39Smrg exit 1 3651e00de39Smrg ;; 3661e00de39Smrgesac 3671e00de39Smrg 3681e00de39Smrgexit 0 3691e00de39Smrg 3701e00de39Smrg# Local variables: 3711e00de39Smrg# eval: (add-hook 'write-file-hooks 'time-stamp) 3721e00de39Smrg# time-stamp-start: "scriptversion=" 3731e00de39Smrg# time-stamp-format: "%:y-%02m-%02d.%02H" 37421ecb1efSmrg# time-stamp-time-zone: "UTC" 37521ecb1efSmrg# time-stamp-end: "; # UTC" 3761e00de39Smrg# End: 377