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