missing revision 3e747e6d
13e747e6dSmrg#! /bin/sh 23e747e6dSmrg# Common stub for a few missing GNU programs while installing. 33e747e6dSmrg 43e747e6dSmrgscriptversion=2006-05-10.23 53e747e6dSmrg 63e747e6dSmrg# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006 73e747e6dSmrg# Free Software Foundation, Inc. 83e747e6dSmrg# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996. 93e747e6dSmrg 103e747e6dSmrg# This program is free software; you can redistribute it and/or modify 113e747e6dSmrg# it under the terms of the GNU General Public License as published by 123e747e6dSmrg# the Free Software Foundation; either version 2, or (at your option) 133e747e6dSmrg# any later version. 143e747e6dSmrg 153e747e6dSmrg# This program is distributed in the hope that it will be useful, 163e747e6dSmrg# but WITHOUT ANY WARRANTY; without even the implied warranty of 173e747e6dSmrg# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 183e747e6dSmrg# GNU General Public License for more details. 193e747e6dSmrg 203e747e6dSmrg# You should have received a copy of the GNU General Public License 213e747e6dSmrg# along with this program; if not, write to the Free Software 223e747e6dSmrg# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 233e747e6dSmrg# 02110-1301, USA. 243e747e6dSmrg 253e747e6dSmrg# As a special exception to the GNU General Public License, if you 263e747e6dSmrg# distribute this file as part of a program that contains a 273e747e6dSmrg# configuration script generated by Autoconf, you may include it under 283e747e6dSmrg# the same distribution terms that you use for the rest of that program. 293e747e6dSmrg 303e747e6dSmrgif test $# -eq 0; then 313e747e6dSmrg echo 1>&2 "Try \`$0 --help' for more information" 323e747e6dSmrg exit 1 333e747e6dSmrgfi 343e747e6dSmrg 353e747e6dSmrgrun=: 363e747e6dSmrgsed_output='s/.* --output[ =]\([^ ]*\).*/\1/p' 373e747e6dSmrgsed_minuso='s/.* -o \([^ ]*\).*/\1/p' 383e747e6dSmrg 393e747e6dSmrg# In the cases where this matters, `missing' is being run in the 403e747e6dSmrg# srcdir already. 413e747e6dSmrgif test -f configure.ac; then 423e747e6dSmrg configure_ac=configure.ac 433e747e6dSmrgelse 443e747e6dSmrg configure_ac=configure.in 453e747e6dSmrgfi 463e747e6dSmrg 473e747e6dSmrgmsg="missing on your system" 483e747e6dSmrg 493e747e6dSmrgcase $1 in 503e747e6dSmrg--run) 513e747e6dSmrg # Try to run requested program, and just exit if it succeeds. 523e747e6dSmrg run= 533e747e6dSmrg shift 543e747e6dSmrg "$@" && exit 0 553e747e6dSmrg # Exit code 63 means version mismatch. This often happens 563e747e6dSmrg # when the user try to use an ancient version of a tool on 573e747e6dSmrg # a file that requires a minimum version. In this case we 583e747e6dSmrg # we should proceed has if the program had been absent, or 593e747e6dSmrg # if --run hadn't been passed. 603e747e6dSmrg if test $? = 63; then 613e747e6dSmrg run=: 623e747e6dSmrg msg="probably too old" 633e747e6dSmrg fi 643e747e6dSmrg ;; 653e747e6dSmrg 663e747e6dSmrg -h|--h|--he|--hel|--help) 673e747e6dSmrg echo "\ 683e747e6dSmrg$0 [OPTION]... PROGRAM [ARGUMENT]... 693e747e6dSmrg 703e747e6dSmrgHandle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an 713e747e6dSmrgerror status if there is no known handling for PROGRAM. 723e747e6dSmrg 733e747e6dSmrgOptions: 743e747e6dSmrg -h, --help display this help and exit 753e747e6dSmrg -v, --version output version information and exit 763e747e6dSmrg --run try to run the given command, and emulate it if it fails 773e747e6dSmrg 783e747e6dSmrgSupported PROGRAM values: 793e747e6dSmrg aclocal touch file \`aclocal.m4' 803e747e6dSmrg autoconf touch file \`configure' 813e747e6dSmrg autoheader touch file \`config.h.in' 823e747e6dSmrg autom4te touch the output file, or create a stub one 833e747e6dSmrg automake touch all \`Makefile.in' files 843e747e6dSmrg bison create \`y.tab.[ch]', if possible, from existing .[ch] 853e747e6dSmrg flex create \`lex.yy.c', if possible, from existing .c 863e747e6dSmrg help2man touch the output file 873e747e6dSmrg lex create \`lex.yy.c', if possible, from existing .c 883e747e6dSmrg makeinfo touch the output file 893e747e6dSmrg tar try tar, gnutar, gtar, then tar without non-portable flags 903e747e6dSmrg yacc create \`y.tab.[ch]', if possible, from existing .[ch] 913e747e6dSmrg 923e747e6dSmrgSend bug reports to <bug-automake@gnu.org>." 933e747e6dSmrg exit $? 943e747e6dSmrg ;; 953e747e6dSmrg 963e747e6dSmrg -v|--v|--ve|--ver|--vers|--versi|--versio|--version) 973e747e6dSmrg echo "missing $scriptversion (GNU Automake)" 983e747e6dSmrg exit $? 993e747e6dSmrg ;; 1003e747e6dSmrg 1013e747e6dSmrg -*) 1023e747e6dSmrg echo 1>&2 "$0: Unknown \`$1' option" 1033e747e6dSmrg echo 1>&2 "Try \`$0 --help' for more information" 1043e747e6dSmrg exit 1 1053e747e6dSmrg ;; 1063e747e6dSmrg 1073e747e6dSmrgesac 1083e747e6dSmrg 1093e747e6dSmrg# Now exit if we have it, but it failed. Also exit now if we 1103e747e6dSmrg# don't have it and --version was passed (most likely to detect 1113e747e6dSmrg# the program). 1123e747e6dSmrgcase $1 in 1133e747e6dSmrg lex|yacc) 1143e747e6dSmrg # Not GNU programs, they don't have --version. 1153e747e6dSmrg ;; 1163e747e6dSmrg 1173e747e6dSmrg tar) 1183e747e6dSmrg if test -n "$run"; then 1193e747e6dSmrg echo 1>&2 "ERROR: \`tar' requires --run" 1203e747e6dSmrg exit 1 1213e747e6dSmrg elif test "x$2" = "x--version" || test "x$2" = "x--help"; then 1223e747e6dSmrg exit 1 1233e747e6dSmrg fi 1243e747e6dSmrg ;; 1253e747e6dSmrg 1263e747e6dSmrg *) 1273e747e6dSmrg if test -z "$run" && ($1 --version) > /dev/null 2>&1; then 1283e747e6dSmrg # We have it, but it failed. 1293e747e6dSmrg exit 1 1303e747e6dSmrg elif test "x$2" = "x--version" || test "x$2" = "x--help"; then 1313e747e6dSmrg # Could not run --version or --help. This is probably someone 1323e747e6dSmrg # running `$TOOL --version' or `$TOOL --help' to check whether 1333e747e6dSmrg # $TOOL exists and not knowing $TOOL uses missing. 1343e747e6dSmrg exit 1 1353e747e6dSmrg fi 1363e747e6dSmrg ;; 1373e747e6dSmrgesac 1383e747e6dSmrg 1393e747e6dSmrg# If it does not exist, or fails to run (possibly an outdated version), 1403e747e6dSmrg# try to emulate it. 1413e747e6dSmrgcase $1 in 1423e747e6dSmrg aclocal*) 1433e747e6dSmrg echo 1>&2 "\ 1443e747e6dSmrgWARNING: \`$1' is $msg. You should only need it if 1453e747e6dSmrg you modified \`acinclude.m4' or \`${configure_ac}'. You might want 1463e747e6dSmrg to install the \`Automake' and \`Perl' packages. Grab them from 1473e747e6dSmrg any GNU archive site." 1483e747e6dSmrg touch aclocal.m4 1493e747e6dSmrg ;; 1503e747e6dSmrg 1513e747e6dSmrg autoconf) 1523e747e6dSmrg echo 1>&2 "\ 1533e747e6dSmrgWARNING: \`$1' is $msg. You should only need it if 1543e747e6dSmrg you modified \`${configure_ac}'. You might want to install the 1553e747e6dSmrg \`Autoconf' and \`GNU m4' packages. Grab them from any GNU 1563e747e6dSmrg archive site." 1573e747e6dSmrg touch configure 1583e747e6dSmrg ;; 1593e747e6dSmrg 1603e747e6dSmrg autoheader) 1613e747e6dSmrg echo 1>&2 "\ 1623e747e6dSmrgWARNING: \`$1' is $msg. You should only need it if 1633e747e6dSmrg you modified \`acconfig.h' or \`${configure_ac}'. You might want 1643e747e6dSmrg to install the \`Autoconf' and \`GNU m4' packages. Grab them 1653e747e6dSmrg from any GNU archive site." 1663e747e6dSmrg files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` 1673e747e6dSmrg test -z "$files" && files="config.h" 1683e747e6dSmrg touch_files= 1693e747e6dSmrg for f in $files; do 1703e747e6dSmrg case $f in 1713e747e6dSmrg *:*) touch_files="$touch_files "`echo "$f" | 1723e747e6dSmrg sed -e 's/^[^:]*://' -e 's/:.*//'`;; 1733e747e6dSmrg *) touch_files="$touch_files $f.in";; 1743e747e6dSmrg esac 1753e747e6dSmrg done 1763e747e6dSmrg touch $touch_files 1773e747e6dSmrg ;; 1783e747e6dSmrg 1793e747e6dSmrg automake*) 1803e747e6dSmrg echo 1>&2 "\ 1813e747e6dSmrgWARNING: \`$1' is $msg. You should only need it if 1823e747e6dSmrg you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. 1833e747e6dSmrg You might want to install the \`Automake' and \`Perl' packages. 1843e747e6dSmrg Grab them from any GNU archive site." 1853e747e6dSmrg find . -type f -name Makefile.am -print | 1863e747e6dSmrg sed 's/\.am$/.in/' | 1873e747e6dSmrg while read f; do touch "$f"; done 1883e747e6dSmrg ;; 1893e747e6dSmrg 1903e747e6dSmrg autom4te) 1913e747e6dSmrg echo 1>&2 "\ 1923e747e6dSmrgWARNING: \`$1' is needed, but is $msg. 1933e747e6dSmrg You might have modified some files without having the 1943e747e6dSmrg proper tools for further handling them. 1953e747e6dSmrg You can get \`$1' as part of \`Autoconf' from any GNU 1963e747e6dSmrg archive site." 1973e747e6dSmrg 1983e747e6dSmrg file=`echo "$*" | sed -n "$sed_output"` 1993e747e6dSmrg test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` 2003e747e6dSmrg if test -f "$file"; then 2013e747e6dSmrg touch $file 2023e747e6dSmrg else 2033e747e6dSmrg test -z "$file" || exec >$file 2043e747e6dSmrg echo "#! /bin/sh" 2053e747e6dSmrg echo "# Created by GNU Automake missing as a replacement of" 2063e747e6dSmrg echo "# $ $@" 2073e747e6dSmrg echo "exit 0" 2083e747e6dSmrg chmod +x $file 2093e747e6dSmrg exit 1 2103e747e6dSmrg fi 2113e747e6dSmrg ;; 2123e747e6dSmrg 2133e747e6dSmrg bison|yacc) 2143e747e6dSmrg echo 1>&2 "\ 2153e747e6dSmrgWARNING: \`$1' $msg. You should only need it if 2163e747e6dSmrg you modified a \`.y' file. You may need the \`Bison' package 2173e747e6dSmrg in order for those modifications to take effect. You can get 2183e747e6dSmrg \`Bison' from any GNU archive site." 2193e747e6dSmrg rm -f y.tab.c y.tab.h 2203e747e6dSmrg if test $# -ne 1; then 2213e747e6dSmrg eval LASTARG="\${$#}" 2223e747e6dSmrg case $LASTARG in 2233e747e6dSmrg *.y) 2243e747e6dSmrg SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` 2253e747e6dSmrg if test -f "$SRCFILE"; then 2263e747e6dSmrg cp "$SRCFILE" y.tab.c 2273e747e6dSmrg fi 2283e747e6dSmrg SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` 2293e747e6dSmrg if test -f "$SRCFILE"; then 2303e747e6dSmrg cp "$SRCFILE" y.tab.h 2313e747e6dSmrg fi 2323e747e6dSmrg ;; 2333e747e6dSmrg esac 2343e747e6dSmrg fi 2353e747e6dSmrg if test ! -f y.tab.h; then 2363e747e6dSmrg echo >y.tab.h 2373e747e6dSmrg fi 2383e747e6dSmrg if test ! -f y.tab.c; then 2393e747e6dSmrg echo 'main() { return 0; }' >y.tab.c 2403e747e6dSmrg fi 2413e747e6dSmrg ;; 2423e747e6dSmrg 2433e747e6dSmrg lex|flex) 2443e747e6dSmrg echo 1>&2 "\ 2453e747e6dSmrgWARNING: \`$1' is $msg. You should only need it if 2463e747e6dSmrg you modified a \`.l' file. You may need the \`Flex' package 2473e747e6dSmrg in order for those modifications to take effect. You can get 2483e747e6dSmrg \`Flex' from any GNU archive site." 2493e747e6dSmrg rm -f lex.yy.c 2503e747e6dSmrg if test $# -ne 1; then 2513e747e6dSmrg eval LASTARG="\${$#}" 2523e747e6dSmrg case $LASTARG in 2533e747e6dSmrg *.l) 2543e747e6dSmrg SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` 2553e747e6dSmrg if test -f "$SRCFILE"; then 2563e747e6dSmrg cp "$SRCFILE" lex.yy.c 2573e747e6dSmrg fi 2583e747e6dSmrg ;; 2593e747e6dSmrg esac 2603e747e6dSmrg fi 2613e747e6dSmrg if test ! -f lex.yy.c; then 2623e747e6dSmrg echo 'main() { return 0; }' >lex.yy.c 2633e747e6dSmrg fi 2643e747e6dSmrg ;; 2653e747e6dSmrg 2663e747e6dSmrg help2man) 2673e747e6dSmrg echo 1>&2 "\ 2683e747e6dSmrgWARNING: \`$1' is $msg. You should only need it if 2693e747e6dSmrg you modified a dependency of a manual page. You may need the 2703e747e6dSmrg \`Help2man' package in order for those modifications to take 2713e747e6dSmrg effect. You can get \`Help2man' from any GNU archive site." 2723e747e6dSmrg 2733e747e6dSmrg file=`echo "$*" | sed -n "$sed_output"` 2743e747e6dSmrg test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` 2753e747e6dSmrg if test -f "$file"; then 2763e747e6dSmrg touch $file 2773e747e6dSmrg else 2783e747e6dSmrg test -z "$file" || exec >$file 2793e747e6dSmrg echo ".ab help2man is required to generate this page" 2803e747e6dSmrg exit 1 2813e747e6dSmrg fi 2823e747e6dSmrg ;; 2833e747e6dSmrg 2843e747e6dSmrg makeinfo) 2853e747e6dSmrg echo 1>&2 "\ 2863e747e6dSmrgWARNING: \`$1' is $msg. You should only need it if 2873e747e6dSmrg you modified a \`.texi' or \`.texinfo' file, or any other file 2883e747e6dSmrg indirectly affecting the aspect of the manual. The spurious 2893e747e6dSmrg call might also be the consequence of using a buggy \`make' (AIX, 2903e747e6dSmrg DU, IRIX). You might want to install the \`Texinfo' package or 2913e747e6dSmrg the \`GNU make' package. Grab either from any GNU archive site." 2923e747e6dSmrg # The file to touch is that specified with -o ... 2933e747e6dSmrg file=`echo "$*" | sed -n "$sed_output"` 2943e747e6dSmrg test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` 2953e747e6dSmrg if test -z "$file"; then 2963e747e6dSmrg # ... or it is the one specified with @setfilename ... 2973e747e6dSmrg infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` 2983e747e6dSmrg file=`sed -n ' 2993e747e6dSmrg /^@setfilename/{ 3003e747e6dSmrg s/.* \([^ ]*\) *$/\1/ 3013e747e6dSmrg p 3023e747e6dSmrg q 3033e747e6dSmrg }' $infile` 3043e747e6dSmrg # ... or it is derived from the source name (dir/f.texi becomes f.info) 3053e747e6dSmrg test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info 3063e747e6dSmrg fi 3073e747e6dSmrg # If the file does not exist, the user really needs makeinfo; 3083e747e6dSmrg # let's fail without touching anything. 3093e747e6dSmrg test -f $file || exit 1 3103e747e6dSmrg touch $file 3113e747e6dSmrg ;; 3123e747e6dSmrg 3133e747e6dSmrg tar) 3143e747e6dSmrg shift 3153e747e6dSmrg 3163e747e6dSmrg # We have already tried tar in the generic part. 3173e747e6dSmrg # Look for gnutar/gtar before invocation to avoid ugly error 3183e747e6dSmrg # messages. 3193e747e6dSmrg if (gnutar --version > /dev/null 2>&1); then 3203e747e6dSmrg gnutar "$@" && exit 0 3213e747e6dSmrg fi 3223e747e6dSmrg if (gtar --version > /dev/null 2>&1); then 3233e747e6dSmrg gtar "$@" && exit 0 3243e747e6dSmrg fi 3253e747e6dSmrg firstarg="$1" 3263e747e6dSmrg if shift; then 3273e747e6dSmrg case $firstarg in 3283e747e6dSmrg *o*) 3293e747e6dSmrg firstarg=`echo "$firstarg" | sed s/o//` 3303e747e6dSmrg tar "$firstarg" "$@" && exit 0 3313e747e6dSmrg ;; 3323e747e6dSmrg esac 3333e747e6dSmrg case $firstarg in 3343e747e6dSmrg *h*) 3353e747e6dSmrg firstarg=`echo "$firstarg" | sed s/h//` 3363e747e6dSmrg tar "$firstarg" "$@" && exit 0 3373e747e6dSmrg ;; 3383e747e6dSmrg esac 3393e747e6dSmrg fi 3403e747e6dSmrg 3413e747e6dSmrg echo 1>&2 "\ 3423e747e6dSmrgWARNING: I can't seem to be able to run \`tar' with the given arguments. 3433e747e6dSmrg You may want to install GNU tar or Free paxutils, or check the 3443e747e6dSmrg command line arguments." 3453e747e6dSmrg exit 1 3463e747e6dSmrg ;; 3473e747e6dSmrg 3483e747e6dSmrg *) 3493e747e6dSmrg echo 1>&2 "\ 3503e747e6dSmrgWARNING: \`$1' is needed, and is $msg. 3513e747e6dSmrg You might have modified some files without having the 3523e747e6dSmrg proper tools for further handling them. Check the \`README' file, 3533e747e6dSmrg it often tells you about the needed prerequisites for installing 3543e747e6dSmrg this package. You may also peek at any GNU archive site, in case 3553e747e6dSmrg some other package would contain this missing \`$1' program." 3563e747e6dSmrg exit 1 3573e747e6dSmrg ;; 3583e747e6dSmrgesac 3593e747e6dSmrg 3603e747e6dSmrgexit 0 3613e747e6dSmrg 3623e747e6dSmrg# Local variables: 3633e747e6dSmrg# eval: (add-hook 'write-file-hooks 'time-stamp) 3643e747e6dSmrg# time-stamp-start: "scriptversion=" 3653e747e6dSmrg# time-stamp-format: "%:y-%02m-%02d.%02H" 3663e747e6dSmrg# time-stamp-end: "$" 3673e747e6dSmrg# End: 368