missing revision f14f4646
15dfecf96Smrg#! /bin/sh 25dfecf96Smrg# Common stub for a few missing GNU programs while installing. 35dfecf96Smrg 4f14f4646Smrgscriptversion=2006-05-10.23 55dfecf96Smrg 6f14f4646Smrg# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006 75dfecf96Smrg# Free Software Foundation, Inc. 85dfecf96Smrg# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996. 95dfecf96Smrg 105dfecf96Smrg# This program is free software; you can redistribute it and/or modify 115dfecf96Smrg# it under the terms of the GNU General Public License as published by 125dfecf96Smrg# the Free Software Foundation; either version 2, or (at your option) 135dfecf96Smrg# any later version. 145dfecf96Smrg 155dfecf96Smrg# This program is distributed in the hope that it will be useful, 165dfecf96Smrg# but WITHOUT ANY WARRANTY; without even the implied warranty of 175dfecf96Smrg# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 185dfecf96Smrg# GNU General Public License for more details. 195dfecf96Smrg 205dfecf96Smrg# You should have received a copy of the GNU General Public License 215dfecf96Smrg# along with this program; if not, write to the Free Software 225dfecf96Smrg# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 235dfecf96Smrg# 02110-1301, USA. 245dfecf96Smrg 255dfecf96Smrg# As a special exception to the GNU General Public License, if you 265dfecf96Smrg# distribute this file as part of a program that contains a 275dfecf96Smrg# configuration script generated by Autoconf, you may include it under 285dfecf96Smrg# the same distribution terms that you use for the rest of that program. 295dfecf96Smrg 305dfecf96Smrgif test $# -eq 0; then 315dfecf96Smrg echo 1>&2 "Try \`$0 --help' for more information" 325dfecf96Smrg exit 1 335dfecf96Smrgfi 345dfecf96Smrg 355dfecf96Smrgrun=: 36f14f4646Smrgsed_output='s/.* --output[ =]\([^ ]*\).*/\1/p' 37f14f4646Smrgsed_minuso='s/.* -o \([^ ]*\).*/\1/p' 385dfecf96Smrg 395dfecf96Smrg# In the cases where this matters, `missing' is being run in the 405dfecf96Smrg# srcdir already. 415dfecf96Smrgif test -f configure.ac; then 425dfecf96Smrg configure_ac=configure.ac 435dfecf96Smrgelse 445dfecf96Smrg configure_ac=configure.in 455dfecf96Smrgfi 465dfecf96Smrg 475dfecf96Smrgmsg="missing on your system" 485dfecf96Smrg 49f14f4646Smrgcase $1 in 505dfecf96Smrg--run) 515dfecf96Smrg # Try to run requested program, and just exit if it succeeds. 525dfecf96Smrg run= 535dfecf96Smrg shift 545dfecf96Smrg "$@" && exit 0 555dfecf96Smrg # Exit code 63 means version mismatch. This often happens 565dfecf96Smrg # when the user try to use an ancient version of a tool on 575dfecf96Smrg # a file that requires a minimum version. In this case we 585dfecf96Smrg # we should proceed has if the program had been absent, or 595dfecf96Smrg # if --run hadn't been passed. 605dfecf96Smrg if test $? = 63; then 615dfecf96Smrg run=: 625dfecf96Smrg msg="probably too old" 635dfecf96Smrg fi 645dfecf96Smrg ;; 655dfecf96Smrg 665dfecf96Smrg -h|--h|--he|--hel|--help) 675dfecf96Smrg echo "\ 685dfecf96Smrg$0 [OPTION]... PROGRAM [ARGUMENT]... 695dfecf96Smrg 705dfecf96SmrgHandle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an 715dfecf96Smrgerror status if there is no known handling for PROGRAM. 725dfecf96Smrg 735dfecf96SmrgOptions: 745dfecf96Smrg -h, --help display this help and exit 755dfecf96Smrg -v, --version output version information and exit 765dfecf96Smrg --run try to run the given command, and emulate it if it fails 775dfecf96Smrg 785dfecf96SmrgSupported PROGRAM values: 795dfecf96Smrg aclocal touch file \`aclocal.m4' 805dfecf96Smrg autoconf touch file \`configure' 815dfecf96Smrg autoheader touch file \`config.h.in' 82f14f4646Smrg autom4te touch the output file, or create a stub one 835dfecf96Smrg automake touch all \`Makefile.in' files 845dfecf96Smrg bison create \`y.tab.[ch]', if possible, from existing .[ch] 855dfecf96Smrg flex create \`lex.yy.c', if possible, from existing .c 865dfecf96Smrg help2man touch the output file 875dfecf96Smrg lex create \`lex.yy.c', if possible, from existing .c 885dfecf96Smrg makeinfo touch the output file 895dfecf96Smrg tar try tar, gnutar, gtar, then tar without non-portable flags 905dfecf96Smrg yacc create \`y.tab.[ch]', if possible, from existing .[ch] 915dfecf96Smrg 925dfecf96SmrgSend bug reports to <bug-automake@gnu.org>." 935dfecf96Smrg exit $? 945dfecf96Smrg ;; 955dfecf96Smrg 965dfecf96Smrg -v|--v|--ve|--ver|--vers|--versi|--versio|--version) 975dfecf96Smrg echo "missing $scriptversion (GNU Automake)" 985dfecf96Smrg exit $? 995dfecf96Smrg ;; 1005dfecf96Smrg 1015dfecf96Smrg -*) 1025dfecf96Smrg echo 1>&2 "$0: Unknown \`$1' option" 1035dfecf96Smrg echo 1>&2 "Try \`$0 --help' for more information" 1045dfecf96Smrg exit 1 1055dfecf96Smrg ;; 1065dfecf96Smrg 1075dfecf96Smrgesac 1085dfecf96Smrg 1095dfecf96Smrg# Now exit if we have it, but it failed. Also exit now if we 1105dfecf96Smrg# don't have it and --version was passed (most likely to detect 1115dfecf96Smrg# the program). 112f14f4646Smrgcase $1 in 1135dfecf96Smrg lex|yacc) 1145dfecf96Smrg # Not GNU programs, they don't have --version. 1155dfecf96Smrg ;; 1165dfecf96Smrg 1175dfecf96Smrg tar) 1185dfecf96Smrg if test -n "$run"; then 1195dfecf96Smrg echo 1>&2 "ERROR: \`tar' requires --run" 1205dfecf96Smrg exit 1 1215dfecf96Smrg elif test "x$2" = "x--version" || test "x$2" = "x--help"; then 1225dfecf96Smrg exit 1 1235dfecf96Smrg fi 1245dfecf96Smrg ;; 1255dfecf96Smrg 1265dfecf96Smrg *) 1275dfecf96Smrg if test -z "$run" && ($1 --version) > /dev/null 2>&1; then 1285dfecf96Smrg # We have it, but it failed. 1295dfecf96Smrg exit 1 1305dfecf96Smrg elif test "x$2" = "x--version" || test "x$2" = "x--help"; then 1315dfecf96Smrg # Could not run --version or --help. This is probably someone 1325dfecf96Smrg # running `$TOOL --version' or `$TOOL --help' to check whether 1335dfecf96Smrg # $TOOL exists and not knowing $TOOL uses missing. 1345dfecf96Smrg exit 1 1355dfecf96Smrg fi 1365dfecf96Smrg ;; 1375dfecf96Smrgesac 1385dfecf96Smrg 1395dfecf96Smrg# If it does not exist, or fails to run (possibly an outdated version), 1405dfecf96Smrg# try to emulate it. 141f14f4646Smrgcase $1 in 1425dfecf96Smrg aclocal*) 1435dfecf96Smrg echo 1>&2 "\ 1445dfecf96SmrgWARNING: \`$1' is $msg. You should only need it if 1455dfecf96Smrg you modified \`acinclude.m4' or \`${configure_ac}'. You might want 1465dfecf96Smrg to install the \`Automake' and \`Perl' packages. Grab them from 1475dfecf96Smrg any GNU archive site." 1485dfecf96Smrg touch aclocal.m4 1495dfecf96Smrg ;; 1505dfecf96Smrg 1515dfecf96Smrg autoconf) 1525dfecf96Smrg echo 1>&2 "\ 1535dfecf96SmrgWARNING: \`$1' is $msg. You should only need it if 1545dfecf96Smrg you modified \`${configure_ac}'. You might want to install the 1555dfecf96Smrg \`Autoconf' and \`GNU m4' packages. Grab them from any GNU 1565dfecf96Smrg archive site." 1575dfecf96Smrg touch configure 1585dfecf96Smrg ;; 1595dfecf96Smrg 1605dfecf96Smrg autoheader) 1615dfecf96Smrg echo 1>&2 "\ 1625dfecf96SmrgWARNING: \`$1' is $msg. You should only need it if 1635dfecf96Smrg you modified \`acconfig.h' or \`${configure_ac}'. You might want 1645dfecf96Smrg to install the \`Autoconf' and \`GNU m4' packages. Grab them 1655dfecf96Smrg from any GNU archive site." 1665dfecf96Smrg files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` 1675dfecf96Smrg test -z "$files" && files="config.h" 1685dfecf96Smrg touch_files= 1695dfecf96Smrg for f in $files; do 170f14f4646Smrg case $f in 1715dfecf96Smrg *:*) touch_files="$touch_files "`echo "$f" | 1725dfecf96Smrg sed -e 's/^[^:]*://' -e 's/:.*//'`;; 1735dfecf96Smrg *) touch_files="$touch_files $f.in";; 1745dfecf96Smrg esac 1755dfecf96Smrg done 1765dfecf96Smrg touch $touch_files 1775dfecf96Smrg ;; 1785dfecf96Smrg 1795dfecf96Smrg automake*) 1805dfecf96Smrg echo 1>&2 "\ 1815dfecf96SmrgWARNING: \`$1' is $msg. You should only need it if 1825dfecf96Smrg you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. 1835dfecf96Smrg You might want to install the \`Automake' and \`Perl' packages. 1845dfecf96Smrg Grab them from any GNU archive site." 1855dfecf96Smrg find . -type f -name Makefile.am -print | 1865dfecf96Smrg sed 's/\.am$/.in/' | 1875dfecf96Smrg while read f; do touch "$f"; done 1885dfecf96Smrg ;; 1895dfecf96Smrg 1905dfecf96Smrg autom4te) 1915dfecf96Smrg echo 1>&2 "\ 1925dfecf96SmrgWARNING: \`$1' is needed, but is $msg. 1935dfecf96Smrg You might have modified some files without having the 1945dfecf96Smrg proper tools for further handling them. 1955dfecf96Smrg You can get \`$1' as part of \`Autoconf' from any GNU 1965dfecf96Smrg archive site." 1975dfecf96Smrg 198f14f4646Smrg file=`echo "$*" | sed -n "$sed_output"` 199f14f4646Smrg test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` 2005dfecf96Smrg if test -f "$file"; then 2015dfecf96Smrg touch $file 2025dfecf96Smrg else 2035dfecf96Smrg test -z "$file" || exec >$file 2045dfecf96Smrg echo "#! /bin/sh" 2055dfecf96Smrg echo "# Created by GNU Automake missing as a replacement of" 2065dfecf96Smrg echo "# $ $@" 2075dfecf96Smrg echo "exit 0" 2085dfecf96Smrg chmod +x $file 2095dfecf96Smrg exit 1 2105dfecf96Smrg fi 2115dfecf96Smrg ;; 2125dfecf96Smrg 2135dfecf96Smrg bison|yacc) 2145dfecf96Smrg echo 1>&2 "\ 2155dfecf96SmrgWARNING: \`$1' $msg. You should only need it if 2165dfecf96Smrg you modified a \`.y' file. You may need the \`Bison' package 2175dfecf96Smrg in order for those modifications to take effect. You can get 2185dfecf96Smrg \`Bison' from any GNU archive site." 2195dfecf96Smrg rm -f y.tab.c y.tab.h 220f14f4646Smrg if test $# -ne 1; then 2215dfecf96Smrg eval LASTARG="\${$#}" 222f14f4646Smrg case $LASTARG in 2235dfecf96Smrg *.y) 2245dfecf96Smrg SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` 225f14f4646Smrg if test -f "$SRCFILE"; then 2265dfecf96Smrg cp "$SRCFILE" y.tab.c 2275dfecf96Smrg fi 2285dfecf96Smrg SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` 229f14f4646Smrg if test -f "$SRCFILE"; then 2305dfecf96Smrg cp "$SRCFILE" y.tab.h 2315dfecf96Smrg fi 2325dfecf96Smrg ;; 2335dfecf96Smrg esac 2345dfecf96Smrg fi 235f14f4646Smrg if test ! -f y.tab.h; then 2365dfecf96Smrg echo >y.tab.h 2375dfecf96Smrg fi 238f14f4646Smrg if test ! -f y.tab.c; then 2395dfecf96Smrg echo 'main() { return 0; }' >y.tab.c 2405dfecf96Smrg fi 2415dfecf96Smrg ;; 2425dfecf96Smrg 2435dfecf96Smrg lex|flex) 2445dfecf96Smrg echo 1>&2 "\ 2455dfecf96SmrgWARNING: \`$1' is $msg. You should only need it if 2465dfecf96Smrg you modified a \`.l' file. You may need the \`Flex' package 2475dfecf96Smrg in order for those modifications to take effect. You can get 2485dfecf96Smrg \`Flex' from any GNU archive site." 2495dfecf96Smrg rm -f lex.yy.c 250f14f4646Smrg if test $# -ne 1; then 2515dfecf96Smrg eval LASTARG="\${$#}" 252f14f4646Smrg case $LASTARG in 2535dfecf96Smrg *.l) 2545dfecf96Smrg SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` 255f14f4646Smrg if test -f "$SRCFILE"; then 2565dfecf96Smrg cp "$SRCFILE" lex.yy.c 2575dfecf96Smrg fi 2585dfecf96Smrg ;; 2595dfecf96Smrg esac 2605dfecf96Smrg fi 261f14f4646Smrg if test ! -f lex.yy.c; then 2625dfecf96Smrg echo 'main() { return 0; }' >lex.yy.c 2635dfecf96Smrg fi 2645dfecf96Smrg ;; 2655dfecf96Smrg 2665dfecf96Smrg help2man) 2675dfecf96Smrg echo 1>&2 "\ 2685dfecf96SmrgWARNING: \`$1' is $msg. You should only need it if 2695dfecf96Smrg you modified a dependency of a manual page. You may need the 2705dfecf96Smrg \`Help2man' package in order for those modifications to take 2715dfecf96Smrg effect. You can get \`Help2man' from any GNU archive site." 2725dfecf96Smrg 273f14f4646Smrg file=`echo "$*" | sed -n "$sed_output"` 274f14f4646Smrg test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` 275f14f4646Smrg if test -f "$file"; then 2765dfecf96Smrg touch $file 2775dfecf96Smrg else 2785dfecf96Smrg test -z "$file" || exec >$file 2795dfecf96Smrg echo ".ab help2man is required to generate this page" 2805dfecf96Smrg exit 1 2815dfecf96Smrg fi 2825dfecf96Smrg ;; 2835dfecf96Smrg 2845dfecf96Smrg makeinfo) 2855dfecf96Smrg echo 1>&2 "\ 2865dfecf96SmrgWARNING: \`$1' is $msg. You should only need it if 2875dfecf96Smrg you modified a \`.texi' or \`.texinfo' file, or any other file 2885dfecf96Smrg indirectly affecting the aspect of the manual. The spurious 2895dfecf96Smrg call might also be the consequence of using a buggy \`make' (AIX, 2905dfecf96Smrg DU, IRIX). You might want to install the \`Texinfo' package or 2915dfecf96Smrg the \`GNU make' package. Grab either from any GNU archive site." 2925dfecf96Smrg # The file to touch is that specified with -o ... 293f14f4646Smrg file=`echo "$*" | sed -n "$sed_output"` 294f14f4646Smrg test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` 2955dfecf96Smrg if test -z "$file"; then 2965dfecf96Smrg # ... or it is the one specified with @setfilename ... 2975dfecf96Smrg infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` 298f14f4646Smrg file=`sed -n ' 299f14f4646Smrg /^@setfilename/{ 300f14f4646Smrg s/.* \([^ ]*\) *$/\1/ 301f14f4646Smrg p 302f14f4646Smrg q 303f14f4646Smrg }' $infile` 3045dfecf96Smrg # ... or it is derived from the source name (dir/f.texi becomes f.info) 3055dfecf96Smrg test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info 3065dfecf96Smrg fi 3075dfecf96Smrg # If the file does not exist, the user really needs makeinfo; 3085dfecf96Smrg # let's fail without touching anything. 3095dfecf96Smrg test -f $file || exit 1 3105dfecf96Smrg touch $file 3115dfecf96Smrg ;; 3125dfecf96Smrg 3135dfecf96Smrg tar) 3145dfecf96Smrg shift 3155dfecf96Smrg 3165dfecf96Smrg # We have already tried tar in the generic part. 3175dfecf96Smrg # Look for gnutar/gtar before invocation to avoid ugly error 3185dfecf96Smrg # messages. 3195dfecf96Smrg if (gnutar --version > /dev/null 2>&1); then 3205dfecf96Smrg gnutar "$@" && exit 0 3215dfecf96Smrg fi 3225dfecf96Smrg if (gtar --version > /dev/null 2>&1); then 3235dfecf96Smrg gtar "$@" && exit 0 3245dfecf96Smrg fi 3255dfecf96Smrg firstarg="$1" 3265dfecf96Smrg if shift; then 327f14f4646Smrg case $firstarg in 3285dfecf96Smrg *o*) 3295dfecf96Smrg firstarg=`echo "$firstarg" | sed s/o//` 3305dfecf96Smrg tar "$firstarg" "$@" && exit 0 3315dfecf96Smrg ;; 3325dfecf96Smrg esac 333f14f4646Smrg case $firstarg in 3345dfecf96Smrg *h*) 3355dfecf96Smrg firstarg=`echo "$firstarg" | sed s/h//` 3365dfecf96Smrg tar "$firstarg" "$@" && exit 0 3375dfecf96Smrg ;; 3385dfecf96Smrg esac 3395dfecf96Smrg fi 3405dfecf96Smrg 3415dfecf96Smrg echo 1>&2 "\ 3425dfecf96SmrgWARNING: I can't seem to be able to run \`tar' with the given arguments. 3435dfecf96Smrg You may want to install GNU tar or Free paxutils, or check the 3445dfecf96Smrg command line arguments." 3455dfecf96Smrg exit 1 3465dfecf96Smrg ;; 3475dfecf96Smrg 3485dfecf96Smrg *) 3495dfecf96Smrg echo 1>&2 "\ 3505dfecf96SmrgWARNING: \`$1' is needed, and is $msg. 3515dfecf96Smrg You might have modified some files without having the 3525dfecf96Smrg proper tools for further handling them. Check the \`README' file, 3535dfecf96Smrg it often tells you about the needed prerequisites for installing 3545dfecf96Smrg this package. You may also peek at any GNU archive site, in case 3555dfecf96Smrg some other package would contain this missing \`$1' program." 3565dfecf96Smrg exit 1 3575dfecf96Smrg ;; 3585dfecf96Smrgesac 3595dfecf96Smrg 3605dfecf96Smrgexit 0 3615dfecf96Smrg 3625dfecf96Smrg# Local variables: 3635dfecf96Smrg# eval: (add-hook 'write-file-hooks 'time-stamp) 3645dfecf96Smrg# time-stamp-start: "scriptversion=" 3655dfecf96Smrg# time-stamp-format: "%:y-%02m-%02d.%02H" 3665dfecf96Smrg# time-stamp-end: "$" 3675dfecf96Smrg# End: 368