missing revision e531b1a7
13da7aff1Smrg#! /bin/sh 23da7aff1Smrg# Common stub for a few missing GNU programs while installing. 3e531b1a7Smrg 4e531b1a7Smrgscriptversion=2009-04-28.21; # UTC 5e531b1a7Smrg 6e531b1a7Smrg# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006, 7e531b1a7Smrg# 2008, 2009 Free Software Foundation, Inc. 83da7aff1Smrg# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996. 93da7aff1Smrg 103da7aff1Smrg# This program is free software; you can redistribute it and/or modify 113da7aff1Smrg# it under the terms of the GNU General Public License as published by 123da7aff1Smrg# the Free Software Foundation; either version 2, or (at your option) 133da7aff1Smrg# any later version. 143da7aff1Smrg 153da7aff1Smrg# This program is distributed in the hope that it will be useful, 163da7aff1Smrg# but WITHOUT ANY WARRANTY; without even the implied warranty of 173da7aff1Smrg# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 183da7aff1Smrg# GNU General Public License for more details. 193da7aff1Smrg 203da7aff1Smrg# You should have received a copy of the GNU General Public License 21e531b1a7Smrg# along with this program. If not, see <http://www.gnu.org/licenses/>. 223da7aff1Smrg 233da7aff1Smrg# As a special exception to the GNU General Public License, if you 243da7aff1Smrg# distribute this file as part of a program that contains a 253da7aff1Smrg# configuration script generated by Autoconf, you may include it under 263da7aff1Smrg# the same distribution terms that you use for the rest of that program. 273da7aff1Smrg 283da7aff1Smrgif test $# -eq 0; then 293da7aff1Smrg echo 1>&2 "Try \`$0 --help' for more information" 303da7aff1Smrg exit 1 313da7aff1Smrgfi 323da7aff1Smrg 333da7aff1Smrgrun=: 34e531b1a7Smrgsed_output='s/.* --output[ =]\([^ ]*\).*/\1/p' 35e531b1a7Smrgsed_minuso='s/.* -o \([^ ]*\).*/\1/p' 363da7aff1Smrg 373da7aff1Smrg# In the cases where this matters, `missing' is being run in the 383da7aff1Smrg# srcdir already. 393da7aff1Smrgif test -f configure.ac; then 403da7aff1Smrg configure_ac=configure.ac 413da7aff1Smrgelse 423da7aff1Smrg configure_ac=configure.in 433da7aff1Smrgfi 443da7aff1Smrg 45e531b1a7Smrgmsg="missing on your system" 46e531b1a7Smrg 47e531b1a7Smrgcase $1 in 483da7aff1Smrg--run) 493da7aff1Smrg # Try to run requested program, and just exit if it succeeds. 503da7aff1Smrg run= 513da7aff1Smrg shift 523da7aff1Smrg "$@" && exit 0 53e531b1a7Smrg # Exit code 63 means version mismatch. This often happens 54e531b1a7Smrg # when the user try to use an ancient version of a tool on 55e531b1a7Smrg # a file that requires a minimum version. In this case we 56e531b1a7Smrg # we should proceed has if the program had been absent, or 57e531b1a7Smrg # if --run hadn't been passed. 58e531b1a7Smrg if test $? = 63; then 59e531b1a7Smrg run=: 60e531b1a7Smrg msg="probably too old" 61e531b1a7Smrg fi 623da7aff1Smrg ;; 633da7aff1Smrg 643da7aff1Smrg -h|--h|--he|--hel|--help) 653da7aff1Smrg echo "\ 663da7aff1Smrg$0 [OPTION]... PROGRAM [ARGUMENT]... 673da7aff1Smrg 683da7aff1SmrgHandle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an 693da7aff1Smrgerror status if there is no known handling for PROGRAM. 703da7aff1Smrg 713da7aff1SmrgOptions: 723da7aff1Smrg -h, --help display this help and exit 733da7aff1Smrg -v, --version output version information and exit 743da7aff1Smrg --run try to run the given command, and emulate it if it fails 753da7aff1Smrg 763da7aff1SmrgSupported PROGRAM values: 773da7aff1Smrg aclocal touch file \`aclocal.m4' 783da7aff1Smrg autoconf touch file \`configure' 793da7aff1Smrg autoheader touch file \`config.h.in' 80e531b1a7Smrg autom4te touch the output file, or create a stub one 813da7aff1Smrg automake touch all \`Makefile.in' files 823da7aff1Smrg bison create \`y.tab.[ch]', if possible, from existing .[ch] 833da7aff1Smrg flex create \`lex.yy.c', if possible, from existing .c 843da7aff1Smrg help2man touch the output file 853da7aff1Smrg lex create \`lex.yy.c', if possible, from existing .c 863da7aff1Smrg makeinfo touch the output file 873da7aff1Smrg tar try tar, gnutar, gtar, then tar without non-portable flags 88e531b1a7Smrg yacc create \`y.tab.[ch]', if possible, from existing .[ch] 89e531b1a7Smrg 90e531b1a7SmrgVersion suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and 91e531b1a7Smrg\`g' are ignored when checking the name. 92e531b1a7Smrg 93e531b1a7SmrgSend bug reports to <bug-automake@gnu.org>." 94e531b1a7Smrg exit $? 953da7aff1Smrg ;; 963da7aff1Smrg 973da7aff1Smrg -v|--v|--ve|--ver|--vers|--versi|--versio|--version) 98e531b1a7Smrg echo "missing $scriptversion (GNU Automake)" 99e531b1a7Smrg exit $? 1003da7aff1Smrg ;; 1013da7aff1Smrg 1023da7aff1Smrg -*) 1033da7aff1Smrg echo 1>&2 "$0: Unknown \`$1' option" 1043da7aff1Smrg echo 1>&2 "Try \`$0 --help' for more information" 1053da7aff1Smrg exit 1 1063da7aff1Smrg ;; 1073da7aff1Smrg 108e531b1a7Smrgesac 109e531b1a7Smrg 110e531b1a7Smrg# normalize program name to check for. 111e531b1a7Smrgprogram=`echo "$1" | sed ' 112e531b1a7Smrg s/^gnu-//; t 113e531b1a7Smrg s/^gnu//; t 114e531b1a7Smrg s/^g//; t'` 115e531b1a7Smrg 116e531b1a7Smrg# Now exit if we have it, but it failed. Also exit now if we 117e531b1a7Smrg# don't have it and --version was passed (most likely to detect 118e531b1a7Smrg# the program). This is about non-GNU programs, so use $1 not 119e531b1a7Smrg# $program. 120e531b1a7Smrgcase $1 in 121e531b1a7Smrg lex*|yacc*) 122e531b1a7Smrg # Not GNU programs, they don't have --version. 123e531b1a7Smrg ;; 124e531b1a7Smrg 125e531b1a7Smrg tar*) 126e531b1a7Smrg if test -n "$run"; then 127e531b1a7Smrg echo 1>&2 "ERROR: \`tar' requires --run" 128e531b1a7Smrg exit 1 129e531b1a7Smrg elif test "x$2" = "x--version" || test "x$2" = "x--help"; then 130e531b1a7Smrg exit 1 131e531b1a7Smrg fi 132e531b1a7Smrg ;; 133e531b1a7Smrg 134e531b1a7Smrg *) 1353da7aff1Smrg if test -z "$run" && ($1 --version) > /dev/null 2>&1; then 1363da7aff1Smrg # We have it, but it failed. 1373da7aff1Smrg exit 1 138e531b1a7Smrg elif test "x$2" = "x--version" || test "x$2" = "x--help"; then 139e531b1a7Smrg # Could not run --version or --help. This is probably someone 140e531b1a7Smrg # running `$TOOL --version' or `$TOOL --help' to check whether 141e531b1a7Smrg # $TOOL exists and not knowing $TOOL uses missing. 142e531b1a7Smrg exit 1 1433da7aff1Smrg fi 144e531b1a7Smrg ;; 145e531b1a7Smrgesac 1463da7aff1Smrg 147e531b1a7Smrg# If it does not exist, or fails to run (possibly an outdated version), 148e531b1a7Smrg# try to emulate it. 149e531b1a7Smrgcase $program in 150e531b1a7Smrg aclocal*) 1513da7aff1Smrg echo 1>&2 "\ 152e531b1a7SmrgWARNING: \`$1' is $msg. You should only need it if 1533da7aff1Smrg you modified \`acinclude.m4' or \`${configure_ac}'. You might want 1543da7aff1Smrg to install the \`Automake' and \`Perl' packages. Grab them from 1553da7aff1Smrg any GNU archive site." 1563da7aff1Smrg touch aclocal.m4 1573da7aff1Smrg ;; 1583da7aff1Smrg 159e531b1a7Smrg autoconf*) 1603da7aff1Smrg echo 1>&2 "\ 161e531b1a7SmrgWARNING: \`$1' is $msg. You should only need it if 1623da7aff1Smrg you modified \`${configure_ac}'. You might want to install the 1633da7aff1Smrg \`Autoconf' and \`GNU m4' packages. Grab them from any GNU 1643da7aff1Smrg archive site." 1653da7aff1Smrg touch configure 1663da7aff1Smrg ;; 1673da7aff1Smrg 168e531b1a7Smrg autoheader*) 1693da7aff1Smrg echo 1>&2 "\ 170e531b1a7SmrgWARNING: \`$1' is $msg. You should only need it if 1713da7aff1Smrg you modified \`acconfig.h' or \`${configure_ac}'. You might want 1723da7aff1Smrg to install the \`Autoconf' and \`GNU m4' packages. Grab them 1733da7aff1Smrg from any GNU archive site." 1743da7aff1Smrg files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` 1753da7aff1Smrg test -z "$files" && files="config.h" 1763da7aff1Smrg touch_files= 1773da7aff1Smrg for f in $files; do 178e531b1a7Smrg case $f in 1793da7aff1Smrg *:*) touch_files="$touch_files "`echo "$f" | 1803da7aff1Smrg sed -e 's/^[^:]*://' -e 's/:.*//'`;; 1813da7aff1Smrg *) touch_files="$touch_files $f.in";; 1823da7aff1Smrg esac 1833da7aff1Smrg done 1843da7aff1Smrg touch $touch_files 1853da7aff1Smrg ;; 1863da7aff1Smrg 1873da7aff1Smrg automake*) 1883da7aff1Smrg echo 1>&2 "\ 189e531b1a7SmrgWARNING: \`$1' is $msg. You should only need it if 1903da7aff1Smrg you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. 1913da7aff1Smrg You might want to install the \`Automake' and \`Perl' packages. 1923da7aff1Smrg Grab them from any GNU archive site." 1933da7aff1Smrg find . -type f -name Makefile.am -print | 1943da7aff1Smrg sed 's/\.am$/.in/' | 1953da7aff1Smrg while read f; do touch "$f"; done 1963da7aff1Smrg ;; 1973da7aff1Smrg 198e531b1a7Smrg autom4te*) 1993da7aff1Smrg echo 1>&2 "\ 200e531b1a7SmrgWARNING: \`$1' is needed, but is $msg. 201e531b1a7Smrg You might have modified some files without having the 2023da7aff1Smrg proper tools for further handling them. 2033da7aff1Smrg You can get \`$1' as part of \`Autoconf' from any GNU 2043da7aff1Smrg archive site." 2053da7aff1Smrg 206e531b1a7Smrg file=`echo "$*" | sed -n "$sed_output"` 207e531b1a7Smrg test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` 2083da7aff1Smrg if test -f "$file"; then 2093da7aff1Smrg touch $file 2103da7aff1Smrg else 2113da7aff1Smrg test -z "$file" || exec >$file 2123da7aff1Smrg echo "#! /bin/sh" 2133da7aff1Smrg echo "# Created by GNU Automake missing as a replacement of" 2143da7aff1Smrg echo "# $ $@" 2153da7aff1Smrg echo "exit 0" 2163da7aff1Smrg chmod +x $file 2173da7aff1Smrg exit 1 2183da7aff1Smrg fi 2193da7aff1Smrg ;; 2203da7aff1Smrg 221e531b1a7Smrg bison*|yacc*) 2223da7aff1Smrg echo 1>&2 "\ 223e531b1a7SmrgWARNING: \`$1' $msg. You should only need it if 2243da7aff1Smrg you modified a \`.y' file. You may need the \`Bison' package 2253da7aff1Smrg in order for those modifications to take effect. You can get 2263da7aff1Smrg \`Bison' from any GNU archive site." 2273da7aff1Smrg rm -f y.tab.c y.tab.h 228e531b1a7Smrg if test $# -ne 1; then 2293da7aff1Smrg eval LASTARG="\${$#}" 230e531b1a7Smrg case $LASTARG in 2313da7aff1Smrg *.y) 2323da7aff1Smrg SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` 233e531b1a7Smrg if test -f "$SRCFILE"; then 2343da7aff1Smrg cp "$SRCFILE" y.tab.c 2353da7aff1Smrg fi 2363da7aff1Smrg SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` 237e531b1a7Smrg if test -f "$SRCFILE"; then 2383da7aff1Smrg cp "$SRCFILE" y.tab.h 2393da7aff1Smrg fi 2403da7aff1Smrg ;; 2413da7aff1Smrg esac 2423da7aff1Smrg fi 243e531b1a7Smrg if test ! -f y.tab.h; then 2443da7aff1Smrg echo >y.tab.h 2453da7aff1Smrg fi 246e531b1a7Smrg if test ! -f y.tab.c; then 2473da7aff1Smrg echo 'main() { return 0; }' >y.tab.c 2483da7aff1Smrg fi 2493da7aff1Smrg ;; 2503da7aff1Smrg 251e531b1a7Smrg lex*|flex*) 2523da7aff1Smrg echo 1>&2 "\ 253e531b1a7SmrgWARNING: \`$1' is $msg. You should only need it if 2543da7aff1Smrg you modified a \`.l' file. You may need the \`Flex' package 2553da7aff1Smrg in order for those modifications to take effect. You can get 2563da7aff1Smrg \`Flex' from any GNU archive site." 2573da7aff1Smrg rm -f lex.yy.c 258e531b1a7Smrg if test $# -ne 1; then 2593da7aff1Smrg eval LASTARG="\${$#}" 260e531b1a7Smrg case $LASTARG in 2613da7aff1Smrg *.l) 2623da7aff1Smrg SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` 263e531b1a7Smrg if test -f "$SRCFILE"; then 2643da7aff1Smrg cp "$SRCFILE" lex.yy.c 2653da7aff1Smrg fi 2663da7aff1Smrg ;; 2673da7aff1Smrg esac 2683da7aff1Smrg fi 269e531b1a7Smrg if test ! -f lex.yy.c; then 2703da7aff1Smrg echo 'main() { return 0; }' >lex.yy.c 2713da7aff1Smrg fi 2723da7aff1Smrg ;; 2733da7aff1Smrg 274e531b1a7Smrg help2man*) 2753da7aff1Smrg echo 1>&2 "\ 276e531b1a7SmrgWARNING: \`$1' is $msg. You should only need it if 2773da7aff1Smrg you modified a dependency of a manual page. You may need the 2783da7aff1Smrg \`Help2man' package in order for those modifications to take 2793da7aff1Smrg effect. You can get \`Help2man' from any GNU archive site." 2803da7aff1Smrg 281e531b1a7Smrg file=`echo "$*" | sed -n "$sed_output"` 282e531b1a7Smrg test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` 283e531b1a7Smrg if test -f "$file"; then 2843da7aff1Smrg touch $file 2853da7aff1Smrg else 2863da7aff1Smrg test -z "$file" || exec >$file 2873da7aff1Smrg echo ".ab help2man is required to generate this page" 288e531b1a7Smrg exit $? 2893da7aff1Smrg fi 2903da7aff1Smrg ;; 2913da7aff1Smrg 292e531b1a7Smrg makeinfo*) 2933da7aff1Smrg echo 1>&2 "\ 294e531b1a7SmrgWARNING: \`$1' is $msg. You should only need it if 2953da7aff1Smrg you modified a \`.texi' or \`.texinfo' file, or any other file 2963da7aff1Smrg indirectly affecting the aspect of the manual. The spurious 2973da7aff1Smrg call might also be the consequence of using a buggy \`make' (AIX, 2983da7aff1Smrg DU, IRIX). You might want to install the \`Texinfo' package or 2993da7aff1Smrg the \`GNU make' package. Grab either from any GNU archive site." 300e531b1a7Smrg # The file to touch is that specified with -o ... 301e531b1a7Smrg file=`echo "$*" | sed -n "$sed_output"` 302e531b1a7Smrg test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` 3033da7aff1Smrg if test -z "$file"; then 304e531b1a7Smrg # ... or it is the one specified with @setfilename ... 305e531b1a7Smrg infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` 306e531b1a7Smrg file=`sed -n ' 307e531b1a7Smrg /^@setfilename/{ 308e531b1a7Smrg s/.* \([^ ]*\) *$/\1/ 309e531b1a7Smrg p 310e531b1a7Smrg q 311e531b1a7Smrg }' $infile` 312e531b1a7Smrg # ... or it is derived from the source name (dir/f.texi becomes f.info) 313e531b1a7Smrg test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info 3143da7aff1Smrg fi 315e531b1a7Smrg # If the file does not exist, the user really needs makeinfo; 316e531b1a7Smrg # let's fail without touching anything. 317e531b1a7Smrg test -f $file || exit 1 3183da7aff1Smrg touch $file 3193da7aff1Smrg ;; 3203da7aff1Smrg 321e531b1a7Smrg tar*) 3223da7aff1Smrg shift 3233da7aff1Smrg 3243da7aff1Smrg # We have already tried tar in the generic part. 3253da7aff1Smrg # Look for gnutar/gtar before invocation to avoid ugly error 3263da7aff1Smrg # messages. 3273da7aff1Smrg if (gnutar --version > /dev/null 2>&1); then 3283da7aff1Smrg gnutar "$@" && exit 0 3293da7aff1Smrg fi 3303da7aff1Smrg if (gtar --version > /dev/null 2>&1); then 3313da7aff1Smrg gtar "$@" && exit 0 3323da7aff1Smrg fi 3333da7aff1Smrg firstarg="$1" 3343da7aff1Smrg if shift; then 335e531b1a7Smrg case $firstarg in 3363da7aff1Smrg *o*) 3373da7aff1Smrg firstarg=`echo "$firstarg" | sed s/o//` 3383da7aff1Smrg tar "$firstarg" "$@" && exit 0 3393da7aff1Smrg ;; 3403da7aff1Smrg esac 341e531b1a7Smrg case $firstarg in 3423da7aff1Smrg *h*) 3433da7aff1Smrg firstarg=`echo "$firstarg" | sed s/h//` 3443da7aff1Smrg tar "$firstarg" "$@" && exit 0 3453da7aff1Smrg ;; 3463da7aff1Smrg esac 3473da7aff1Smrg fi 3483da7aff1Smrg 3493da7aff1Smrg echo 1>&2 "\ 3503da7aff1SmrgWARNING: I can't seem to be able to run \`tar' with the given arguments. 3513da7aff1Smrg You may want to install GNU tar or Free paxutils, or check the 3523da7aff1Smrg command line arguments." 3533da7aff1Smrg exit 1 3543da7aff1Smrg ;; 3553da7aff1Smrg 3563da7aff1Smrg *) 3573da7aff1Smrg echo 1>&2 "\ 358e531b1a7SmrgWARNING: \`$1' is needed, and is $msg. 359e531b1a7Smrg You might have modified some files without having the 3603da7aff1Smrg proper tools for further handling them. Check the \`README' file, 3613da7aff1Smrg it often tells you about the needed prerequisites for installing 3623da7aff1Smrg this package. You may also peek at any GNU archive site, in case 3633da7aff1Smrg some other package would contain this missing \`$1' program." 3643da7aff1Smrg exit 1 3653da7aff1Smrg ;; 3663da7aff1Smrgesac 3673da7aff1Smrg 3683da7aff1Smrgexit 0 369e531b1a7Smrg 370e531b1a7Smrg# Local variables: 371e531b1a7Smrg# eval: (add-hook 'write-file-hooks 'time-stamp) 372e531b1a7Smrg# time-stamp-start: "scriptversion=" 373e531b1a7Smrg# time-stamp-format: "%:y-%02m-%02d.%02H" 374e531b1a7Smrg# time-stamp-time-zone: "UTC" 375e531b1a7Smrg# time-stamp-end: "; # UTC" 376e531b1a7Smrg# End: 377