[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[SCM] make branch, master, updated. 4.4-16-g61646089
From: |
Paul D. Smith |
Subject: |
[SCM] make branch, master, updated. 4.4-16-g61646089 |
Date: |
Mon, 28 Nov 2022 17:21:24 -0500 (EST) |
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "make".
The branch, master has been updated
via 6164608900ad5cc882d4d4bf1b7341d45d743bdf (commit)
via a99183ed2b8bfc474be16e42dad38d09b06cd69b (commit)
via dc2d963989b96161472b2cd38cef5d1f4851ea34 (commit)
from 53b8f6a5da5cd8c585d0de28d7ad6a8912061c64 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 6164608900ad5cc882d4d4bf1b7341d45d743bdf
Author: Dmitry Goncharov <dgoncharov@users.sf.net>
Date: Sun Nov 27 15:40:28 2022 -0500
[SV 63417] Ensure global .NOTINTERMEDIATE disables all intermediates
Fix .NOTINTERMEDIATE without prerequisites to disable intermediate
status for all targets.
* src/makeint.h: Declare extern no_intermediates.
* src/main.c: Add global definition of no_intermediates.
* src/file.c: Remove static no_intermediates to use global variable.
(remove_intermediates): Check no_intermediates.
* src/implicit.c (pattern_search): For a file found by implicit search
set file->notintermediate if no_intermediates is set.
* src/remake.c (update_file_1): Don't set file->secondary for a
pre-existing file if no_intermediates is set. The check for
no_intermediates here is redundant, but won't hurt: keep it in case
things change so that it matters.
* tests/scripts/targets/NOTINTERMEDIATE: Fix a test.
commit a99183ed2b8bfc474be16e42dad38d09b06cd69b
Author: Paul Smith <psmith@gnu.org>
Date: Sun Nov 27 15:31:56 2022 -0500
* doc/make.texi: Use $(firstword) rather than $(word 1,)
commit dc2d963989b96161472b2cd38cef5d1f4851ea34
Author: Dmitry Goncharov <dgoncharov@users.sf.net>
Date: Sun Nov 27 14:09:17 2022 -0500
[SV 63347] Always add command line variable assignments to MAKEFLAGS
This commit introduces two visible changes:
1. Keep command line variable assignments in MAKEFLAGS at all times,
even while parsing makefiles.
2. Define makeflags immediately when a makefile modifies MAKEFLAGS.
The new MAKEFLAGS and MAKEOVERRIDES initialization procedure:
1. decode_switches (argc, argv, o_command) is called to parse command
line variable assignments.
2. Command line variable assignments go through quote_for_env.
Initialize -*-command-variables-*- to the quoted values.
3. MAKEOVERRIDES is initialized to refer to -*-command-variables-*-
with origin o_env to keep the definitions in the database intact.
4. define_makeflags() is called which adds MAKEOVERRIDES to MAKEFLAGS.
5. Makefiles are parsed. If a makefile modifies MAKEFLAGS, the new
value of MAKEFLAGS is defined right away.
6. Env switches are decoded again as o_env. The definitions set by
decode_switches at step 1 stay intact, as o_command beats o_env.
We must preserve the original intact definitions in order to detect
failure cases; for example:
$ cat makefile
all:; $(hello)
$ make hello='$(world'
makefile:1: *** unterminated variable reference. Stop.
* src/makeint.h: Declare enum variable_origin, struct variable and
define_makeflags(). Add parameter origin to decode_env_switches().
* src/main.c (define_makeflags): Remove "all". If a variable is
assigned on the command line then append MAKEOVERRIDES to MAKEFLAGS.
(decode_env_switches): Replace parameter env with origin.
(decode_switches): Replace parameter env with origin.
Treat origin == o_command as env == 0.
(handle_non_switch_argument): Replace parameter env with origin.
Treat origin == o_command as env == 0.
(main): Call decode_switches() with origin==o_command before parsing
makefiles. Call decode_switches() with origin==o_env after parsing
makefiles.
* src/variable.c (set_special_var): Define makeflags at parse time,
each time a makefile modifies MAKEFLAGS.
(do_variable_definition): Strip command line variable assignments from
MAKEFLAGS before appending extra flags. set_special_var() adds them
back.
* tests/scripts/variables/MAKEFLAGS: Add tests.
-----------------------------------------------------------------------
Summary of changes:
doc/make.texi | 2 +-
src/file.c | 7 +-
src/implicit.c | 6 +-
src/main.c | 93 ++++++------
src/makeint.h | 8 +-
src/remake.c | 3 +-
src/variable.c | 72 +++++----
tests/scripts/targets/NOTINTERMEDIATE | 3 -
tests/scripts/variables/MAKEFLAGS | 273 ++++++++++++++++++++++++++++++----
9 files changed, 349 insertions(+), 118 deletions(-)
hooks/post-receive
--
make
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [SCM] make branch, master, updated. 4.4-16-g61646089,
Paul D. Smith <=