missing
branchSDL-1.2
changeset 611 b39ee38ead19
parent 285 b3f70e3d7246
equal deleted inserted replaced
609:e14e00a2754d 611:b39ee38ead19
     1 #! /bin/sh
     1 #! /bin/sh
     2 # Common stub for a few missing GNU programs while installing.
     2 # Common stub for a few missing GNU programs while installing.
     3 
     3 
     4 scriptversion=2006-05-10.23
     4 scriptversion=2012-01-06.18; # UTC
     5 
     5 
     6 # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006
     6 # Copyright (C) 1996-2012 Free Software Foundation, Inc.
     7 #   Free Software Foundation, Inc.
       
     8 # Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
     7 # Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
     9 
     8 
    10 # This program is free software; you can redistribute it and/or modify
     9 # 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
    10 # 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)
    11 # the Free Software Foundation; either version 2, or (at your option)
    16 # but WITHOUT ANY WARRANTY; without even the implied warranty of
    15 # but WITHOUT ANY WARRANTY; without even the implied warranty of
    17 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    16 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    18 # GNU General Public License for more details.
    17 # GNU General Public License for more details.
    19 
    18 
    20 # You should have received a copy of the GNU General Public License
    19 # You should have received a copy of the GNU General Public License
    21 # along with this program; if not, write to the Free Software
    20 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
    22 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
       
    23 # 02110-1301, USA.
       
    24 
    21 
    25 # As a special exception to the GNU General Public License, if you
    22 # As a special exception to the GNU General Public License, if you
    26 # distribute this file as part of a program that contains a
    23 # distribute this file as part of a program that contains a
    27 # configuration script generated by Autoconf, you may include it under
    24 # configuration script generated by Autoconf, you may include it under
    28 # the same distribution terms that you use for the rest of that program.
    25 # the same distribution terms that you use for the rest of that program.
    29 
    26 
    30 if test $# -eq 0; then
    27 if test $# -eq 0; then
    31   echo 1>&2 "Try \`$0 --help' for more information"
    28   echo 1>&2 "Try '$0 --help' for more information"
    32   exit 1
    29   exit 1
    33 fi
    30 fi
    34 
    31 
    35 run=:
    32 run=:
    36 sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p'
    33 sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p'
    37 sed_minuso='s/.* -o \([^ ]*\).*/\1/p'
    34 sed_minuso='s/.* -o \([^ ]*\).*/\1/p'
    38 
    35 
    39 # In the cases where this matters, `missing' is being run in the
    36 # In the cases where this matters, 'missing' is being run in the
    40 # srcdir already.
    37 # srcdir already.
    41 if test -f configure.ac; then
    38 if test -f configure.ac; then
    42   configure_ac=configure.ac
    39   configure_ac=configure.ac
    43 else
    40 else
    44   configure_ac=configure.in
    41   configure_ac=configure.in
    65 
    62 
    66   -h|--h|--he|--hel|--help)
    63   -h|--h|--he|--hel|--help)
    67     echo "\
    64     echo "\
    68 $0 [OPTION]... PROGRAM [ARGUMENT]...
    65 $0 [OPTION]... PROGRAM [ARGUMENT]...
    69 
    66 
    70 Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
    67 Handle 'PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
    71 error status if there is no known handling for PROGRAM.
    68 error status if there is no known handling for PROGRAM.
    72 
    69 
    73 Options:
    70 Options:
    74   -h, --help      display this help and exit
    71   -h, --help      display this help and exit
    75   -v, --version   output version information and exit
    72   -v, --version   output version information and exit
    76   --run           try to run the given command, and emulate it if it fails
    73   --run           try to run the given command, and emulate it if it fails
    77 
    74 
    78 Supported PROGRAM values:
    75 Supported PROGRAM values:
    79   aclocal      touch file \`aclocal.m4'
    76   aclocal      touch file 'aclocal.m4'
    80   autoconf     touch file \`configure'
    77   autoconf     touch file 'configure'
    81   autoheader   touch file \`config.h.in'
    78   autoheader   touch file 'config.h.in'
    82   autom4te     touch the output file, or create a stub one
    79   autom4te     touch the output file, or create a stub one
    83   automake     touch all \`Makefile.in' files
    80   automake     touch all 'Makefile.in' files
    84   bison        create \`y.tab.[ch]', if possible, from existing .[ch]
    81   bison        create 'y.tab.[ch]', if possible, from existing .[ch]
    85   flex         create \`lex.yy.c', if possible, from existing .c
    82   flex         create 'lex.yy.c', if possible, from existing .c
    86   help2man     touch the output file
    83   help2man     touch the output file
    87   lex          create \`lex.yy.c', if possible, from existing .c
    84   lex          create 'lex.yy.c', if possible, from existing .c
    88   makeinfo     touch the output file
    85   makeinfo     touch the output file
    89   tar          try tar, gnutar, gtar, then tar without non-portable flags
    86   yacc         create 'y.tab.[ch]', if possible, from existing .[ch]
    90   yacc         create \`y.tab.[ch]', if possible, from existing .[ch]
    87 
       
    88 Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and
       
    89 'g' are ignored when checking the name.
    91 
    90 
    92 Send bug reports to <bug-automake@gnu.org>."
    91 Send bug reports to <bug-automake@gnu.org>."
    93     exit $?
    92     exit $?
    94     ;;
    93     ;;
    95 
    94 
    97     echo "missing $scriptversion (GNU Automake)"
    96     echo "missing $scriptversion (GNU Automake)"
    98     exit $?
    97     exit $?
    99     ;;
    98     ;;
   100 
    99 
   101   -*)
   100   -*)
   102     echo 1>&2 "$0: Unknown \`$1' option"
   101     echo 1>&2 "$0: Unknown '$1' option"
   103     echo 1>&2 "Try \`$0 --help' for more information"
   102     echo 1>&2 "Try '$0 --help' for more information"
   104     exit 1
   103     exit 1
   105     ;;
   104     ;;
   106 
   105 
   107 esac
   106 esac
       
   107 
       
   108 # normalize program name to check for.
       
   109 program=`echo "$1" | sed '
       
   110   s/^gnu-//; t
       
   111   s/^gnu//; t
       
   112   s/^g//; t'`
   108 
   113 
   109 # Now exit if we have it, but it failed.  Also exit now if we
   114 # Now exit if we have it, but it failed.  Also exit now if we
   110 # don't have it and --version was passed (most likely to detect
   115 # don't have it and --version was passed (most likely to detect
   111 # the program).
   116 # the program).  This is about non-GNU programs, so use $1 not
       
   117 # $program.
   112 case $1 in
   118 case $1 in
   113   lex|yacc)
   119   lex*|yacc*)
   114     # Not GNU programs, they don't have --version.
   120     # Not GNU programs, they don't have --version.
   115     ;;
       
   116 
       
   117   tar)
       
   118     if test -n "$run"; then
       
   119        echo 1>&2 "ERROR: \`tar' requires --run"
       
   120        exit 1
       
   121     elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
       
   122        exit 1
       
   123     fi
       
   124     ;;
   121     ;;
   125 
   122 
   126   *)
   123   *)
   127     if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
   124     if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
   128        # We have it, but it failed.
   125        # We have it, but it failed.
   129        exit 1
   126        exit 1
   130     elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
   127     elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
   131        # Could not run --version or --help.  This is probably someone
   128        # Could not run --version or --help.  This is probably someone
   132        # running `$TOOL --version' or `$TOOL --help' to check whether
   129        # running '$TOOL --version' or '$TOOL --help' to check whether
   133        # $TOOL exists and not knowing $TOOL uses missing.
   130        # $TOOL exists and not knowing $TOOL uses missing.
   134        exit 1
   131        exit 1
   135     fi
   132     fi
   136     ;;
   133     ;;
   137 esac
   134 esac
   138 
   135 
   139 # If it does not exist, or fails to run (possibly an outdated version),
   136 # If it does not exist, or fails to run (possibly an outdated version),
   140 # try to emulate it.
   137 # try to emulate it.
   141 case $1 in
   138 case $program in
   142   aclocal*)
   139   aclocal*)
   143     echo 1>&2 "\
   140     echo 1>&2 "\
   144 WARNING: \`$1' is $msg.  You should only need it if
   141 WARNING: '$1' is $msg.  You should only need it if
   145          you modified \`acinclude.m4' or \`${configure_ac}'.  You might want
   142          you modified 'acinclude.m4' or '${configure_ac}'.  You might want
   146          to install the \`Automake' and \`Perl' packages.  Grab them from
   143          to install the Automake and Perl packages.  Grab them from
   147          any GNU archive site."
   144          any GNU archive site."
   148     touch aclocal.m4
   145     touch aclocal.m4
   149     ;;
   146     ;;
   150 
   147 
   151   autoconf)
   148   autoconf*)
   152     echo 1>&2 "\
   149     echo 1>&2 "\
   153 WARNING: \`$1' is $msg.  You should only need it if
   150 WARNING: '$1' is $msg.  You should only need it if
   154          you modified \`${configure_ac}'.  You might want to install the
   151          you modified '${configure_ac}'.  You might want to install the
   155          \`Autoconf' and \`GNU m4' packages.  Grab them from any GNU
   152          Autoconf and GNU m4 packages.  Grab them from any GNU
   156          archive site."
   153          archive site."
   157     touch configure
   154     touch configure
   158     ;;
   155     ;;
   159 
   156 
   160   autoheader)
   157   autoheader*)
   161     echo 1>&2 "\
   158     echo 1>&2 "\
   162 WARNING: \`$1' is $msg.  You should only need it if
   159 WARNING: '$1' is $msg.  You should only need it if
   163          you modified \`acconfig.h' or \`${configure_ac}'.  You might want
   160          you modified 'acconfig.h' or '${configure_ac}'.  You might want
   164          to install the \`Autoconf' and \`GNU m4' packages.  Grab them
   161          to install the Autoconf and GNU m4 packages.  Grab them
   165          from any GNU archive site."
   162          from any GNU archive site."
   166     files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
   163     files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
   167     test -z "$files" && files="config.h"
   164     test -z "$files" && files="config.h"
   168     touch_files=
   165     touch_files=
   169     for f in $files; do
   166     for f in $files; do
   176     touch $touch_files
   173     touch $touch_files
   177     ;;
   174     ;;
   178 
   175 
   179   automake*)
   176   automake*)
   180     echo 1>&2 "\
   177     echo 1>&2 "\
   181 WARNING: \`$1' is $msg.  You should only need it if
   178 WARNING: '$1' is $msg.  You should only need it if
   182          you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
   179          you modified 'Makefile.am', 'acinclude.m4' or '${configure_ac}'.
   183          You might want to install the \`Automake' and \`Perl' packages.
   180          You might want to install the Automake and Perl packages.
   184          Grab them from any GNU archive site."
   181          Grab them from any GNU archive site."
   185     find . -type f -name Makefile.am -print |
   182     find . -type f -name Makefile.am -print |
   186 	   sed 's/\.am$/.in/' |
   183 	   sed 's/\.am$/.in/' |
   187 	   while read f; do touch "$f"; done
   184 	   while read f; do touch "$f"; done
   188     ;;
   185     ;;
   189 
   186 
   190   autom4te)
   187   autom4te*)
   191     echo 1>&2 "\
   188     echo 1>&2 "\
   192 WARNING: \`$1' is needed, but is $msg.
   189 WARNING: '$1' is needed, but is $msg.
   193          You might have modified some files without having the
   190          You might have modified some files without having the
   194          proper tools for further handling them.
   191          proper tools for further handling them.
   195          You can get \`$1' as part of \`Autoconf' from any GNU
   192          You can get '$1' as part of Autoconf from any GNU
   196          archive site."
   193          archive site."
   197 
   194 
   198     file=`echo "$*" | sed -n "$sed_output"`
   195     file=`echo "$*" | sed -n "$sed_output"`
   199     test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
   196     test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
   200     if test -f "$file"; then
   197     if test -f "$file"; then
   208 	chmod +x $file
   205 	chmod +x $file
   209 	exit 1
   206 	exit 1
   210     fi
   207     fi
   211     ;;
   208     ;;
   212 
   209 
   213   bison|yacc)
   210   bison*|yacc*)
   214     echo 1>&2 "\
   211     echo 1>&2 "\
   215 WARNING: \`$1' $msg.  You should only need it if
   212 WARNING: '$1' $msg.  You should only need it if
   216          you modified a \`.y' file.  You may need the \`Bison' package
   213          you modified a '.y' file.  You may need the Bison package
   217          in order for those modifications to take effect.  You can get
   214          in order for those modifications to take effect.  You can get
   218          \`Bison' from any GNU archive site."
   215          Bison from any GNU archive site."
   219     rm -f y.tab.c y.tab.h
   216     rm -f y.tab.c y.tab.h
   220     if test $# -ne 1; then
   217     if test $# -ne 1; then
   221         eval LASTARG="\${$#}"
   218         eval LASTARG=\${$#}
   222 	case $LASTARG in
   219 	case $LASTARG in
   223 	*.y)
   220 	*.y)
   224 	    SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
   221 	    SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
   225 	    if test -f "$SRCFILE"; then
   222 	    if test -f "$SRCFILE"; then
   226 	         cp "$SRCFILE" y.tab.c
   223 	         cp "$SRCFILE" y.tab.c
   238     if test ! -f y.tab.c; then
   235     if test ! -f y.tab.c; then
   239 	echo 'main() { return 0; }' >y.tab.c
   236 	echo 'main() { return 0; }' >y.tab.c
   240     fi
   237     fi
   241     ;;
   238     ;;
   242 
   239 
   243   lex|flex)
   240   lex*|flex*)
   244     echo 1>&2 "\
   241     echo 1>&2 "\
   245 WARNING: \`$1' is $msg.  You should only need it if
   242 WARNING: '$1' is $msg.  You should only need it if
   246          you modified a \`.l' file.  You may need the \`Flex' package
   243          you modified a '.l' file.  You may need the Flex package
   247          in order for those modifications to take effect.  You can get
   244          in order for those modifications to take effect.  You can get
   248          \`Flex' from any GNU archive site."
   245          Flex from any GNU archive site."
   249     rm -f lex.yy.c
   246     rm -f lex.yy.c
   250     if test $# -ne 1; then
   247     if test $# -ne 1; then
   251         eval LASTARG="\${$#}"
   248         eval LASTARG=\${$#}
   252 	case $LASTARG in
   249 	case $LASTARG in
   253 	*.l)
   250 	*.l)
   254 	    SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
   251 	    SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
   255 	    if test -f "$SRCFILE"; then
   252 	    if test -f "$SRCFILE"; then
   256 	         cp "$SRCFILE" lex.yy.c
   253 	         cp "$SRCFILE" lex.yy.c
   261     if test ! -f lex.yy.c; then
   258     if test ! -f lex.yy.c; then
   262 	echo 'main() { return 0; }' >lex.yy.c
   259 	echo 'main() { return 0; }' >lex.yy.c
   263     fi
   260     fi
   264     ;;
   261     ;;
   265 
   262 
   266   help2man)
   263   help2man*)
   267     echo 1>&2 "\
   264     echo 1>&2 "\
   268 WARNING: \`$1' is $msg.  You should only need it if
   265 WARNING: '$1' is $msg.  You should only need it if
   269 	 you modified a dependency of a manual page.  You may need the
   266 	 you modified a dependency of a manual page.  You may need the
   270 	 \`Help2man' package in order for those modifications to take
   267 	 Help2man package in order for those modifications to take
   271 	 effect.  You can get \`Help2man' from any GNU archive site."
   268 	 effect.  You can get Help2man from any GNU archive site."
   272 
   269 
   273     file=`echo "$*" | sed -n "$sed_output"`
   270     file=`echo "$*" | sed -n "$sed_output"`
   274     test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
   271     test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
   275     if test -f "$file"; then
   272     if test -f "$file"; then
   276 	touch $file
   273 	touch $file
   277     else
   274     else
   278 	test -z "$file" || exec >$file
   275 	test -z "$file" || exec >$file
   279 	echo ".ab help2man is required to generate this page"
   276 	echo ".ab help2man is required to generate this page"
   280 	exit 1
   277 	exit $?
   281     fi
   278     fi
   282     ;;
   279     ;;
   283 
   280 
   284   makeinfo)
   281   makeinfo*)
   285     echo 1>&2 "\
   282     echo 1>&2 "\
   286 WARNING: \`$1' is $msg.  You should only need it if
   283 WARNING: '$1' is $msg.  You should only need it if
   287          you modified a \`.texi' or \`.texinfo' file, or any other file
   284          you modified a '.texi' or '.texinfo' file, or any other file
   288          indirectly affecting the aspect of the manual.  The spurious
   285          indirectly affecting the aspect of the manual.  The spurious
   289          call might also be the consequence of using a buggy \`make' (AIX,
   286          call might also be the consequence of using a buggy 'make' (AIX,
   290          DU, IRIX).  You might want to install the \`Texinfo' package or
   287          DU, IRIX).  You might want to install the Texinfo package or
   291          the \`GNU make' package.  Grab either from any GNU archive site."
   288          the GNU make package.  Grab either from any GNU archive site."
   292     # The file to touch is that specified with -o ...
   289     # The file to touch is that specified with -o ...
   293     file=`echo "$*" | sed -n "$sed_output"`
   290     file=`echo "$*" | sed -n "$sed_output"`
   294     test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
   291     test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
   295     if test -z "$file"; then
   292     if test -z "$file"; then
   296       # ... or it is the one specified with @setfilename ...
   293       # ... or it is the one specified with @setfilename ...
   308     # let's fail without touching anything.
   305     # let's fail without touching anything.
   309     test -f $file || exit 1
   306     test -f $file || exit 1
   310     touch $file
   307     touch $file
   311     ;;
   308     ;;
   312 
   309 
   313   tar)
       
   314     shift
       
   315 
       
   316     # We have already tried tar in the generic part.
       
   317     # Look for gnutar/gtar before invocation to avoid ugly error
       
   318     # messages.
       
   319     if (gnutar --version > /dev/null 2>&1); then
       
   320        gnutar "$@" && exit 0
       
   321     fi
       
   322     if (gtar --version > /dev/null 2>&1); then
       
   323        gtar "$@" && exit 0
       
   324     fi
       
   325     firstarg="$1"
       
   326     if shift; then
       
   327 	case $firstarg in
       
   328 	*o*)
       
   329 	    firstarg=`echo "$firstarg" | sed s/o//`
       
   330 	    tar "$firstarg" "$@" && exit 0
       
   331 	    ;;
       
   332 	esac
       
   333 	case $firstarg in
       
   334 	*h*)
       
   335 	    firstarg=`echo "$firstarg" | sed s/h//`
       
   336 	    tar "$firstarg" "$@" && exit 0
       
   337 	    ;;
       
   338 	esac
       
   339     fi
       
   340 
       
   341     echo 1>&2 "\
       
   342 WARNING: I can't seem to be able to run \`tar' with the given arguments.
       
   343          You may want to install GNU tar or Free paxutils, or check the
       
   344          command line arguments."
       
   345     exit 1
       
   346     ;;
       
   347 
       
   348   *)
   310   *)
   349     echo 1>&2 "\
   311     echo 1>&2 "\
   350 WARNING: \`$1' is needed, and is $msg.
   312 WARNING: '$1' is needed, and is $msg.
   351          You might have modified some files without having the
   313          You might have modified some files without having the
   352          proper tools for further handling them.  Check the \`README' file,
   314          proper tools for further handling them.  Check the 'README' file,
   353          it often tells you about the needed prerequisites for installing
   315          it often tells you about the needed prerequisites for installing
   354          this package.  You may also peek at any GNU archive site, in case
   316          this package.  You may also peek at any GNU archive site, in case
   355          some other package would contain this missing \`$1' program."
   317          some other package would contain this missing '$1' program."
   356     exit 1
   318     exit 1
   357     ;;
   319     ;;
   358 esac
   320 esac
   359 
   321 
   360 exit 0
   322 exit 0
   361 
   323 
   362 # Local variables:
   324 # Local variables:
   363 # eval: (add-hook 'write-file-hooks 'time-stamp)
   325 # eval: (add-hook 'write-file-hooks 'time-stamp)
   364 # time-stamp-start: "scriptversion="
   326 # time-stamp-start: "scriptversion="
   365 # time-stamp-format: "%:y-%02m-%02d.%02H"
   327 # time-stamp-format: "%:y-%02m-%02d.%02H"
   366 # time-stamp-end: "$"
   328 # time-stamp-time-zone: "UTC"
       
   329 # time-stamp-end: "; # UTC"
   367 # End:
   330 # End: