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