This is a port of GNU grep 2.21  to MSDOS/DJGPP.

  This is GNU grep, the "fastest grep in the west" (we hope).  GNU grep is
  based on a fast lazy-state deterministic matcher (about twice as fast as
  stock Unix egrep) hybridized with a Boyer-Moore-Gosper search for a fixed
  string that eliminates impossible text from being considered by the full
  regexp matcher without necessarily having to look at every character.  The
  result is typically many times faster than Unix grep or egrep.  (Regular
  expressions containing backreferencing will run more slowly, however.)



1.:     DJGPP specific changes.
        =======================

        To be able to compile a working grep binary using djdev203 certain
        adjustments to $DJDIR/include/conio.h are needed so the name clash
        between gnulib's gettext wrapper and BORLAND's compatibility gettext
        is resolved.  To solve this issue you will need to apply the conio
        patch provided in the /djgpp directory.  This patch will change your
        djdev203 version of conio.h to the djdev204 version concerning the
        gettext naming.
        When paths are checked to be directories, the code has been changed to
        use access() instead of stat().  Due to amount of work that it is to
        compute the stat of the file, using access() should give certain speed
        improvement.
        This port offers colorization support.  Please read the documentation
        to learn how the default colors used can be changed.
        This port also offers perl-regexp (pcre) support so if you want to
        compile the sources you will have to install pcre library first.  This
        is available as:
          ftp://ftp.delorie.com/pub/djgpp/current/v2tk/pcre836b.zip
        or
          ftp://ftp.delorie.com/pub/djgpp/beta/v2tk/pcre836b.zip
        If you do not like this you will have to reconfigure and recompile the
        port passing the "no-pcre" command line option to config.bat.
        By default, the port is compiled with pcre support.
        The port has no wide character/multi byte support at all.
        To build this port and run the testsuite you will need LFN support.

        This port provides NLS support for the version compiled with DJGPP 2.04.
        It has been configured with NLS support enabled.  If you prefer no NLS,
        then reconfigure the sources passing the no-nls flag to the config.bat
        file.

        The port has been configured and compiled on WinXP SP3.  There is no
        guarantee that this may be possible with any other DOS-like OS.  Due
        to the massive use of long file names it will not be possible to
        configure and compile without LFN support.

        The DJGPP 2.04 version of the port has been compiled using gcc490 and
        bnu224br2.  But instead of using the libc.a provided djdev204, a libc
        version compiled from the repository code has been used. The repository
        code has been patched with the memory patch as provided by Andris
        Pavenis in:
          http://ap1.pp.fi/djgpp/djdev/djgpp/20140421/use_nmalloc.diff
        The goal is to test how well the new memory system and the current libc
        code works.  The repository code can be downloaded from Martin Stromberg's
        site as:
          http://www.ludd.luth.se/~ams/djgpp/cvs/djgpp.cvs.tar.gz 

        Starting with grep-2.21 the GREP_OPTIONS environment variable is no
        longer supported.  But this environment variable is set in djgpp.env
        and thus everytime grep is started it issues a warning message either
        to STDOUT or to STDERR.  This may make scripts fail that analyse the
        grep output.  If you use grep 2.21 you should remove the GREP_OPTIONS
        entry from your djgpp.env.

        As usual, all djgpp specific files (config.bat, diffs, README files,
        etc.) are located in the /djgpp directory.

        For further information about GNU grep please read the info docs and NEWS file.


2.:     Installing the binary package.
        ==============================

2.1.:   Copy the binary distribution into the top DJGPP installation directory,
        just unzip it preserving the directory structure running *ONE* of the
        following commands:
          unzip32 grep221b.zip      or
          djtarx grep221b.zip       or
          pkunzip -d grep221b.zip


3.:     Building the binaries from sources.
        ===================================

3.1.:   Create a temporary directory and copy the source package into the
        directory.  If you download the source distribution from one of the
        DJGPP sites, just unzip it preserving the directory structure
        running *ONE* of the following commands:
          unzip32 grep221s.zip      or
          djtarx grep221s.zip       or
          pkunzip -d grep221s.zip

3.2.:   To build the binaries you will need the following binary packages:
          djdev203.zip (or a later but NOT a prior version)
          bsh205bbr3.zip (or a later but NOT a prior version)
          gccNNNb.zip, gppNNN.zip, bnuNNNb.zip, makNNNb.zip, filNNNb.zip,
          shlNNNb.zip, txtNNNb.zip, txiNNNb.zip, grepNNNb.zip, sedNNNb.zip,
          pcreNNNb.zip, mktmpNNb.zip and gwkNNNb.zip.

        If you want to configure and compile this packages with NLS support
        enabled you must install licvNNNb.zip, lunsNNNb.zip and gtxNNNNb.zip.

        If you want to run the check you will need also:
          difNNNb.zip and mktmpNNNb.zip

        NNN represents the latest version number of the binary packages.  All
        this packages can be found in the /v2gnu directory of any
        ftp.delorie.com mirror.
        You will need bsh205bbr3.zip or later and *NOT* a prior version or
        the build will fail.  The same applies to djdev203.zip.

3.3.:   The package has been configured for both DJGPP 2.03 and DJGPP 2.04.
        There is a separate build directory for DJGPP 2.03 and for DJGPP 2.04
        under the top srcdir (aka grep-2.21).  To build the binaries
        using the 2.03 version of DJGPP cd into _build.203; if you prefer to
        build the binaries using DJGPP 2.04 cd into _build.204.  If for some
        reason you want to reconfigure the package cd into the corresponding
        build directory and run the following commands:
          del config.cache
          make clean
          ..\djgpp\config ./..

        Please note that you *MUST* delete the config.cache file in the djgpp
        subdir or you will not really reconfigure the sources because the
        configuration informations will be read from the cache file instead
        of being newly computed.

        config.bat, among other things, will start the configure script passing
        to it a couple of arguments.  You can control these argument passing the
        following command line arguments to config.bat:
          nls or no-nls, default nls.  NLS support.
          cache or no-cache, default cache.
          dep or no-dep, default no-dep.  No dependency tracking.
          pcre or no-pcre, default pcre.  Link grep with libpcre to enable
                                          perl-regexp support.
        All other configure specific options are not set by config.bat so their
        values are left as they are.  If no arguments are passed to config.bat
        then the default values are used.


        To build the programs in a directory other than where the sources are,
        you must add the parameter that specifies the source directory,
        e.g:
          x:\src\gnu\grep-2.21\djgpp\config x:/src/gnu/grep-2.21

        Lets assume you want to build the binaries in a directory placed on a
        different drive (z:\build in this case) from where the sources are,
        then you will run the following commands:
          z:
          md \build
          cd \build
          x:\src\gnu\grep-2.21\djgpp\config x:/src/gnu/grep-2.21

        The order of the options and the srcdir option does not matter.  You
        *MUST* use forward slashes to specify the source directory.

        The batch file will set same environment variables, make MSDOS specific
        modifications to the Makefile.in's and supply all other needed options
        to the configure script.

3.4.:   To compile the package run from the directory where you have configured
        the sources the command:
          make

3.5.:   Now you can run the tests if you like.  Start the command:
          make check

        Before starting the testsuite unset the GREP_OPTIONS variable in your
        djgpp.env by commenting it out.
        The yesno test will fail.  This is not a port issue.
        All tests that involve multi-byte character sets will be skipped.

3.6.:   To install the binaries and info docs run the following command from
        the directory where you have configured the sources:
          make install

        This will install the products into your DJGPP installation tree given
        by the default prefix "/dev/env/DJDIR".  If you prefer to install them
        into some other directory you will have to set prefix to the appropriate
        value:
          make install prefix=z:/some/other/place



        Send GNU grep specific bug reports to <bug-grep@gnu.org>.
        Send suggestions and bug reports concerning the DJGPP port to
        comp.os.msdos.djgpp or <djgpp@delorie.com>.


Enjoy.

        Guerrero, Juan Manuel <juan.guerrero@gmx.de>
