BTW wget complains about the certificate: $ wget https://alpha.gnu.org/gnu/make/make-4.3.90.tar.gz --2022-09-26 09:12:58-- https://alpha.gnu.org/gnu/make/make-4.3.90.tar.gz Resolving alpha.gnu.org (alpha.gnu.org)... 209.51.188.21, 2001:470:142:3::c Connecting to alpha.gnu.org (alpha.gnu.org)|209.51.188.21|:443... connected. ERROR: cannot verify alpha.gnu.org's certificate, issued by '/C=US/O=Let\'s Encrypt/CN=R3': Issued certificate has expired. To connect to alpha.gnu.org insecurely, use `--no-check-certificate'.
On Tue, Sep 20, 2022 at 7:18 PM Paul Smith <psm...@gnu.org> wrote: > -------------------------------------------------------------------- > GNU make is a tool which controls the generation of executables and > other non-source files of a program from the program's source files. > > You can learn more at: https://www.gnu.org/software/make/ > -------------------------------------------------------------------- > > A new release candidate for GNU make 4.4 is available now for download: > > 0c3daaec8c81bf72f460677ccda32364 make-4.3.90.tar.lz > 54726144a7ae0465451f8ca0740f3d1f make-4.3.90.tar.gz > > You can obtain a copy from: https://alpha.gnu.org/gnu/make/ > > - NEWS ---------------------------------------------------------------- > > Version 4.3.90 (20 Sep 2022) > > A complete list of bugs fixed in this version is available here: > > > https://sv.gnu.org/bugs/index.php?group=make&report_id=111&fix_release_id=109&set=custom > > * WARNING: Backward-incompatibility! > Previously if --no-print-directory was seen anywhere in the environment > or > command line it would take precedence over any --print-directory. Now, > the > last setting of directory printing options seen will be used, so a > command > line such as "--no-print-directory -w" _will_ show directory entry/exits. > > * WARNING: Backward-incompatibility! > Previously the order in which makefiles were remade was not explicitly > stated, but it was (roughly) the inverse of the order in which they were > processed by make. In this release, the order in which makefiles are > rebuilt is the same order in which make processed them, and this is > defined > to be true in the GNU make manual. > > * WARNING: Backward-incompatibility! > Previously only simple (one-letter) options were added to the MAKEFLAGS > variable that was visible while parsing makefiles. Now, all options are > available in MAKEFLAGS. If you want to check MAKEFLAGS for a one-letter > option, expanding "$(firstword -$(MAKEFLAGS))" is a reliable way to > return > the set of one-letter options which can be examined via findstring, etc. > > * WARNING: Backward-incompatibility! > Previously makefile variables marked as export were not exported to > commands > started by the $(shell ...) function. Now, all exported variables are > exported to $(shell ...). If this leads to recursion during expansion, > then > for backward-compatibility the value from the original environment is > used. > To detect this change search for 'shell-export' in the .FEATURES > variable. > > * WARNING: New build requirement > GNU make utilizes facilities from GNU Gnulib: Gnulib requires certain C99 > features in the C compiler and so these features are required by GNU > make: > > https://www.gnu.org/software/gnulib/manual/html_node/C99-features-assumed.html > The configure script should verify the compiler has these features. > > * New feature: The .WAIT special target > If the .WAIT target appears between two prerequisites of a target, then > GNU make will wait for all of the targets to the left of .WAIT in the > list > to complete before starting any of the targets to the right of .WAIT. > This feature is available in some other versions of make, and it will be > required by an upcoming version of the POSIX standard for make. > Different patches were made by Alexey Neyman <alex.ney...@auriga.ru> > (2005) > and Steffen Nurpmeso <stef...@sdaoden.eu> (2020) that were useful but > the > result is a different implementation (closer to Alexey's idea). > > * New feature: .NOTPARALLEL accepts prerequisites > If the .NOTPARALLEL special target has prerequisites then all > prerequisites > of those targets will be run serially (as if .WAIT was specified between > each prerequisite). > > * New feature: The .NOTINTERMEDIATE special target > .NOTINTERMEDIATE Disables intermediate behavior for specific files, for > all > files built using a pattern, or for the entire makefile. > Implementation provided by Dmitry Goncharov <dgoncha...@users.sf.net> > > * New feature: The $(let ...) function > This function allows user-defined functions to define a set of local > variables: values can be assigned to these variables from within the > user-defined function and they will not impact global variable > assignments. > Implementation provided by Jouke Witteveen <j.wittev...@gmail.com> > > * New feature: The $(intcmp ...) function > This function allows conditional evaluation controlled by a numerical > comparison. > Implementation provided by Jouke Witteveen <j.wittev...@gmail.com> > > * New feature: Improved support for -l / --load-average > On systems that provide /proc/loadavg (Linux), GNU make will use it to > determine the number of runnable jobs and use this as the current load, > avoiding the need for heuristics. > Implementation provided by Sven C. Dack <sd...@gmx.com> > > * New feature: The --shuffle command line option > This option reorders goals and prerequisites to simulate non-determinism > that may be seen using parallel build. Shuffle mode allows a form of > "fuzz > testing" of parallel builds to verify that all prerequisites are > correctly > described in the makefile. > Implementation provided by Sergei Trofimovich <siarh...@google.com> > > * New feature: The --jobserver-style command line option and named pipes > A new jobserver method is used on systems where mkfifo(3) is supported. > This solves a number of obscure issues related to using the jobserver > and recursive invocations of GNU make. This change means that sub-makes > will connect to the jobserver even if they are not marked as recursive. > It also means that other tools that want to participate in the jobserver > will need to be enhanced as described in the GNU make manual. > You can force GNU make to use the simple pipe-based jobserver (perhaps if > you are integrating with other tools or older versions of GNU make) by > adding the '--jobserver-style=pipe' option to the command line of the > top-level invocation of GNU make, or via MAKEFLAGS or GNUMAKEFLAGS. > To detect this change search for 'jobserver-fifo' in the .FEATURES > variable. > > * New feature: The MAKE_TMPDIR environment variable > If you prefer that GNU make place temporary files in a different > directory > than the standard TMPDIR (or TMP or TEMP on Windows), set the MAKE_TMPDIR > environment variable before starting make (this value CANNOT be set > inside > the makefile, since make needs to find its temporary directory before the > makefiles are parsed). This is useful for build systems which reset > TMPDIR > and clean it out during the build process. > > * Some POSIX systems (*BSD) do not allow locks to be taken on pipes, which > caused the output sync feature to not work properly there. Also multiple > invocations of make redirecting to the same output file (e.g., /dev/null) > would cause hangs. Instead of locking stdout (which does have some > useful > performance characteristics, but is not portable) create a temporary file > and lock that. Windows continues to use a mutex as before. > > * GNU make has sometimes chosen unexpected, and sub-optimal, chains of > implicit rules due to the definition of "ought to exist" in the implicit > rule search algorithm, which considered any prerequisite mentioned in the > makefile as "ought to exist". This algorithm has been modified to prefer > prerequisites mentioned explicitly in the target being built and only if > that results in no matching rule, will GNU make consider prerequisites > mentioned in other targets as "ought to exist". > Implementation provided by Dmitry Goncharov <dgoncha...@users.sf.net> > > * GNU make was performing secondary expansion of all targets, even targets > which didn't need to be considered during the build. In this release > only targets which are considered will be secondarily expanded. > Implementation provided by Dmitry Goncharov <dgoncha...@users.sf.net> > > * If the MAKEFLAGS variable is modified in a makefile, it will be re-parsed > immediately rather than after all makefiles have been read. Note that > although all options are parsed immediately, some special effects won't > appear until after all makefiles are read. > > * The -I option accepts an argument "-" (e.g., "-I-") which means "reset > the > list of search directories to empty". Among other things this can be > used > to prevent GNU make from searching in its default list of directories. > > * New debug option "print" will show the recipe to be run, even when silent > mode is set, and new debug option "why" will show why a target is rebuilt > (which prerequisites caused the target to be considered out of date). > Implementation provided by David Boyce <david.s.bo...@gmail.com> > > * The existing --trace option is made equivalent to --debug=print,why > > * Target-specific variables can now be marked "unexport". > > * Exporting / unexporting target-specific variables is handled correctly, > so > that the attribute of the most specific variable setting is used. > > * Special targets like .POSIX are detected upon definition, ensuring that > any > change in behavior takes effect immediately, before the next line is > parsed. > > * When the jobserver is enabled and GNU make decides it is invoking a > non-make > sub-process and closes the jobserver pipes, it will now add a new option > to > the MAKEFLAGS environment variable that disables the jobserver. > This prevents sub-processes that invoke make from accidentally using > other > open file descriptors as jobserver pipes. For more information see > https://savannah.gnu.org/bugs/?57242 and > https://savannah.gnu.org/bugs/?62397 > > * A long-standing issue with the directory cache has been resolved: changes > made as a side-effect of some other target's recipe are now noticed as > expected. > > * GNU Make can now be built for MS-Windows using the Tiny C tcc compiler. > Port provided by Christian Jullien <eli...@orange.fr> > >