missing revision dc99b369
15eefee25Smacallan#! /bin/sh 25eefee25Smacallan# Common stub for a few missing GNU programs while installing. 35eefee25Smacallan 4dc99b369Smrgscriptversion=2012-01-06.18; # UTC 55eefee25Smacallan 6dc99b369Smrg# Copyright (C) 1996-2012 Free Software Foundation, Inc. 75eefee25Smacallan# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996. 85eefee25Smacallan 95eefee25Smacallan# This program is free software; you can redistribute it and/or modify 105eefee25Smacallan# it under the terms of the GNU General Public License as published by 115eefee25Smacallan# the Free Software Foundation; either version 2, or (at your option) 125eefee25Smacallan# any later version. 135eefee25Smacallan 145eefee25Smacallan# This program is distributed in the hope that it will be useful, 155eefee25Smacallan# but WITHOUT ANY WARRANTY; without even the implied warranty of 165eefee25Smacallan# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 175eefee25Smacallan# GNU General Public License for more details. 185eefee25Smacallan 195eefee25Smacallan# You should have received a copy of the GNU General Public License 20dc99b369Smrg# along with this program. If not, see <http://www.gnu.org/licenses/>. 215eefee25Smacallan 225eefee25Smacallan# As a special exception to the GNU General Public License, if you 235eefee25Smacallan# distribute this file as part of a program that contains a 245eefee25Smacallan# configuration script generated by Autoconf, you may include it under 255eefee25Smacallan# the same distribution terms that you use for the rest of that program. 265eefee25Smacallan 275eefee25Smacallanif test $# -eq 0; then 28dc99b369Smrg echo 1>&2 "Try '$0 --help' for more information" 295eefee25Smacallan exit 1 305eefee25Smacallanfi 315eefee25Smacallan 325eefee25Smacallanrun=: 3362ab96baSmrgsed_output='s/.* --output[ =]\([^ ]*\).*/\1/p' 3462ab96baSmrgsed_minuso='s/.* -o \([^ ]*\).*/\1/p' 355eefee25Smacallan 36dc99b369Smrg# In the cases where this matters, 'missing' is being run in the 375eefee25Smacallan# srcdir already. 385eefee25Smacallanif test -f configure.ac; then 395eefee25Smacallan configure_ac=configure.ac 405eefee25Smacallanelse 415eefee25Smacallan configure_ac=configure.in 425eefee25Smacallanfi 435eefee25Smacallan 445eefee25Smacallanmsg="missing on your system" 455eefee25Smacallan 4662ab96baSmrgcase $1 in 475eefee25Smacallan--run) 485eefee25Smacallan # Try to run requested program, and just exit if it succeeds. 495eefee25Smacallan run= 505eefee25Smacallan shift 515eefee25Smacallan "$@" && exit 0 525eefee25Smacallan # Exit code 63 means version mismatch. This often happens 535eefee25Smacallan # when the user try to use an ancient version of a tool on 545eefee25Smacallan # a file that requires a minimum version. In this case we 555eefee25Smacallan # we should proceed has if the program had been absent, or 565eefee25Smacallan # if --run hadn't been passed. 575eefee25Smacallan if test $? = 63; then 585eefee25Smacallan run=: 595eefee25Smacallan msg="probably too old" 605eefee25Smacallan fi 615eefee25Smacallan ;; 625eefee25Smacallan 635eefee25Smacallan -h|--h|--he|--hel|--help) 645eefee25Smacallan echo "\ 655eefee25Smacallan$0 [OPTION]... PROGRAM [ARGUMENT]... 665eefee25Smacallan 67dc99b369SmrgHandle 'PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an 685eefee25Smacallanerror status if there is no known handling for PROGRAM. 695eefee25Smacallan 705eefee25SmacallanOptions: 715eefee25Smacallan -h, --help display this help and exit 725eefee25Smacallan -v, --version output version information and exit 735eefee25Smacallan --run try to run the given command, and emulate it if it fails 745eefee25Smacallan 755eefee25SmacallanSupported PROGRAM values: 76dc99b369Smrg aclocal touch file 'aclocal.m4' 77dc99b369Smrg autoconf touch file 'configure' 78dc99b369Smrg autoheader touch file 'config.h.in' 7962ab96baSmrg autom4te touch the output file, or create a stub one 80dc99b369Smrg automake touch all 'Makefile.in' files 81dc99b369Smrg bison create 'y.tab.[ch]', if possible, from existing .[ch] 82dc99b369Smrg flex create 'lex.yy.c', if possible, from existing .c 835eefee25Smacallan help2man touch the output file 84dc99b369Smrg lex create 'lex.yy.c', if possible, from existing .c 855eefee25Smacallan makeinfo touch the output file 86dc99b369Smrg yacc create 'y.tab.[ch]', if possible, from existing .[ch] 87dc99b369Smrg 88dc99b369SmrgVersion suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and 89dc99b369Smrg'g' are ignored when checking the name. 905eefee25Smacallan 915eefee25SmacallanSend bug reports to <bug-automake@gnu.org>." 925eefee25Smacallan exit $? 935eefee25Smacallan ;; 945eefee25Smacallan 955eefee25Smacallan -v|--v|--ve|--ver|--vers|--versi|--versio|--version) 965eefee25Smacallan echo "missing $scriptversion (GNU Automake)" 975eefee25Smacallan exit $? 985eefee25Smacallan ;; 995eefee25Smacallan 1005eefee25Smacallan -*) 101dc99b369Smrg echo 1>&2 "$0: Unknown '$1' option" 102dc99b369Smrg echo 1>&2 "Try '$0 --help' for more information" 1035eefee25Smacallan exit 1 1045eefee25Smacallan ;; 1055eefee25Smacallan 1065eefee25Smacallanesac 1075eefee25Smacallan 108dc99b369Smrg# normalize program name to check for. 109dc99b369Smrgprogram=`echo "$1" | sed ' 110dc99b369Smrg s/^gnu-//; t 111dc99b369Smrg s/^gnu//; t 112dc99b369Smrg s/^g//; t'` 113dc99b369Smrg 1145eefee25Smacallan# Now exit if we have it, but it failed. Also exit now if we 1155eefee25Smacallan# don't have it and --version was passed (most likely to detect 116dc99b369Smrg# the program). This is about non-GNU programs, so use $1 not 117dc99b369Smrg# $program. 11862ab96baSmrgcase $1 in 119dc99b369Smrg lex*|yacc*) 1205eefee25Smacallan # Not GNU programs, they don't have --version. 1215eefee25Smacallan ;; 1225eefee25Smacallan 1235eefee25Smacallan *) 1245eefee25Smacallan if test -z "$run" && ($1 --version) > /dev/null 2>&1; then 1255eefee25Smacallan # We have it, but it failed. 1265eefee25Smacallan exit 1 1275eefee25Smacallan elif test "x$2" = "x--version" || test "x$2" = "x--help"; then 1285eefee25Smacallan # Could not run --version or --help. This is probably someone 129dc99b369Smrg # running '$TOOL --version' or '$TOOL --help' to check whether 1305eefee25Smacallan # $TOOL exists and not knowing $TOOL uses missing. 1315eefee25Smacallan exit 1 1325eefee25Smacallan fi 1335eefee25Smacallan ;; 1345eefee25Smacallanesac 1355eefee25Smacallan 1365eefee25Smacallan# If it does not exist, or fails to run (possibly an outdated version), 1375eefee25Smacallan# try to emulate it. 138dc99b369Smrgcase $program in 1395eefee25Smacallan aclocal*) 1405eefee25Smacallan echo 1>&2 "\ 141dc99b369SmrgWARNING: '$1' is $msg. You should only need it if 142dc99b369Smrg you modified 'acinclude.m4' or '${configure_ac}'. You might want 143dc99b369Smrg to install the Automake and Perl packages. Grab them from 1445eefee25Smacallan any GNU archive site." 1455eefee25Smacallan touch aclocal.m4 1465eefee25Smacallan ;; 1475eefee25Smacallan 148dc99b369Smrg autoconf*) 1495eefee25Smacallan echo 1>&2 "\ 150dc99b369SmrgWARNING: '$1' is $msg. You should only need it if 151dc99b369Smrg you modified '${configure_ac}'. You might want to install the 152dc99b369Smrg Autoconf and GNU m4 packages. Grab them from any GNU 1535eefee25Smacallan archive site." 1545eefee25Smacallan touch configure 1555eefee25Smacallan ;; 1565eefee25Smacallan 157dc99b369Smrg autoheader*) 1585eefee25Smacallan echo 1>&2 "\ 159dc99b369SmrgWARNING: '$1' is $msg. You should only need it if 160dc99b369Smrg you modified 'acconfig.h' or '${configure_ac}'. You might want 161dc99b369Smrg to install the Autoconf and GNU m4 packages. Grab them 1625eefee25Smacallan from any GNU archive site." 1635eefee25Smacallan files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` 1645eefee25Smacallan test -z "$files" && files="config.h" 1655eefee25Smacallan touch_files= 1665eefee25Smacallan for f in $files; do 16762ab96baSmrg case $f in 1685eefee25Smacallan *:*) touch_files="$touch_files "`echo "$f" | 1695eefee25Smacallan sed -e 's/^[^:]*://' -e 's/:.*//'`;; 1705eefee25Smacallan *) touch_files="$touch_files $f.in";; 1715eefee25Smacallan esac 1725eefee25Smacallan done 1735eefee25Smacallan touch $touch_files 1745eefee25Smacallan ;; 1755eefee25Smacallan 1765eefee25Smacallan automake*) 1775eefee25Smacallan echo 1>&2 "\ 178dc99b369SmrgWARNING: '$1' is $msg. You should only need it if 179dc99b369Smrg you modified 'Makefile.am', 'acinclude.m4' or '${configure_ac}'. 180dc99b369Smrg You might want to install the Automake and Perl packages. 1815eefee25Smacallan Grab them from any GNU archive site." 1825eefee25Smacallan find . -type f -name Makefile.am -print | 1835eefee25Smacallan sed 's/\.am$/.in/' | 1845eefee25Smacallan while read f; do touch "$f"; done 1855eefee25Smacallan ;; 1865eefee25Smacallan 187dc99b369Smrg autom4te*) 1885eefee25Smacallan echo 1>&2 "\ 189dc99b369SmrgWARNING: '$1' is needed, but is $msg. 1905eefee25Smacallan You might have modified some files without having the 1915eefee25Smacallan proper tools for further handling them. 192dc99b369Smrg You can get '$1' as part of Autoconf from any GNU 1935eefee25Smacallan archive site." 1945eefee25Smacallan 19562ab96baSmrg file=`echo "$*" | sed -n "$sed_output"` 19662ab96baSmrg test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` 1975eefee25Smacallan if test -f "$file"; then 1985eefee25Smacallan touch $file 1995eefee25Smacallan else 2005eefee25Smacallan test -z "$file" || exec >$file 2015eefee25Smacallan echo "#! /bin/sh" 2025eefee25Smacallan echo "# Created by GNU Automake missing as a replacement of" 2035eefee25Smacallan echo "# $ $@" 2045eefee25Smacallan echo "exit 0" 2055eefee25Smacallan chmod +x $file 2065eefee25Smacallan exit 1 2075eefee25Smacallan fi 2085eefee25Smacallan ;; 2095eefee25Smacallan 210dc99b369Smrg bison*|yacc*) 2115eefee25Smacallan echo 1>&2 "\ 212dc99b369SmrgWARNING: '$1' $msg. You should only need it if 213dc99b369Smrg you modified a '.y' file. You may need the Bison package 2145eefee25Smacallan in order for those modifications to take effect. You can get 215dc99b369Smrg Bison from any GNU archive site." 2165eefee25Smacallan rm -f y.tab.c y.tab.h 21762ab96baSmrg if test $# -ne 1; then 218dc99b369Smrg eval LASTARG=\${$#} 21962ab96baSmrg case $LASTARG in 2205eefee25Smacallan *.y) 2215eefee25Smacallan SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` 22262ab96baSmrg if test -f "$SRCFILE"; then 2235eefee25Smacallan cp "$SRCFILE" y.tab.c 2245eefee25Smacallan fi 2255eefee25Smacallan SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` 22662ab96baSmrg if test -f "$SRCFILE"; then 2275eefee25Smacallan cp "$SRCFILE" y.tab.h 2285eefee25Smacallan fi 2295eefee25Smacallan ;; 2305eefee25Smacallan esac 2315eefee25Smacallan fi 23262ab96baSmrg if test ! -f y.tab.h; then 2335eefee25Smacallan echo >y.tab.h 2345eefee25Smacallan fi 23562ab96baSmrg if test ! -f y.tab.c; then 2365eefee25Smacallan echo 'main() { return 0; }' >y.tab.c 2375eefee25Smacallan fi 2385eefee25Smacallan ;; 2395eefee25Smacallan 240dc99b369Smrg lex*|flex*) 2415eefee25Smacallan echo 1>&2 "\ 242dc99b369SmrgWARNING: '$1' is $msg. You should only need it if 243dc99b369Smrg you modified a '.l' file. You may need the Flex package 2445eefee25Smacallan in order for those modifications to take effect. You can get 245dc99b369Smrg Flex from any GNU archive site." 2465eefee25Smacallan rm -f lex.yy.c 24762ab96baSmrg if test $# -ne 1; then 248dc99b369Smrg eval LASTARG=\${$#} 24962ab96baSmrg case $LASTARG in 2505eefee25Smacallan *.l) 2515eefee25Smacallan SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` 25262ab96baSmrg if test -f "$SRCFILE"; then 2535eefee25Smacallan cp "$SRCFILE" lex.yy.c 2545eefee25Smacallan fi 2555eefee25Smacallan ;; 2565eefee25Smacallan esac 2575eefee25Smacallan fi 25862ab96baSmrg if test ! -f lex.yy.c; then 2595eefee25Smacallan echo 'main() { return 0; }' >lex.yy.c 2605eefee25Smacallan fi 2615eefee25Smacallan ;; 2625eefee25Smacallan 263dc99b369Smrg help2man*) 2645eefee25Smacallan echo 1>&2 "\ 265dc99b369SmrgWARNING: '$1' is $msg. You should only need it if 2665eefee25Smacallan you modified a dependency of a manual page. You may need the 267dc99b369Smrg Help2man package in order for those modifications to take 268dc99b369Smrg effect. You can get Help2man from any GNU archive site." 2695eefee25Smacallan 27062ab96baSmrg file=`echo "$*" | sed -n "$sed_output"` 27162ab96baSmrg test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` 27262ab96baSmrg if test -f "$file"; then 2735eefee25Smacallan touch $file 2745eefee25Smacallan else 2755eefee25Smacallan test -z "$file" || exec >$file 2765eefee25Smacallan echo ".ab help2man is required to generate this page" 277dc99b369Smrg exit $? 2785eefee25Smacallan fi 2795eefee25Smacallan ;; 2805eefee25Smacallan 281dc99b369Smrg makeinfo*) 2825eefee25Smacallan echo 1>&2 "\ 283dc99b369SmrgWARNING: '$1' is $msg. You should only need it if 284dc99b369Smrg you modified a '.texi' or '.texinfo' file, or any other file 2855eefee25Smacallan indirectly affecting the aspect of the manual. The spurious 286dc99b369Smrg call might also be the consequence of using a buggy 'make' (AIX, 287dc99b369Smrg DU, IRIX). You might want to install the Texinfo package or 288dc99b369Smrg the GNU make package. Grab either from any GNU archive site." 2895eefee25Smacallan # The file to touch is that specified with -o ... 29062ab96baSmrg file=`echo "$*" | sed -n "$sed_output"` 29162ab96baSmrg test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` 2925eefee25Smacallan if test -z "$file"; then 2935eefee25Smacallan # ... or it is the one specified with @setfilename ... 2945eefee25Smacallan infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` 29562ab96baSmrg file=`sed -n ' 29662ab96baSmrg /^@setfilename/{ 29762ab96baSmrg s/.* \([^ ]*\) *$/\1/ 29862ab96baSmrg p 29962ab96baSmrg q 30062ab96baSmrg }' $infile` 3015eefee25Smacallan # ... or it is derived from the source name (dir/f.texi becomes f.info) 3025eefee25Smacallan test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info 3035eefee25Smacallan fi 3045eefee25Smacallan # If the file does not exist, the user really needs makeinfo; 3055eefee25Smacallan # let's fail without touching anything. 3065eefee25Smacallan test -f $file || exit 1 3075eefee25Smacallan touch $file 3085eefee25Smacallan ;; 3095eefee25Smacallan 3105eefee25Smacallan *) 3115eefee25Smacallan echo 1>&2 "\ 312dc99b369SmrgWARNING: '$1' is needed, and is $msg. 3135eefee25Smacallan You might have modified some files without having the 314dc99b369Smrg proper tools for further handling them. Check the 'README' file, 3155eefee25Smacallan it often tells you about the needed prerequisites for installing 3165eefee25Smacallan this package. You may also peek at any GNU archive site, in case 317dc99b369Smrg some other package would contain this missing '$1' program." 3185eefee25Smacallan exit 1 3195eefee25Smacallan ;; 3205eefee25Smacallanesac 3215eefee25Smacallan 3225eefee25Smacallanexit 0 3235eefee25Smacallan 3245eefee25Smacallan# Local variables: 3255eefee25Smacallan# eval: (add-hook 'write-file-hooks 'time-stamp) 3265eefee25Smacallan# time-stamp-start: "scriptversion=" 3275eefee25Smacallan# time-stamp-format: "%:y-%02m-%02d.%02H" 328dc99b369Smrg# time-stamp-time-zone: "UTC" 329dc99b369Smrg# time-stamp-end: "; # UTC" 3305eefee25Smacallan# End: 331