make-alpha
[Top][All Lists]
Advanced

[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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]