missing revision 7a2631fc
13e747e6dSmrg#! /bin/sh
23e747e6dSmrg# Common stub for a few missing GNU programs while installing.
33e747e6dSmrg
47a2631fcSmrgscriptversion=2009-04-28.21; # UTC
53e747e6dSmrg
67a2631fcSmrg# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006,
77a2631fcSmrg# 2008, 2009 Free Software Foundation, Inc.
83e747e6dSmrg# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
93e747e6dSmrg
103e747e6dSmrg# This program is free software; you can redistribute it and/or modify
113e747e6dSmrg# it under the terms of the GNU General Public License as published by
123e747e6dSmrg# the Free Software Foundation; either version 2, or (at your option)
133e747e6dSmrg# any later version.
143e747e6dSmrg
153e747e6dSmrg# This program is distributed in the hope that it will be useful,
163e747e6dSmrg# but WITHOUT ANY WARRANTY; without even the implied warranty of
173e747e6dSmrg# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
183e747e6dSmrg# GNU General Public License for more details.
193e747e6dSmrg
203e747e6dSmrg# You should have received a copy of the GNU General Public License
217a2631fcSmrg# along with this program.  If not, see <http://www.gnu.org/licenses/>.
223e747e6dSmrg
233e747e6dSmrg# As a special exception to the GNU General Public License, if you
243e747e6dSmrg# distribute this file as part of a program that contains a
253e747e6dSmrg# configuration script generated by Autoconf, you may include it under
263e747e6dSmrg# the same distribution terms that you use for the rest of that program.
273e747e6dSmrg
283e747e6dSmrgif test $# -eq 0; then
293e747e6dSmrg  echo 1>&2 "Try \`$0 --help' for more information"
303e747e6dSmrg  exit 1
313e747e6dSmrgfi
323e747e6dSmrg
333e747e6dSmrgrun=:
343e747e6dSmrgsed_output='s/.* --output[ =]\([^ ]*\).*/\1/p'
353e747e6dSmrgsed_minuso='s/.* -o \([^ ]*\).*/\1/p'
363e747e6dSmrg
373e747e6dSmrg# In the cases where this matters, `missing' is being run in the
383e747e6dSmrg# srcdir already.
393e747e6dSmrgif test -f configure.ac; then
403e747e6dSmrg  configure_ac=configure.ac
413e747e6dSmrgelse
423e747e6dSmrg  configure_ac=configure.in
433e747e6dSmrgfi
443e747e6dSmrg
453e747e6dSmrgmsg="missing on your system"
463e747e6dSmrg
473e747e6dSmrgcase $1 in
483e747e6dSmrg--run)
493e747e6dSmrg  # Try to run requested program, and just exit if it succeeds.
503e747e6dSmrg  run=
513e747e6dSmrg  shift
523e747e6dSmrg  "$@" && exit 0
533e747e6dSmrg  # Exit code 63 means version mismatch.  This often happens
543e747e6dSmrg  # when the user try to use an ancient version of a tool on
553e747e6dSmrg  # a file that requires a minimum version.  In this case we
563e747e6dSmrg  # we should proceed has if the program had been absent, or
573e747e6dSmrg  # if --run hadn't been passed.
583e747e6dSmrg  if test $? = 63; then
593e747e6dSmrg    run=:
603e747e6dSmrg    msg="probably too old"
613e747e6dSmrg  fi
623e747e6dSmrg  ;;
633e747e6dSmrg
643e747e6dSmrg  -h|--h|--he|--hel|--help)
653e747e6dSmrg    echo "\
663e747e6dSmrg$0 [OPTION]... PROGRAM [ARGUMENT]...
673e747e6dSmrg
683e747e6dSmrgHandle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
693e747e6dSmrgerror status if there is no known handling for PROGRAM.
703e747e6dSmrg
713e747e6dSmrgOptions:
723e747e6dSmrg  -h, --help      display this help and exit
733e747e6dSmrg  -v, --version   output version information and exit
743e747e6dSmrg  --run           try to run the given command, and emulate it if it fails
753e747e6dSmrg
763e747e6dSmrgSupported PROGRAM values:
773e747e6dSmrg  aclocal      touch file \`aclocal.m4'
783e747e6dSmrg  autoconf     touch file \`configure'
793e747e6dSmrg  autoheader   touch file \`config.h.in'
803e747e6dSmrg  autom4te     touch the output file, or create a stub one
813e747e6dSmrg  automake     touch all \`Makefile.in' files
823e747e6dSmrg  bison        create \`y.tab.[ch]', if possible, from existing .[ch]
833e747e6dSmrg  flex         create \`lex.yy.c', if possible, from existing .c
843e747e6dSmrg  help2man     touch the output file
853e747e6dSmrg  lex          create \`lex.yy.c', if possible, from existing .c
863e747e6dSmrg  makeinfo     touch the output file
873e747e6dSmrg  tar          try tar, gnutar, gtar, then tar without non-portable flags
883e747e6dSmrg  yacc         create \`y.tab.[ch]', if possible, from existing .[ch]
893e747e6dSmrg
907a2631fcSmrgVersion suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and
917a2631fcSmrg\`g' are ignored when checking the name.
927a2631fcSmrg
933e747e6dSmrgSend bug reports to <bug-automake@gnu.org>."
943e747e6dSmrg    exit $?
953e747e6dSmrg    ;;
963e747e6dSmrg
973e747e6dSmrg  -v|--v|--ve|--ver|--vers|--versi|--versio|--version)
983e747e6dSmrg    echo "missing $scriptversion (GNU Automake)"
993e747e6dSmrg    exit $?
1003e747e6dSmrg    ;;
1013e747e6dSmrg
1023e747e6dSmrg  -*)
1033e747e6dSmrg    echo 1>&2 "$0: Unknown \`$1' option"
1043e747e6dSmrg    echo 1>&2 "Try \`$0 --help' for more information"
1053e747e6dSmrg    exit 1
1063e747e6dSmrg    ;;
1073e747e6dSmrg
1083e747e6dSmrgesac
1093e747e6dSmrg
1107a2631fcSmrg# normalize program name to check for.
1117a2631fcSmrgprogram=`echo "$1" | sed '
1127a2631fcSmrg  s/^gnu-//; t
1137a2631fcSmrg  s/^gnu//; t
1147a2631fcSmrg  s/^g//; t'`
1157a2631fcSmrg
1163e747e6dSmrg# Now exit if we have it, but it failed.  Also exit now if we
1173e747e6dSmrg# don't have it and --version was passed (most likely to detect
1187a2631fcSmrg# the program).  This is about non-GNU programs, so use $1 not
1197a2631fcSmrg# $program.
1203e747e6dSmrgcase $1 in
1217a2631fcSmrg  lex*|yacc*)
1223e747e6dSmrg    # Not GNU programs, they don't have --version.
1233e747e6dSmrg    ;;
1243e747e6dSmrg
1257a2631fcSmrg  tar*)
1263e747e6dSmrg    if test -n "$run"; then
1273e747e6dSmrg       echo 1>&2 "ERROR: \`tar' requires --run"
1283e747e6dSmrg       exit 1
1293e747e6dSmrg    elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
1303e747e6dSmrg       exit 1
1313e747e6dSmrg    fi
1323e747e6dSmrg    ;;
1333e747e6dSmrg
1343e747e6dSmrg  *)
1353e747e6dSmrg    if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
1363e747e6dSmrg       # We have it, but it failed.
1373e747e6dSmrg       exit 1
1383e747e6dSmrg    elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
1393e747e6dSmrg       # Could not run --version or --help.  This is probably someone
1403e747e6dSmrg       # running `$TOOL --version' or `$TOOL --help' to check whether
1413e747e6dSmrg       # $TOOL exists and not knowing $TOOL uses missing.
1423e747e6dSmrg       exit 1
1433e747e6dSmrg    fi
1443e747e6dSmrg    ;;
1453e747e6dSmrgesac
1463e747e6dSmrg
1473e747e6dSmrg# If it does not exist, or fails to run (possibly an outdated version),
1483e747e6dSmrg# try to emulate it.
1497a2631fcSmrgcase $program in
1503e747e6dSmrg  aclocal*)
1513e747e6dSmrg    echo 1>&2 "\
1523e747e6dSmrgWARNING: \`$1' is $msg.  You should only need it if
1533e747e6dSmrg         you modified \`acinclude.m4' or \`${configure_ac}'.  You might want
1543e747e6dSmrg         to install the \`Automake' and \`Perl' packages.  Grab them from
1553e747e6dSmrg         any GNU archive site."
1563e747e6dSmrg    touch aclocal.m4
1573e747e6dSmrg    ;;
1583e747e6dSmrg
1597a2631fcSmrg  autoconf*)
1603e747e6dSmrg    echo 1>&2 "\
1613e747e6dSmrgWARNING: \`$1' is $msg.  You should only need it if
1623e747e6dSmrg         you modified \`${configure_ac}'.  You might want to install the
1633e747e6dSmrg         \`Autoconf' and \`GNU m4' packages.  Grab them from any GNU
1643e747e6dSmrg         archive site."
1653e747e6dSmrg    touch configure
1663e747e6dSmrg    ;;
1673e747e6dSmrg
1687a2631fcSmrg  autoheader*)
1693e747e6dSmrg    echo 1>&2 "\
1703e747e6dSmrgWARNING: \`$1' is $msg.  You should only need it if
1713e747e6dSmrg         you modified \`acconfig.h' or \`${configure_ac}'.  You might want
1723e747e6dSmrg         to install the \`Autoconf' and \`GNU m4' packages.  Grab them
1733e747e6dSmrg         from any GNU archive site."
1743e747e6dSmrg    files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
1753e747e6dSmrg    test -z "$files" && files="config.h"
1763e747e6dSmrg    touch_files=
1773e747e6dSmrg    for f in $files; do
1783e747e6dSmrg      case $f in
1793e747e6dSmrg      *:*) touch_files="$touch_files "`echo "$f" |
1803e747e6dSmrg				       sed -e 's/^[^:]*://' -e 's/:.*//'`;;
1813e747e6dSmrg      *) touch_files="$touch_files $f.in";;
1823e747e6dSmrg      esac
1833e747e6dSmrg    done
1843e747e6dSmrg    touch $touch_files
1853e747e6dSmrg    ;;
1863e747e6dSmrg
1873e747e6dSmrg  automake*)
1883e747e6dSmrg    echo 1>&2 "\
1893e747e6dSmrgWARNING: \`$1' is $msg.  You should only need it if
1903e747e6dSmrg         you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
1913e747e6dSmrg         You might want to install the \`Automake' and \`Perl' packages.
1923e747e6dSmrg         Grab them from any GNU archive site."
1933e747e6dSmrg    find . -type f -name Makefile.am -print |
1943e747e6dSmrg	   sed 's/\.am$/.in/' |
1953e747e6dSmrg	   while read f; do touch "$f"; done
1963e747e6dSmrg    ;;
1973e747e6dSmrg
1987a2631fcSmrg  autom4te*)
1993e747e6dSmrg    echo 1>&2 "\
2003e747e6dSmrgWARNING: \`$1' is needed, but is $msg.
2013e747e6dSmrg         You might have modified some files without having the
2023e747e6dSmrg         proper tools for further handling them.
2033e747e6dSmrg         You can get \`$1' as part of \`Autoconf' from any GNU
2043e747e6dSmrg         archive site."
2053e747e6dSmrg
2063e747e6dSmrg    file=`echo "$*" | sed -n "$sed_output"`
2073e747e6dSmrg    test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
2083e747e6dSmrg    if test -f "$file"; then
2093e747e6dSmrg	touch $file
2103e747e6dSmrg    else
2113e747e6dSmrg	test -z "$file" || exec >$file
2123e747e6dSmrg	echo "#! /bin/sh"
2133e747e6dSmrg	echo "# Created by GNU Automake missing as a replacement of"
2143e747e6dSmrg	echo "#  $ $@"
2153e747e6dSmrg	echo "exit 0"
2163e747e6dSmrg	chmod +x $file
2173e747e6dSmrg	exit 1
2183e747e6dSmrg    fi
2193e747e6dSmrg    ;;
2203e747e6dSmrg
2217a2631fcSmrg  bison*|yacc*)
2223e747e6dSmrg    echo 1>&2 "\
2233e747e6dSmrgWARNING: \`$1' $msg.  You should only need it if
2243e747e6dSmrg         you modified a \`.y' file.  You may need the \`Bison' package
2253e747e6dSmrg         in order for those modifications to take effect.  You can get
2263e747e6dSmrg         \`Bison' from any GNU archive site."
2273e747e6dSmrg    rm -f y.tab.c y.tab.h
2283e747e6dSmrg    if test $# -ne 1; then
2293e747e6dSmrg        eval LASTARG="\${$#}"
2303e747e6dSmrg	case $LASTARG in
2313e747e6dSmrg	*.y)
2323e747e6dSmrg	    SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
2333e747e6dSmrg	    if test -f "$SRCFILE"; then
2343e747e6dSmrg	         cp "$SRCFILE" y.tab.c
2353e747e6dSmrg	    fi
2363e747e6dSmrg	    SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
2373e747e6dSmrg	    if test -f "$SRCFILE"; then
2383e747e6dSmrg	         cp "$SRCFILE" y.tab.h
2393e747e6dSmrg	    fi
2403e747e6dSmrg	  ;;
2413e747e6dSmrg	esac
2423e747e6dSmrg    fi
2433e747e6dSmrg    if test ! -f y.tab.h; then
2443e747e6dSmrg	echo >y.tab.h
2453e747e6dSmrg    fi
2463e747e6dSmrg    if test ! -f y.tab.c; then
2473e747e6dSmrg	echo 'main() { return 0; }' >y.tab.c
2483e747e6dSmrg    fi
2493e747e6dSmrg    ;;
2503e747e6dSmrg
2517a2631fcSmrg  lex*|flex*)
2523e747e6dSmrg    echo 1>&2 "\
2533e747e6dSmrgWARNING: \`$1' is $msg.  You should only need it if
2543e747e6dSmrg         you modified a \`.l' file.  You may need the \`Flex' package
2553e747e6dSmrg         in order for those modifications to take effect.  You can get
2563e747e6dSmrg         \`Flex' from any GNU archive site."
2573e747e6dSmrg    rm -f lex.yy.c
2583e747e6dSmrg    if test $# -ne 1; then
2593e747e6dSmrg        eval LASTARG="\${$#}"
2603e747e6dSmrg	case $LASTARG in
2613e747e6dSmrg	*.l)
2623e747e6dSmrg	    SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
2633e747e6dSmrg	    if test -f "$SRCFILE"; then
2643e747e6dSmrg	         cp "$SRCFILE" lex.yy.c
2653e747e6dSmrg	    fi
2663e747e6dSmrg	  ;;
2673e747e6dSmrg	esac
2683e747e6dSmrg    fi
2693e747e6dSmrg    if test ! -f lex.yy.c; then
2703e747e6dSmrg	echo 'main() { return 0; }' >lex.yy.c
2713e747e6dSmrg    fi
2723e747e6dSmrg    ;;
2733e747e6dSmrg
2747a2631fcSmrg  help2man*)
2753e747e6dSmrg    echo 1>&2 "\
2763e747e6dSmrgWARNING: \`$1' is $msg.  You should only need it if
2773e747e6dSmrg	 you modified a dependency of a manual page.  You may need the
2783e747e6dSmrg	 \`Help2man' package in order for those modifications to take
2793e747e6dSmrg	 effect.  You can get \`Help2man' from any GNU archive site."
2803e747e6dSmrg
2813e747e6dSmrg    file=`echo "$*" | sed -n "$sed_output"`
2823e747e6dSmrg    test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
2833e747e6dSmrg    if test -f "$file"; then
2843e747e6dSmrg	touch $file
2853e747e6dSmrg    else
2863e747e6dSmrg	test -z "$file" || exec >$file
2873e747e6dSmrg	echo ".ab help2man is required to generate this page"
2887a2631fcSmrg	exit $?
2893e747e6dSmrg    fi
2903e747e6dSmrg    ;;
2913e747e6dSmrg
2927a2631fcSmrg  makeinfo*)
2933e747e6dSmrg    echo 1>&2 "\
2943e747e6dSmrgWARNING: \`$1' is $msg.  You should only need it if
2953e747e6dSmrg         you modified a \`.texi' or \`.texinfo' file, or any other file
2963e747e6dSmrg         indirectly affecting the aspect of the manual.  The spurious
2973e747e6dSmrg         call might also be the consequence of using a buggy \`make' (AIX,
2983e747e6dSmrg         DU, IRIX).  You might want to install the \`Texinfo' package or
2993e747e6dSmrg         the \`GNU make' package.  Grab either from any GNU archive site."
3003e747e6dSmrg    # The file to touch is that specified with -o ...
3013e747e6dSmrg    file=`echo "$*" | sed -n "$sed_output"`
3023e747e6dSmrg    test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
3033e747e6dSmrg    if test -z "$file"; then
3043e747e6dSmrg      # ... or it is the one specified with @setfilename ...
3053e747e6dSmrg      infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
3063e747e6dSmrg      file=`sed -n '
3073e747e6dSmrg	/^@setfilename/{
3083e747e6dSmrg	  s/.* \([^ ]*\) *$/\1/
3093e747e6dSmrg	  p
3103e747e6dSmrg	  q
3113e747e6dSmrg	}' $infile`
3123e747e6dSmrg      # ... or it is derived from the source name (dir/f.texi becomes f.info)
3133e747e6dSmrg      test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info
3143e747e6dSmrg    fi
3153e747e6dSmrg    # If the file does not exist, the user really needs makeinfo;
3163e747e6dSmrg    # let's fail without touching anything.
3173e747e6dSmrg    test -f $file || exit 1
3183e747e6dSmrg    touch $file
3193e747e6dSmrg    ;;
3203e747e6dSmrg
3217a2631fcSmrg  tar*)
3223e747e6dSmrg    shift
3233e747e6dSmrg
3243e747e6dSmrg    # We have already tried tar in the generic part.
3253e747e6dSmrg    # Look for gnutar/gtar before invocation to avoid ugly error
3263e747e6dSmrg    # messages.
3273e747e6dSmrg    if (gnutar --version > /dev/null 2>&1); then
3283e747e6dSmrg       gnutar "$@" && exit 0
3293e747e6dSmrg    fi
3303e747e6dSmrg    if (gtar --version > /dev/null 2>&1); then
3313e747e6dSmrg       gtar "$@" && exit 0
3323e747e6dSmrg    fi
3333e747e6dSmrg    firstarg="$1"
3343e747e6dSmrg    if shift; then
3353e747e6dSmrg	case $firstarg in
3363e747e6dSmrg	*o*)
3373e747e6dSmrg	    firstarg=`echo "$firstarg" | sed s/o//`
3383e747e6dSmrg	    tar "$firstarg" "$@" && exit 0
3393e747e6dSmrg	    ;;
3403e747e6dSmrg	esac
3413e747e6dSmrg	case $firstarg in
3423e747e6dSmrg	*h*)
3433e747e6dSmrg	    firstarg=`echo "$firstarg" | sed s/h//`
3443e747e6dSmrg	    tar "$firstarg" "$@" && exit 0
3453e747e6dSmrg	    ;;
3463e747e6dSmrg	esac
3473e747e6dSmrg    fi
3483e747e6dSmrg
3493e747e6dSmrg    echo 1>&2 "\
3503e747e6dSmrgWARNING: I can't seem to be able to run \`tar' with the given arguments.
3513e747e6dSmrg         You may want to install GNU tar or Free paxutils, or check the
3523e747e6dSmrg         command line arguments."
3533e747e6dSmrg    exit 1
3543e747e6dSmrg    ;;
3553e747e6dSmrg
3563e747e6dSmrg  *)
3573e747e6dSmrg    echo 1>&2 "\
3583e747e6dSmrgWARNING: \`$1' is needed, and is $msg.
3593e747e6dSmrg         You might have modified some files without having the
3603e747e6dSmrg         proper tools for further handling them.  Check the \`README' file,
3613e747e6dSmrg         it often tells you about the needed prerequisites for installing
3623e747e6dSmrg         this package.  You may also peek at any GNU archive site, in case
3633e747e6dSmrg         some other package would contain this missing \`$1' program."
3643e747e6dSmrg    exit 1
3653e747e6dSmrg    ;;
3663e747e6dSmrgesac
3673e747e6dSmrg
3683e747e6dSmrgexit 0
3693e747e6dSmrg
3703e747e6dSmrg# Local variables:
3713e747e6dSmrg# eval: (add-hook 'write-file-hooks 'time-stamp)
3723e747e6dSmrg# time-stamp-start: "scriptversion="
3733e747e6dSmrg# time-stamp-format: "%:y-%02m-%02d.%02H"
3747a2631fcSmrg# time-stamp-time-zone: "UTC"
3757a2631fcSmrg# time-stamp-end: "; # UTC"
3763e747e6dSmrg# End:
377