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