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