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