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