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