missing revision dc407927
13eed67faSmbalmer#! /bin/sh 23eed67faSmbalmer# Common stub for a few missing GNU programs while installing. 33eed67faSmbalmer 4dc407927Smrgscriptversion=2009-04-28.21; # UTC 53eed67faSmbalmer 6dc407927Smrg# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006, 7dc407927Smrg# 2008, 2009 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 21dc407927Smrg# along with this program. If not, see <http://www.gnu.org/licenses/>. 223eed67faSmbalmer 233eed67faSmbalmer# As a special exception to the GNU General Public License, if you 243eed67faSmbalmer# distribute this file as part of a program that contains a 253eed67faSmbalmer# configuration script generated by Autoconf, you may include it under 263eed67faSmbalmer# the same distribution terms that you use for the rest of that program. 273eed67faSmbalmer 283eed67faSmbalmerif test $# -eq 0; then 293eed67faSmbalmer echo 1>&2 "Try \`$0 --help' for more information" 303eed67faSmbalmer exit 1 313eed67faSmbalmerfi 323eed67faSmbalmer 333eed67faSmbalmerrun=: 34dc407927Smrgsed_output='s/.* --output[ =]\([^ ]*\).*/\1/p' 35dc407927Smrgsed_minuso='s/.* -o \([^ ]*\).*/\1/p' 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 47dc407927Smrgcase $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' 80dc407927Smrg autom4te touch the output file, or create a stub one 813eed67faSmbalmer automake touch all \`Makefile.in' files 823eed67faSmbalmer bison create \`y.tab.[ch]', if possible, from existing .[ch] 833eed67faSmbalmer flex create \`lex.yy.c', if possible, from existing .c 843eed67faSmbalmer help2man touch the output file 853eed67faSmbalmer lex create \`lex.yy.c', if possible, from existing .c 863eed67faSmbalmer makeinfo touch the output file 873eed67faSmbalmer tar try tar, gnutar, gtar, then tar without non-portable flags 883eed67faSmbalmer yacc create \`y.tab.[ch]', if possible, from existing .[ch] 893eed67faSmbalmer 90dc407927SmrgVersion suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and 91dc407927Smrg\`g' are ignored when checking the name. 92dc407927Smrg 933eed67faSmbalmerSend bug reports to <bug-automake@gnu.org>." 943eed67faSmbalmer exit $? 953eed67faSmbalmer ;; 963eed67faSmbalmer 973eed67faSmbalmer -v|--v|--ve|--ver|--vers|--versi|--versio|--version) 983eed67faSmbalmer echo "missing $scriptversion (GNU Automake)" 993eed67faSmbalmer exit $? 1003eed67faSmbalmer ;; 1013eed67faSmbalmer 1023eed67faSmbalmer -*) 1033eed67faSmbalmer echo 1>&2 "$0: Unknown \`$1' option" 1043eed67faSmbalmer echo 1>&2 "Try \`$0 --help' for more information" 1053eed67faSmbalmer exit 1 1063eed67faSmbalmer ;; 1073eed67faSmbalmer 1083eed67faSmbalmeresac 1093eed67faSmbalmer 110dc407927Smrg# normalize program name to check for. 111dc407927Smrgprogram=`echo "$1" | sed ' 112dc407927Smrg s/^gnu-//; t 113dc407927Smrg s/^gnu//; t 114dc407927Smrg s/^g//; t'` 115dc407927Smrg 1163eed67faSmbalmer# Now exit if we have it, but it failed. Also exit now if we 1173eed67faSmbalmer# don't have it and --version was passed (most likely to detect 118dc407927Smrg# the program). This is about non-GNU programs, so use $1 not 119dc407927Smrg# $program. 120dc407927Smrgcase $1 in 121dc407927Smrg lex*|yacc*) 1223eed67faSmbalmer # Not GNU programs, they don't have --version. 1233eed67faSmbalmer ;; 1243eed67faSmbalmer 125dc407927Smrg tar*) 1263eed67faSmbalmer if test -n "$run"; then 1273eed67faSmbalmer echo 1>&2 "ERROR: \`tar' requires --run" 1283eed67faSmbalmer exit 1 1293eed67faSmbalmer elif test "x$2" = "x--version" || test "x$2" = "x--help"; then 1303eed67faSmbalmer exit 1 1313eed67faSmbalmer fi 1323eed67faSmbalmer ;; 1333eed67faSmbalmer 1343eed67faSmbalmer *) 1353eed67faSmbalmer if test -z "$run" && ($1 --version) > /dev/null 2>&1; then 1363eed67faSmbalmer # We have it, but it failed. 1373eed67faSmbalmer exit 1 1383eed67faSmbalmer elif test "x$2" = "x--version" || test "x$2" = "x--help"; then 1393eed67faSmbalmer # Could not run --version or --help. This is probably someone 1403eed67faSmbalmer # running `$TOOL --version' or `$TOOL --help' to check whether 1413eed67faSmbalmer # $TOOL exists and not knowing $TOOL uses missing. 1423eed67faSmbalmer exit 1 1433eed67faSmbalmer fi 1443eed67faSmbalmer ;; 1453eed67faSmbalmeresac 1463eed67faSmbalmer 1473eed67faSmbalmer# If it does not exist, or fails to run (possibly an outdated version), 1483eed67faSmbalmer# try to emulate it. 149dc407927Smrgcase $program in 1503eed67faSmbalmer aclocal*) 1513eed67faSmbalmer echo 1>&2 "\ 1523eed67faSmbalmerWARNING: \`$1' is $msg. You should only need it if 1533eed67faSmbalmer you modified \`acinclude.m4' or \`${configure_ac}'. You might want 1543eed67faSmbalmer to install the \`Automake' and \`Perl' packages. Grab them from 1553eed67faSmbalmer any GNU archive site." 1563eed67faSmbalmer touch aclocal.m4 1573eed67faSmbalmer ;; 1583eed67faSmbalmer 159dc407927Smrg autoconf*) 1603eed67faSmbalmer echo 1>&2 "\ 1613eed67faSmbalmerWARNING: \`$1' is $msg. You should only need it if 1623eed67faSmbalmer you modified \`${configure_ac}'. You might want to install the 1633eed67faSmbalmer \`Autoconf' and \`GNU m4' packages. Grab them from any GNU 1643eed67faSmbalmer archive site." 1653eed67faSmbalmer touch configure 1663eed67faSmbalmer ;; 1673eed67faSmbalmer 168dc407927Smrg autoheader*) 1693eed67faSmbalmer echo 1>&2 "\ 1703eed67faSmbalmerWARNING: \`$1' is $msg. You should only need it if 1713eed67faSmbalmer you modified \`acconfig.h' or \`${configure_ac}'. You might want 1723eed67faSmbalmer to install the \`Autoconf' and \`GNU m4' packages. Grab them 1733eed67faSmbalmer from any GNU archive site." 1743eed67faSmbalmer files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` 1753eed67faSmbalmer test -z "$files" && files="config.h" 1763eed67faSmbalmer touch_files= 1773eed67faSmbalmer for f in $files; do 178dc407927Smrg case $f in 1793eed67faSmbalmer *:*) touch_files="$touch_files "`echo "$f" | 1803eed67faSmbalmer sed -e 's/^[^:]*://' -e 's/:.*//'`;; 1813eed67faSmbalmer *) touch_files="$touch_files $f.in";; 1823eed67faSmbalmer esac 1833eed67faSmbalmer done 1843eed67faSmbalmer touch $touch_files 1853eed67faSmbalmer ;; 1863eed67faSmbalmer 1873eed67faSmbalmer automake*) 1883eed67faSmbalmer echo 1>&2 "\ 1893eed67faSmbalmerWARNING: \`$1' is $msg. You should only need it if 1903eed67faSmbalmer you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. 1913eed67faSmbalmer You might want to install the \`Automake' and \`Perl' packages. 1923eed67faSmbalmer Grab them from any GNU archive site." 1933eed67faSmbalmer find . -type f -name Makefile.am -print | 1943eed67faSmbalmer sed 's/\.am$/.in/' | 1953eed67faSmbalmer while read f; do touch "$f"; done 1963eed67faSmbalmer ;; 1973eed67faSmbalmer 198dc407927Smrg autom4te*) 1993eed67faSmbalmer echo 1>&2 "\ 2003eed67faSmbalmerWARNING: \`$1' is needed, but is $msg. 2013eed67faSmbalmer You might have modified some files without having the 2023eed67faSmbalmer proper tools for further handling them. 2033eed67faSmbalmer You can get \`$1' as part of \`Autoconf' from any GNU 2043eed67faSmbalmer archive site." 2053eed67faSmbalmer 206dc407927Smrg file=`echo "$*" | sed -n "$sed_output"` 207dc407927Smrg test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` 2083eed67faSmbalmer if test -f "$file"; then 2093eed67faSmbalmer touch $file 2103eed67faSmbalmer else 2113eed67faSmbalmer test -z "$file" || exec >$file 2123eed67faSmbalmer echo "#! /bin/sh" 2133eed67faSmbalmer echo "# Created by GNU Automake missing as a replacement of" 2143eed67faSmbalmer echo "# $ $@" 2153eed67faSmbalmer echo "exit 0" 2163eed67faSmbalmer chmod +x $file 2173eed67faSmbalmer exit 1 2183eed67faSmbalmer fi 2193eed67faSmbalmer ;; 2203eed67faSmbalmer 221dc407927Smrg bison*|yacc*) 2223eed67faSmbalmer echo 1>&2 "\ 2233eed67faSmbalmerWARNING: \`$1' $msg. You should only need it if 2243eed67faSmbalmer you modified a \`.y' file. You may need the \`Bison' package 2253eed67faSmbalmer in order for those modifications to take effect. You can get 2263eed67faSmbalmer \`Bison' from any GNU archive site." 2273eed67faSmbalmer rm -f y.tab.c y.tab.h 228dc407927Smrg if test $# -ne 1; then 2293eed67faSmbalmer eval LASTARG="\${$#}" 230dc407927Smrg case $LASTARG in 2313eed67faSmbalmer *.y) 2323eed67faSmbalmer SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` 233dc407927Smrg if test -f "$SRCFILE"; then 2343eed67faSmbalmer cp "$SRCFILE" y.tab.c 2353eed67faSmbalmer fi 2363eed67faSmbalmer SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` 237dc407927Smrg if test -f "$SRCFILE"; then 2383eed67faSmbalmer cp "$SRCFILE" y.tab.h 2393eed67faSmbalmer fi 2403eed67faSmbalmer ;; 2413eed67faSmbalmer esac 2423eed67faSmbalmer fi 243dc407927Smrg if test ! -f y.tab.h; then 2443eed67faSmbalmer echo >y.tab.h 2453eed67faSmbalmer fi 246dc407927Smrg if test ! -f y.tab.c; then 2473eed67faSmbalmer echo 'main() { return 0; }' >y.tab.c 2483eed67faSmbalmer fi 2493eed67faSmbalmer ;; 2503eed67faSmbalmer 251dc407927Smrg lex*|flex*) 2523eed67faSmbalmer echo 1>&2 "\ 2533eed67faSmbalmerWARNING: \`$1' is $msg. You should only need it if 2543eed67faSmbalmer you modified a \`.l' file. You may need the \`Flex' package 2553eed67faSmbalmer in order for those modifications to take effect. You can get 2563eed67faSmbalmer \`Flex' from any GNU archive site." 2573eed67faSmbalmer rm -f lex.yy.c 258dc407927Smrg if test $# -ne 1; then 2593eed67faSmbalmer eval LASTARG="\${$#}" 260dc407927Smrg case $LASTARG in 2613eed67faSmbalmer *.l) 2623eed67faSmbalmer SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` 263dc407927Smrg if test -f "$SRCFILE"; then 2643eed67faSmbalmer cp "$SRCFILE" lex.yy.c 2653eed67faSmbalmer fi 2663eed67faSmbalmer ;; 2673eed67faSmbalmer esac 2683eed67faSmbalmer fi 269dc407927Smrg if test ! -f lex.yy.c; then 2703eed67faSmbalmer echo 'main() { return 0; }' >lex.yy.c 2713eed67faSmbalmer fi 2723eed67faSmbalmer ;; 2733eed67faSmbalmer 274dc407927Smrg help2man*) 2753eed67faSmbalmer echo 1>&2 "\ 2763eed67faSmbalmerWARNING: \`$1' is $msg. You should only need it if 2773eed67faSmbalmer you modified a dependency of a manual page. You may need the 2783eed67faSmbalmer \`Help2man' package in order for those modifications to take 2793eed67faSmbalmer effect. You can get \`Help2man' from any GNU archive site." 2803eed67faSmbalmer 281dc407927Smrg file=`echo "$*" | sed -n "$sed_output"` 282dc407927Smrg test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` 283dc407927Smrg if test -f "$file"; then 2843eed67faSmbalmer touch $file 2853eed67faSmbalmer else 2863eed67faSmbalmer test -z "$file" || exec >$file 2873eed67faSmbalmer echo ".ab help2man is required to generate this page" 288dc407927Smrg exit $? 2893eed67faSmbalmer fi 2903eed67faSmbalmer ;; 2913eed67faSmbalmer 292dc407927Smrg makeinfo*) 2933eed67faSmbalmer echo 1>&2 "\ 2943eed67faSmbalmerWARNING: \`$1' is $msg. You should only need it if 2953eed67faSmbalmer you modified a \`.texi' or \`.texinfo' file, or any other file 2963eed67faSmbalmer indirectly affecting the aspect of the manual. The spurious 2973eed67faSmbalmer call might also be the consequence of using a buggy \`make' (AIX, 2983eed67faSmbalmer DU, IRIX). You might want to install the \`Texinfo' package or 2993eed67faSmbalmer the \`GNU make' package. Grab either from any GNU archive site." 3003eed67faSmbalmer # The file to touch is that specified with -o ... 301dc407927Smrg file=`echo "$*" | sed -n "$sed_output"` 302dc407927Smrg test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` 3033eed67faSmbalmer if test -z "$file"; then 3043eed67faSmbalmer # ... or it is the one specified with @setfilename ... 3053eed67faSmbalmer infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` 306dc407927Smrg file=`sed -n ' 307dc407927Smrg /^@setfilename/{ 308dc407927Smrg s/.* \([^ ]*\) *$/\1/ 309dc407927Smrg p 310dc407927Smrg q 311dc407927Smrg }' $infile` 3123eed67faSmbalmer # ... or it is derived from the source name (dir/f.texi becomes f.info) 3133eed67faSmbalmer test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info 3143eed67faSmbalmer fi 3153eed67faSmbalmer # If the file does not exist, the user really needs makeinfo; 3163eed67faSmbalmer # let's fail without touching anything. 3173eed67faSmbalmer test -f $file || exit 1 3183eed67faSmbalmer touch $file 3193eed67faSmbalmer ;; 3203eed67faSmbalmer 321dc407927Smrg tar*) 3223eed67faSmbalmer shift 3233eed67faSmbalmer 3243eed67faSmbalmer # We have already tried tar in the generic part. 3253eed67faSmbalmer # Look for gnutar/gtar before invocation to avoid ugly error 3263eed67faSmbalmer # messages. 3273eed67faSmbalmer if (gnutar --version > /dev/null 2>&1); then 3283eed67faSmbalmer gnutar "$@" && exit 0 3293eed67faSmbalmer fi 3303eed67faSmbalmer if (gtar --version > /dev/null 2>&1); then 3313eed67faSmbalmer gtar "$@" && exit 0 3323eed67faSmbalmer fi 3333eed67faSmbalmer firstarg="$1" 3343eed67faSmbalmer if shift; then 335dc407927Smrg case $firstarg in 3363eed67faSmbalmer *o*) 3373eed67faSmbalmer firstarg=`echo "$firstarg" | sed s/o//` 3383eed67faSmbalmer tar "$firstarg" "$@" && exit 0 3393eed67faSmbalmer ;; 3403eed67faSmbalmer esac 341dc407927Smrg case $firstarg in 3423eed67faSmbalmer *h*) 3433eed67faSmbalmer firstarg=`echo "$firstarg" | sed s/h//` 3443eed67faSmbalmer tar "$firstarg" "$@" && exit 0 3453eed67faSmbalmer ;; 3463eed67faSmbalmer esac 3473eed67faSmbalmer fi 3483eed67faSmbalmer 3493eed67faSmbalmer echo 1>&2 "\ 3503eed67faSmbalmerWARNING: I can't seem to be able to run \`tar' with the given arguments. 3513eed67faSmbalmer You may want to install GNU tar or Free paxutils, or check the 3523eed67faSmbalmer command line arguments." 3533eed67faSmbalmer exit 1 3543eed67faSmbalmer ;; 3553eed67faSmbalmer 3563eed67faSmbalmer *) 3573eed67faSmbalmer echo 1>&2 "\ 3583eed67faSmbalmerWARNING: \`$1' is needed, and is $msg. 3593eed67faSmbalmer You might have modified some files without having the 3603eed67faSmbalmer proper tools for further handling them. Check the \`README' file, 3613eed67faSmbalmer it often tells you about the needed prerequisites for installing 3623eed67faSmbalmer this package. You may also peek at any GNU archive site, in case 3633eed67faSmbalmer some other package would contain this missing \`$1' program." 3643eed67faSmbalmer exit 1 3653eed67faSmbalmer ;; 3663eed67faSmbalmeresac 3673eed67faSmbalmer 3683eed67faSmbalmerexit 0 3693eed67faSmbalmer 3703eed67faSmbalmer# Local variables: 3713eed67faSmbalmer# eval: (add-hook 'write-file-hooks 'time-stamp) 3723eed67faSmbalmer# time-stamp-start: "scriptversion=" 3733eed67faSmbalmer# time-stamp-format: "%:y-%02m-%02d.%02H" 374dc407927Smrg# time-stamp-time-zone: "UTC" 375dc407927Smrg# time-stamp-end: "; # UTC" 3763eed67faSmbalmer# End: 377