mythtv_plugin/missing
author leo_sobral
Wed Sep 20 23:59:48 2006 +0100 (2006-09-20)
branchtrunk
changeset 2 bd3829c2e9c9
permissions -rwxr-xr-x
[svn r3] imported to sf repository
     1 #! /bin/sh
     2 # Common stub for a few missing GNU programs while installing.
     3 
     4 scriptversion=2003-09-02.23
     5 
     6 # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003 
     7 #   Free Software Foundation, Inc.
     8 # Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
     9 
    10 # This program is free software; you can redistribute it and/or modify
    11 # it under the terms of the GNU General Public License as published by
    12 # the Free Software Foundation; either version 2, or (at your option)
    13 # any later version.
    14 
    15 # This program is distributed in the hope that it will be useful,
    16 # but WITHOUT ANY WARRANTY; without even the implied warranty of
    17 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    18 # GNU General Public License for more details.
    19 
    20 # You should have received a copy of the GNU General Public License
    21 # along with this program; if not, write to the Free Software
    22 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
    23 # 02111-1307, USA.
    24 
    25 # As a special exception to the GNU General Public License, if you
    26 # distribute this file as part of a program that contains a
    27 # configuration script generated by Autoconf, you may include it under
    28 # the same distribution terms that you use for the rest of that program.
    29 
    30 if test $# -eq 0; then
    31   echo 1>&2 "Try \`$0 --help' for more information"
    32   exit 1
    33 fi
    34 
    35 run=:
    36 
    37 # In the cases where this matters, `missing' is being run in the
    38 # srcdir already.
    39 if test -f configure.ac; then
    40   configure_ac=configure.ac
    41 else
    42   configure_ac=configure.in
    43 fi
    44 
    45 msg="missing on your system"
    46 
    47 case "$1" in
    48 --run)
    49   # Try to run requested program, and just exit if it succeeds.
    50   run=
    51   shift
    52   "$@" && exit 0
    53   # Exit code 63 means version mismatch.  This often happens
    54   # when the user try to use an ancient version of a tool on
    55   # a file that requires a minimum version.  In this case we
    56   # we should proceed has if the program had been absent, or
    57   # if --run hadn't been passed.
    58   if test $? = 63; then
    59     run=:
    60     msg="probably too old"
    61   fi
    62   ;;
    63 esac
    64 
    65 # If it does not exist, or fails to run (possibly an outdated version),
    66 # try to emulate it.
    67 case "$1" in
    68 
    69   -h|--h|--he|--hel|--help)
    70     echo "\
    71 $0 [OPTION]... PROGRAM [ARGUMENT]...
    72 
    73 Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
    74 error status if there is no known handling for PROGRAM.
    75 
    76 Options:
    77   -h, --help      display this help and exit
    78   -v, --version   output version information and exit
    79   --run           try to run the given command, and emulate it if it fails
    80 
    81 Supported PROGRAM values:
    82   aclocal      touch file \`aclocal.m4'
    83   autoconf     touch file \`configure'
    84   autoheader   touch file \`config.h.in'
    85   automake     touch all \`Makefile.in' files
    86   bison        create \`y.tab.[ch]', if possible, from existing .[ch]
    87   flex         create \`lex.yy.c', if possible, from existing .c
    88   help2man     touch the output file
    89   lex          create \`lex.yy.c', if possible, from existing .c
    90   makeinfo     touch the output file
    91   tar          try tar, gnutar, gtar, then tar without non-portable flags
    92   yacc         create \`y.tab.[ch]', if possible, from existing .[ch]
    93 
    94 Send bug reports to <bug-automake@gnu.org>."
    95     ;;
    96 
    97   -v|--v|--ve|--ver|--vers|--versi|--versio|--version)
    98     echo "missing $scriptversion (GNU Automake)"
    99     ;;
   100 
   101   -*)
   102     echo 1>&2 "$0: Unknown \`$1' option"
   103     echo 1>&2 "Try \`$0 --help' for more information"
   104     exit 1
   105     ;;
   106 
   107   aclocal*)
   108     if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
   109        # We have it, but it failed.
   110        exit 1
   111     fi
   112 
   113     echo 1>&2 "\
   114 WARNING: \`$1' is $msg.  You should only need it if
   115          you modified \`acinclude.m4' or \`${configure_ac}'.  You might want
   116          to install the \`Automake' and \`Perl' packages.  Grab them from
   117          any GNU archive site."
   118     touch aclocal.m4
   119     ;;
   120 
   121   autoconf)
   122     if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
   123        # We have it, but it failed.
   124        exit 1
   125     fi
   126 
   127     echo 1>&2 "\
   128 WARNING: \`$1' is $msg.  You should only need it if
   129          you modified \`${configure_ac}'.  You might want to install the
   130          \`Autoconf' and \`GNU m4' packages.  Grab them from any GNU
   131          archive site."
   132     touch configure
   133     ;;
   134 
   135   autoheader)
   136     if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
   137        # We have it, but it failed.
   138        exit 1
   139     fi
   140 
   141     echo 1>&2 "\
   142 WARNING: \`$1' is $msg.  You should only need it if
   143          you modified \`acconfig.h' or \`${configure_ac}'.  You might want
   144          to install the \`Autoconf' and \`GNU m4' packages.  Grab them
   145          from any GNU archive site."
   146     files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
   147     test -z "$files" && files="config.h"
   148     touch_files=
   149     for f in $files; do
   150       case "$f" in
   151       *:*) touch_files="$touch_files "`echo "$f" |
   152 				       sed -e 's/^[^:]*://' -e 's/:.*//'`;;
   153       *) touch_files="$touch_files $f.in";;
   154       esac
   155     done
   156     touch $touch_files
   157     ;;
   158 
   159   automake*)
   160     if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
   161        # We have it, but it failed.
   162        exit 1
   163     fi
   164 
   165     echo 1>&2 "\
   166 WARNING: \`$1' is $msg.  You should only need it if
   167          you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
   168          You might want to install the \`Automake' and \`Perl' packages.
   169          Grab them from any GNU archive site."
   170     find . -type f -name Makefile.am -print |
   171 	   sed 's/\.am$/.in/' |
   172 	   while read f; do touch "$f"; done
   173     ;;
   174 
   175   autom4te)
   176     if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
   177        # We have it, but it failed.
   178        exit 1
   179     fi
   180 
   181     echo 1>&2 "\
   182 WARNING: \`$1' is needed, but is $msg.
   183          You might have modified some files without having the
   184          proper tools for further handling them.
   185          You can get \`$1' as part of \`Autoconf' from any GNU
   186          archive site."
   187 
   188     file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'`
   189     test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'`
   190     if test -f "$file"; then
   191 	touch $file
   192     else
   193 	test -z "$file" || exec >$file
   194 	echo "#! /bin/sh"
   195 	echo "# Created by GNU Automake missing as a replacement of"
   196 	echo "#  $ $@"
   197 	echo "exit 0"
   198 	chmod +x $file
   199 	exit 1
   200     fi
   201     ;;
   202 
   203   bison|yacc)
   204     echo 1>&2 "\
   205 WARNING: \`$1' $msg.  You should only need it if
   206          you modified a \`.y' file.  You may need the \`Bison' package
   207          in order for those modifications to take effect.  You can get
   208          \`Bison' from any GNU archive site."
   209     rm -f y.tab.c y.tab.h
   210     if [ $# -ne 1 ]; then
   211         eval LASTARG="\${$#}"
   212 	case "$LASTARG" in
   213 	*.y)
   214 	    SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
   215 	    if [ -f "$SRCFILE" ]; then
   216 	         cp "$SRCFILE" y.tab.c
   217 	    fi
   218 	    SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
   219 	    if [ -f "$SRCFILE" ]; then
   220 	         cp "$SRCFILE" y.tab.h
   221 	    fi
   222 	  ;;
   223 	esac
   224     fi
   225     if [ ! -f y.tab.h ]; then
   226 	echo >y.tab.h
   227     fi
   228     if [ ! -f y.tab.c ]; then
   229 	echo 'main() { return 0; }' >y.tab.c
   230     fi
   231     ;;
   232 
   233   lex|flex)
   234     echo 1>&2 "\
   235 WARNING: \`$1' is $msg.  You should only need it if
   236          you modified a \`.l' file.  You may need the \`Flex' package
   237          in order for those modifications to take effect.  You can get
   238          \`Flex' from any GNU archive site."
   239     rm -f lex.yy.c
   240     if [ $# -ne 1 ]; then
   241         eval LASTARG="\${$#}"
   242 	case "$LASTARG" in
   243 	*.l)
   244 	    SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
   245 	    if [ -f "$SRCFILE" ]; then
   246 	         cp "$SRCFILE" lex.yy.c
   247 	    fi
   248 	  ;;
   249 	esac
   250     fi
   251     if [ ! -f lex.yy.c ]; then
   252 	echo 'main() { return 0; }' >lex.yy.c
   253     fi
   254     ;;
   255 
   256   help2man)
   257     if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
   258        # We have it, but it failed.
   259        exit 1
   260     fi
   261 
   262     echo 1>&2 "\
   263 WARNING: \`$1' is $msg.  You should only need it if
   264 	 you modified a dependency of a manual page.  You may need the
   265 	 \`Help2man' package in order for those modifications to take
   266 	 effect.  You can get \`Help2man' from any GNU archive site."
   267 
   268     file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
   269     if test -z "$file"; then
   270 	file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'`
   271     fi
   272     if [ -f "$file" ]; then
   273 	touch $file
   274     else
   275 	test -z "$file" || exec >$file
   276 	echo ".ab help2man is required to generate this page"
   277 	exit 1
   278     fi
   279     ;;
   280 
   281   makeinfo)
   282     if test -z "$run" && (makeinfo --version) > /dev/null 2>&1; then
   283        # We have makeinfo, but it failed.
   284        exit 1
   285     fi
   286 
   287     echo 1>&2 "\
   288 WARNING: \`$1' is $msg.  You should only need it if
   289          you modified a \`.texi' or \`.texinfo' file, or any other file
   290          indirectly affecting the aspect of the manual.  The spurious
   291          call might also be the consequence of using a buggy \`make' (AIX,
   292          DU, IRIX).  You might want to install the \`Texinfo' package or
   293          the \`GNU make' package.  Grab either from any GNU archive site."
   294     file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
   295     if test -z "$file"; then
   296       file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
   297       file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file`
   298     fi
   299     touch $file
   300     ;;
   301 
   302   tar)
   303     shift
   304     if test -n "$run"; then
   305       echo 1>&2 "ERROR: \`tar' requires --run"
   306       exit 1
   307     fi
   308 
   309     # We have already tried tar in the generic part.
   310     # Look for gnutar/gtar before invocation to avoid ugly error
   311     # messages.
   312     if (gnutar --version > /dev/null 2>&1); then
   313        gnutar "$@" && exit 0
   314     fi
   315     if (gtar --version > /dev/null 2>&1); then
   316        gtar "$@" && exit 0
   317     fi
   318     firstarg="$1"
   319     if shift; then
   320 	case "$firstarg" in
   321 	*o*)
   322 	    firstarg=`echo "$firstarg" | sed s/o//`
   323 	    tar "$firstarg" "$@" && exit 0
   324 	    ;;
   325 	esac
   326 	case "$firstarg" in
   327 	*h*)
   328 	    firstarg=`echo "$firstarg" | sed s/h//`
   329 	    tar "$firstarg" "$@" && exit 0
   330 	    ;;
   331 	esac
   332     fi
   333 
   334     echo 1>&2 "\
   335 WARNING: I can't seem to be able to run \`tar' with the given arguments.
   336          You may want to install GNU tar or Free paxutils, or check the
   337          command line arguments."
   338     exit 1
   339     ;;
   340 
   341   *)
   342     echo 1>&2 "\
   343 WARNING: \`$1' is needed, and is $msg.
   344          You might have modified some files without having the
   345          proper tools for further handling them.  Check the \`README' file,
   346          it often tells you about the needed prerequisites for installing
   347          this package.  You may also peek at any GNU archive site, in case
   348          some other package would contain this missing \`$1' program."
   349     exit 1
   350     ;;
   351 esac
   352 
   353 exit 0
   354 
   355 # Local variables:
   356 # eval: (add-hook 'write-file-hooks 'time-stamp)
   357 # time-stamp-start: "scriptversion="
   358 # time-stamp-format: "%:y-%02m-%02d.%02H"
   359 # time-stamp-end: "$"
   360 # End: