missing
468b9e48
 #! /bin/sh
 # Common stub for a few missing GNU programs while installing.
a16f7797
 
 scriptversion=2005-06-08.21
 
 # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005
 #   Free Software Foundation, Inc.
468b9e48
 # 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
a16f7797
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 # 02110-1301, USA.
468b9e48
 
 # 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
 
a16f7797
 msg="missing on your system"
 
468b9e48
 case "$1" in
 --run)
   # Try to run requested program, and just exit if it succeeds.
   run=
   shift
   "$@" && exit 0
a16f7797
   # 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
468b9e48
   ;;
 
   -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
a16f7797
   yacc         create \`y.tab.[ch]', if possible, from existing .[ch]
 
 Send bug reports to <bug-automake@gnu.org>."
     exit $?
468b9e48
     ;;
 
   -v|--v|--ve|--ver|--vers|--versi|--versio|--version)
a16f7797
     echo "missing $scriptversion (GNU Automake)"
     exit $?
468b9e48
     ;;
 
   -*)
     echo 1>&2 "$0: Unknown \`$1' option"
     echo 1>&2 "Try \`$0 --help' for more information"
     exit 1
     ;;
 
a16f7797
 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
     ;;
 
   *)
468b9e48
     if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
        # We have it, but it failed.
        exit 1
a16f7797
     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
468b9e48
     fi
a16f7797
     ;;
 esac
468b9e48
 
a16f7797
 # If it does not exist, or fails to run (possibly an outdated version),
 # try to emulate it.
 case "$1" in
   aclocal*)
468b9e48
     echo 1>&2 "\
a16f7797
 WARNING: \`$1' is $msg.  You should only need it if
468b9e48
          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 "\
a16f7797
 WARNING: \`$1' is $msg.  You should only need it if
468b9e48
          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 "\
a16f7797
 WARNING: \`$1' is $msg.  You should only need it if
468b9e48
          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 "\
a16f7797
 WARNING: \`$1' is $msg.  You should only need it if
468b9e48
          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 "\
a16f7797
 WARNING: \`$1' is needed, but is $msg.
          You might have modified some files without having the
468b9e48
          proper tools for further handling them.
a16f7797
          You can get \`$1' as part of \`Autoconf' from any GNU
468b9e48
          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 "\
a16f7797
 WARNING: \`$1' $msg.  You should only need it if
468b9e48
          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 "\
a16f7797
 WARNING: \`$1' is $msg.  You should only need it if
468b9e48
          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 "\
a16f7797
 WARNING: \`$1' is $msg.  You should only need it if
468b9e48
 	 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 "\
a16f7797
 WARNING: \`$1' is $msg.  You should only need it if
468b9e48
          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."
a16f7797
     # The file to touch is that specified with -o ...
468b9e48
     file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
     if test -z "$file"; then
a16f7797
       # ... 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
468b9e48
     fi
a16f7797
     # If the file does not exist, the user really needs makeinfo;
     # let's fail without touching anything.
     test -f $file || exit 1
468b9e48
     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
a16f7797
        gnutar "$@" && exit 0
468b9e48
     fi
     if (gtar --version > /dev/null 2>&1); then
a16f7797
        gtar "$@" && exit 0
468b9e48
     fi
     firstarg="$1"
     if shift; then
 	case "$firstarg" in
 	*o*)
 	    firstarg=`echo "$firstarg" | sed s/o//`
a16f7797
 	    tar "$firstarg" "$@" && exit 0
468b9e48
 	    ;;
 	esac
 	case "$firstarg" in
 	*h*)
 	    firstarg=`echo "$firstarg" | sed s/h//`
a16f7797
 	    tar "$firstarg" "$@" && exit 0
468b9e48
 	    ;;
 	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 "\
a16f7797
 WARNING: \`$1' is needed, and is $msg.
          You might have modified some files without having the
468b9e48
          proper tools for further handling them.  Check the \`README' file,
a16f7797
          it often tells you about the needed prerequisites for installing
468b9e48
          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
a16f7797
 
 # 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: