GNU Make 4.0 released

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view

GNU Make 4.0 released

Paul Smith-20
GNU Make 4.0 has been released and is available now for download:   b5e558f981326d9ca1bfdb841640721a  571d470a7647b455e3af3f92d79f1c18

Or one of the mirrors listed in
Get redirected to a nearby mirror at

        The make utility automatically determines which pieces of a
        large program need to be recompiled, and issues commands to
        recompile them.

More information about make at:

Bug reports/announcements at:

Some new features available in this release of GNU Make:

* New feature: GNU Guile integration
  This version of GNU make can be compiled with GNU Guile integration.
  GNU Guile serves as an embedded extension language for make.
  See the "Guile Function" section in the GNU Make manual for details.
  Currently GNU Guile 1.8 and 2.0+ are supported.

* New command line option: --output-sync (-O) enables grouping of output by
  target or by recursive make.  This is useful during parallel builds to avoid
  mixing output from different jobs together giving hard-to-understand

* New command line option: --trace enables tracing of targets.  When enabled
  the recipe to be invoked is printed even if it would otherwise be suppressed
  by .SILENT or a "@" prefix character.  Also before each recipe is run the
  makefile name and linenumber where it was defined are shown as well as the
  prerequisites that caused the target to be considered out of date.

* New command line option argument: --debug now accepts a "n" (none) flag
  which disables all debugging settings that are currently enabled.

* New feature: The "job server" capability is now supported on Windows.
  Implementation contributed by Troy Runkel <[hidden email]>

* New feature: The .ONESHELL capability is now supported on Windows.  Support
  added by Eli Zaretskii <[hidden email]>.

* New feature: "!=" shell assignment operator as an alternative to the
  $(shell ...) function.  Implemented for compatibility with BSD makefiles.
  Note there are subtle differences between "!=" and $(shell ...).  See the
  description in the GNU make manual.
  WARNING: Backward-incompatibility!
  Variables ending in "!" previously defined as "variable!= value" will now be
  interpreted as shell assignment.  Change your assignment to add whitespace
  between the "!" and "=": "variable! = value"

* New feature: "::=" simple assignment operator as defined by POSIX in 2012.
  This operator has identical functionality to ":=" in GNU make, but will be
  portable to any implementation of make conforming to a sufficiently new
  version of POSIX (see  It is
  not necessary to define the .POSIX target to access this operator.

* New function: $(file ...) writes to a file.

* Setting the -r and -R options in MAKEFLAGS inside a makefile now works as
  expected, removing all built-in rules and variables, respectively.

Plus other enhancements, and over 80 bugs fixed since the last release.

Make-w32 mailing list
[hidden email]

signature.asc (205 bytes) Download Attachment