make-dfsg (4.4.1-1) unstable; urgency=medium

  This release has these backward-incompatible changes since 4.3:

  * GNU Make now uses temporary files in more situations than previous
    releases.  If your build system sets TMPDIR (or TMP or TEMP on
    Windows) and deletes the contents during the build, or uses
    restrictive permissions, this may cause problems.  You can choose an
    alternative temporary directory only for use by GNU Make by setting
    the new MAKE_TMPDIR environment variable before invoking make.  Note
    that this value CANNOT be set inside the makefile, since make needs to
    find its temporary directory before the makefiles are parsed.

  * Previously each target in a explicit grouped target rule was
    considered individually: if the targets needed by the build were not
    out of date the recipe was not run even if other targets in the group
    were out of date.  Now if any of the grouped targets are needed by the
    build, then if any of the grouped targets are out of date the recipe
    is run and all targets in the group are considered updated.

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

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

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

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

  * In previous releases it was not well-defined when updates to MAKEFLAGS made
    inside a makefile would be visible.  This release ensures they are
    visible immediately, even when invoking $(shell ...) functions.  Also,
    command line variable assignments are now always present in MAKEFLAGS,
    even when parsing makefiles.

 -- Stephen Kitt <skitt@debian.org>  Thu, 07 Nov 2024 18:25:26 +0100

make-dfsg (4.3-3) unstable; urgency=medium

  * Fix ordering if include dirs
    There has been a long standind bug where INCLUDE_DIRS /usr/include is
    included twice.  The more important problem is it is before the
    /usr/local/include. This commit fixes the ordering. So now
    /usr/local/include comes before /usr/include, which it should, but
    this is a change in behaviour.

 -- Manoj Srivastava <srivasta@debian.org>  Fri, 05 Jun 2020 18:59:32 -0700

make-dfsg (4.3-1) unstable; urgency=medium

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


 -- Manoj Srivastava <srivasta@debian.org>  Wed, 20 May 2020 13:56:50 -0700
