Changeset 8a0a7309 for missing


Ignore:
Timestamp:
May 27, 2015, 2:15:41 PM (9 years ago)
Author:
Peter A. Buhr <pabuhr@…>
Branches:
ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, ctor, deferred_resn, demangler, enum, forall-pointer-decay, gc_noraii, jacob/cs343-translation, jenkins-sandbox, master, memory, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, string, with_gc
Children:
6aa5ec0f
Parents:
f7d59bf
Message:

fix automake seventh attempt

File:
1 edited

Legend:

Unmodified
Added
Removed
  • missing

    rf7d59bf r8a0a7309  
    1 #! /bin/sh
    2 # Common stub for a few missing GNU programs while installing.
    3 
    4 scriptversion=2012-01-06.13; # UTC
    5 
    6 # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006,
    7 # 2008, 2009, 2010, 2011, 2012 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, see <http://www.gnu.org/licenses/>.
    22 
    23 # As a special exception to the GNU General Public License, if you
    24 # distribute this file as part of a program that contains a
    25 # configuration script generated by Autoconf, you may include it under
    26 # the same distribution terms that you use for the rest of that program.
    27 
    28 if test $# -eq 0; then
    29   echo 1>&2 "Try \`$0 --help' for more information"
    30   exit 1
    31 fi
    32 
    33 run=:
    34 sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p'
    35 sed_minuso='s/.* -o \([^ ]*\).*/\1/p'
    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 
    64   -h|--h|--he|--hel|--help)
    65     echo "\
    66 $0 [OPTION]... PROGRAM [ARGUMENT]...
    67 
    68 Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
    69 error status if there is no known handling for PROGRAM.
    70 
    71 Options:
    72   -h, --help      display this help and exit
    73   -v, --version   output version information and exit
    74   --run           try to run the given command, and emulate it if it fails
    75 
    76 Supported PROGRAM values:
    77   aclocal      touch file \`aclocal.m4'
    78   autoconf     touch file \`configure'
    79   autoheader   touch file \`config.h.in'
    80   autom4te     touch the output file, or create a stub one
    81   automake     touch all \`Makefile.in' files
    82   bison        create \`y.tab.[ch]', if possible, from existing .[ch]
    83   flex         create \`lex.yy.c', if possible, from existing .c
    84   help2man     touch the output file
    85   lex          create \`lex.yy.c', if possible, from existing .c
    86   makeinfo     touch the output file
    87   yacc         create \`y.tab.[ch]', if possible, from existing .[ch]
    88 
    89 Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and
    90 \`g' are ignored when checking the name.
    91 
    92 Send bug reports to <bug-automake@gnu.org>."
    93     exit $?
    94     ;;
    95 
    96   -v|--v|--ve|--ver|--vers|--versi|--versio|--version)
    97     echo "missing $scriptversion (GNU Automake)"
    98     exit $?
    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 esac
    108 
    109 # normalize program name to check for.
    110 program=`echo "$1" | sed '
    111   s/^gnu-//; t
    112   s/^gnu//; t
    113   s/^g//; t'`
    114 
    115 # Now exit if we have it, but it failed.  Also exit now if we
    116 # don't have it and --version was passed (most likely to detect
    117 # the program).  This is about non-GNU programs, so use $1 not
    118 # $program.
    119 case $1 in
    120   lex*|yacc*)
    121     # Not GNU programs, they don't have --version.
    122     ;;
    123 
    124   *)
    125     if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
    126        # We have it, but it failed.
    127        exit 1
    128     elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
    129        # Could not run --version or --help.  This is probably someone
    130        # running `$TOOL --version' or `$TOOL --help' to check whether
    131        # $TOOL exists and not knowing $TOOL uses missing.
    132        exit 1
    133     fi
    134     ;;
    135 esac
    136 
    137 # If it does not exist, or fails to run (possibly an outdated version),
    138 # try to emulate it.
    139 case $program in
    140   aclocal*)
    141     echo 1>&2 "\
    142 WARNING: \`$1' is $msg.  You should only need it if
    143          you modified \`acinclude.m4' or \`${configure_ac}'.  You might want
    144          to install the \`Automake' and \`Perl' packages.  Grab them from
    145          any GNU archive site."
    146     touch aclocal.m4
    147     ;;
    148 
    149   autoconf*)
    150     echo 1>&2 "\
    151 WARNING: \`$1' is $msg.  You should only need it if
    152          you modified \`${configure_ac}'.  You might want to install the
    153          \`Autoconf' and \`GNU m4' packages.  Grab them from any GNU
    154          archive site."
    155     touch configure
    156     ;;
    157 
    158   autoheader*)
    159     echo 1>&2 "\
    160 WARNING: \`$1' is $msg.  You should only need it if
    161          you modified \`acconfig.h' or \`${configure_ac}'.  You might want
    162          to install the \`Autoconf' and \`GNU m4' packages.  Grab them
    163          from any GNU archive site."
    164     files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
    165     test -z "$files" && files="config.h"
    166     touch_files=
    167     for f in $files; do
    168       case $f in
    169       *:*) touch_files="$touch_files "`echo "$f" |
    170                                        sed -e 's/^[^:]*://' -e 's/:.*//'`;;
    171       *) touch_files="$touch_files $f.in";;
    172       esac
    173     done
    174     touch $touch_files
    175     ;;
    176 
    177   automake*)
    178     echo 1>&2 "\
    179 WARNING: \`$1' is $msg.  You should only need it if
    180          you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
    181          You might want to install the \`Automake' and \`Perl' packages.
    182          Grab them from any GNU archive site."
    183     find . -type f -name Makefile.am -print |
    184            sed 's/\.am$/.in/' |
    185            while read f; do touch "$f"; done
    186     ;;
    187 
    188   autom4te*)
    189     echo 1>&2 "\
    190 WARNING: \`$1' is needed, but is $msg.
    191          You might have modified some files without having the
    192          proper tools for further handling them.
    193          You can get \`$1' as part of \`Autoconf' from any GNU
    194          archive site."
    195 
    196     file=`echo "$*" | sed -n "$sed_output"`
    197     test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
    198     if test -f "$file"; then
    199         touch $file
    200     else
    201         test -z "$file" || exec >$file
    202         echo "#! /bin/sh"
    203         echo "# Created by GNU Automake missing as a replacement of"
    204         echo "#  $ $@"
    205         echo "exit 0"
    206         chmod +x $file
    207         exit 1
    208     fi
    209     ;;
    210 
    211   bison*|yacc*)
    212     echo 1>&2 "\
    213 WARNING: \`$1' $msg.  You should only need it if
    214          you modified a \`.y' file.  You may need the \`Bison' package
    215          in order for those modifications to take effect.  You can get
    216          \`Bison' from any GNU archive site."
    217     rm -f y.tab.c y.tab.h
    218     if test $# -ne 1; then
    219         eval LASTARG=\${$#}
    220         case $LASTARG in
    221         *.y)
    222             SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
    223             if test -f "$SRCFILE"; then
    224                  cp "$SRCFILE" y.tab.c
    225             fi
    226             SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
    227             if test -f "$SRCFILE"; then
    228                  cp "$SRCFILE" y.tab.h
    229             fi
    230           ;;
    231         esac
    232     fi
    233     if test ! -f y.tab.h; then
    234         echo >y.tab.h
    235     fi
    236     if test ! -f y.tab.c; then
    237         echo 'main() { return 0; }' >y.tab.c
    238     fi
    239     ;;
    240 
    241   lex*|flex*)
    242     echo 1>&2 "\
    243 WARNING: \`$1' is $msg.  You should only need it if
    244          you modified a \`.l' file.  You may need the \`Flex' package
    245          in order for those modifications to take effect.  You can get
    246          \`Flex' from any GNU archive site."
    247     rm -f lex.yy.c
    248     if test $# -ne 1; then
    249         eval LASTARG=\${$#}
    250         case $LASTARG in
    251         *.l)
    252             SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
    253             if test -f "$SRCFILE"; then
    254                  cp "$SRCFILE" lex.yy.c
    255             fi
    256           ;;
    257         esac
    258     fi
    259     if test ! -f lex.yy.c; then
    260         echo 'main() { return 0; }' >lex.yy.c
    261     fi
    262     ;;
    263 
    264   help2man*)
    265     echo 1>&2 "\
    266 WARNING: \`$1' is $msg.  You should only need it if
    267          you modified a dependency of a manual page.  You may need the
    268          \`Help2man' package in order for those modifications to take
    269          effect.  You can get \`Help2man' from any GNU archive site."
    270 
    271     file=`echo "$*" | sed -n "$sed_output"`
    272     test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
    273     if test -f "$file"; then
    274         touch $file
    275     else
    276         test -z "$file" || exec >$file
    277         echo ".ab help2man is required to generate this page"
    278         exit $?
    279     fi
    280     ;;
    281 
    282   makeinfo*)
    283     echo 1>&2 "\
    284 WARNING: \`$1' is $msg.  You should only need it if
    285          you modified a \`.texi' or \`.texinfo' file, or any other file
    286          indirectly affecting the aspect of the manual.  The spurious
    287          call might also be the consequence of using a buggy \`make' (AIX,
    288          DU, IRIX).  You might want to install the \`Texinfo' package or
    289          the \`GNU make' package.  Grab either from any GNU archive site."
    290     # The file to touch is that specified with -o ...
    291     file=`echo "$*" | sed -n "$sed_output"`
    292     test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
    293     if test -z "$file"; then
    294       # ... or it is the one specified with @setfilename ...
    295       infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
    296       file=`sed -n '
    297         /^@setfilename/{
    298           s/.* \([^ ]*\) *$/\1/
    299           p
    300           q
    301         }' $infile`
    302       # ... or it is derived from the source name (dir/f.texi becomes f.info)
    303       test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info
    304     fi
    305     # If the file does not exist, the user really needs makeinfo;
    306     # let's fail without touching anything.
    307     test -f $file || exit 1
    308     touch $file
    309     ;;
    310 
    311   *)
    312     echo 1>&2 "\
    313 WARNING: \`$1' is needed, and is $msg.
    314          You might have modified some files without having the
    315          proper tools for further handling them.  Check the \`README' file,
    316          it often tells you about the needed prerequisites for installing
    317          this package.  You may also peek at any GNU archive site, in case
    318          some other package would contain this missing \`$1' program."
    319     exit 1
    320     ;;
    321 esac
    322 
    323 exit 0
    324 
    325 # Local variables:
    326 # eval: (add-hook 'write-file-hooks 'time-stamp)
    327 # time-stamp-start: "scriptversion="
    328 # time-stamp-format: "%:y-%02m-%02d.%02H"
    329 # time-stamp-time-zone: "UTC"
    330 # time-stamp-end: "; # UTC"
    331 # End:
     1exit 0  # aclocal.m4 is included, and hence, does not need to be remade, especial when git does not preserve file timestamps
Note: See TracChangeset for help on using the changeset viewer.