missing
28e73e95
 #! /bin/sh
 # Common stub for a few missing GNU programs while installing.
cbdc099d
 
 scriptversion=2005-06-08.21
 
 # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005
 #   Free Software Foundation, Inc.
28e73e95
 # Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
 # the Free Software Foundation; either version 2, or (at your option)
 # any later version.
 
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 # GNU General Public License for more details.
 
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
cbdc099d
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 # 02110-1301, USA.
28e73e95
 
 # As a special exception to the GNU General Public License, if you
 # distribute this file as part of a program that contains a
 # configuration script generated by Autoconf, you may include it under
 # the same distribution terms that you use for the rest of that program.
 
 if test $# -eq 0; then
   echo 1>&2 "Try \`$0 --help' for more information"
   exit 1
 fi
 
 run=:
 
 # In the cases where this matters, `missing' is being run in the
 # srcdir already.
 if test -f configure.ac; then
   configure_ac=configure.ac
 else
   configure_ac=configure.in
 fi
 
cbdc099d
 msg="missing on your system"
 
28e73e95
 case "$1" in
 --run)
   # Try to run requested program, and just exit if it succeeds.
   run=
   shift
   "$@" && exit 0
cbdc099d
   # Exit code 63 means version mismatch.  This often happens
   # when the user try to use an ancient version of a tool on
   # a file that requires a minimum version.  In this case we
   # we should proceed has if the program had been absent, or
   # if --run hadn't been passed.
   if test $? = 63; then
     run=:
     msg="probably too old"
   fi
28e73e95
   ;;
 
   -h|--h|--he|--hel|--help)
     echo "\
 $0 [OPTION]... PROGRAM [ARGUMENT]...
 
 Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
 error status if there is no known handling for PROGRAM.
 
 Options:
   -h, --help      display this help and exit
   -v, --version   output version information and exit
   --run           try to run the given command, and emulate it if it fails
 
 Supported PROGRAM values:
   aclocal      touch file \`aclocal.m4'
   autoconf     touch file \`configure'
   autoheader   touch file \`config.h.in'
   automake     touch all \`Makefile.in' files
   bison        create \`y.tab.[ch]', if possible, from existing .[ch]
   flex         create \`lex.yy.c', if possible, from existing .c
   help2man     touch the output file
   lex          create \`lex.yy.c', if possible, from existing .c
   makeinfo     touch the output file
   tar          try tar, gnutar, gtar, then tar without non-portable flags
cbdc099d
   yacc         create \`y.tab.[ch]', if possible, from existing .[ch]
 
 Send bug reports to <bug-automake@gnu.org>."
     exit $?
28e73e95
     ;;
 
   -v|--v|--ve|--ver|--vers|--versi|--versio|--version)
cbdc099d
     echo "missing $scriptversion (GNU Automake)"
     exit $?
28e73e95
     ;;
 
   -*)
     echo 1>&2 "$0: Unknown \`$1' option"
     echo 1>&2 "Try \`$0 --help' for more information"
     exit 1
     ;;
 
cbdc099d
 esac
 
 # Now exit if we have it, but it failed.  Also exit now if we
 # don't have it and --version was passed (most likely to detect
 # the program).
 case "$1" in
   lex|yacc)
     # Not GNU programs, they don't have --version.
     ;;
 
   tar)
     if test -n "$run"; then
        echo 1>&2 "ERROR: \`tar' requires --run"
        exit 1
     elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
        exit 1
     fi
     ;;
 
   *)
28e73e95
     if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
        # We have it, but it failed.
        exit 1
cbdc099d
     elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
        # Could not run --version or --help.  This is probably someone
        # running `$TOOL --version' or `$TOOL --help' to check whether
        # $TOOL exists and not knowing $TOOL uses missing.
        exit 1
28e73e95
     fi
cbdc099d
     ;;
 esac
28e73e95
 
cbdc099d
 # If it does not exist, or fails to run (possibly an outdated version),
 # try to emulate it.
 case "$1" in
   aclocal*)
28e73e95
     echo 1>&2 "\
cbdc099d
 WARNING: \`$1' is $msg.  You should only need it if
28e73e95
          you modified \`acinclude.m4' or \`${configure_ac}'.  You might want
          to install the \`Automake' and \`Perl' packages.  Grab them from
          any GNU archive site."
     touch aclocal.m4
     ;;
 
   autoconf)
     echo 1>&2 "\
cbdc099d
 WARNING: \`$1' is $msg.  You should only need it if
28e73e95
          you modified \`${configure_ac}'.  You might want to install the
          \`Autoconf' and \`GNU m4' packages.  Grab them from any GNU
          archive site."
     touch configure
     ;;
 
   autoheader)
     echo 1>&2 "\
cbdc099d
 WARNING: \`$1' is $msg.  You should only need it if
28e73e95
          you modified \`acconfig.h' or \`${configure_ac}'.  You might want
          to install the \`Autoconf' and \`GNU m4' packages.  Grab them
          from any GNU archive site."
     files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
     test -z "$files" && files="config.h"
     touch_files=
     for f in $files; do
       case "$f" in
       *:*) touch_files="$touch_files "`echo "$f" |
 				       sed -e 's/^[^:]*://' -e 's/:.*//'`;;
       *) touch_files="$touch_files $f.in";;
       esac
     done
     touch $touch_files
     ;;
 
   automake*)
     echo 1>&2 "\
cbdc099d
 WARNING: \`$1' is $msg.  You should only need it if
28e73e95
          you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
          You might want to install the \`Automake' and \`Perl' packages.
          Grab them from any GNU archive site."
     find . -type f -name Makefile.am -print |
 	   sed 's/\.am$/.in/' |
 	   while read f; do touch "$f"; done
     ;;
 
   autom4te)
     echo 1>&2 "\
cbdc099d
 WARNING: \`$1' is needed, but is $msg.
          You might have modified some files without having the
28e73e95
          proper tools for further handling them.
cbdc099d
          You can get \`$1' as part of \`Autoconf' from any GNU
28e73e95
          archive site."
 
     file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'`
     test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'`
     if test -f "$file"; then
 	touch $file
     else
 	test -z "$file" || exec >$file
 	echo "#! /bin/sh"
 	echo "# Created by GNU Automake missing as a replacement of"
 	echo "#  $ $@"
 	echo "exit 0"
 	chmod +x $file
 	exit 1
     fi
     ;;
 
   bison|yacc)
     echo 1>&2 "\
cbdc099d
 WARNING: \`$1' $msg.  You should only need it if
28e73e95
          you modified a \`.y' file.  You may need the \`Bison' package
          in order for those modifications to take effect.  You can get
          \`Bison' from any GNU archive site."
     rm -f y.tab.c y.tab.h
     if [ $# -ne 1 ]; then
         eval LASTARG="\${$#}"
 	case "$LASTARG" in
 	*.y)
 	    SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
 	    if [ -f "$SRCFILE" ]; then
 	         cp "$SRCFILE" y.tab.c
 	    fi
 	    SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
 	    if [ -f "$SRCFILE" ]; then
 	         cp "$SRCFILE" y.tab.h
 	    fi
 	  ;;
 	esac
     fi
     if [ ! -f y.tab.h ]; then
 	echo >y.tab.h
     fi
     if [ ! -f y.tab.c ]; then
 	echo 'main() { return 0; }' >y.tab.c
     fi
     ;;
 
   lex|flex)
     echo 1>&2 "\
cbdc099d
 WARNING: \`$1' is $msg.  You should only need it if
28e73e95
          you modified a \`.l' file.  You may need the \`Flex' package
          in order for those modifications to take effect.  You can get
          \`Flex' from any GNU archive site."
     rm -f lex.yy.c
     if [ $# -ne 1 ]; then
         eval LASTARG="\${$#}"
 	case "$LASTARG" in
 	*.l)
 	    SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
 	    if [ -f "$SRCFILE" ]; then
 	         cp "$SRCFILE" lex.yy.c
 	    fi
 	  ;;
 	esac
     fi
     if [ ! -f lex.yy.c ]; then
 	echo 'main() { return 0; }' >lex.yy.c
     fi
     ;;
 
   help2man)
     echo 1>&2 "\
cbdc099d
 WARNING: \`$1' is $msg.  You should only need it if
28e73e95
 	 you modified a dependency of a manual page.  You may need the
 	 \`Help2man' package in order for those modifications to take
 	 effect.  You can get \`Help2man' from any GNU archive site."
 
     file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
     if test -z "$file"; then
 	file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'`
     fi
     if [ -f "$file" ]; then
 	touch $file
     else
 	test -z "$file" || exec >$file
 	echo ".ab help2man is required to generate this page"
 	exit 1
     fi
     ;;
 
   makeinfo)
     echo 1>&2 "\
cbdc099d
 WARNING: \`$1' is $msg.  You should only need it if
28e73e95
          you modified a \`.texi' or \`.texinfo' file, or any other file
          indirectly affecting the aspect of the manual.  The spurious
          call might also be the consequence of using a buggy \`make' (AIX,
          DU, IRIX).  You might want to install the \`Texinfo' package or
          the \`GNU make' package.  Grab either from any GNU archive site."
cbdc099d
     # The file to touch is that specified with -o ...
28e73e95
     file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
     if test -z "$file"; then
cbdc099d
       # ... or it is the one specified with @setfilename ...
       infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
       file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $infile`
       # ... or it is derived from the source name (dir/f.texi becomes f.info)
       test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info
28e73e95
     fi
cbdc099d
     # If the file does not exist, the user really needs makeinfo;
     # let's fail without touching anything.
     test -f $file || exit 1
28e73e95
     touch $file
     ;;
 
   tar)
     shift
 
     # We have already tried tar in the generic part.
     # Look for gnutar/gtar before invocation to avoid ugly error
     # messages.
     if (gnutar --version > /dev/null 2>&1); then
cbdc099d
        gnutar "$@" && exit 0
28e73e95
     fi
     if (gtar --version > /dev/null 2>&1); then
cbdc099d
        gtar "$@" && exit 0
28e73e95
     fi
     firstarg="$1"
     if shift; then
 	case "$firstarg" in
 	*o*)
 	    firstarg=`echo "$firstarg" | sed s/o//`
cbdc099d
 	    tar "$firstarg" "$@" && exit 0
28e73e95
 	    ;;
 	esac
 	case "$firstarg" in
 	*h*)
 	    firstarg=`echo "$firstarg" | sed s/h//`
cbdc099d
 	    tar "$firstarg" "$@" && exit 0
28e73e95
 	    ;;
 	esac
     fi
 
     echo 1>&2 "\
 WARNING: I can't seem to be able to run \`tar' with the given arguments.
          You may want to install GNU tar or Free paxutils, or check the
          command line arguments."
     exit 1
     ;;
 
   *)
     echo 1>&2 "\
cbdc099d
 WARNING: \`$1' is needed, and is $msg.
          You might have modified some files without having the
28e73e95
          proper tools for further handling them.  Check the \`README' file,
cbdc099d
          it often tells you about the needed prerequisites for installing
28e73e95
          this package.  You may also peek at any GNU archive site, in case
          some other package would contain this missing \`$1' program."
     exit 1
     ;;
 esac
 
 exit 0
cbdc099d
 
 # Local variables:
 # eval: (add-hook 'write-file-hooks 'time-stamp)
 # time-stamp-start: "scriptversion="
 # time-stamp-format: "%:y-%02m-%02d.%02H"
 # time-stamp-end: "$"
 # End: