What's new in GNU Make 4.4.1
Feb 27, 2023
- NEWS: Set the release number and date.
- configure.ac: Update the version.
- README.git: Remind to update doc/make.1.
- doc/make.1: Update the date. Fix some "GNU Make" references.
- doc/make.texi: Update the edition.
- tests/scripts/options/dash-l: Simplify the test via the helper
- tests/thelp.pl: Add "exist" and "noexist" operators.
New in GNU Make 4.2.1 (Dec 3, 2017)
- maintMakefile: TP recommends rsync for retrieving PO files.
- main.c (main): [SV 48009] Reset stack limit for make re-exec.
- [SV 47995] Ensure forced double-colon rules work with -j.
- filedef.h (struct file): make CONSIDERED an unsigned int.
- main.c (main): No longer need to reset CONSIDERED.
- remake.c (update_goal_chain): increment CONSIDERED rather than inverting it between 01.
- (update_file_1): Reset CONSIDERED to 0 so it's re-considered.
- (check_dep): Ditto.
- tests/scripts/features/double_colon: Add a regression test.
- DELETE_ON_ERROR: [SV 48061] Use "exit 1" for portability.
- w32/pathstuff.c: [SV 47996] Use ISBLANK() not isblank().
- Fix printing time stamps on MS-Windows
- [SV 48037] Fix MinGW build with Posix configury tools
New in GNU Make 4.1 (Oct 6, 2014)
- New variables: $(MAKE_TERMOUT) and $(MAKE_TERMERR) are set to non-empty values if stdout or stderr, respectively, are believed to be writing to a terminal. These variables are exported by default.
- Allow a no-text-argument form of the $(file ...) function. Without a text argument nothing is written to the file: it is simply opened in the requested mode, then closed again.
- Change the fatal error for mixed explicit and implicit rules, that was introduced in GNU make 3.82, to a non-fatal error. However, this syntax is still deprecated and may return to being illegal in a future version of GNU make. Makefiles that rely on this syntax should be fixed.
New in GNU Make 4.0 (Oct 10, 2013)
- configure.ac: Updated for the release.
- NEWS: Updated for the release.
- maintMakefile (tag-release): New target to add a Git tag.
- read.c (eval): Typo fix.
- ChangeLog.1: Typo fixes.
- w32/subproc/sub_proc.c (process_cleanup): Typo fix.
- w32/compat/posixfcn.c (tmpfile): Move declaration of h before the first executable statement.
- makeint.h (MAP_USERFUNC): A new map type for function names.
- main.c (initialize_stopchar_map): Set up the function name map.
- gnumake.h (gmk_func_ptr): Define a type for function pointers.
- (gmk_add_function): Convert the last argument to FLAGS.
- (GMK_FUNC_*): Define flags for the function. Change the default
- behavior to "expand" since that's the most common one.
- function.c (function_table_entry): Use new function pointer type.
- (lookup_function): Accept any valid function name character based on the MAP_USERFUNC values.
- (define_new_function): Use the new calling signature. Verify that registered functions have valid names.
- guile.c (guile_gmake_setup): Use new calling signatures.
- loadapi.c (gmk_add_function): Ditto.
- variable.h (define_new_function): Ditto.
- doc/make.texi (Loaded Object API): Make the registered function API documentation more clear.
- function.c (abspath): Reset root_len to one for Cygwin only when HAVE_DOS_PATHS is defined.
- Fix $abspath on Cygwin when HAVE_DOS_PATHS is in effect.
- function.c (IS_ABSOLUTE) [__CYGWIN__]: Special definition for Cygwin.
- (abspath) [__CYGWIN__]: Reset root_len to 1 if the absolute file name has the Posix /foo/bar form.
- [HAVE_DOS_PATHS]: Use root_len instead of hard-coded 2.