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