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