diff options
author | Kévin THIERRY <kevin.thierry@open.eurogiciel.org> | 2014-11-05 08:27:15 +0100 |
---|---|---|
committer | Kévin THIERRY <kevin.thierry@open.eurogiciel.org> | 2014-11-05 08:27:15 +0100 |
commit | e15597c3e85dedc015ff923a88febd46a1551f71 (patch) | |
tree | 467fdb092d1fa76bcb63d4db653e8176dae24e62 /NEWS | |
parent | 9789b4dba120180760ec948089fc98ebab6eb28b (diff) | |
download | make-e15597c3e85dedc015ff923a88febd46a1551f71.tar.gz make-e15597c3e85dedc015ff923a88febd46a1551f71.tar.bz2 make-e15597c3e85dedc015ff923a88febd46a1551f71.zip |
Imported Upstream version 4.0upstream/4.0sandbox/kevinthierry/upstream
Diffstat (limited to 'NEWS')
-rw-r--r-- | NEWS | 178 |
1 files changed, 144 insertions, 34 deletions
@@ -1,6 +1,6 @@ GNU make NEWS -*-indented-text-*- History of user-visible changes. - 28 July 2010 + 09 Oct 2013 See the end of this file for copyrights and conditions. @@ -9,7 +9,111 @@ manual, which is contained in this distribution as the file doc/make.texi. See the README file and the GNU make manual for instructions for reporting bugs. -Version 3.82 +Version 4.0 (09 Oct 2013) + +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=101&set=custom + +* 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 + +* 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. In Guile 1.8 there is no + support for internationalized character sets. In Guile 2.0+, scripts can be + encoded in UTF-8. + +* 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 + results. Original implementation by David Boyce <dsb@boyski.com>. + Reworked and enhanced by Frank Heckenbach <f.heckenbach@fh-soft.de>. + Windows support by Eli Zaretskii <eliz@gnu.org>. + +* 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 <Troy.Runkel@mathworks.com> + +* New feature: The .ONESHELL capability is now supported on Windows. Support + added by Eli Zaretskii <eliz@gnu.org>. + +* 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 http://austingroupbugs.net/view.php?id=330). It is + not necessary to define the .POSIX target to access this operator. + +* New feature: Loadable objects + This version of GNU make contains a "technology preview": the ability to + load dynamic objects into the make runtime. These objects can be created by + the user and can add extended functionality, usable by makefiles. + +* New function: $(file ...) writes to a file. + +* New variable: $(GNUMAKEFLAGS) will be parsed for make flags, just like + MAKEFLAGS is. It can be set in the environment or the makefile, containing + GNU make-specific flags to allow your makefile to be portable to other + versions of make. Once this variable is parsed, GNU make will set it to the + empty string so that flags will not be duplicated on recursion. + +* New variable: `MAKE_HOST' gives the name of the host architecture + make was compiled for. This is the same value you see after 'Built for' + when running 'make --version'. + +* Behavior of MAKEFLAGS and MFLAGS is more rigorously defined. All simple + flags are grouped together in the first word of MAKEFLAGS. No options that + accept arguments appear in the first word. If no simple flags are present + MAKEFLAGS begins with a space. Flags with both short and long versions + always use the short versions in MAKEFLAGS. Flags are listed in + alphabetical order using ASCII ordering. MFLAGS never begins with "- ". + +* Setting the -r and -R options in MAKEFLAGS inside a makefile now works as + expected, removing all built-in rules and variables, respectively. + +* If a recipe fails, the makefile name and linenumber of the recipe are shown. + +* A .RECIPEPREFIX setting is remembered per-recipe and variables expanded + in that recipe also use that recipe prefix setting. + +* In -p output, .RECIPEPREFIX settings are shown and all target-specific + variables are output as if in a makefile, instead of as comments. + +* On MS-Windows, recipes that use ".." quoting will no longer force + invocation of commands via temporary batch files and stock Windows + shells, they will be short-circuited and invoked directly. (In + other words, " is no longer a special character for stock Windows + shells.) This avoids hitting shell limits for command length when + quotes are used, but nothing else in the command requires the shell. + This change could potentially mean some minor incompatibilities in + behavior when the recipe uses quoted string on shell command lines. + + +Version 3.82 (28 Jul 2010) A complete list of bugs fixed in this version is available here: @@ -18,14 +122,6 @@ http://sv.gnu.org/bugs/index.php?group=make&report_id=111&fix_release_id=104&set * Compiling GNU make now requires a conforming ISO C 1989 compiler and standard runtime library. -* 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 @@ -42,6 +138,21 @@ http://sv.gnu.org/bugs/index.php?group=make&report_id=111&fix_release_id=104&set existing targets were provided in $?). * WARNING: Backward-incompatibility! + Wildcards were not documented as returning sorted values, but the results + have been sorted up until this release.. If your makefiles require sorted + results from wildcard expansions, use the $(sort ...) function to request + it explicitly. + +* WARNING: Backward-incompatibility! + In previous versions of make it was acceptable to list one or more explicit + targets followed by one or more pattern targets in the same rule and it + worked "as expected". However, this was not documented as acceptable and if + you listed any explicit targets AFTER the pattern targets, the entire rule + would be mis-parsed. This release removes this ability completely: make + will generate an error message if you mix explicit and pattern targets in + the same rule. + +* 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 @@ -115,7 +226,7 @@ http://sv.gnu.org/bugs/index.php?group=make&report_id=111&fix_release_id=104&set multi-line variable assignment. -Version 3.81 +Version 3.81 (01 Apr 2006) * GNU make is ported to OS/2. @@ -238,7 +349,7 @@ Version 3.81 could be found on the system. * On VMS there is now support for case-sensitive filesystems such as ODS5. - See the readme.vms file for information. + See the README.VMS file for information. * Parallel builds (-jN) no longer require a working Bourne shell on Windows platforms. They work even with the stock Windows shells, such @@ -256,7 +367,7 @@ A complete list of bugs fixed in this version is available here: http://savannah.gnu.org/bugs/index.php?group=make&report_id=111&fix_release_id=103 -Version 3.80 +Version 3.80 (03 Oct 2002) * A new feature exists: order-only prerequisites. These prerequisites affect the order in which targets are built, but they do not impact @@ -338,7 +449,7 @@ A complete list of bugs fixed in this version is available here: http://savannah.gnu.org/bugs/index.php?group=make&report_id=111&fix_release_id=102 -Version 3.79.1 +Version 3.79.1 (23 Jun 2000) * .SECONDARY with no prerequisites now prevents any target from being removed because make thinks it's an intermediate file, not just those @@ -347,7 +458,7 @@ Version 3.79.1 * New configure option --disable-nsec-timestamps, but this was superseded in later versions by the .LOW_RESOLUTION_TIME pseudo-target. -Version 3.79 +Version 3.79 (04 Apr 2000) * GNU make optionally supports internationalization and locales via the GNU gettext (or local gettext if suitable) package. See the ABOUT-NLS @@ -388,9 +499,9 @@ Version 3.79 returned. * Hartmut Becker provided many updates for the VMS port of GNU make. - See the readme.vms file for more details. + See the README.VMS file for more details. -Version 3.78 +Version 3.78 (22 Sep 1999) * Two new functions, $(error ...) and $(warning ...) are available. The former will cause make to fail and exit immediately upon expansion of @@ -446,7 +557,7 @@ Version 3.78 by running "make check" in the distribution. Note that it requires Perl (either Perl 4 or Perl 5) to run. -Version 3.77 +Version 3.77 (28 Jul 1998) * Implement BSD make's "?=" variable assignment operator. The variable is assigned the specified value only if that variable is not already @@ -492,11 +603,11 @@ Version 3.77 * Updates to the Windows 95/NT port from Rob Tulloh (see README.W32), and to the DOS port from Eli Zaretski (see README.DOS). -Version 3.76.1 +Version 3.76.1 (19 Sep 1997) * Small (but serious) bug fix. Quick rollout to get into the GNU source CD. -Version 3.76 +Version 3.76 (16 Sep 1997) * GNU make now uses automake to control Makefile.in generation. This should make it more consistent with the GNU standards. @@ -541,7 +652,7 @@ Version 3.76 * John W. Eaton has updated the VMS port to support libraries and VPATH. -Version 3.75 +Version 3.75 (27 Aug 1996) * The directory messages printed by `-w' and implicitly in sub-makes, are now omitted if Make runs no commands and has no other messages to print. @@ -562,7 +673,7 @@ Version 3.75 See README.W32 for details, and direct all Windows-related questions to <rob_tulloh@tivoli.com>. -Version 3.73 +Version 3.73 (05 Apr 1995) * Converted to use Autoconf version 2, so `configure' has some new options. See INSTALL for details. @@ -570,7 +681,7 @@ Version 3.73 * You can now send a SIGUSR1 signal to Make to toggle printing of debugging output enabled by -d, at any time during the run. -Version 3.72 +Version 3.72 (04 Nov 1994) * DJ Delorie has ported Make to MS-DOS using the GO32 extender. He is maintaining the DOS port, not the GNU Make maintainer; @@ -604,7 +715,7 @@ Version 3.72 of `.SILENT', then the recipe to update that file will not be printed before it is run. (This change was made to conform to POSIX.2.) -Version 3.71 +Version 3.71 (21 May 1994) * The automatic variables `$(@D)', `$(%D)', `$(*D)', `$(<D)', `$(?D)', and `$(^D)' now omit the trailing slash from the directory name. (This change @@ -626,7 +737,7 @@ Version 3.71 The exit status is 1 only when using -q and some target is not up to date. (This change was made to comply with POSIX.2.) -Version 3.70 +Version 3.70 (03 Jan 1994) * It is no longer a fatal error to have a NUL character in a makefile. You should never put a NUL in a makefile because it can have strange @@ -637,7 +748,7 @@ Version 3.70 makefile name and line number where the `include' appeared, so Emacs's C-x ` command takes you there (in case it's a typo you need to fix). -Version 3.69 +Version 3.69 (07 Nov 1993) * Implicit rule search for archive member references is now done in the opposite order from previous versions: the whole target name `LIB(MEM)' @@ -667,7 +778,7 @@ Version 3.69 * The recipe given for `.DEFAULT' is now used for phony targets with no recipe. -Version 3.68 +Version 3.68 (28 Jul 1993) * You can list several archive member names inside parenthesis: `lib(mem1 mem2 mem3)' is equivalent to `lib(mem1) lib(mem2) lib(mem3)'. @@ -693,16 +804,16 @@ Version 3.68 to set up variables for them. They used to run with the environment that `make' started with. -Version 3.66 +Version 3.66 (21 May 1993) * `make --version' (or `make -v') now exits immediately after printing the version number. -Version 3.65 +Version 3.65 (09 May 1993) * Make now supports long-named members in `ar' archive files. -Version 3.64 +Version 3.64 (21 Apr 1993) * Make now supports the `+=' syntax for a variable definition which appends to the variable's previous value. See the section `Appending More Text @@ -716,7 +827,7 @@ Version 3.64 * The built-in implicit rules now support the alternative extension `.txinfo' for Texinfo files, just like `.texinfo' and `.texi'. -Version 3.63 +Version 3.63 (22 Jan 1993) * Make now uses a standard GNU `configure' script. See the new file INSTALL for the new (and much simpler) installation procedure. @@ -1096,9 +1207,8 @@ Version 3.05 (Changes from versions 1 through 3.05 were never recorded. Sorry.) ------------------------------------------------------------------------------- -Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, -1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, -2010 Free Software Foundation, Inc. This file is part of GNU Make. +Copyright (C) 1988-2013 Free Software Foundation, Inc. +This file is part of GNU Make. GNU Make is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software |