missing revision ee3138f1
1ee3138f1Smrg#! /bin/sh 2ee3138f1Smrg# Common stub for a few missing GNU programs while installing. 3ee3138f1Smrg 4ee3138f1Smrgscriptversion=2006-05-10.23 5ee3138f1Smrg 6ee3138f1Smrg# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006 7ee3138f1Smrg# Free Software Foundation, Inc. 8ee3138f1Smrg# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996. 9ee3138f1Smrg 10ee3138f1Smrg# This program is free software; you can redistribute it and/or modify 11ee3138f1Smrg# it under the terms of the GNU General Public License as published by 12ee3138f1Smrg# the Free Software Foundation; either version 2, or (at your option) 13ee3138f1Smrg# any later version. 14ee3138f1Smrg 15ee3138f1Smrg# This program is distributed in the hope that it will be useful, 16ee3138f1Smrg# but WITHOUT ANY WARRANTY; without even the implied warranty of 17ee3138f1Smrg# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18ee3138f1Smrg# GNU General Public License for more details. 19ee3138f1Smrg 20ee3138f1Smrg# You should have received a copy of the GNU General Public License 21ee3138f1Smrg# along with this program; if not, write to the Free Software 22ee3138f1Smrg# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 23ee3138f1Smrg# 02110-1301, USA. 24ee3138f1Smrg 25ee3138f1Smrg# As a special exception to the GNU General Public License, if you 26ee3138f1Smrg# distribute this file as part of a program that contains a 27ee3138f1Smrg# configuration script generated by Autoconf, you may include it under 28ee3138f1Smrg# the same distribution terms that you use for the rest of that program. 29ee3138f1Smrg 30ee3138f1Smrgif test $# -eq 0; then 31ee3138f1Smrg echo 1>&2 "Try \`$0 --help' for more information" 32ee3138f1Smrg exit 1 33ee3138f1Smrgfi 34ee3138f1Smrg 35ee3138f1Smrgrun=: 36ee3138f1Smrgsed_output='s/.* --output[ =]\([^ ]*\).*/\1/p' 37ee3138f1Smrgsed_minuso='s/.* -o \([^ ]*\).*/\1/p' 38ee3138f1Smrg 39ee3138f1Smrg# In the cases where this matters, `missing' is being run in the 40ee3138f1Smrg# srcdir already. 41ee3138f1Smrgif test -f configure.ac; then 42ee3138f1Smrg configure_ac=configure.ac 43ee3138f1Smrgelse 44ee3138f1Smrg configure_ac=configure.in 45ee3138f1Smrgfi 46ee3138f1Smrg 47ee3138f1Smrgmsg="missing on your system" 48ee3138f1Smrg 49ee3138f1Smrgcase $1 in 50ee3138f1Smrg--run) 51ee3138f1Smrg # Try to run requested program, and just exit if it succeeds. 52ee3138f1Smrg run= 53ee3138f1Smrg shift 54ee3138f1Smrg "$@" && exit 0 55ee3138f1Smrg # Exit code 63 means version mismatch. This often happens 56ee3138f1Smrg # when the user try to use an ancient version of a tool on 57ee3138f1Smrg # a file that requires a minimum version. In this case we 58ee3138f1Smrg # we should proceed has if the program had been absent, or 59ee3138f1Smrg # if --run hadn't been passed. 60ee3138f1Smrg if test $? = 63; then 61ee3138f1Smrg run=: 62ee3138f1Smrg msg="probably too old" 63ee3138f1Smrg fi 64ee3138f1Smrg ;; 65ee3138f1Smrg 66ee3138f1Smrg -h|--h|--he|--hel|--help) 67ee3138f1Smrg echo "\ 68ee3138f1Smrg$0 [OPTION]... PROGRAM [ARGUMENT]... 69ee3138f1Smrg 70ee3138f1SmrgHandle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an 71ee3138f1Smrgerror status if there is no known handling for PROGRAM. 72ee3138f1Smrg 73ee3138f1SmrgOptions: 74ee3138f1Smrg -h, --help display this help and exit 75ee3138f1Smrg -v, --version output version information and exit 76ee3138f1Smrg --run try to run the given command, and emulate it if it fails 77ee3138f1Smrg 78ee3138f1SmrgSupported PROGRAM values: 79ee3138f1Smrg aclocal touch file \`aclocal.m4' 80ee3138f1Smrg autoconf touch file \`configure' 81ee3138f1Smrg autoheader touch file \`config.h.in' 82ee3138f1Smrg autom4te touch the output file, or create a stub one 83ee3138f1Smrg automake touch all \`Makefile.in' files 84ee3138f1Smrg bison create \`y.tab.[ch]', if possible, from existing .[ch] 85ee3138f1Smrg flex create \`lex.yy.c', if possible, from existing .c 86ee3138f1Smrg help2man touch the output file 87ee3138f1Smrg lex create \`lex.yy.c', if possible, from existing .c 88ee3138f1Smrg makeinfo touch the output file 89ee3138f1Smrg tar try tar, gnutar, gtar, then tar without non-portable flags 90ee3138f1Smrg yacc create \`y.tab.[ch]', if possible, from existing .[ch] 91ee3138f1Smrg 92ee3138f1SmrgSend bug reports to <bug-automake@gnu.org>." 93ee3138f1Smrg exit $? 94ee3138f1Smrg ;; 95ee3138f1Smrg 96ee3138f1Smrg -v|--v|--ve|--ver|--vers|--versi|--versio|--version) 97ee3138f1Smrg echo "missing $scriptversion (GNU Automake)" 98ee3138f1Smrg exit $? 99ee3138f1Smrg ;; 100ee3138f1Smrg 101ee3138f1Smrg -*) 102ee3138f1Smrg echo 1>&2 "$0: Unknown \`$1' option" 103ee3138f1Smrg echo 1>&2 "Try \`$0 --help' for more information" 104ee3138f1Smrg exit 1 105ee3138f1Smrg ;; 106ee3138f1Smrg 107ee3138f1Smrgesac 108ee3138f1Smrg 109ee3138f1Smrg# Now exit if we have it, but it failed. Also exit now if we 110ee3138f1Smrg# don't have it and --version was passed (most likely to detect 111ee3138f1Smrg# the program). 112ee3138f1Smrgcase $1 in 113ee3138f1Smrg lex|yacc) 114ee3138f1Smrg # Not GNU programs, they don't have --version. 115ee3138f1Smrg ;; 116ee3138f1Smrg 117ee3138f1Smrg tar) 118ee3138f1Smrg if test -n "$run"; then 119ee3138f1Smrg echo 1>&2 "ERROR: \`tar' requires --run" 120ee3138f1Smrg exit 1 121ee3138f1Smrg elif test "x$2" = "x--version" || test "x$2" = "x--help"; then 122ee3138f1Smrg exit 1 123ee3138f1Smrg fi 124ee3138f1Smrg ;; 125ee3138f1Smrg 126ee3138f1Smrg *) 127ee3138f1Smrg if test -z "$run" && ($1 --version) > /dev/null 2>&1; then 128ee3138f1Smrg # We have it, but it failed. 129ee3138f1Smrg exit 1 130ee3138f1Smrg elif test "x$2" = "x--version" || test "x$2" = "x--help"; then 131ee3138f1Smrg # Could not run --version or --help. This is probably someone 132ee3138f1Smrg # running `$TOOL --version' or `$TOOL --help' to check whether 133ee3138f1Smrg # $TOOL exists and not knowing $TOOL uses missing. 134ee3138f1Smrg exit 1 135ee3138f1Smrg fi 136ee3138f1Smrg ;; 137ee3138f1Smrgesac 138ee3138f1Smrg 139ee3138f1Smrg# If it does not exist, or fails to run (possibly an outdated version), 140ee3138f1Smrg# try to emulate it. 141ee3138f1Smrgcase $1 in 142ee3138f1Smrg aclocal*) 143ee3138f1Smrg echo 1>&2 "\ 144ee3138f1SmrgWARNING: \`$1' is $msg. You should only need it if 145ee3138f1Smrg you modified \`acinclude.m4' or \`${configure_ac}'. You might want 146ee3138f1Smrg to install the \`Automake' and \`Perl' packages. Grab them from 147ee3138f1Smrg any GNU archive site." 148ee3138f1Smrg touch aclocal.m4 149ee3138f1Smrg ;; 150ee3138f1Smrg 151ee3138f1Smrg autoconf) 152ee3138f1Smrg echo 1>&2 "\ 153ee3138f1SmrgWARNING: \`$1' is $msg. You should only need it if 154ee3138f1Smrg you modified \`${configure_ac}'. You might want to install the 155ee3138f1Smrg \`Autoconf' and \`GNU m4' packages. Grab them from any GNU 156ee3138f1Smrg archive site." 157ee3138f1Smrg touch configure 158ee3138f1Smrg ;; 159ee3138f1Smrg 160ee3138f1Smrg autoheader) 161ee3138f1Smrg echo 1>&2 "\ 162ee3138f1SmrgWARNING: \`$1' is $msg. You should only need it if 163ee3138f1Smrg you modified \`acconfig.h' or \`${configure_ac}'. You might want 164ee3138f1Smrg to install the \`Autoconf' and \`GNU m4' packages. Grab them 165ee3138f1Smrg from any GNU archive site." 166ee3138f1Smrg files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` 167ee3138f1Smrg test -z "$files" && files="config.h" 168ee3138f1Smrg touch_files= 169ee3138f1Smrg for f in $files; do 170ee3138f1Smrg case $f in 171ee3138f1Smrg *:*) touch_files="$touch_files "`echo "$f" | 172ee3138f1Smrg sed -e 's/^[^:]*://' -e 's/:.*//'`;; 173ee3138f1Smrg *) touch_files="$touch_files $f.in";; 174ee3138f1Smrg esac 175ee3138f1Smrg done 176ee3138f1Smrg touch $touch_files 177ee3138f1Smrg ;; 178ee3138f1Smrg 179ee3138f1Smrg automake*) 180ee3138f1Smrg echo 1>&2 "\ 181ee3138f1SmrgWARNING: \`$1' is $msg. You should only need it if 182ee3138f1Smrg you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. 183ee3138f1Smrg You might want to install the \`Automake' and \`Perl' packages. 184ee3138f1Smrg Grab them from any GNU archive site." 185ee3138f1Smrg find . -type f -name Makefile.am -print | 186ee3138f1Smrg sed 's/\.am$/.in/' | 187ee3138f1Smrg while read f; do touch "$f"; done 188ee3138f1Smrg ;; 189ee3138f1Smrg 190ee3138f1Smrg autom4te) 191ee3138f1Smrg echo 1>&2 "\ 192ee3138f1SmrgWARNING: \`$1' is needed, but is $msg. 193ee3138f1Smrg You might have modified some files without having the 194ee3138f1Smrg proper tools for further handling them. 195ee3138f1Smrg You can get \`$1' as part of \`Autoconf' from any GNU 196ee3138f1Smrg archive site." 197ee3138f1Smrg 198ee3138f1Smrg file=`echo "$*" | sed -n "$sed_output"` 199ee3138f1Smrg test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` 200ee3138f1Smrg if test -f "$file"; then 201ee3138f1Smrg touch $file 202ee3138f1Smrg else 203ee3138f1Smrg test -z "$file" || exec >$file 204ee3138f1Smrg echo "#! /bin/sh" 205ee3138f1Smrg echo "# Created by GNU Automake missing as a replacement of" 206ee3138f1Smrg echo "# $ $@" 207ee3138f1Smrg echo "exit 0" 208ee3138f1Smrg chmod +x $file 209ee3138f1Smrg exit 1 210ee3138f1Smrg fi 211ee3138f1Smrg ;; 212ee3138f1Smrg 213ee3138f1Smrg bison|yacc) 214ee3138f1Smrg echo 1>&2 "\ 215ee3138f1SmrgWARNING: \`$1' $msg. You should only need it if 216ee3138f1Smrg you modified a \`.y' file. You may need the \`Bison' package 217ee3138f1Smrg in order for those modifications to take effect. You can get 218ee3138f1Smrg \`Bison' from any GNU archive site." 219ee3138f1Smrg rm -f y.tab.c y.tab.h 220ee3138f1Smrg if test $# -ne 1; then 221ee3138f1Smrg eval LASTARG="\${$#}" 222ee3138f1Smrg case $LASTARG in 223ee3138f1Smrg *.y) 224ee3138f1Smrg SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` 225ee3138f1Smrg if test -f "$SRCFILE"; then 226ee3138f1Smrg cp "$SRCFILE" y.tab.c 227ee3138f1Smrg fi 228ee3138f1Smrg SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` 229ee3138f1Smrg if test -f "$SRCFILE"; then 230ee3138f1Smrg cp "$SRCFILE" y.tab.h 231ee3138f1Smrg fi 232ee3138f1Smrg ;; 233ee3138f1Smrg esac 234ee3138f1Smrg fi 235ee3138f1Smrg if test ! -f y.tab.h; then 236ee3138f1Smrg echo >y.tab.h 237ee3138f1Smrg fi 238ee3138f1Smrg if test ! -f y.tab.c; then 239ee3138f1Smrg echo 'main() { return 0; }' >y.tab.c 240ee3138f1Smrg fi 241ee3138f1Smrg ;; 242ee3138f1Smrg 243ee3138f1Smrg lex|flex) 244ee3138f1Smrg echo 1>&2 "\ 245ee3138f1SmrgWARNING: \`$1' is $msg. You should only need it if 246ee3138f1Smrg you modified a \`.l' file. You may need the \`Flex' package 247ee3138f1Smrg in order for those modifications to take effect. You can get 248ee3138f1Smrg \`Flex' from any GNU archive site." 249ee3138f1Smrg rm -f lex.yy.c 250ee3138f1Smrg if test $# -ne 1; then 251ee3138f1Smrg eval LASTARG="\${$#}" 252ee3138f1Smrg case $LASTARG in 253ee3138f1Smrg *.l) 254ee3138f1Smrg SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` 255ee3138f1Smrg if test -f "$SRCFILE"; then 256ee3138f1Smrg cp "$SRCFILE" lex.yy.c 257ee3138f1Smrg fi 258ee3138f1Smrg ;; 259ee3138f1Smrg esac 260ee3138f1Smrg fi 261ee3138f1Smrg if test ! -f lex.yy.c; then 262ee3138f1Smrg echo 'main() { return 0; }' >lex.yy.c 263ee3138f1Smrg fi 264ee3138f1Smrg ;; 265ee3138f1Smrg 266ee3138f1Smrg help2man) 267ee3138f1Smrg echo 1>&2 "\ 268ee3138f1SmrgWARNING: \`$1' is $msg. You should only need it if 269ee3138f1Smrg you modified a dependency of a manual page. You may need the 270ee3138f1Smrg \`Help2man' package in order for those modifications to take 271ee3138f1Smrg effect. You can get \`Help2man' from any GNU archive site." 272ee3138f1Smrg 273ee3138f1Smrg file=`echo "$*" | sed -n "$sed_output"` 274ee3138f1Smrg test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` 275ee3138f1Smrg if test -f "$file"; then 276ee3138f1Smrg touch $file 277ee3138f1Smrg else 278ee3138f1Smrg test -z "$file" || exec >$file 279ee3138f1Smrg echo ".ab help2man is required to generate this page" 280ee3138f1Smrg exit 1 281ee3138f1Smrg fi 282ee3138f1Smrg ;; 283ee3138f1Smrg 284ee3138f1Smrg makeinfo) 285ee3138f1Smrg echo 1>&2 "\ 286ee3138f1SmrgWARNING: \`$1' is $msg. You should only need it if 287ee3138f1Smrg you modified a \`.texi' or \`.texinfo' file, or any other file 288ee3138f1Smrg indirectly affecting the aspect of the manual. The spurious 289ee3138f1Smrg call might also be the consequence of using a buggy \`make' (AIX, 290ee3138f1Smrg DU, IRIX). You might want to install the \`Texinfo' package or 291ee3138f1Smrg the \`GNU make' package. Grab either from any GNU archive site." 292ee3138f1Smrg # The file to touch is that specified with -o ... 293ee3138f1Smrg file=`echo "$*" | sed -n "$sed_output"` 294ee3138f1Smrg test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` 295ee3138f1Smrg if test -z "$file"; then 296ee3138f1Smrg # ... or it is the one specified with @setfilename ... 297ee3138f1Smrg infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` 298ee3138f1Smrg file=`sed -n ' 299ee3138f1Smrg /^@setfilename/{ 300ee3138f1Smrg s/.* \([^ ]*\) *$/\1/ 301ee3138f1Smrg p 302ee3138f1Smrg q 303ee3138f1Smrg }' $infile` 304ee3138f1Smrg # ... or it is derived from the source name (dir/f.texi becomes f.info) 305ee3138f1Smrg test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info 306ee3138f1Smrg fi 307ee3138f1Smrg # If the file does not exist, the user really needs makeinfo; 308ee3138f1Smrg # let's fail without touching anything. 309ee3138f1Smrg test -f $file || exit 1 310ee3138f1Smrg touch $file 311ee3138f1Smrg ;; 312ee3138f1Smrg 313ee3138f1Smrg tar) 314ee3138f1Smrg shift 315ee3138f1Smrg 316ee3138f1Smrg # We have already tried tar in the generic part. 317ee3138f1Smrg # Look for gnutar/gtar before invocation to avoid ugly error 318ee3138f1Smrg # messages. 319ee3138f1Smrg if (gnutar --version > /dev/null 2>&1); then 320ee3138f1Smrg gnutar "$@" && exit 0 321ee3138f1Smrg fi 322ee3138f1Smrg if (gtar --version > /dev/null 2>&1); then 323ee3138f1Smrg gtar "$@" && exit 0 324ee3138f1Smrg fi 325ee3138f1Smrg firstarg="$1" 326ee3138f1Smrg if shift; then 327ee3138f1Smrg case $firstarg in 328ee3138f1Smrg *o*) 329ee3138f1Smrg firstarg=`echo "$firstarg" | sed s/o//` 330ee3138f1Smrg tar "$firstarg" "$@" && exit 0 331ee3138f1Smrg ;; 332ee3138f1Smrg esac 333ee3138f1Smrg case $firstarg in 334ee3138f1Smrg *h*) 335ee3138f1Smrg firstarg=`echo "$firstarg" | sed s/h//` 336ee3138f1Smrg tar "$firstarg" "$@" && exit 0 337ee3138f1Smrg ;; 338ee3138f1Smrg esac 339ee3138f1Smrg fi 340ee3138f1Smrg 341ee3138f1Smrg echo 1>&2 "\ 342ee3138f1SmrgWARNING: I can't seem to be able to run \`tar' with the given arguments. 343ee3138f1Smrg You may want to install GNU tar or Free paxutils, or check the 344ee3138f1Smrg command line arguments." 345ee3138f1Smrg exit 1 346ee3138f1Smrg ;; 347ee3138f1Smrg 348ee3138f1Smrg *) 349ee3138f1Smrg echo 1>&2 "\ 350ee3138f1SmrgWARNING: \`$1' is needed, and is $msg. 351ee3138f1Smrg You might have modified some files without having the 352ee3138f1Smrg proper tools for further handling them. Check the \`README' file, 353ee3138f1Smrg it often tells you about the needed prerequisites for installing 354ee3138f1Smrg this package. You may also peek at any GNU archive site, in case 355ee3138f1Smrg some other package would contain this missing \`$1' program." 356ee3138f1Smrg exit 1 357ee3138f1Smrg ;; 358ee3138f1Smrgesac 359ee3138f1Smrg 360ee3138f1Smrgexit 0 361ee3138f1Smrg 362ee3138f1Smrg# Local variables: 363ee3138f1Smrg# eval: (add-hook 'write-file-hooks 'time-stamp) 364ee3138f1Smrg# time-stamp-start: "scriptversion=" 365ee3138f1Smrg# time-stamp-format: "%:y-%02m-%02d.%02H" 366ee3138f1Smrg# time-stamp-end: "$" 367ee3138f1Smrg# End: 368