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