1#! /bin/sh 2# Common stub for a few missing GNU programs while installing. 3# Copyright (C) 1996, 1997, 1999 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 21if test $# -eq 0; then 22 echo 1>&2 "Try \`$0 --help' for more information" 23 exit 1 24fi 25 26run=: 27 28case "$1" in 29--run) 30 # Try to run requested program, and just exit if it succeeds. 31 run= 32 shift 33 "$@" && exit 0 34 ;; 35esac 36 37# If it does not exist, or fails to run (possibly an outdated version), 38# try to emulate it. 39case "$1" in 40 41 -h|--h|--he|--hel|--help) 42 echo "\ 43$0 [OPTION]... PROGRAM [ARGUMENT]... 44 45Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an 46error status if there is no known handling for PROGRAM. 47 48Options: 49 -h, --help display this help and exit 50 -v, --version output version information and exit 51 --run try to run the given command, and emulate it if it fails 52 53Supported PROGRAM values: 54 aclocal touch file \`aclocal.m4' 55 autoconf touch file \`configure' 56 autoheader touch file \`config.h.in' 57 automake touch all \`Makefile.in' files 58 bison create \`y.tab.[ch]', if possible, from existing .[ch] 59 flex create \`lex.yy.c', if possible, from existing .c 60 lex create \`lex.yy.c', if possible, from existing .c 61 makeinfo touch the output file 62 tar try tar, gnutar, gtar, then tar without non-portable flags 63 yacc create \`y.tab.[ch]', if possible, from existing .[ch]" 64 ;; 65 66 -v|--v|--ve|--ver|--vers|--versi|--versio|--version) 67 echo "missing 0.2 - GNU automake" 68 ;; 69 70 -*) 71 echo 1>&2 "$0: Unknown \`$1' option" 72 echo 1>&2 "Try \`$0 --help' for more information" 73 exit 1 74 ;; 75 76 aclocal) 77 echo 1>&2 "\ 78WARNING: \`$1' is missing on your system. You should only need it if 79 you modified \`acinclude.m4' or \`configure.in'. You might want 80 to install the \`Automake' and \`Perl' packages. Grab them from 81 any GNU archive site." 82 touch aclocal.m4 83 ;; 84 85 autoconf) 86 echo 1>&2 "\ 87WARNING: \`$1' is missing on your system. You should only need it if 88 you modified \`configure.in'. You might want to install the 89 \`Autoconf' and \`GNU m4' packages. Grab them from any GNU 90 archive site." 91 touch configure 92 ;; 93 94 autoheader) 95 echo 1>&2 "\ 96WARNING: \`$1' is missing on your system. You should only need it if 97 you modified \`acconfig.h' or \`configure.in'. You might want 98 to install the \`Autoconf' and \`GNU m4' packages. Grab them 99 from any GNU archive site." 100 files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' configure.in` 101 test -z "$files" && files="config.h" 102 touch_files= 103 for f in $files; do 104 case "$f" in 105 *:*) touch_files="$touch_files "`echo "$f" | 106 sed -e 's/^[^:]*://' -e 's/:.*//'`;; 107 *) touch_files="$touch_files $f.in";; 108 esac 109 done 110 touch $touch_files 111 ;; 112 113 automake) 114 echo 1>&2 "\ 115WARNING: \`$1' is missing on your system. You should only need it if 116 you modified \`Makefile.am', \`acinclude.m4' or \`configure.in'. 117 You might want to install the \`Automake' and \`Perl' packages. 118 Grab them from any GNU archive site." 119 find . -type f -name Makefile.am -print | 120 sed 's/\.am$/.in/' | 121 while read f; do touch "$f"; done 122 ;; 123 124 bison|yacc) 125 echo 1>&2 "\ 126WARNING: \`$1' is missing on your system. You should only need it if 127 you modified a \`.y' file. You may need the \`Bison' package 128 in order for those modifications to take effect. You can get 129 \`Bison' from any GNU archive site." 130 rm -f y.tab.c y.tab.h 131 if [ $# -ne 1 ]; then 132 eval LASTARG="\${$#}" 133 case "$LASTARG" in 134 *.y) 135 SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` 136 if [ -f "$SRCFILE" ]; then 137 cp "$SRCFILE" y.tab.c 138 fi 139 SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` 140 if [ -f "$SRCFILE" ]; then 141 cp "$SRCFILE" y.tab.h 142 fi 143 ;; 144 esac 145 fi 146 if [ ! -f y.tab.h ]; then 147 echo >y.tab.h 148 fi 149 if [ ! -f y.tab.c ]; then 150 echo 'main() { return 0; }' >y.tab.c 151 fi 152 ;; 153 154 lex|flex) 155 echo 1>&2 "\ 156WARNING: \`$1' is missing on your system. You should only need it if 157 you modified a \`.l' file. You may need the \`Flex' package 158 in order for those modifications to take effect. You can get 159 \`Flex' from any GNU archive site." 160 rm -f lex.yy.c 161 if [ $# -ne 1 ]; then 162 eval LASTARG="\${$#}" 163 case "$LASTARG" in 164 *.l) 165 SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` 166 if [ -f "$SRCFILE" ]; then 167 cp "$SRCFILE" lex.yy.c 168 fi 169 ;; 170 esac 171 fi 172 if [ ! -f lex.yy.c ]; then 173 echo 'main() { return 0; }' >lex.yy.c 174 fi 175 ;; 176 177 makeinfo) 178 echo 1>&2 "\ 179WARNING: \`$1' is missing on your system. You should only need it if 180 you modified a \`.texi' or \`.texinfo' file, or any other file 181 indirectly affecting the aspect of the manual. The spurious 182 call might also be the consequence of using a buggy \`make' (AIX, 183 DU, IRIX). You might want to install the \`Texinfo' package or 184 the \`GNU make' package. Grab either from any GNU archive site." 185 file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` 186 if test -z "$file"; then 187 file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` 188 file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file` 189 fi 190 touch $file 191 ;; 192 193 tar) 194 shift 195 if test -n "$run"; then 196 echo 1>&2 "ERROR: \`tar' requires --run" 197 exit 1 198 fi 199 200 # we have already tried tar in the generic part 201 gnutar ${1+"$@"} && exit 0 202 gtar ${1+"$@"} && exit 0 203 firstarg="$1" 204 if shift; then 205 case "$firstarg" in 206 *o*) 207 firstarg=`echo "$firstarg" | sed s/o//` 208 tar "$firstarg" ${1+"$@"} && exit 0 209 ;; 210 esac 211 case "$firstarg" in 212 *h*) 213 firstarg=`echo "$firstarg" | sed s/h//` 214 tar "$firstarg" ${1+"$@"} && exit 0 215 ;; 216 esac 217 fi 218 219 echo 1>&2 "\ 220WARNING: I can't seem to be able to run \`tar' with the given arguments. 221 You may want to install GNU tar or Free paxutils, or check the 222 command line arguments." 223 exit 1 224 ;; 225 226 *) 227 echo 1>&2 "\ 228WARNING: \`$1' is needed, and you do not seem to have it handy on your 229 system. You might have modified some files without having the 230 proper tools for further handling them. Check the \`README' file, 231 it often tells you about the needed prerequirements for installing 232 this package. You may also peek at any GNU archive site, in case 233 some other package would contain this missing \`$1' program." 234 exit 1 235 ;; 236esac 237 238exit 0 239