Blame missing

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