missing revision 2ceb2653
1b7d53ee5Smrg#! /bin/sh 2b7d53ee5Smrg# Common stub for a few missing GNU programs while installing. 32ceb2653Smrg 42ceb2653Smrgscriptversion=2009-04-28.21; # UTC 52ceb2653Smrg 62ceb2653Smrg# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006, 72ceb2653Smrg# 2008, 2009 Free Software Foundation, Inc. 8b7d53ee5Smrg# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996. 9b7d53ee5Smrg 10b7d53ee5Smrg# This program is free software; you can redistribute it and/or modify 11b7d53ee5Smrg# it under the terms of the GNU General Public License as published by 12b7d53ee5Smrg# the Free Software Foundation; either version 2, or (at your option) 13b7d53ee5Smrg# any later version. 14b7d53ee5Smrg 15b7d53ee5Smrg# This program is distributed in the hope that it will be useful, 16b7d53ee5Smrg# but WITHOUT ANY WARRANTY; without even the implied warranty of 17b7d53ee5Smrg# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18b7d53ee5Smrg# GNU General Public License for more details. 19b7d53ee5Smrg 20b7d53ee5Smrg# You should have received a copy of the GNU General Public License 212ceb2653Smrg# along with this program. If not, see <http://www.gnu.org/licenses/>. 22b7d53ee5Smrg 23b7d53ee5Smrg# As a special exception to the GNU General Public License, if you 24b7d53ee5Smrg# distribute this file as part of a program that contains a 25b7d53ee5Smrg# configuration script generated by Autoconf, you may include it under 26b7d53ee5Smrg# the same distribution terms that you use for the rest of that program. 27b7d53ee5Smrg 28b7d53ee5Smrgif test $# -eq 0; then 29b7d53ee5Smrg echo 1>&2 "Try \`$0 --help' for more information" 30b7d53ee5Smrg exit 1 31b7d53ee5Smrgfi 32b7d53ee5Smrg 33b7d53ee5Smrgrun=: 342ceb2653Smrgsed_output='s/.* --output[ =]\([^ ]*\).*/\1/p' 352ceb2653Smrgsed_minuso='s/.* -o \([^ ]*\).*/\1/p' 36b7d53ee5Smrg 37b7d53ee5Smrg# In the cases where this matters, `missing' is being run in the 38b7d53ee5Smrg# srcdir already. 39b7d53ee5Smrgif test -f configure.ac; then 40b7d53ee5Smrg configure_ac=configure.ac 41b7d53ee5Smrgelse 42b7d53ee5Smrg configure_ac=configure.in 43b7d53ee5Smrgfi 44b7d53ee5Smrg 452ceb2653Smrgmsg="missing on your system" 462ceb2653Smrg 472ceb2653Smrgcase $1 in 48b7d53ee5Smrg--run) 49b7d53ee5Smrg # Try to run requested program, and just exit if it succeeds. 50b7d53ee5Smrg run= 51b7d53ee5Smrg shift 52b7d53ee5Smrg "$@" && exit 0 532ceb2653Smrg # Exit code 63 means version mismatch. This often happens 542ceb2653Smrg # when the user try to use an ancient version of a tool on 552ceb2653Smrg # a file that requires a minimum version. In this case we 562ceb2653Smrg # we should proceed has if the program had been absent, or 572ceb2653Smrg # if --run hadn't been passed. 582ceb2653Smrg if test $? = 63; then 592ceb2653Smrg run=: 602ceb2653Smrg msg="probably too old" 612ceb2653Smrg fi 62b7d53ee5Smrg ;; 63b7d53ee5Smrg 64b7d53ee5Smrg -h|--h|--he|--hel|--help) 65b7d53ee5Smrg echo "\ 66b7d53ee5Smrg$0 [OPTION]... PROGRAM [ARGUMENT]... 67b7d53ee5Smrg 68b7d53ee5SmrgHandle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an 69b7d53ee5Smrgerror status if there is no known handling for PROGRAM. 70b7d53ee5Smrg 71b7d53ee5SmrgOptions: 72b7d53ee5Smrg -h, --help display this help and exit 73b7d53ee5Smrg -v, --version output version information and exit 74b7d53ee5Smrg --run try to run the given command, and emulate it if it fails 75b7d53ee5Smrg 76b7d53ee5SmrgSupported PROGRAM values: 77b7d53ee5Smrg aclocal touch file \`aclocal.m4' 78b7d53ee5Smrg autoconf touch file \`configure' 79b7d53ee5Smrg autoheader touch file \`config.h.in' 802ceb2653Smrg autom4te touch the output file, or create a stub one 81b7d53ee5Smrg automake touch all \`Makefile.in' files 82b7d53ee5Smrg bison create \`y.tab.[ch]', if possible, from existing .[ch] 83b7d53ee5Smrg flex create \`lex.yy.c', if possible, from existing .c 84b7d53ee5Smrg help2man touch the output file 85b7d53ee5Smrg lex create \`lex.yy.c', if possible, from existing .c 86b7d53ee5Smrg makeinfo touch the output file 87b7d53ee5Smrg tar try tar, gnutar, gtar, then tar without non-portable flags 882ceb2653Smrg yacc create \`y.tab.[ch]', if possible, from existing .[ch] 892ceb2653Smrg 902ceb2653SmrgVersion suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and 912ceb2653Smrg\`g' are ignored when checking the name. 922ceb2653Smrg 932ceb2653SmrgSend bug reports to <bug-automake@gnu.org>." 942ceb2653Smrg exit $? 95b7d53ee5Smrg ;; 96b7d53ee5Smrg 97b7d53ee5Smrg -v|--v|--ve|--ver|--vers|--versi|--versio|--version) 982ceb2653Smrg echo "missing $scriptversion (GNU Automake)" 992ceb2653Smrg exit $? 100b7d53ee5Smrg ;; 101b7d53ee5Smrg 102b7d53ee5Smrg -*) 103b7d53ee5Smrg echo 1>&2 "$0: Unknown \`$1' option" 104b7d53ee5Smrg echo 1>&2 "Try \`$0 --help' for more information" 105b7d53ee5Smrg exit 1 106b7d53ee5Smrg ;; 107b7d53ee5Smrg 1082ceb2653Smrgesac 1092ceb2653Smrg 1102ceb2653Smrg# normalize program name to check for. 1112ceb2653Smrgprogram=`echo "$1" | sed ' 1122ceb2653Smrg s/^gnu-//; t 1132ceb2653Smrg s/^gnu//; t 1142ceb2653Smrg s/^g//; t'` 1152ceb2653Smrg 1162ceb2653Smrg# Now exit if we have it, but it failed. Also exit now if we 1172ceb2653Smrg# don't have it and --version was passed (most likely to detect 1182ceb2653Smrg# the program). This is about non-GNU programs, so use $1 not 1192ceb2653Smrg# $program. 1202ceb2653Smrgcase $1 in 1212ceb2653Smrg lex*|yacc*) 1222ceb2653Smrg # Not GNU programs, they don't have --version. 1232ceb2653Smrg ;; 1242ceb2653Smrg 1252ceb2653Smrg tar*) 1262ceb2653Smrg if test -n "$run"; then 1272ceb2653Smrg echo 1>&2 "ERROR: \`tar' requires --run" 1282ceb2653Smrg exit 1 1292ceb2653Smrg elif test "x$2" = "x--version" || test "x$2" = "x--help"; then 1302ceb2653Smrg exit 1 1312ceb2653Smrg fi 1322ceb2653Smrg ;; 1332ceb2653Smrg 1342ceb2653Smrg *) 135b7d53ee5Smrg if test -z "$run" && ($1 --version) > /dev/null 2>&1; then 136b7d53ee5Smrg # We have it, but it failed. 137b7d53ee5Smrg exit 1 1382ceb2653Smrg elif test "x$2" = "x--version" || test "x$2" = "x--help"; then 1392ceb2653Smrg # Could not run --version or --help. This is probably someone 1402ceb2653Smrg # running `$TOOL --version' or `$TOOL --help' to check whether 1412ceb2653Smrg # $TOOL exists and not knowing $TOOL uses missing. 1422ceb2653Smrg exit 1 143b7d53ee5Smrg fi 1442ceb2653Smrg ;; 1452ceb2653Smrgesac 146b7d53ee5Smrg 1472ceb2653Smrg# If it does not exist, or fails to run (possibly an outdated version), 1482ceb2653Smrg# try to emulate it. 1492ceb2653Smrgcase $program in 1502ceb2653Smrg aclocal*) 151b7d53ee5Smrg echo 1>&2 "\ 1522ceb2653SmrgWARNING: \`$1' is $msg. You should only need it if 153b7d53ee5Smrg you modified \`acinclude.m4' or \`${configure_ac}'. You might want 154b7d53ee5Smrg to install the \`Automake' and \`Perl' packages. Grab them from 155b7d53ee5Smrg any GNU archive site." 156b7d53ee5Smrg touch aclocal.m4 157b7d53ee5Smrg ;; 158b7d53ee5Smrg 1592ceb2653Smrg autoconf*) 160b7d53ee5Smrg echo 1>&2 "\ 1612ceb2653SmrgWARNING: \`$1' is $msg. You should only need it if 162b7d53ee5Smrg you modified \`${configure_ac}'. You might want to install the 163b7d53ee5Smrg \`Autoconf' and \`GNU m4' packages. Grab them from any GNU 164b7d53ee5Smrg archive site." 165b7d53ee5Smrg touch configure 166b7d53ee5Smrg ;; 167b7d53ee5Smrg 1682ceb2653Smrg autoheader*) 169b7d53ee5Smrg echo 1>&2 "\ 1702ceb2653SmrgWARNING: \`$1' is $msg. You should only need it if 171b7d53ee5Smrg you modified \`acconfig.h' or \`${configure_ac}'. You might want 172b7d53ee5Smrg to install the \`Autoconf' and \`GNU m4' packages. Grab them 173b7d53ee5Smrg from any GNU archive site." 174b7d53ee5Smrg files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` 175b7d53ee5Smrg test -z "$files" && files="config.h" 176b7d53ee5Smrg touch_files= 177b7d53ee5Smrg for f in $files; do 1782ceb2653Smrg case $f in 179b7d53ee5Smrg *:*) touch_files="$touch_files "`echo "$f" | 180b7d53ee5Smrg sed -e 's/^[^:]*://' -e 's/:.*//'`;; 181b7d53ee5Smrg *) touch_files="$touch_files $f.in";; 182b7d53ee5Smrg esac 183b7d53ee5Smrg done 184b7d53ee5Smrg touch $touch_files 185b7d53ee5Smrg ;; 186b7d53ee5Smrg 187b7d53ee5Smrg automake*) 188b7d53ee5Smrg echo 1>&2 "\ 1892ceb2653SmrgWARNING: \`$1' is $msg. You should only need it if 190b7d53ee5Smrg you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. 191b7d53ee5Smrg You might want to install the \`Automake' and \`Perl' packages. 192b7d53ee5Smrg Grab them from any GNU archive site." 193b7d53ee5Smrg find . -type f -name Makefile.am -print | 194b7d53ee5Smrg sed 's/\.am$/.in/' | 195b7d53ee5Smrg while read f; do touch "$f"; done 196b7d53ee5Smrg ;; 197b7d53ee5Smrg 1982ceb2653Smrg autom4te*) 199b7d53ee5Smrg echo 1>&2 "\ 2002ceb2653SmrgWARNING: \`$1' is needed, but is $msg. 2012ceb2653Smrg You might have modified some files without having the 202b7d53ee5Smrg proper tools for further handling them. 203b7d53ee5Smrg You can get \`$1' as part of \`Autoconf' from any GNU 204b7d53ee5Smrg archive site." 205b7d53ee5Smrg 2062ceb2653Smrg file=`echo "$*" | sed -n "$sed_output"` 2072ceb2653Smrg test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` 208b7d53ee5Smrg if test -f "$file"; then 209b7d53ee5Smrg touch $file 210b7d53ee5Smrg else 211b7d53ee5Smrg test -z "$file" || exec >$file 212b7d53ee5Smrg echo "#! /bin/sh" 213b7d53ee5Smrg echo "# Created by GNU Automake missing as a replacement of" 214b7d53ee5Smrg echo "# $ $@" 215b7d53ee5Smrg echo "exit 0" 216b7d53ee5Smrg chmod +x $file 217b7d53ee5Smrg exit 1 218b7d53ee5Smrg fi 219b7d53ee5Smrg ;; 220b7d53ee5Smrg 2212ceb2653Smrg bison*|yacc*) 222b7d53ee5Smrg echo 1>&2 "\ 2232ceb2653SmrgWARNING: \`$1' $msg. You should only need it if 224b7d53ee5Smrg you modified a \`.y' file. You may need the \`Bison' package 225b7d53ee5Smrg in order for those modifications to take effect. You can get 226b7d53ee5Smrg \`Bison' from any GNU archive site." 227b7d53ee5Smrg rm -f y.tab.c y.tab.h 2282ceb2653Smrg if test $# -ne 1; then 229b7d53ee5Smrg eval LASTARG="\${$#}" 2302ceb2653Smrg case $LASTARG in 231b7d53ee5Smrg *.y) 232b7d53ee5Smrg SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` 2332ceb2653Smrg if test -f "$SRCFILE"; then 234b7d53ee5Smrg cp "$SRCFILE" y.tab.c 235b7d53ee5Smrg fi 236b7d53ee5Smrg SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` 2372ceb2653Smrg if test -f "$SRCFILE"; then 238b7d53ee5Smrg cp "$SRCFILE" y.tab.h 239b7d53ee5Smrg fi 240b7d53ee5Smrg ;; 241b7d53ee5Smrg esac 242b7d53ee5Smrg fi 2432ceb2653Smrg if test ! -f y.tab.h; then 244b7d53ee5Smrg echo >y.tab.h 245b7d53ee5Smrg fi 2462ceb2653Smrg if test ! -f y.tab.c; then 247b7d53ee5Smrg echo 'main() { return 0; }' >y.tab.c 248b7d53ee5Smrg fi 249b7d53ee5Smrg ;; 250b7d53ee5Smrg 2512ceb2653Smrg lex*|flex*) 252b7d53ee5Smrg echo 1>&2 "\ 2532ceb2653SmrgWARNING: \`$1' is $msg. You should only need it if 254b7d53ee5Smrg you modified a \`.l' file. You may need the \`Flex' package 255b7d53ee5Smrg in order for those modifications to take effect. You can get 256b7d53ee5Smrg \`Flex' from any GNU archive site." 257b7d53ee5Smrg rm -f lex.yy.c 2582ceb2653Smrg if test $# -ne 1; then 259b7d53ee5Smrg eval LASTARG="\${$#}" 2602ceb2653Smrg case $LASTARG in 261b7d53ee5Smrg *.l) 262b7d53ee5Smrg SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` 2632ceb2653Smrg if test -f "$SRCFILE"; then 264b7d53ee5Smrg cp "$SRCFILE" lex.yy.c 265b7d53ee5Smrg fi 266b7d53ee5Smrg ;; 267b7d53ee5Smrg esac 268b7d53ee5Smrg fi 2692ceb2653Smrg if test ! -f lex.yy.c; then 270b7d53ee5Smrg echo 'main() { return 0; }' >lex.yy.c 271b7d53ee5Smrg fi 272b7d53ee5Smrg ;; 273b7d53ee5Smrg 2742ceb2653Smrg help2man*) 275b7d53ee5Smrg echo 1>&2 "\ 2762ceb2653SmrgWARNING: \`$1' is $msg. You should only need it if 277b7d53ee5Smrg you modified a dependency of a manual page. You may need the 278b7d53ee5Smrg \`Help2man' package in order for those modifications to take 279b7d53ee5Smrg effect. You can get \`Help2man' from any GNU archive site." 280b7d53ee5Smrg 2812ceb2653Smrg file=`echo "$*" | sed -n "$sed_output"` 2822ceb2653Smrg test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` 2832ceb2653Smrg if test -f "$file"; then 284b7d53ee5Smrg touch $file 285b7d53ee5Smrg else 286b7d53ee5Smrg test -z "$file" || exec >$file 287b7d53ee5Smrg echo ".ab help2man is required to generate this page" 2882ceb2653Smrg exit $? 289b7d53ee5Smrg fi 290b7d53ee5Smrg ;; 291b7d53ee5Smrg 2922ceb2653Smrg makeinfo*) 293b7d53ee5Smrg echo 1>&2 "\ 2942ceb2653SmrgWARNING: \`$1' is $msg. You should only need it if 295b7d53ee5Smrg you modified a \`.texi' or \`.texinfo' file, or any other file 296b7d53ee5Smrg indirectly affecting the aspect of the manual. The spurious 297b7d53ee5Smrg call might also be the consequence of using a buggy \`make' (AIX, 298b7d53ee5Smrg DU, IRIX). You might want to install the \`Texinfo' package or 299b7d53ee5Smrg the \`GNU make' package. Grab either from any GNU archive site." 3002ceb2653Smrg # The file to touch is that specified with -o ... 3012ceb2653Smrg file=`echo "$*" | sed -n "$sed_output"` 3022ceb2653Smrg test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` 303b7d53ee5Smrg if test -z "$file"; then 3042ceb2653Smrg # ... or it is the one specified with @setfilename ... 3052ceb2653Smrg infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` 3062ceb2653Smrg file=`sed -n ' 3072ceb2653Smrg /^@setfilename/{ 3082ceb2653Smrg s/.* \([^ ]*\) *$/\1/ 3092ceb2653Smrg p 3102ceb2653Smrg q 3112ceb2653Smrg }' $infile` 3122ceb2653Smrg # ... or it is derived from the source name (dir/f.texi becomes f.info) 3132ceb2653Smrg test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info 314b7d53ee5Smrg fi 3152ceb2653Smrg # If the file does not exist, the user really needs makeinfo; 3162ceb2653Smrg # let's fail without touching anything. 3172ceb2653Smrg test -f $file || exit 1 318b7d53ee5Smrg touch $file 319b7d53ee5Smrg ;; 320b7d53ee5Smrg 3212ceb2653Smrg tar*) 322b7d53ee5Smrg shift 323b7d53ee5Smrg 324b7d53ee5Smrg # We have already tried tar in the generic part. 325b7d53ee5Smrg # Look for gnutar/gtar before invocation to avoid ugly error 326b7d53ee5Smrg # messages. 327b7d53ee5Smrg if (gnutar --version > /dev/null 2>&1); then 328b7d53ee5Smrg gnutar "$@" && exit 0 329b7d53ee5Smrg fi 330b7d53ee5Smrg if (gtar --version > /dev/null 2>&1); then 331b7d53ee5Smrg gtar "$@" && exit 0 332b7d53ee5Smrg fi 333b7d53ee5Smrg firstarg="$1" 334b7d53ee5Smrg if shift; then 3352ceb2653Smrg case $firstarg in 336b7d53ee5Smrg *o*) 337b7d53ee5Smrg firstarg=`echo "$firstarg" | sed s/o//` 338b7d53ee5Smrg tar "$firstarg" "$@" && exit 0 339b7d53ee5Smrg ;; 340b7d53ee5Smrg esac 3412ceb2653Smrg case $firstarg in 342b7d53ee5Smrg *h*) 343b7d53ee5Smrg firstarg=`echo "$firstarg" | sed s/h//` 344b7d53ee5Smrg tar "$firstarg" "$@" && exit 0 345b7d53ee5Smrg ;; 346b7d53ee5Smrg esac 347b7d53ee5Smrg fi 348b7d53ee5Smrg 349b7d53ee5Smrg echo 1>&2 "\ 350b7d53ee5SmrgWARNING: I can't seem to be able to run \`tar' with the given arguments. 351b7d53ee5Smrg You may want to install GNU tar or Free paxutils, or check the 352b7d53ee5Smrg command line arguments." 353b7d53ee5Smrg exit 1 354b7d53ee5Smrg ;; 355b7d53ee5Smrg 356b7d53ee5Smrg *) 357b7d53ee5Smrg echo 1>&2 "\ 3582ceb2653SmrgWARNING: \`$1' is needed, and is $msg. 3592ceb2653Smrg You might have modified some files without having the 360b7d53ee5Smrg proper tools for further handling them. Check the \`README' file, 361b7d53ee5Smrg it often tells you about the needed prerequisites for installing 362b7d53ee5Smrg this package. You may also peek at any GNU archive site, in case 363b7d53ee5Smrg some other package would contain this missing \`$1' program." 364b7d53ee5Smrg exit 1 365b7d53ee5Smrg ;; 366b7d53ee5Smrgesac 367b7d53ee5Smrg 368b7d53ee5Smrgexit 0 3692ceb2653Smrg 3702ceb2653Smrg# Local variables: 3712ceb2653Smrg# eval: (add-hook 'write-file-hooks 'time-stamp) 3722ceb2653Smrg# time-stamp-start: "scriptversion=" 3732ceb2653Smrg# time-stamp-format: "%:y-%02m-%02d.%02H" 3742ceb2653Smrg# time-stamp-time-zone: "UTC" 3752ceb2653Smrg# time-stamp-end: "; # UTC" 3762ceb2653Smrg# End: 377