delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp-announce/2020/03/10/22:24:39

Message-Id: <202003101835.02AIZ7l4024430@delorie.com>
Date: Tue, 10 Mar 2020 19:04:36 +0100
From: "Juan Manuel Guerrero (juan DOT guerrero AT gmx DOT de) [via djgpp-announce AT delorie DOT com]" <djgpp-announce AT delorie DOT com>
To: djgpp-announce AT delorie DOT com
Subject: ANNOUNCE: DJGPP port of GNU make 4.3 uploaded.
Reply-To: djgpp AT delorie DOT com

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.
   =======================

   - There are no DJGPP specific user visible changes.

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

   - The port has been configured and compiled on WinXP SP3 and on 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
     bnu234b.

   - 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
   "_build" 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:

https://sv.gnu.org/bugs/index.php?group=make&report_id=111&fix_release_id=108&set=custom

* 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 variable.

* 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 <kaz AT kylheku DOT com>

* 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 AT gmx DOT 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 AT caesar DOT elte DOT 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 https://savannah.gnu.org/bugs/index.php?52076

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

* Performance improvements provided by Paolo Bonzini <pbonzini AT redhat DOT com>

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
   djdev205 (CVS repository code) and can be downloaded from ftp.delorie.com
   and mirrors as (time stamp 2020-03-01):


     Make 4.3 binary, info and man format documentation:
     ftp://ftp.delorie.com/pub/djgpp/current/v2gnu/mak43b.zip

     Make 4.3 dvi, html, pdf and ps format documentation:
     ftp://ftp.delorie.com/pub/djgpp/current/v2gnu/mak43d.zip

     Make 4.3 source:
     ftp://ftp.delorie.com/pub/djgpp/current/v2gnu/mak43s.zip



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


Enjoy.

     Guerrero, Juan Manuel <juan DOT guerrero AT gmx DOT de>

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019