1#! /bin/sh 2# Common stub for a few missing GNU programs while installing. 3# Copyright (C) 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 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 help2man touch the output file 61 lex create \`lex.yy.c', if possible, from existing .c 62 makeinfo touch the output file 63 tar try tar, gnutar, gtar, then tar without non-portable flags 64 yacc create \`y.tab.[ch]', if possible, from existing .[ch]" 65 ;; 66 67 -v|--v|--ve|--ver|--vers|--versi|--versio|--version) 68 echo "missing 0.3 - GNU automake" 69 ;; 70 71 -*) 72 echo 1>&2 "$0: Unknown \`$1' option" 73 echo 1>&2 "Try \`$0 --help' for more information" 74 exit 1 75 ;; 76 77 aclocal) 78 echo 1>&2 "\ 79WARNING: \`$1' is missing on your system. You should only need it if 80 you modified \`acinclude.m4' or \`configure.in'. You might want 81 to install the \`Automake' and \`Perl' packages. Grab them from 82 any GNU archive site." 83 touch aclocal.m4 84 ;; 85 86 autoconf) 87 echo 1>&2 "\ 88WARNING: \`$1' is missing on your system. You should only need it if 89 you modified \`configure.in'. You might want to install the 90 \`Autoconf' and \`GNU m4' packages. Grab them from any GNU 91 archive site." 92 touch configure 93 ;; 94 95 autoheader) 96 echo 1>&2 "\ 97WARNING: \`$1' is missing on your system. You should only need it if 98 you modified \`acconfig.h' or \`configure.in'. You might want 99 to install the \`Autoconf' and \`GNU m4' packages. Grab them 100 from any GNU archive site." 101 files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' configure.in` 102 test -z "$files" && files="config.h" 103 touch_files= 104 for f in $files; do 105 case "$f" in 106 *:*) touch_files="$touch_files "`echo "$f" | 107 sed -e 's/^[^:]*://' -e 's/:.*//'`;; 108 *) touch_files="$touch_files $f.in";; 109 esac 110 done 111 touch $touch_files 112 ;; 113 114 automake) 115 echo 1>&2 "\ 116WARNING: \`$1' is missing on your system. You should only need it if 117 you modified \`Makefile.am', \`acinclude.m4' or \`configure.in'. 118 You might want to install the \`Automake' and \`Perl' packages. 119 Grab them from any GNU archive site." 120 find . -type f -name Makefile.am -print | 121 sed 's/\.am$/.in/' | 122 while read f; do touch "$f"; done 123 ;; 124 125 bison|yacc) 126 echo 1>&2 "\ 127WARNING: \`$1' is missing on your system. You should only need it if 128 you modified a \`.y' file. You may need the \`Bison' package 129 in order for those modifications to take effect. You can get 130 \`Bison' from any GNU archive site." 131 rm -f y.tab.c y.tab.h 132 if [ $# -ne 1 ]; then 133 eval LASTARG="\${$#}" 134 case "$LASTARG" in 135 *.y) 136 SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` 137 if [ -f "$SRCFILE" ]; then 138 cp "$SRCFILE" y.tab.c 139 fi 140 SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` 141 if [ -f "$SRCFILE" ]; then 142 cp "$SRCFILE" y.tab.h 143 fi 144 ;; 145 esac 146 fi 147 if [ ! -f y.tab.h ]; then 148 echo >y.tab.h 149 fi 150 if [ ! -f y.tab.c ]; then 151 echo 'main() { return 0; }' >y.tab.c 152 fi 153 ;; 154 155 lex|flex) 156 echo 1>&2 "\ 157WARNING: \`$1' is missing on your system. You should only need it if 158 you modified a \`.l' file. You may need the \`Flex' package 159 in order for those modifications to take effect. You can get 160 \`Flex' from any GNU archive site." 161 rm -f lex.yy.c 162 if [ $# -ne 1 ]; then 163 eval LASTARG="\${$#}" 164 case "$LASTARG" in 165 *.l) 166 SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` 167 if [ -f "$SRCFILE" ]; then 168 cp "$SRCFILE" lex.yy.c 169 fi 170 ;; 171 esac 172 fi 173 if [ ! -f lex.yy.c ]; then 174 echo 'main() { return 0; }' >lex.yy.c 175 fi 176 ;; 177 178 help2man) 179 echo 1>&2 "\ 180WARNING: \`$1' is missing on your system. You should only need it if 181 you modified a dependency of a manual page. You may need the 182 \`Help2man' package in order for those modifications to take 183 effect. You can get \`Help2man' from any GNU archive site." 184 185 file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` 186 if test -z "$file"; then 187 file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'` 188 fi 189 if [ -f "$file" ]; then 190 touch $file 191 else 192 test -z "$file" || exec >$file 193 echo ".ab help2man is required to generate this page" 194 exit 1 195 fi 196 ;; 197 198 makeinfo) 199 echo 1>&2 "\ 200WARNING: \`$1' is missing on your system. You should only need it if 201 you modified a \`.texi' or \`.texinfo' file, or any other file 202 indirectly affecting the aspect of the manual. The spurious 203 call might also be the consequence of using a buggy \`make' (AIX, 204 DU, IRIX). You might want to install the \`Texinfo' package or 205 the \`GNU make' package. Grab either from any GNU archive site." 206 file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` 207 if test -z "$file"; then 208 file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` 209 file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file` 210 fi 211 touch $file 212 ;; 213 214 tar) 215 shift 216 if test -n "$run"; then 217 echo 1>&2 "ERROR: \`tar' requires --run" 218 exit 1 219 fi 220 221 # We have already tried tar in the generic part. 222 # Look for gnutar/gtar before invocation to avoid ugly error 223 # messages. 224 if (gnutar --version > /dev/null 2>&1); then 225 gnutar ${1+"$@"} && exit 0 226 fi 227 if (gtar --version > /dev/null 2>&1); then 228 gtar ${1+"$@"} && exit 0 229 fi 230 firstarg="$1" 231 if shift; then 232 case "$firstarg" in 233 *o*) 234 firstarg=`echo "$firstarg" | sed s/o//` 235 tar "$firstarg" ${1+"$@"} && exit 0 236 ;; 237 esac 238 case "$firstarg" in 239 *h*) 240 firstarg=`echo "$firstarg" | sed s/h//` 241 tar "$firstarg" ${1+"$@"} && exit 0 242 ;; 243 esac 244 fi 245 246 echo 1>&2 "\ 247WARNING: I can't seem to be able to run \`tar' with the given arguments. 248 You may want to install GNU tar or Free paxutils, or check the 249 command line arguments." 250 exit 1 251 ;; 252 253 *) 254 echo 1>&2 "\ 255WARNING: \`$1' is needed, and you do not seem to have it handy on your 256 system. You might have modified some files without having the 257 proper tools for further handling them. Check the \`README' file, 258 it often tells you about the needed prerequirements for installing 259 this package. You may also peek at any GNU archive site, in case 260 some other package would contain this missing \`$1' program." 261 exit 1 262 ;; 263esac 264 265exit 0 266