missing revision 3eed67fa
13eed67faSmbalmer#! /bin/sh
23eed67faSmbalmer# Common stub for a few missing GNU programs while installing.
33eed67faSmbalmer
43eed67faSmbalmerscriptversion=2005-06-08.21
53eed67faSmbalmer
63eed67faSmbalmer# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005
73eed67faSmbalmer#   Free Software Foundation, Inc.
83eed67faSmbalmer# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
93eed67faSmbalmer
103eed67faSmbalmer# This program is free software; you can redistribute it and/or modify
113eed67faSmbalmer# it under the terms of the GNU General Public License as published by
123eed67faSmbalmer# the Free Software Foundation; either version 2, or (at your option)
133eed67faSmbalmer# any later version.
143eed67faSmbalmer
153eed67faSmbalmer# This program is distributed in the hope that it will be useful,
163eed67faSmbalmer# but WITHOUT ANY WARRANTY; without even the implied warranty of
173eed67faSmbalmer# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
183eed67faSmbalmer# GNU General Public License for more details.
193eed67faSmbalmer
203eed67faSmbalmer# You should have received a copy of the GNU General Public License
213eed67faSmbalmer# along with this program; if not, write to the Free Software
223eed67faSmbalmer# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
233eed67faSmbalmer# 02110-1301, USA.
243eed67faSmbalmer
253eed67faSmbalmer# As a special exception to the GNU General Public License, if you
263eed67faSmbalmer# distribute this file as part of a program that contains a
273eed67faSmbalmer# configuration script generated by Autoconf, you may include it under
283eed67faSmbalmer# the same distribution terms that you use for the rest of that program.
293eed67faSmbalmer
303eed67faSmbalmerif test $# -eq 0; then
313eed67faSmbalmer  echo 1>&2 "Try \`$0 --help' for more information"
323eed67faSmbalmer  exit 1
333eed67faSmbalmerfi
343eed67faSmbalmer
353eed67faSmbalmerrun=:
363eed67faSmbalmer
373eed67faSmbalmer# In the cases where this matters, `missing' is being run in the
383eed67faSmbalmer# srcdir already.
393eed67faSmbalmerif test -f configure.ac; then
403eed67faSmbalmer  configure_ac=configure.ac
413eed67faSmbalmerelse
423eed67faSmbalmer  configure_ac=configure.in
433eed67faSmbalmerfi
443eed67faSmbalmer
453eed67faSmbalmermsg="missing on your system"
463eed67faSmbalmer
473eed67faSmbalmercase "$1" in
483eed67faSmbalmer--run)
493eed67faSmbalmer  # Try to run requested program, and just exit if it succeeds.
503eed67faSmbalmer  run=
513eed67faSmbalmer  shift
523eed67faSmbalmer  "$@" && exit 0
533eed67faSmbalmer  # Exit code 63 means version mismatch.  This often happens
543eed67faSmbalmer  # when the user try to use an ancient version of a tool on
553eed67faSmbalmer  # a file that requires a minimum version.  In this case we
563eed67faSmbalmer  # we should proceed has if the program had been absent, or
573eed67faSmbalmer  # if --run hadn't been passed.
583eed67faSmbalmer  if test $? = 63; then
593eed67faSmbalmer    run=:
603eed67faSmbalmer    msg="probably too old"
613eed67faSmbalmer  fi
623eed67faSmbalmer  ;;
633eed67faSmbalmer
643eed67faSmbalmer  -h|--h|--he|--hel|--help)
653eed67faSmbalmer    echo "\
663eed67faSmbalmer$0 [OPTION]... PROGRAM [ARGUMENT]...
673eed67faSmbalmer
683eed67faSmbalmerHandle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
693eed67faSmbalmererror status if there is no known handling for PROGRAM.
703eed67faSmbalmer
713eed67faSmbalmerOptions:
723eed67faSmbalmer  -h, --help      display this help and exit
733eed67faSmbalmer  -v, --version   output version information and exit
743eed67faSmbalmer  --run           try to run the given command, and emulate it if it fails
753eed67faSmbalmer
763eed67faSmbalmerSupported PROGRAM values:
773eed67faSmbalmer  aclocal      touch file \`aclocal.m4'
783eed67faSmbalmer  autoconf     touch file \`configure'
793eed67faSmbalmer  autoheader   touch file \`config.h.in'
803eed67faSmbalmer  automake     touch all \`Makefile.in' files
813eed67faSmbalmer  bison        create \`y.tab.[ch]', if possible, from existing .[ch]
823eed67faSmbalmer  flex         create \`lex.yy.c', if possible, from existing .c
833eed67faSmbalmer  help2man     touch the output file
843eed67faSmbalmer  lex          create \`lex.yy.c', if possible, from existing .c
853eed67faSmbalmer  makeinfo     touch the output file
863eed67faSmbalmer  tar          try tar, gnutar, gtar, then tar without non-portable flags
873eed67faSmbalmer  yacc         create \`y.tab.[ch]', if possible, from existing .[ch]
883eed67faSmbalmer
893eed67faSmbalmerSend bug reports to <bug-automake@gnu.org>."
903eed67faSmbalmer    exit $?
913eed67faSmbalmer    ;;
923eed67faSmbalmer
933eed67faSmbalmer  -v|--v|--ve|--ver|--vers|--versi|--versio|--version)
943eed67faSmbalmer    echo "missing $scriptversion (GNU Automake)"
953eed67faSmbalmer    exit $?
963eed67faSmbalmer    ;;
973eed67faSmbalmer
983eed67faSmbalmer  -*)
993eed67faSmbalmer    echo 1>&2 "$0: Unknown \`$1' option"
1003eed67faSmbalmer    echo 1>&2 "Try \`$0 --help' for more information"
1013eed67faSmbalmer    exit 1
1023eed67faSmbalmer    ;;
1033eed67faSmbalmer
1043eed67faSmbalmeresac
1053eed67faSmbalmer
1063eed67faSmbalmer# Now exit if we have it, but it failed.  Also exit now if we
1073eed67faSmbalmer# don't have it and --version was passed (most likely to detect
1083eed67faSmbalmer# the program).
1093eed67faSmbalmercase "$1" in
1103eed67faSmbalmer  lex|yacc)
1113eed67faSmbalmer    # Not GNU programs, they don't have --version.
1123eed67faSmbalmer    ;;
1133eed67faSmbalmer
1143eed67faSmbalmer  tar)
1153eed67faSmbalmer    if test -n "$run"; then
1163eed67faSmbalmer       echo 1>&2 "ERROR: \`tar' requires --run"
1173eed67faSmbalmer       exit 1
1183eed67faSmbalmer    elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
1193eed67faSmbalmer       exit 1
1203eed67faSmbalmer    fi
1213eed67faSmbalmer    ;;
1223eed67faSmbalmer
1233eed67faSmbalmer  *)
1243eed67faSmbalmer    if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
1253eed67faSmbalmer       # We have it, but it failed.
1263eed67faSmbalmer       exit 1
1273eed67faSmbalmer    elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
1283eed67faSmbalmer       # Could not run --version or --help.  This is probably someone
1293eed67faSmbalmer       # running `$TOOL --version' or `$TOOL --help' to check whether
1303eed67faSmbalmer       # $TOOL exists and not knowing $TOOL uses missing.
1313eed67faSmbalmer       exit 1
1323eed67faSmbalmer    fi
1333eed67faSmbalmer    ;;
1343eed67faSmbalmeresac
1353eed67faSmbalmer
1363eed67faSmbalmer# If it does not exist, or fails to run (possibly an outdated version),
1373eed67faSmbalmer# try to emulate it.
1383eed67faSmbalmercase "$1" in
1393eed67faSmbalmer  aclocal*)
1403eed67faSmbalmer    echo 1>&2 "\
1413eed67faSmbalmerWARNING: \`$1' is $msg.  You should only need it if
1423eed67faSmbalmer         you modified \`acinclude.m4' or \`${configure_ac}'.  You might want
1433eed67faSmbalmer         to install the \`Automake' and \`Perl' packages.  Grab them from
1443eed67faSmbalmer         any GNU archive site."
1453eed67faSmbalmer    touch aclocal.m4
1463eed67faSmbalmer    ;;
1473eed67faSmbalmer
1483eed67faSmbalmer  autoconf)
1493eed67faSmbalmer    echo 1>&2 "\
1503eed67faSmbalmerWARNING: \`$1' is $msg.  You should only need it if
1513eed67faSmbalmer         you modified \`${configure_ac}'.  You might want to install the
1523eed67faSmbalmer         \`Autoconf' and \`GNU m4' packages.  Grab them from any GNU
1533eed67faSmbalmer         archive site."
1543eed67faSmbalmer    touch configure
1553eed67faSmbalmer    ;;
1563eed67faSmbalmer
1573eed67faSmbalmer  autoheader)
1583eed67faSmbalmer    echo 1>&2 "\
1593eed67faSmbalmerWARNING: \`$1' is $msg.  You should only need it if
1603eed67faSmbalmer         you modified \`acconfig.h' or \`${configure_ac}'.  You might want
1613eed67faSmbalmer         to install the \`Autoconf' and \`GNU m4' packages.  Grab them
1623eed67faSmbalmer         from any GNU archive site."
1633eed67faSmbalmer    files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
1643eed67faSmbalmer    test -z "$files" && files="config.h"
1653eed67faSmbalmer    touch_files=
1663eed67faSmbalmer    for f in $files; do
1673eed67faSmbalmer      case "$f" in
1683eed67faSmbalmer      *:*) touch_files="$touch_files "`echo "$f" |
1693eed67faSmbalmer				       sed -e 's/^[^:]*://' -e 's/:.*//'`;;
1703eed67faSmbalmer      *) touch_files="$touch_files $f.in";;
1713eed67faSmbalmer      esac
1723eed67faSmbalmer    done
1733eed67faSmbalmer    touch $touch_files
1743eed67faSmbalmer    ;;
1753eed67faSmbalmer
1763eed67faSmbalmer  automake*)
1773eed67faSmbalmer    echo 1>&2 "\
1783eed67faSmbalmerWARNING: \`$1' is $msg.  You should only need it if
1793eed67faSmbalmer         you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
1803eed67faSmbalmer         You might want to install the \`Automake' and \`Perl' packages.
1813eed67faSmbalmer         Grab them from any GNU archive site."
1823eed67faSmbalmer    find . -type f -name Makefile.am -print |
1833eed67faSmbalmer	   sed 's/\.am$/.in/' |
1843eed67faSmbalmer	   while read f; do touch "$f"; done
1853eed67faSmbalmer    ;;
1863eed67faSmbalmer
1873eed67faSmbalmer  autom4te)
1883eed67faSmbalmer    echo 1>&2 "\
1893eed67faSmbalmerWARNING: \`$1' is needed, but is $msg.
1903eed67faSmbalmer         You might have modified some files without having the
1913eed67faSmbalmer         proper tools for further handling them.
1923eed67faSmbalmer         You can get \`$1' as part of \`Autoconf' from any GNU
1933eed67faSmbalmer         archive site."
1943eed67faSmbalmer
1953eed67faSmbalmer    file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'`
1963eed67faSmbalmer    test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'`
1973eed67faSmbalmer    if test -f "$file"; then
1983eed67faSmbalmer	touch $file
1993eed67faSmbalmer    else
2003eed67faSmbalmer	test -z "$file" || exec >$file
2013eed67faSmbalmer	echo "#! /bin/sh"
2023eed67faSmbalmer	echo "# Created by GNU Automake missing as a replacement of"
2033eed67faSmbalmer	echo "#  $ $@"
2043eed67faSmbalmer	echo "exit 0"
2053eed67faSmbalmer	chmod +x $file
2063eed67faSmbalmer	exit 1
2073eed67faSmbalmer    fi
2083eed67faSmbalmer    ;;
2093eed67faSmbalmer
2103eed67faSmbalmer  bison|yacc)
2113eed67faSmbalmer    echo 1>&2 "\
2123eed67faSmbalmerWARNING: \`$1' $msg.  You should only need it if
2133eed67faSmbalmer         you modified a \`.y' file.  You may need the \`Bison' package
2143eed67faSmbalmer         in order for those modifications to take effect.  You can get
2153eed67faSmbalmer         \`Bison' from any GNU archive site."
2163eed67faSmbalmer    rm -f y.tab.c y.tab.h
2173eed67faSmbalmer    if [ $# -ne 1 ]; then
2183eed67faSmbalmer        eval LASTARG="\${$#}"
2193eed67faSmbalmer	case "$LASTARG" in
2203eed67faSmbalmer	*.y)
2213eed67faSmbalmer	    SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
2223eed67faSmbalmer	    if [ -f "$SRCFILE" ]; then
2233eed67faSmbalmer	         cp "$SRCFILE" y.tab.c
2243eed67faSmbalmer	    fi
2253eed67faSmbalmer	    SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
2263eed67faSmbalmer	    if [ -f "$SRCFILE" ]; then
2273eed67faSmbalmer	         cp "$SRCFILE" y.tab.h
2283eed67faSmbalmer	    fi
2293eed67faSmbalmer	  ;;
2303eed67faSmbalmer	esac
2313eed67faSmbalmer    fi
2323eed67faSmbalmer    if [ ! -f y.tab.h ]; then
2333eed67faSmbalmer	echo >y.tab.h
2343eed67faSmbalmer    fi
2353eed67faSmbalmer    if [ ! -f y.tab.c ]; then
2363eed67faSmbalmer	echo 'main() { return 0; }' >y.tab.c
2373eed67faSmbalmer    fi
2383eed67faSmbalmer    ;;
2393eed67faSmbalmer
2403eed67faSmbalmer  lex|flex)
2413eed67faSmbalmer    echo 1>&2 "\
2423eed67faSmbalmerWARNING: \`$1' is $msg.  You should only need it if
2433eed67faSmbalmer         you modified a \`.l' file.  You may need the \`Flex' package
2443eed67faSmbalmer         in order for those modifications to take effect.  You can get
2453eed67faSmbalmer         \`Flex' from any GNU archive site."
2463eed67faSmbalmer    rm -f lex.yy.c
2473eed67faSmbalmer    if [ $# -ne 1 ]; then
2483eed67faSmbalmer        eval LASTARG="\${$#}"
2493eed67faSmbalmer	case "$LASTARG" in
2503eed67faSmbalmer	*.l)
2513eed67faSmbalmer	    SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
2523eed67faSmbalmer	    if [ -f "$SRCFILE" ]; then
2533eed67faSmbalmer	         cp "$SRCFILE" lex.yy.c
2543eed67faSmbalmer	    fi
2553eed67faSmbalmer	  ;;
2563eed67faSmbalmer	esac
2573eed67faSmbalmer    fi
2583eed67faSmbalmer    if [ ! -f lex.yy.c ]; then
2593eed67faSmbalmer	echo 'main() { return 0; }' >lex.yy.c
2603eed67faSmbalmer    fi
2613eed67faSmbalmer    ;;
2623eed67faSmbalmer
2633eed67faSmbalmer  help2man)
2643eed67faSmbalmer    echo 1>&2 "\
2653eed67faSmbalmerWARNING: \`$1' is $msg.  You should only need it if
2663eed67faSmbalmer	 you modified a dependency of a manual page.  You may need the
2673eed67faSmbalmer	 \`Help2man' package in order for those modifications to take
2683eed67faSmbalmer	 effect.  You can get \`Help2man' from any GNU archive site."
2693eed67faSmbalmer
2703eed67faSmbalmer    file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
2713eed67faSmbalmer    if test -z "$file"; then
2723eed67faSmbalmer	file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'`
2733eed67faSmbalmer    fi
2743eed67faSmbalmer    if [ -f "$file" ]; then
2753eed67faSmbalmer	touch $file
2763eed67faSmbalmer    else
2773eed67faSmbalmer	test -z "$file" || exec >$file
2783eed67faSmbalmer	echo ".ab help2man is required to generate this page"
2793eed67faSmbalmer	exit 1
2803eed67faSmbalmer    fi
2813eed67faSmbalmer    ;;
2823eed67faSmbalmer
2833eed67faSmbalmer  makeinfo)
2843eed67faSmbalmer    echo 1>&2 "\
2853eed67faSmbalmerWARNING: \`$1' is $msg.  You should only need it if
2863eed67faSmbalmer         you modified a \`.texi' or \`.texinfo' file, or any other file
2873eed67faSmbalmer         indirectly affecting the aspect of the manual.  The spurious
2883eed67faSmbalmer         call might also be the consequence of using a buggy \`make' (AIX,
2893eed67faSmbalmer         DU, IRIX).  You might want to install the \`Texinfo' package or
2903eed67faSmbalmer         the \`GNU make' package.  Grab either from any GNU archive site."
2913eed67faSmbalmer    # The file to touch is that specified with -o ...
2923eed67faSmbalmer    file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
2933eed67faSmbalmer    if test -z "$file"; then
2943eed67faSmbalmer      # ... or it is the one specified with @setfilename ...
2953eed67faSmbalmer      infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
2963eed67faSmbalmer      file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $infile`
2973eed67faSmbalmer      # ... or it is derived from the source name (dir/f.texi becomes f.info)
2983eed67faSmbalmer      test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info
2993eed67faSmbalmer    fi
3003eed67faSmbalmer    # If the file does not exist, the user really needs makeinfo;
3013eed67faSmbalmer    # let's fail without touching anything.
3023eed67faSmbalmer    test -f $file || exit 1
3033eed67faSmbalmer    touch $file
3043eed67faSmbalmer    ;;
3053eed67faSmbalmer
3063eed67faSmbalmer  tar)
3073eed67faSmbalmer    shift
3083eed67faSmbalmer
3093eed67faSmbalmer    # We have already tried tar in the generic part.
3103eed67faSmbalmer    # Look for gnutar/gtar before invocation to avoid ugly error
3113eed67faSmbalmer    # messages.
3123eed67faSmbalmer    if (gnutar --version > /dev/null 2>&1); then
3133eed67faSmbalmer       gnutar "$@" && exit 0
3143eed67faSmbalmer    fi
3153eed67faSmbalmer    if (gtar --version > /dev/null 2>&1); then
3163eed67faSmbalmer       gtar "$@" && exit 0
3173eed67faSmbalmer    fi
3183eed67faSmbalmer    firstarg="$1"
3193eed67faSmbalmer    if shift; then
3203eed67faSmbalmer	case "$firstarg" in
3213eed67faSmbalmer	*o*)
3223eed67faSmbalmer	    firstarg=`echo "$firstarg" | sed s/o//`
3233eed67faSmbalmer	    tar "$firstarg" "$@" && exit 0
3243eed67faSmbalmer	    ;;
3253eed67faSmbalmer	esac
3263eed67faSmbalmer	case "$firstarg" in
3273eed67faSmbalmer	*h*)
3283eed67faSmbalmer	    firstarg=`echo "$firstarg" | sed s/h//`
3293eed67faSmbalmer	    tar "$firstarg" "$@" && exit 0
3303eed67faSmbalmer	    ;;
3313eed67faSmbalmer	esac
3323eed67faSmbalmer    fi
3333eed67faSmbalmer
3343eed67faSmbalmer    echo 1>&2 "\
3353eed67faSmbalmerWARNING: I can't seem to be able to run \`tar' with the given arguments.
3363eed67faSmbalmer         You may want to install GNU tar or Free paxutils, or check the
3373eed67faSmbalmer         command line arguments."
3383eed67faSmbalmer    exit 1
3393eed67faSmbalmer    ;;
3403eed67faSmbalmer
3413eed67faSmbalmer  *)
3423eed67faSmbalmer    echo 1>&2 "\
3433eed67faSmbalmerWARNING: \`$1' is needed, and is $msg.
3443eed67faSmbalmer         You might have modified some files without having the
3453eed67faSmbalmer         proper tools for further handling them.  Check the \`README' file,
3463eed67faSmbalmer         it often tells you about the needed prerequisites for installing
3473eed67faSmbalmer         this package.  You may also peek at any GNU archive site, in case
3483eed67faSmbalmer         some other package would contain this missing \`$1' program."
3493eed67faSmbalmer    exit 1
3503eed67faSmbalmer    ;;
3513eed67faSmbalmeresac
3523eed67faSmbalmer
3533eed67faSmbalmerexit 0
3543eed67faSmbalmer
3553eed67faSmbalmer# Local variables:
3563eed67faSmbalmer# eval: (add-hook 'write-file-hooks 'time-stamp)
3573eed67faSmbalmer# time-stamp-start: "scriptversion="
3583eed67faSmbalmer# time-stamp-format: "%:y-%02m-%02d.%02H"
3593eed67faSmbalmer# time-stamp-end: "$"
3603eed67faSmbalmer# End:
361