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