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