missing revision c05e22d7
15dfecf96Smrg#! /bin/sh 25dfecf96Smrg# Common stub for a few missing GNU programs while installing. 35dfecf96Smrg 4c05e22d7Smrgscriptversion=2009-04-28.21; # UTC 55dfecf96Smrg 6c05e22d7Smrg# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006, 7c05e22d7Smrg# 2008, 2009 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 21c05e22d7Smrg# along with this program. If not, see <http://www.gnu.org/licenses/>. 225dfecf96Smrg 235dfecf96Smrg# As a special exception to the GNU General Public License, if you 245dfecf96Smrg# distribute this file as part of a program that contains a 255dfecf96Smrg# configuration script generated by Autoconf, you may include it under 265dfecf96Smrg# the same distribution terms that you use for the rest of that program. 275dfecf96Smrg 285dfecf96Smrgif test $# -eq 0; then 295dfecf96Smrg echo 1>&2 "Try \`$0 --help' for more information" 305dfecf96Smrg exit 1 315dfecf96Smrgfi 325dfecf96Smrg 335dfecf96Smrgrun=: 34f14f4646Smrgsed_output='s/.* --output[ =]\([^ ]*\).*/\1/p' 35f14f4646Smrgsed_minuso='s/.* -o \([^ ]*\).*/\1/p' 365dfecf96Smrg 375dfecf96Smrg# In the cases where this matters, `missing' is being run in the 385dfecf96Smrg# srcdir already. 395dfecf96Smrgif test -f configure.ac; then 405dfecf96Smrg configure_ac=configure.ac 415dfecf96Smrgelse 425dfecf96Smrg configure_ac=configure.in 435dfecf96Smrgfi 445dfecf96Smrg 455dfecf96Smrgmsg="missing on your system" 465dfecf96Smrg 47f14f4646Smrgcase $1 in 485dfecf96Smrg--run) 495dfecf96Smrg # Try to run requested program, and just exit if it succeeds. 505dfecf96Smrg run= 515dfecf96Smrg shift 525dfecf96Smrg "$@" && exit 0 535dfecf96Smrg # Exit code 63 means version mismatch. This often happens 545dfecf96Smrg # when the user try to use an ancient version of a tool on 555dfecf96Smrg # a file that requires a minimum version. In this case we 565dfecf96Smrg # we should proceed has if the program had been absent, or 575dfecf96Smrg # if --run hadn't been passed. 585dfecf96Smrg if test $? = 63; then 595dfecf96Smrg run=: 605dfecf96Smrg msg="probably too old" 615dfecf96Smrg fi 625dfecf96Smrg ;; 635dfecf96Smrg 645dfecf96Smrg -h|--h|--he|--hel|--help) 655dfecf96Smrg echo "\ 665dfecf96Smrg$0 [OPTION]... PROGRAM [ARGUMENT]... 675dfecf96Smrg 685dfecf96SmrgHandle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an 695dfecf96Smrgerror status if there is no known handling for PROGRAM. 705dfecf96Smrg 715dfecf96SmrgOptions: 725dfecf96Smrg -h, --help display this help and exit 735dfecf96Smrg -v, --version output version information and exit 745dfecf96Smrg --run try to run the given command, and emulate it if it fails 755dfecf96Smrg 765dfecf96SmrgSupported PROGRAM values: 775dfecf96Smrg aclocal touch file \`aclocal.m4' 785dfecf96Smrg autoconf touch file \`configure' 795dfecf96Smrg autoheader touch file \`config.h.in' 80f14f4646Smrg autom4te touch the output file, or create a stub one 815dfecf96Smrg automake touch all \`Makefile.in' files 825dfecf96Smrg bison create \`y.tab.[ch]', if possible, from existing .[ch] 835dfecf96Smrg flex create \`lex.yy.c', if possible, from existing .c 845dfecf96Smrg help2man touch the output file 855dfecf96Smrg lex create \`lex.yy.c', if possible, from existing .c 865dfecf96Smrg makeinfo touch the output file 875dfecf96Smrg tar try tar, gnutar, gtar, then tar without non-portable flags 885dfecf96Smrg yacc create \`y.tab.[ch]', if possible, from existing .[ch] 895dfecf96Smrg 90c05e22d7SmrgVersion suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and 91c05e22d7Smrg\`g' are ignored when checking the name. 92c05e22d7Smrg 935dfecf96SmrgSend bug reports to <bug-automake@gnu.org>." 945dfecf96Smrg exit $? 955dfecf96Smrg ;; 965dfecf96Smrg 975dfecf96Smrg -v|--v|--ve|--ver|--vers|--versi|--versio|--version) 985dfecf96Smrg echo "missing $scriptversion (GNU Automake)" 995dfecf96Smrg exit $? 1005dfecf96Smrg ;; 1015dfecf96Smrg 1025dfecf96Smrg -*) 1035dfecf96Smrg echo 1>&2 "$0: Unknown \`$1' option" 1045dfecf96Smrg echo 1>&2 "Try \`$0 --help' for more information" 1055dfecf96Smrg exit 1 1065dfecf96Smrg ;; 1075dfecf96Smrg 1085dfecf96Smrgesac 1095dfecf96Smrg 110c05e22d7Smrg# normalize program name to check for. 111c05e22d7Smrgprogram=`echo "$1" | sed ' 112c05e22d7Smrg s/^gnu-//; t 113c05e22d7Smrg s/^gnu//; t 114c05e22d7Smrg s/^g//; t'` 115c05e22d7Smrg 1165dfecf96Smrg# Now exit if we have it, but it failed. Also exit now if we 1175dfecf96Smrg# don't have it and --version was passed (most likely to detect 118c05e22d7Smrg# the program). This is about non-GNU programs, so use $1 not 119c05e22d7Smrg# $program. 120f14f4646Smrgcase $1 in 121c05e22d7Smrg lex*|yacc*) 1225dfecf96Smrg # Not GNU programs, they don't have --version. 1235dfecf96Smrg ;; 1245dfecf96Smrg 125c05e22d7Smrg tar*) 1265dfecf96Smrg if test -n "$run"; then 1275dfecf96Smrg echo 1>&2 "ERROR: \`tar' requires --run" 1285dfecf96Smrg exit 1 1295dfecf96Smrg elif test "x$2" = "x--version" || test "x$2" = "x--help"; then 1305dfecf96Smrg exit 1 1315dfecf96Smrg fi 1325dfecf96Smrg ;; 1335dfecf96Smrg 1345dfecf96Smrg *) 1355dfecf96Smrg if test -z "$run" && ($1 --version) > /dev/null 2>&1; then 1365dfecf96Smrg # We have it, but it failed. 1375dfecf96Smrg exit 1 1385dfecf96Smrg elif test "x$2" = "x--version" || test "x$2" = "x--help"; then 1395dfecf96Smrg # Could not run --version or --help. This is probably someone 1405dfecf96Smrg # running `$TOOL --version' or `$TOOL --help' to check whether 1415dfecf96Smrg # $TOOL exists and not knowing $TOOL uses missing. 1425dfecf96Smrg exit 1 1435dfecf96Smrg fi 1445dfecf96Smrg ;; 1455dfecf96Smrgesac 1465dfecf96Smrg 1475dfecf96Smrg# If it does not exist, or fails to run (possibly an outdated version), 1485dfecf96Smrg# try to emulate it. 149c05e22d7Smrgcase $program in 1505dfecf96Smrg aclocal*) 1515dfecf96Smrg echo 1>&2 "\ 1525dfecf96SmrgWARNING: \`$1' is $msg. You should only need it if 1535dfecf96Smrg you modified \`acinclude.m4' or \`${configure_ac}'. You might want 1545dfecf96Smrg to install the \`Automake' and \`Perl' packages. Grab them from 1555dfecf96Smrg any GNU archive site." 1565dfecf96Smrg touch aclocal.m4 1575dfecf96Smrg ;; 1585dfecf96Smrg 159c05e22d7Smrg autoconf*) 1605dfecf96Smrg echo 1>&2 "\ 1615dfecf96SmrgWARNING: \`$1' is $msg. You should only need it if 1625dfecf96Smrg you modified \`${configure_ac}'. You might want to install the 1635dfecf96Smrg \`Autoconf' and \`GNU m4' packages. Grab them from any GNU 1645dfecf96Smrg archive site." 1655dfecf96Smrg touch configure 1665dfecf96Smrg ;; 1675dfecf96Smrg 168c05e22d7Smrg autoheader*) 1695dfecf96Smrg echo 1>&2 "\ 1705dfecf96SmrgWARNING: \`$1' is $msg. You should only need it if 1715dfecf96Smrg you modified \`acconfig.h' or \`${configure_ac}'. You might want 1725dfecf96Smrg to install the \`Autoconf' and \`GNU m4' packages. Grab them 1735dfecf96Smrg from any GNU archive site." 1745dfecf96Smrg files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` 1755dfecf96Smrg test -z "$files" && files="config.h" 1765dfecf96Smrg touch_files= 1775dfecf96Smrg for f in $files; do 178f14f4646Smrg case $f in 1795dfecf96Smrg *:*) touch_files="$touch_files "`echo "$f" | 1805dfecf96Smrg sed -e 's/^[^:]*://' -e 's/:.*//'`;; 1815dfecf96Smrg *) touch_files="$touch_files $f.in";; 1825dfecf96Smrg esac 1835dfecf96Smrg done 1845dfecf96Smrg touch $touch_files 1855dfecf96Smrg ;; 1865dfecf96Smrg 1875dfecf96Smrg automake*) 1885dfecf96Smrg echo 1>&2 "\ 1895dfecf96SmrgWARNING: \`$1' is $msg. You should only need it if 1905dfecf96Smrg you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. 1915dfecf96Smrg You might want to install the \`Automake' and \`Perl' packages. 1925dfecf96Smrg Grab them from any GNU archive site." 1935dfecf96Smrg find . -type f -name Makefile.am -print | 1945dfecf96Smrg sed 's/\.am$/.in/' | 1955dfecf96Smrg while read f; do touch "$f"; done 1965dfecf96Smrg ;; 1975dfecf96Smrg 198c05e22d7Smrg autom4te*) 1995dfecf96Smrg echo 1>&2 "\ 2005dfecf96SmrgWARNING: \`$1' is needed, but is $msg. 2015dfecf96Smrg You might have modified some files without having the 2025dfecf96Smrg proper tools for further handling them. 2035dfecf96Smrg You can get \`$1' as part of \`Autoconf' from any GNU 2045dfecf96Smrg archive site." 2055dfecf96Smrg 206f14f4646Smrg file=`echo "$*" | sed -n "$sed_output"` 207f14f4646Smrg test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` 2085dfecf96Smrg if test -f "$file"; then 2095dfecf96Smrg touch $file 2105dfecf96Smrg else 2115dfecf96Smrg test -z "$file" || exec >$file 2125dfecf96Smrg echo "#! /bin/sh" 2135dfecf96Smrg echo "# Created by GNU Automake missing as a replacement of" 2145dfecf96Smrg echo "# $ $@" 2155dfecf96Smrg echo "exit 0" 2165dfecf96Smrg chmod +x $file 2175dfecf96Smrg exit 1 2185dfecf96Smrg fi 2195dfecf96Smrg ;; 2205dfecf96Smrg 221c05e22d7Smrg bison*|yacc*) 2225dfecf96Smrg echo 1>&2 "\ 2235dfecf96SmrgWARNING: \`$1' $msg. You should only need it if 2245dfecf96Smrg you modified a \`.y' file. You may need the \`Bison' package 2255dfecf96Smrg in order for those modifications to take effect. You can get 2265dfecf96Smrg \`Bison' from any GNU archive site." 2275dfecf96Smrg rm -f y.tab.c y.tab.h 228f14f4646Smrg if test $# -ne 1; then 2295dfecf96Smrg eval LASTARG="\${$#}" 230f14f4646Smrg case $LASTARG in 2315dfecf96Smrg *.y) 2325dfecf96Smrg SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` 233f14f4646Smrg if test -f "$SRCFILE"; then 2345dfecf96Smrg cp "$SRCFILE" y.tab.c 2355dfecf96Smrg fi 2365dfecf96Smrg SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` 237f14f4646Smrg if test -f "$SRCFILE"; then 2385dfecf96Smrg cp "$SRCFILE" y.tab.h 2395dfecf96Smrg fi 2405dfecf96Smrg ;; 2415dfecf96Smrg esac 2425dfecf96Smrg fi 243f14f4646Smrg if test ! -f y.tab.h; then 2445dfecf96Smrg echo >y.tab.h 2455dfecf96Smrg fi 246f14f4646Smrg if test ! -f y.tab.c; then 2475dfecf96Smrg echo 'main() { return 0; }' >y.tab.c 2485dfecf96Smrg fi 2495dfecf96Smrg ;; 2505dfecf96Smrg 251c05e22d7Smrg lex*|flex*) 2525dfecf96Smrg echo 1>&2 "\ 2535dfecf96SmrgWARNING: \`$1' is $msg. You should only need it if 2545dfecf96Smrg you modified a \`.l' file. You may need the \`Flex' package 2555dfecf96Smrg in order for those modifications to take effect. You can get 2565dfecf96Smrg \`Flex' from any GNU archive site." 2575dfecf96Smrg rm -f lex.yy.c 258f14f4646Smrg if test $# -ne 1; then 2595dfecf96Smrg eval LASTARG="\${$#}" 260f14f4646Smrg case $LASTARG in 2615dfecf96Smrg *.l) 2625dfecf96Smrg SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` 263f14f4646Smrg if test -f "$SRCFILE"; then 2645dfecf96Smrg cp "$SRCFILE" lex.yy.c 2655dfecf96Smrg fi 2665dfecf96Smrg ;; 2675dfecf96Smrg esac 2685dfecf96Smrg fi 269f14f4646Smrg if test ! -f lex.yy.c; then 2705dfecf96Smrg echo 'main() { return 0; }' >lex.yy.c 2715dfecf96Smrg fi 2725dfecf96Smrg ;; 2735dfecf96Smrg 274c05e22d7Smrg help2man*) 2755dfecf96Smrg echo 1>&2 "\ 2765dfecf96SmrgWARNING: \`$1' is $msg. You should only need it if 2775dfecf96Smrg you modified a dependency of a manual page. You may need the 2785dfecf96Smrg \`Help2man' package in order for those modifications to take 2795dfecf96Smrg effect. You can get \`Help2man' from any GNU archive site." 2805dfecf96Smrg 281f14f4646Smrg file=`echo "$*" | sed -n "$sed_output"` 282f14f4646Smrg test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` 283f14f4646Smrg if test -f "$file"; then 2845dfecf96Smrg touch $file 2855dfecf96Smrg else 2865dfecf96Smrg test -z "$file" || exec >$file 2875dfecf96Smrg echo ".ab help2man is required to generate this page" 288c05e22d7Smrg exit $? 2895dfecf96Smrg fi 2905dfecf96Smrg ;; 2915dfecf96Smrg 292c05e22d7Smrg makeinfo*) 2935dfecf96Smrg echo 1>&2 "\ 2945dfecf96SmrgWARNING: \`$1' is $msg. You should only need it if 2955dfecf96Smrg you modified a \`.texi' or \`.texinfo' file, or any other file 2965dfecf96Smrg indirectly affecting the aspect of the manual. The spurious 2975dfecf96Smrg call might also be the consequence of using a buggy \`make' (AIX, 2985dfecf96Smrg DU, IRIX). You might want to install the \`Texinfo' package or 2995dfecf96Smrg the \`GNU make' package. Grab either from any GNU archive site." 3005dfecf96Smrg # The file to touch is that specified with -o ... 301f14f4646Smrg file=`echo "$*" | sed -n "$sed_output"` 302f14f4646Smrg test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` 3035dfecf96Smrg if test -z "$file"; then 3045dfecf96Smrg # ... or it is the one specified with @setfilename ... 3055dfecf96Smrg infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` 306f14f4646Smrg file=`sed -n ' 307f14f4646Smrg /^@setfilename/{ 308f14f4646Smrg s/.* \([^ ]*\) *$/\1/ 309f14f4646Smrg p 310f14f4646Smrg q 311f14f4646Smrg }' $infile` 3125dfecf96Smrg # ... or it is derived from the source name (dir/f.texi becomes f.info) 3135dfecf96Smrg test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info 3145dfecf96Smrg fi 3155dfecf96Smrg # If the file does not exist, the user really needs makeinfo; 3165dfecf96Smrg # let's fail without touching anything. 3175dfecf96Smrg test -f $file || exit 1 3185dfecf96Smrg touch $file 3195dfecf96Smrg ;; 3205dfecf96Smrg 321c05e22d7Smrg tar*) 3225dfecf96Smrg shift 3235dfecf96Smrg 3245dfecf96Smrg # We have already tried tar in the generic part. 3255dfecf96Smrg # Look for gnutar/gtar before invocation to avoid ugly error 3265dfecf96Smrg # messages. 3275dfecf96Smrg if (gnutar --version > /dev/null 2>&1); then 3285dfecf96Smrg gnutar "$@" && exit 0 3295dfecf96Smrg fi 3305dfecf96Smrg if (gtar --version > /dev/null 2>&1); then 3315dfecf96Smrg gtar "$@" && exit 0 3325dfecf96Smrg fi 3335dfecf96Smrg firstarg="$1" 3345dfecf96Smrg if shift; then 335f14f4646Smrg case $firstarg in 3365dfecf96Smrg *o*) 3375dfecf96Smrg firstarg=`echo "$firstarg" | sed s/o//` 3385dfecf96Smrg tar "$firstarg" "$@" && exit 0 3395dfecf96Smrg ;; 3405dfecf96Smrg esac 341f14f4646Smrg case $firstarg in 3425dfecf96Smrg *h*) 3435dfecf96Smrg firstarg=`echo "$firstarg" | sed s/h//` 3445dfecf96Smrg tar "$firstarg" "$@" && exit 0 3455dfecf96Smrg ;; 3465dfecf96Smrg esac 3475dfecf96Smrg fi 3485dfecf96Smrg 3495dfecf96Smrg echo 1>&2 "\ 3505dfecf96SmrgWARNING: I can't seem to be able to run \`tar' with the given arguments. 3515dfecf96Smrg You may want to install GNU tar or Free paxutils, or check the 3525dfecf96Smrg command line arguments." 3535dfecf96Smrg exit 1 3545dfecf96Smrg ;; 3555dfecf96Smrg 3565dfecf96Smrg *) 3575dfecf96Smrg echo 1>&2 "\ 3585dfecf96SmrgWARNING: \`$1' is needed, and is $msg. 3595dfecf96Smrg You might have modified some files without having the 3605dfecf96Smrg proper tools for further handling them. Check the \`README' file, 3615dfecf96Smrg it often tells you about the needed prerequisites for installing 3625dfecf96Smrg this package. You may also peek at any GNU archive site, in case 3635dfecf96Smrg some other package would contain this missing \`$1' program." 3645dfecf96Smrg exit 1 3655dfecf96Smrg ;; 3665dfecf96Smrgesac 3675dfecf96Smrg 3685dfecf96Smrgexit 0 3695dfecf96Smrg 3705dfecf96Smrg# Local variables: 3715dfecf96Smrg# eval: (add-hook 'write-file-hooks 'time-stamp) 3725dfecf96Smrg# time-stamp-start: "scriptversion=" 3735dfecf96Smrg# time-stamp-format: "%:y-%02m-%02d.%02H" 374c05e22d7Smrg# time-stamp-time-zone: "UTC" 375c05e22d7Smrg# time-stamp-end: "; # UTC" 3765dfecf96Smrg# End: 377