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