Blame missing

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