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