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