mirror of
https://github.com/mirror/make.git
synced 2026-08-19 08:23:28 +08:00
Use a recursive environment if any command needs it
We only create one target environment for all commands in a recipe. Ensure it's set for recursive make if ANY command is recursive, not just the first one. * src/job.c (start_job_command): Check for any recursive command. * tests/scripts/features/jobserver: Test recursion on second line.
This commit is contained in:
11
src/job.c
11
src/job.c
@@ -1420,9 +1420,16 @@ start_job_command (struct child *child)
|
||||
child->deleted = 0;
|
||||
|
||||
#ifndef _AMIGA
|
||||
/* Set up the environment for the child. */
|
||||
/* Set up the environment for the child.
|
||||
It's a slight inaccuracy to set the environment for recursive make even
|
||||
for command lines that aren't recursive, but I don't want to have to
|
||||
recompute the target environment for each command. Better would be to
|
||||
keep a separate entry for MAKEFLAGS in the environment so it could be
|
||||
replaced on its own. For now just set it for all lines.
|
||||
*/
|
||||
if (child->environment == 0)
|
||||
child->environment = target_environment (child->file, child->recursive);
|
||||
child->environment = target_environment (child->file,
|
||||
child->file->cmds->any_recurse);
|
||||
#endif
|
||||
|
||||
#if !defined(__MSDOS__) && !defined(_AMIGA) && !defined(WINDOWS32)
|
||||
|
||||
Reference in New Issue
Block a user