mirror of
https://salsa.debian.org/srivasta/make-dfsg.git
synced 2025-02-07 13:03:08 +00:00
160 lines
9.2 KiB
Text
160 lines
9.2 KiB
Text
|
make-dfsg (4.0-1) experimental; urgency=low
|
||
|
|
||
|
WARNING: Backward-incompatibility!
|
||
|
If .POSIX is specified, then make adheres to the POSIX backslash/newline
|
||
|
handling requirements, which introduces the following changes to the
|
||
|
standard backslash/newline handling in non-recipe lines:
|
||
|
* Any trailing space before the backslash is preserved
|
||
|
* Each backslash/newline (plus subsequent whitespace) is converted to a
|
||
|
single space
|
||
|
|
||
|
-- Manoj Srivastava <srivasta@debian.org> Sat, 12 Apr 2014 23:56:34 -0700
|
||
|
|
||
|
make-dfsg (3.82-1) experimental; urgency=low
|
||
|
|
||
|
* New upstream release. A complete list of bugs fixed in this version is
|
||
|
available here: http://sv.gnu.org/bugs/index.php?group=make&report_id=111&fix_release_id=104&set=custom
|
||
|
* WARNING: Future backward-incompatibility!
|
||
|
Wildcards are not documented as returning sorted values, but up to and
|
||
|
including this release the results have been sorted and some makefiles
|
||
|
are apparently depending on that. In the next release of GNU make,
|
||
|
for performance reasons, we may remove that sorting. If your
|
||
|
makefiles require sorted results from wildcard expansions, use the
|
||
|
$(sort ...) function to request it explicitly.
|
||
|
* WARNING: Backward-incompatibility!
|
||
|
The POSIX standard for make was changed in the 2008 version in a
|
||
|
fundamentally incompatible way: make is required to invoke the shell
|
||
|
as if the '-e' flag were provided. Because this would break many
|
||
|
makefiles that have been written to conform to the original text of
|
||
|
the standard, the default behavior of GNU make remains to invoke the
|
||
|
shell with simply '-c'. However, any makefile specifying the .POSIX
|
||
|
special target will follow the new POSIX standard and pass '-e' to the
|
||
|
shell. See also .SHELLFLAGS below.
|
||
|
* WARNING: Backward-incompatibility!
|
||
|
The '$?' variable now contains all prerequisites that caused the
|
||
|
target to be considered out of date, even if they do not exist
|
||
|
(previously only existing targets were provided in $?).
|
||
|
* WARNING: Backward-incompatibility!
|
||
|
As a result of parser enhancements, three backward-compatibility
|
||
|
issues exist: first, a prerequisite containing an "=" cannot be
|
||
|
escaped with a backslash any longer. You must create a variable
|
||
|
containing an "=" and use that variable in the prerequisite. Second,
|
||
|
variable names can no longer contain whitespace, unless you put the
|
||
|
whitespace in a variable and use the variable. Third, in previous
|
||
|
versions of make it was sometimes not flagged as an error for explicit
|
||
|
and pattern targets to appear in the same rule. Now this is always
|
||
|
reported as an error.
|
||
|
* WARNING: Backward-incompatibility!
|
||
|
The pattern-specific variables and pattern rules are now applied in
|
||
|
the shortest stem first order instead of the definition order
|
||
|
(variables and rules with the same stem length are still applied in
|
||
|
the definition order). This produces the usually-desired behavior
|
||
|
where more specific patterns are preferred. To detect this feature
|
||
|
search for 'shortest-stem' in the .FEATURES special variable.
|
||
|
* WARNING: Backward-incompatibility!
|
||
|
The library search behavior has changed to be compatible with the
|
||
|
standard linker behavior. Prior to this version for prerequisites
|
||
|
specified using the -lfoo syntax make first searched for libfoo.so in
|
||
|
the current directory, vpath directories, and system directories. If
|
||
|
that didn't yield a match, make then searched for libfoo.a in these
|
||
|
directories. Starting with this version make searches first for
|
||
|
libfoo.so and then for libfoo.a in each of these directories in order.
|
||
|
|
||
|
-- Manoj Srivastava <srivasta@debian.org> Mon, 18 Jul 2011 00:38:04 -0700
|
||
|
|
||
|
make (3.80+3.81.b3.1-1) unstable; urgency=low
|
||
|
|
||
|
* WARNING: Backward-incompatibility! (this may help CDBS users)
|
||
|
GNU make now implements a generic "second expansion" feature on the
|
||
|
prerequisites of both explicit and implicit (pattern) rules. In order
|
||
|
to enable this feature, the special target '.SECONDEXPANSION' must be
|
||
|
defined before the first target which takes advantage of it. If this
|
||
|
feature is enabled then after all rules have been parsed the
|
||
|
prerequisites are expanded again, this time with all the automatic
|
||
|
variables in scope. This means that in addition to using standard
|
||
|
SysV $$@ in prerequisites lists, you can also use complex functions
|
||
|
such as $$(notdir $$@) etc. This behavior applies to implicit rules,
|
||
|
as well, where the second expansion occurs when the rule is matched.
|
||
|
However, this means that you need to double-quote any "$" in your
|
||
|
filenames; instead of "foo: boo$$bar" you now must write "foo:
|
||
|
foo$$$$bar". Note that the SysV $$@ etc. feature, which used to be
|
||
|
available by default, is now ONLY available when the .SECONDEXPANSION
|
||
|
target is defined. If your makefiles take advantage of this SysV
|
||
|
feature you will need to update them.
|
||
|
* New special variables available in this release:
|
||
|
- .INCLUDE_DIRS: Expands to a list of directories that make searches
|
||
|
for included makefiles.
|
||
|
* New functions available in this release:
|
||
|
- $(info ...) prints its arguments to stdout. No makefile name or
|
||
|
line number info, etc. is printed.
|
||
|
- $(flavor ...) returns the flavor of a variable.
|
||
|
|
||
|
-- Manoj Srivastava <srivasta@debian.org> Mon, 12 Dec 2005 13:38:47 -0600
|
||
|
|
||
|
make (3.80+3.81.b3-1) unstable; urgency=low
|
||
|
|
||
|
* WARNING: Backward-incompatibility!
|
||
|
GNU make now implements a generic "second expansion" feature on the
|
||
|
prerequisites of both explicit and implicit (pattern) rules. After
|
||
|
all rules have been parsed the prerequisites are expanded again, this
|
||
|
time with all the automatic variables in scope. This means that in
|
||
|
addition to using standard SysV $$@ in prerequisites lists, you can
|
||
|
also use complex functions such as $$(notdir $$@) etc. This behavior
|
||
|
applies to implicit rules, as well, where the second expansion occurs
|
||
|
after the rule is matched. However, this means that you need to
|
||
|
double-quote any "$" in your filenames; instead of "foo: boo$$bar" you
|
||
|
now must write "foo: foo$$$$bar".
|
||
|
* WARNING: Backward-incompatibility!
|
||
|
In order to comply with POSIX, the way in which GNU make processes
|
||
|
backslash-newline sequences in command strings has changed. See the
|
||
|
GNU make manual section "Command Execution" for details.
|
||
|
* New command-line option: -L (--check-symlink-times). On systems that
|
||
|
support symbolic links, if this option is given then GNU make will use
|
||
|
the most recent modification time of any symbolic links that are used
|
||
|
to resolve target files. The default behavior remains as it always
|
||
|
has: use the modification time of the actual target file only.
|
||
|
* The "else" conditional line can now be followed by any other legal
|
||
|
conditional on the same line: this does not increase the depth of the
|
||
|
conditional nesting, so only one "endif" is required to close the
|
||
|
conditional.
|
||
|
* All pattern-specific variables that match a given target are now used
|
||
|
(previously only the first match was used).
|
||
|
* Target-specific variables can be marked as exportable using the
|
||
|
"export" keyword.
|
||
|
* In a recursive $(call ...) context, any extra arguments from the outer
|
||
|
call are now masked in the context of the inner call.
|
||
|
* Implemented a solution for the "thundering herd" problem with "-j -l".
|
||
|
This version of GNU make uses an algorithm suggested by Thomas Riedl
|
||
|
<thomas.riedl@siemens.com> to track the number of jobs started in the
|
||
|
last second and artificially adjust GNU make's view of the system's
|
||
|
load average accordingly.
|
||
|
* New special variables available in this release:
|
||
|
- .FEATURES: Contains a list of special features available in this
|
||
|
version of GNU make.
|
||
|
- .DEFAULT_GOAL: Set the name of the default goal make will
|
||
|
use if no goals are provided on the command line.
|
||
|
- MAKE_RESTARTS: If set, then this is the number of times this
|
||
|
instance of make has been restarted (see "How Makefiles Are Remade"
|
||
|
in the manual).
|
||
|
- New automatic variable: $| (added in 3.80, actually): contains all
|
||
|
the order-only prerequisites defined for the target.
|
||
|
* New functions available in this release:
|
||
|
- $(lastword ...) returns the last word in the list. This gives
|
||
|
identical results as $(word $(words ...) ...), but is much faster.
|
||
|
- $(abspath ...) returns the absolute path (all "." and ".."
|
||
|
directories resolved, and any duplicate "/" characters removed) for
|
||
|
each path provided.
|
||
|
- $(realpath ...) returns the canonical pathname for each path
|
||
|
provided. The canonical pathname is the absolute pathname, with
|
||
|
all symbolic links resolved as well.
|
||
|
- $(info ...) prints informative messages to stdout. No makefile
|
||
|
name or line number info, etc. is printed, just the message.
|
||
|
* Changes made for POSIX compatibility:
|
||
|
- Only touch targets (under -t) if they have at least one command.
|
||
|
- Setting the SHELL make variable does NOT change the value of the
|
||
|
SHELL environment variable given to programs invoked by make. As
|
||
|
an enhancement to POSIX, if you export the make variable SHELL then
|
||
|
it will be set in the environment, just as before.
|
||
|
|
||
|
-- Manoj Srivastava <srivasta@debian.org> Fri, 9 Dec 2005 21:28:14 -0600
|