missing revision 1e00de39
11e00de39Smrg#! /bin/sh
21e00de39Smrg# Common stub for a few missing GNU programs while installing.
31e00de39Smrg
41e00de39Smrgscriptversion=2006-05-10.23
51e00de39Smrg
61e00de39Smrg# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006
71e00de39Smrg#   Free Software Foundation, Inc.
81e00de39Smrg# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
91e00de39Smrg
101e00de39Smrg# This program is free software; you can redistribute it and/or modify
111e00de39Smrg# it under the terms of the GNU General Public License as published by
121e00de39Smrg# the Free Software Foundation; either version 2, or (at your option)
131e00de39Smrg# any later version.
141e00de39Smrg
151e00de39Smrg# This program is distributed in the hope that it will be useful,
161e00de39Smrg# but WITHOUT ANY WARRANTY; without even the implied warranty of
171e00de39Smrg# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
181e00de39Smrg# GNU General Public License for more details.
191e00de39Smrg
201e00de39Smrg# You should have received a copy of the GNU General Public License
211e00de39Smrg# along with this program; if not, write to the Free Software
221e00de39Smrg# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
231e00de39Smrg# 02110-1301, USA.
241e00de39Smrg
251e00de39Smrg# As a special exception to the GNU General Public License, if you
261e00de39Smrg# distribute this file as part of a program that contains a
271e00de39Smrg# configuration script generated by Autoconf, you may include it under
281e00de39Smrg# the same distribution terms that you use for the rest of that program.
291e00de39Smrg
301e00de39Smrgif test $# -eq 0; then
311e00de39Smrg  echo 1>&2 "Try \`$0 --help' for more information"
321e00de39Smrg  exit 1
331e00de39Smrgfi
341e00de39Smrg
351e00de39Smrgrun=:
361e00de39Smrgsed_output='s/.* --output[ =]\([^ ]*\).*/\1/p'
371e00de39Smrgsed_minuso='s/.* -o \([^ ]*\).*/\1/p'
381e00de39Smrg
391e00de39Smrg# In the cases where this matters, `missing' is being run in the
401e00de39Smrg# srcdir already.
411e00de39Smrgif test -f configure.ac; then
421e00de39Smrg  configure_ac=configure.ac
431e00de39Smrgelse
441e00de39Smrg  configure_ac=configure.in
451e00de39Smrgfi
461e00de39Smrg
471e00de39Smrgmsg="missing on your system"
481e00de39Smrg
491e00de39Smrgcase $1 in
501e00de39Smrg--run)
511e00de39Smrg  # Try to run requested program, and just exit if it succeeds.
521e00de39Smrg  run=
531e00de39Smrg  shift
541e00de39Smrg  "$@" && exit 0
551e00de39Smrg  # Exit code 63 means version mismatch.  This often happens
561e00de39Smrg  # when the user try to use an ancient version of a tool on
571e00de39Smrg  # a file that requires a minimum version.  In this case we
581e00de39Smrg  # we should proceed has if the program had been absent, or
591e00de39Smrg  # if --run hadn't been passed.
601e00de39Smrg  if test $? = 63; then
611e00de39Smrg    run=:
621e00de39Smrg    msg="probably too old"
631e00de39Smrg  fi
641e00de39Smrg  ;;
651e00de39Smrg
661e00de39Smrg  -h|--h|--he|--hel|--help)
671e00de39Smrg    echo "\
681e00de39Smrg$0 [OPTION]... PROGRAM [ARGUMENT]...
691e00de39Smrg
701e00de39SmrgHandle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
711e00de39Smrgerror status if there is no known handling for PROGRAM.
721e00de39Smrg
731e00de39SmrgOptions:
741e00de39Smrg  -h, --help      display this help and exit
751e00de39Smrg  -v, --version   output version information and exit
761e00de39Smrg  --run           try to run the given command, and emulate it if it fails
771e00de39Smrg
781e00de39SmrgSupported PROGRAM values:
791e00de39Smrg  aclocal      touch file \`aclocal.m4'
801e00de39Smrg  autoconf     touch file \`configure'
811e00de39Smrg  autoheader   touch file \`config.h.in'
821e00de39Smrg  autom4te     touch the output file, or create a stub one
831e00de39Smrg  automake     touch all \`Makefile.in' files
841e00de39Smrg  bison        create \`y.tab.[ch]', if possible, from existing .[ch]
851e00de39Smrg  flex         create \`lex.yy.c', if possible, from existing .c
861e00de39Smrg  help2man     touch the output file
871e00de39Smrg  lex          create \`lex.yy.c', if possible, from existing .c
881e00de39Smrg  makeinfo     touch the output file
891e00de39Smrg  tar          try tar, gnutar, gtar, then tar without non-portable flags
901e00de39Smrg  yacc         create \`y.tab.[ch]', if possible, from existing .[ch]
911e00de39Smrg
921e00de39SmrgSend bug reports to <bug-automake@gnu.org>."
931e00de39Smrg    exit $?
941e00de39Smrg    ;;
951e00de39Smrg
961e00de39Smrg  -v|--v|--ve|--ver|--vers|--versi|--versio|--version)
971e00de39Smrg    echo "missing $scriptversion (GNU Automake)"
981e00de39Smrg    exit $?
991e00de39Smrg    ;;
1001e00de39Smrg
1011e00de39Smrg  -*)
1021e00de39Smrg    echo 1>&2 "$0: Unknown \`$1' option"
1031e00de39Smrg    echo 1>&2 "Try \`$0 --help' for more information"
1041e00de39Smrg    exit 1
1051e00de39Smrg    ;;
1061e00de39Smrg
1071e00de39Smrgesac
1081e00de39Smrg
1091e00de39Smrg# Now exit if we have it, but it failed.  Also exit now if we
1101e00de39Smrg# don't have it and --version was passed (most likely to detect
1111e00de39Smrg# the program).
1121e00de39Smrgcase $1 in
1131e00de39Smrg  lex|yacc)
1141e00de39Smrg    # Not GNU programs, they don't have --version.
1151e00de39Smrg    ;;
1161e00de39Smrg
1171e00de39Smrg  tar)
1181e00de39Smrg    if test -n "$run"; then
1191e00de39Smrg       echo 1>&2 "ERROR: \`tar' requires --run"
1201e00de39Smrg       exit 1
1211e00de39Smrg    elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
1221e00de39Smrg       exit 1
1231e00de39Smrg    fi
1241e00de39Smrg    ;;
1251e00de39Smrg
1261e00de39Smrg  *)
1271e00de39Smrg    if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
1281e00de39Smrg       # We have it, but it failed.
1291e00de39Smrg       exit 1
1301e00de39Smrg    elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
1311e00de39Smrg       # Could not run --version or --help.  This is probably someone
1321e00de39Smrg       # running `$TOOL --version' or `$TOOL --help' to check whether
1331e00de39Smrg       # $TOOL exists and not knowing $TOOL uses missing.
1341e00de39Smrg       exit 1
1351e00de39Smrg    fi
1361e00de39Smrg    ;;
1371e00de39Smrgesac
1381e00de39Smrg
1391e00de39Smrg# If it does not exist, or fails to run (possibly an outdated version),
1401e00de39Smrg# try to emulate it.
1411e00de39Smrgcase $1 in
1421e00de39Smrg  aclocal*)
1431e00de39Smrg    echo 1>&2 "\
1441e00de39SmrgWARNING: \`$1' is $msg.  You should only need it if
1451e00de39Smrg         you modified \`acinclude.m4' or \`${configure_ac}'.  You might want
1461e00de39Smrg         to install the \`Automake' and \`Perl' packages.  Grab them from
1471e00de39Smrg         any GNU archive site."
1481e00de39Smrg    touch aclocal.m4
1491e00de39Smrg    ;;
1501e00de39Smrg
1511e00de39Smrg  autoconf)
1521e00de39Smrg    echo 1>&2 "\
1531e00de39SmrgWARNING: \`$1' is $msg.  You should only need it if
1541e00de39Smrg         you modified \`${configure_ac}'.  You might want to install the
1551e00de39Smrg         \`Autoconf' and \`GNU m4' packages.  Grab them from any GNU
1561e00de39Smrg         archive site."
1571e00de39Smrg    touch configure
1581e00de39Smrg    ;;
1591e00de39Smrg
1601e00de39Smrg  autoheader)
1611e00de39Smrg    echo 1>&2 "\
1621e00de39SmrgWARNING: \`$1' is $msg.  You should only need it if
1631e00de39Smrg         you modified \`acconfig.h' or \`${configure_ac}'.  You might want
1641e00de39Smrg         to install the \`Autoconf' and \`GNU m4' packages.  Grab them
1651e00de39Smrg         from any GNU archive site."
1661e00de39Smrg    files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
1671e00de39Smrg    test -z "$files" && files="config.h"
1681e00de39Smrg    touch_files=
1691e00de39Smrg    for f in $files; do
1701e00de39Smrg      case $f in
1711e00de39Smrg      *:*) touch_files="$touch_files "`echo "$f" |
1721e00de39Smrg				       sed -e 's/^[^:]*://' -e 's/:.*//'`;;
1731e00de39Smrg      *) touch_files="$touch_files $f.in";;
1741e00de39Smrg      esac
1751e00de39Smrg    done
1761e00de39Smrg    touch $touch_files
1771e00de39Smrg    ;;
1781e00de39Smrg
1791e00de39Smrg  automake*)
1801e00de39Smrg    echo 1>&2 "\
1811e00de39SmrgWARNING: \`$1' is $msg.  You should only need it if
1821e00de39Smrg         you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
1831e00de39Smrg         You might want to install the \`Automake' and \`Perl' packages.
1841e00de39Smrg         Grab them from any GNU archive site."
1851e00de39Smrg    find . -type f -name Makefile.am -print |
1861e00de39Smrg	   sed 's/\.am$/.in/' |
1871e00de39Smrg	   while read f; do touch "$f"; done
1881e00de39Smrg    ;;
1891e00de39Smrg
1901e00de39Smrg  autom4te)
1911e00de39Smrg    echo 1>&2 "\
1921e00de39SmrgWARNING: \`$1' is needed, but is $msg.
1931e00de39Smrg         You might have modified some files without having the
1941e00de39Smrg         proper tools for further handling them.
1951e00de39Smrg         You can get \`$1' as part of \`Autoconf' from any GNU
1961e00de39Smrg         archive site."
1971e00de39Smrg
1981e00de39Smrg    file=`echo "$*" | sed -n "$sed_output"`
1991e00de39Smrg    test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
2001e00de39Smrg    if test -f "$file"; then
2011e00de39Smrg	touch $file
2021e00de39Smrg    else
2031e00de39Smrg	test -z "$file" || exec >$file
2041e00de39Smrg	echo "#! /bin/sh"
2051e00de39Smrg	echo "# Created by GNU Automake missing as a replacement of"
2061e00de39Smrg	echo "#  $ $@"
2071e00de39Smrg	echo "exit 0"
2081e00de39Smrg	chmod +x $file
2091e00de39Smrg	exit 1
2101e00de39Smrg    fi
2111e00de39Smrg    ;;
2121e00de39Smrg
2131e00de39Smrg  bison|yacc)
2141e00de39Smrg    echo 1>&2 "\
2151e00de39SmrgWARNING: \`$1' $msg.  You should only need it if
2161e00de39Smrg         you modified a \`.y' file.  You may need the \`Bison' package
2171e00de39Smrg         in order for those modifications to take effect.  You can get
2181e00de39Smrg         \`Bison' from any GNU archive site."
2191e00de39Smrg    rm -f y.tab.c y.tab.h
2201e00de39Smrg    if test $# -ne 1; then
2211e00de39Smrg        eval LASTARG="\${$#}"
2221e00de39Smrg	case $LASTARG in
2231e00de39Smrg	*.y)
2241e00de39Smrg	    SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
2251e00de39Smrg	    if test -f "$SRCFILE"; then
2261e00de39Smrg	         cp "$SRCFILE" y.tab.c
2271e00de39Smrg	    fi
2281e00de39Smrg	    SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
2291e00de39Smrg	    if test -f "$SRCFILE"; then
2301e00de39Smrg	         cp "$SRCFILE" y.tab.h
2311e00de39Smrg	    fi
2321e00de39Smrg	  ;;
2331e00de39Smrg	esac
2341e00de39Smrg    fi
2351e00de39Smrg    if test ! -f y.tab.h; then
2361e00de39Smrg	echo >y.tab.h
2371e00de39Smrg    fi
2381e00de39Smrg    if test ! -f y.tab.c; then
2391e00de39Smrg	echo 'main() { return 0; }' >y.tab.c
2401e00de39Smrg    fi
2411e00de39Smrg    ;;
2421e00de39Smrg
2431e00de39Smrg  lex|flex)
2441e00de39Smrg    echo 1>&2 "\
2451e00de39SmrgWARNING: \`$1' is $msg.  You should only need it if
2461e00de39Smrg         you modified a \`.l' file.  You may need the \`Flex' package
2471e00de39Smrg         in order for those modifications to take effect.  You can get
2481e00de39Smrg         \`Flex' from any GNU archive site."
2491e00de39Smrg    rm -f lex.yy.c
2501e00de39Smrg    if test $# -ne 1; then
2511e00de39Smrg        eval LASTARG="\${$#}"
2521e00de39Smrg	case $LASTARG in
2531e00de39Smrg	*.l)
2541e00de39Smrg	    SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
2551e00de39Smrg	    if test -f "$SRCFILE"; then
2561e00de39Smrg	         cp "$SRCFILE" lex.yy.c
2571e00de39Smrg	    fi
2581e00de39Smrg	  ;;
2591e00de39Smrg	esac
2601e00de39Smrg    fi
2611e00de39Smrg    if test ! -f lex.yy.c; then
2621e00de39Smrg	echo 'main() { return 0; }' >lex.yy.c
2631e00de39Smrg    fi
2641e00de39Smrg    ;;
2651e00de39Smrg
2661e00de39Smrg  help2man)
2671e00de39Smrg    echo 1>&2 "\
2681e00de39SmrgWARNING: \`$1' is $msg.  You should only need it if
2691e00de39Smrg	 you modified a dependency of a manual page.  You may need the
2701e00de39Smrg	 \`Help2man' package in order for those modifications to take
2711e00de39Smrg	 effect.  You can get \`Help2man' from any GNU archive site."
2721e00de39Smrg
2731e00de39Smrg    file=`echo "$*" | sed -n "$sed_output"`
2741e00de39Smrg    test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
2751e00de39Smrg    if test -f "$file"; then
2761e00de39Smrg	touch $file
2771e00de39Smrg    else
2781e00de39Smrg	test -z "$file" || exec >$file
2791e00de39Smrg	echo ".ab help2man is required to generate this page"
2801e00de39Smrg	exit 1
2811e00de39Smrg    fi
2821e00de39Smrg    ;;
2831e00de39Smrg
2841e00de39Smrg  makeinfo)
2851e00de39Smrg    echo 1>&2 "\
2861e00de39SmrgWARNING: \`$1' is $msg.  You should only need it if
2871e00de39Smrg         you modified a \`.texi' or \`.texinfo' file, or any other file
2881e00de39Smrg         indirectly affecting the aspect of the manual.  The spurious
2891e00de39Smrg         call might also be the consequence of using a buggy \`make' (AIX,
2901e00de39Smrg         DU, IRIX).  You might want to install the \`Texinfo' package or
2911e00de39Smrg         the \`GNU make' package.  Grab either from any GNU archive site."
2921e00de39Smrg    # The file to touch is that specified with -o ...
2931e00de39Smrg    file=`echo "$*" | sed -n "$sed_output"`
2941e00de39Smrg    test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
2951e00de39Smrg    if test -z "$file"; then
2961e00de39Smrg      # ... or it is the one specified with @setfilename ...
2971e00de39Smrg      infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
2981e00de39Smrg      file=`sed -n '
2991e00de39Smrg	/^@setfilename/{
3001e00de39Smrg	  s/.* \([^ ]*\) *$/\1/
3011e00de39Smrg	  p
3021e00de39Smrg	  q
3031e00de39Smrg	}' $infile`
3041e00de39Smrg      # ... or it is derived from the source name (dir/f.texi becomes f.info)
3051e00de39Smrg      test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info
3061e00de39Smrg    fi
3071e00de39Smrg    # If the file does not exist, the user really needs makeinfo;
3081e00de39Smrg    # let's fail without touching anything.
3091e00de39Smrg    test -f $file || exit 1
3101e00de39Smrg    touch $file
3111e00de39Smrg    ;;
3121e00de39Smrg
3131e00de39Smrg  tar)
3141e00de39Smrg    shift
3151e00de39Smrg
3161e00de39Smrg    # We have already tried tar in the generic part.
3171e00de39Smrg    # Look for gnutar/gtar before invocation to avoid ugly error
3181e00de39Smrg    # messages.
3191e00de39Smrg    if (gnutar --version > /dev/null 2>&1); then
3201e00de39Smrg       gnutar "$@" && exit 0
3211e00de39Smrg    fi
3221e00de39Smrg    if (gtar --version > /dev/null 2>&1); then
3231e00de39Smrg       gtar "$@" && exit 0
3241e00de39Smrg    fi
3251e00de39Smrg    firstarg="$1"
3261e00de39Smrg    if shift; then
3271e00de39Smrg	case $firstarg in
3281e00de39Smrg	*o*)
3291e00de39Smrg	    firstarg=`echo "$firstarg" | sed s/o//`
3301e00de39Smrg	    tar "$firstarg" "$@" && exit 0
3311e00de39Smrg	    ;;
3321e00de39Smrg	esac
3331e00de39Smrg	case $firstarg in
3341e00de39Smrg	*h*)
3351e00de39Smrg	    firstarg=`echo "$firstarg" | sed s/h//`
3361e00de39Smrg	    tar "$firstarg" "$@" && exit 0
3371e00de39Smrg	    ;;
3381e00de39Smrg	esac
3391e00de39Smrg    fi
3401e00de39Smrg
3411e00de39Smrg    echo 1>&2 "\
3421e00de39SmrgWARNING: I can't seem to be able to run \`tar' with the given arguments.
3431e00de39Smrg         You may want to install GNU tar or Free paxutils, or check the
3441e00de39Smrg         command line arguments."
3451e00de39Smrg    exit 1
3461e00de39Smrg    ;;
3471e00de39Smrg
3481e00de39Smrg  *)
3491e00de39Smrg    echo 1>&2 "\
3501e00de39SmrgWARNING: \`$1' is needed, and is $msg.
3511e00de39Smrg         You might have modified some files without having the
3521e00de39Smrg         proper tools for further handling them.  Check the \`README' file,
3531e00de39Smrg         it often tells you about the needed prerequisites for installing
3541e00de39Smrg         this package.  You may also peek at any GNU archive site, in case
3551e00de39Smrg         some other package would contain this missing \`$1' program."
3561e00de39Smrg    exit 1
3571e00de39Smrg    ;;
3581e00de39Smrgesac
3591e00de39Smrg
3601e00de39Smrgexit 0
3611e00de39Smrg
3621e00de39Smrg# Local variables:
3631e00de39Smrg# eval: (add-hook 'write-file-hooks 'time-stamp)
3641e00de39Smrg# time-stamp-start: "scriptversion="
3651e00de39Smrg# time-stamp-format: "%:y-%02m-%02d.%02H"
3661e00de39Smrg# time-stamp-end: "$"
3671e00de39Smrg# End:
368