• ANNOUNCE: Release 2 of the DJGPP port of GNU make 4.3 uploaded.

    From [via djgpp-announce@delorie.com]" <@21:1/5 to All on Tue Jun 7 23:08:00 2022
    This is a port of GNU make 4.3 to MSDOS/DJGPP.

    Make is a program for building other programs, given a description of
    the dependencies between the files.

    DJGPP specific changes.

    - Lately, there have been some crash reports about the make 4.3 port,
    which are probably related to the use of nmalloc used in djdev205.
    Thus this new port release has been compiled using a libc version
    compiled from the current CVS repository in which nmalloc code has
    been replaced by the original malloc code used in djdev203. No
    other changes have been done to the port. Thus neither the docs
    archive (aka mak43d.zip) nor the source archive (aka mak43s.zip)
    have been replaced.

    - There are no DJGPP specific user visible changes.

    - The port has been tested by using it. I have used them only on
    WinXP, Win98SE and MS-DOS 6.22. It has worked flawlessly. I do not
    konw if this will ever be the case on FreeDOS. I have never
    used/tested it on that environment.

    - 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 it LFN support. The port has been
    compiled using gcc346 and bnu2351b.

    - The port does not provide NLS support.

    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 it contents and configure from scratch again.

    For further information about GNU make 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 make 4.2.1) to this one:


    Version 4.3 (19 Jan 2020)

    A complete list of bugs fixed in this version is available here:


    * WARNING: Backward-incompatibility!
    Number signs (#) appearing inside a macro reference or function
    invocation no longer introduce comments and should not be escaped
    with backslashes: thus a call such as:
    foo := $(shell echo '#')
    is legal. Previously the number sign needed to be escaped, for
    example: foo := $(shell echo '\#')
    Now this latter will resolve to "\#". If you want to write makefiles
    portable to both versions, assign the number sign to a variable:
    H := \#
    foo := $(shell echo '$H')
    This was claimed to be fixed in 3.81, but wasn't, for some reason.
    To detect this change search for 'nocomment' in the .FEATURES

    * WARNING: Backward-incompatibility!
    Previously appending using '+=' to an empty variable would result in
    a value starting with a space. Now the initial space is only added
    if the variable already contains some value. Similarly, appending an
    empty string does not add a trailing space.

    * NOTE: Deprecated behavior.
    Contrary to the documentation, suffix rules with prerequisites are
    being treated BOTH as simple targets AND as pattern rules. Further,
    the prerequisites are ignored by the pattern rules. POSIX specifies
    that in order to be a suffix rule there can be no prerequisites
    defined. In this release if POSIX mode is enabled then rules with
    prerequisites cannot be suffix rules. If POSIX mode is not enabled
    then the previous behavior is preserved (a pattern rule with no extra
    prerequisites is created) AND a warning about this behavior is
    generated: warning: ignoring prerequisites on suffix rule definition
    The POSIX behavior will be adopted as the only behavior in a future
    release of GNU make so please resolve any warnings.

    * New feature: Grouped explicit targets
    Pattern rules have always had the ability to generate multiple
    targets with a single invocation of the recipe. It's now possible to
    declare that an explicit rule generates multiple targets with a
    single invocation. To use this, replace the ":" token with "&:" in
    the rule. To detect this feature search for 'grouped-target' in the
    .FEATURES special variable. Implementation contributed by Kaz Kylheku

    * New feature: .EXTRA_PREREQS variable
    Words in this variable are considered prerequisites of targets but
    they are not added to any of the automatic variable values when
    expanding the recipe. This variable can either be global (applies to
    all targets) or a target-specific variable. To detect this feature
    search for 'extra-prereqs' in the .FEATURES special variable.
    Implementation contributed by Christof Warlich <cwarlich@gmx.de>

    * Makefiles can now specify the '-j' option in their MAKEFLAGS variable
    and this will cause make to enable that parallelism mode.

    * GNU make will now use posix_spawn() on systems where it is available.
    If you prefer to use fork/exec even on systems where posix_spawn() is
    present, you can use the --disable-posix-spawn option to configure.
    Implementation contributed by Aron Barath <baratharon@caesar.elte.hu>

    * Error messages printed when invoking non-existent commands have been
    cleaned up and made consistent.

    * The previous limit of 63 jobs under -jN on MS-Windows is now
    increased to 4095. That limit includes the subprocess started by
    the $(shell) function.

    * A new option --no-silent has been added, that cancels the effect of
    the -s/--silent/--quiet flag.

    * A new option -E has been added as a short alias for --eval.

    * All wildcard expansion within GNU make, including $(wildcard ...),
    will sort the results. See

    * Interoperate with newer GNU libc and musl C runtime libraries.

    * Performance improvements provided by Paolo Bonzini

    GNU make Developer News

    * Import the GNU standard bootstrap script to replace the hand-rolled
    "make update" method for building code from a GNU make Git repository.

    * Rework the source distribution to move source files into the src/*
    subdirectory. This aligns with modern best practices in GNU.

    * Replace local portability code with Gnulib content. Unfortunately
    due to a problem with Gnulib support for getloadavg, this forces a
    requirement on Automake 1.16 or above in order to build from Git.
    See README.git.


    The port consists of the usual three packages that have been produced
    using djdev206 (CVS repository code) and can be downloaded from
    ftp.delorie.com and mirrors as (time stamp 2022-06-06):

    GNU make 4.3 binary, info and man format documentation:

    GNU make 4.3 dvi, html, pdf and ps format documentation:

    GNU make 4.3 source:

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


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

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)