xsel

Program for manipulating the X clipboard
git clone https://git.sinitax.com/kfish/xsel
Log | Files | Refs | README | LICENSE | sfeed.txt

missing (10678B)


      1#! /bin/sh
      2# Common stub for a few missing GNU programs while installing.
      3
      4scriptversion=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
     30if test $# -eq 0; then
     31  echo 1>&2 "Try \`$0 --help' for more information"
     32  exit 1
     33fi
     34
     35run=:
     36
     37# In the cases where this matters, `missing' is being run in the
     38# srcdir already.
     39if test -f configure.ac; then
     40  configure_ac=configure.ac
     41else
     42  configure_ac=configure.in
     43fi
     44
     45msg="missing on your system"
     46
     47case "$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  ;;
     63esac
     64
     65# If it does not exist, or fails to run (possibly an outdated version),
     66# try to emulate it.
     67case "$1" in
     68
     69  -h|--h|--he|--hel|--help)
     70    echo "\
     71$0 [OPTION]... PROGRAM [ARGUMENT]...
     72
     73Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
     74error status if there is no known handling for PROGRAM.
     75
     76Options:
     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
     81Supported 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
     94Send 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 "\
    114WARNING: \`$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 "\
    128WARNING: \`$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 "\
    142WARNING: \`$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 "\
    166WARNING: \`$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 "\
    182WARNING: \`$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 "\
    205WARNING: \`$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 "\
    235WARNING: \`$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 "\
    263WARNING: \`$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 "\
    288WARNING: \`$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 "\
    335WARNING: 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 "\
    343WARNING: \`$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    ;;
    351esac
    352
    353exit 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: