This is a port of GNU m4 1.4.19 to MSDOS/DJGPP.

  GNU m4 is an implementation of the traditional Unix macro processor.
  It is mostly SVR4 compatible, although it has some extensions (for
  example, handling more than 9 positional parameters to macros).
  m4 also has built-in functions for including files, running shell
  commands, doing arithmetic, etc.



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

        This port has been configured to be build in the "0build" directory.

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

        The port has been compiled using gcc346 and bnu2351b.

        The port honors the value of the PATH_SEPARATOR environment variable
        to decide if colon or semicolon shall be used as path separator for
        the M4PATH environment variable.  If PATH_SEPARATOR is not set then
        semicolon will be used as path separator.

        The port will also honor the value of the TMP and the TEMP environment
        variables to determinate where to store temporary files if TMPDIR is not
        set.  If neither of the three environment variables are set or if they
        point to not existing directories the value of P_tmpdir will be used.
        If this directory is also not accessible then the current working
        directory will be used.

        The port defines two new macros to identify the platform m4 is running
        on.  These are "__djgpp__" and "__msdos__" and "djgpp" and "msdos" if
        the -G option is specified.

        The port requires that a bash compatible shell is installed to be used
        by the m4 commands syscmd and esyscmd to execute the commands passed.
        The shell to be used is determinated at compile time by the value of
        "with_syscmd_shell" variable defined in the distributed config.site.
        Currently, the value is set to "bash.exe".  If the variable has not
        been set during the configuration step, then the hard coded value
        will be used.  This is also "bash.exe".  The other variable value
        that will be honored is COMMAND.COM.  In that case COMMAND.COM will
        be used as default shell for these two commands.  Because most of
        the executed scripts are UNIX centric it is not recommended at all
        to use COMMAND.COM and always to install the newest version of the
        DJGPP's port of bash.  As told before, this port has been configured
        and compiled to use bash.

        As usual, all djgpp specific files (config.bat, diffs, README files,
        etc.) are stored in the "djgpp" directory.  The changes I have done
        to the sources are documented in the "djgpp/diffs" file.

        For further information about GNU m4 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 m4-1419b.zip      or
          djtarx m4-1419b.zip       or
          pkunzip -d m4-1419b.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 m4-1419s.zip      or
          djtarx m4-1419s.zip       or
          pkunzip -d m4-1419s.zip

3.2.:   To build the binaries you will need the following binary packages:
          djdev205.zip (or a later but NOT a prior version)
          bsh4253b.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,
          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 bsh4253b.zip or later and *NOT* a prior version or
        the build will fail.  The same applies to djdev205.zip.

3.3.:   The package has been configured to be build in a separate build directory
        under the top srcdir (aka m4-1.4.19).  To build the binaries cd
        into "0build" directory.  If for some reason you want to reconfigure the
        package cd into the 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 "0build"
        directory 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 enabled.
          cache or no-cache, default cache.  Cache in build directory.
          dep or no-dep, default no-dep.  No dependency tracking.
          silent or no-silent, default silent.  Controls the verbosity of the
                                                build process.
          c++ or no-c++, default no-c++.  Disable any c++ sources.
          threads or no-threads, default no-threads.  No multi threading.
          assert or no-assert, default no-assert.  Assertions disabled.
          changeword or no-changeword, default changeword.  -W and changeword()
                                                            builtin enabled.
        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\m4-1.4.19\djgpp\config x:/src/gnu/m4-1.4.19

        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\m4-1.4.19\djgpp\config x:/src/gnu/m4-1.4.19

        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 test suite by issuing the command:
          make check
        from the directory where you configured the sources.  The 198.sysval
        test will fail because no kill command is available.  Thus this test
        has been added to list of tests to be skipped by this port.  The test
        stackovf.test will be skipped because this port offers no stack
        overflow support.

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 m4 specific bug reports to <bug-m4@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>
