From [via email@example.com]" <@21:1/5 to All on Mon Jan 30 22:49:07 2023
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.
DJGPP specific changes.
- m4 1.4.19 and m4 1.4.18 have the bug that "frozen" files are created
in binary mode but reloaded in text mode generating reading issues.
The bug has been fixed and reported to the m4 maintainers. Of course
that systems that do not distinguish between text and binary I/O do
not suffer nor have ever suffered from this bug.
- 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 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.
The test case 198.sysval will be skipped because DJGPP/DOS does not
provide a kill command. This is *not* a bug of the port. The test
stackovf.test will be skipped because this port offers no stack overflow
support. All other tests will pass.
To build this port you will need an OS with LFN support to configure
and compile the source package.
The port has been configured and compiled on WinXP SP3 and Win98SE.
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.
As usual, all djgpp specific files (diffs, README files, etc.) are stored
in the "djgpp" directory. The sources have been configured to be build
in the "0build" directory. If for some reason it does not work for you,
delete its contents and configure from scratch again.
For further information about GNU m4 please read the info docs and NEWS file.
Here is an extract of the NEWS file showing the user visible changes
from the last port (GNU m4 1.4.18) to this one: