diff options
-rw-r--r-- | contrib/bmake/job.c | 13 | ||||
-rw-r--r-- | contrib/bmake/make.1 | 11 |
2 files changed, 23 insertions, 1 deletions
diff --git a/contrib/bmake/job.c b/contrib/bmake/job.c index c8af895..4d901b0 100644 --- a/contrib/bmake/job.c +++ b/contrib/bmake/job.c @@ -172,6 +172,14 @@ __RCSID("$NetBSD: job.c,v 1.175 2013/07/30 19:09:57 sjg Exp $"); # define STATIC static /* + * FreeBSD: traditionally .MAKE is not required to + * pass jobs queue to sub-makes. + * Use .MAKE.ALWAYS_PASS_JOB_QUEUE=no to disable. + */ +#define MAKE_ALWAYS_PASS_JOB_QUEUE ".MAKE.ALWAYS_PASS_JOB_QUEUE" +static int Always_pass_job_queue = TRUE; + +/* * error handling variables */ static int errors = 0; /* number of errors reported */ @@ -1360,7 +1368,7 @@ JobExec(Job *job, char **argv) (void)fcntl(0, F_SETFD, 0); (void)lseek(0, (off_t)0, SEEK_SET); - if (job->node->type & OP_MAKE) { + if (Always_pass_job_queue || (job->node->type & OP_MAKE)) { /* * Pass job token pipe to submakes. */ @@ -2226,6 +2234,9 @@ Job_Init(void) lastNode = NULL; + Always_pass_job_queue = getBoolean(MAKE_ALWAYS_PASS_JOB_QUEUE, + Always_pass_job_queue); + /* * There is a non-zero chance that we already have children. * eg after 'make -f- <<EOF' diff --git a/contrib/bmake/make.1 b/contrib/bmake/make.1 index 4e3c111..0dec8ef 100644 --- a/contrib/bmake/make.1 +++ b/contrib/bmake/make.1 @@ -721,6 +721,17 @@ The preferred variable to use is the environment variable because it is more compatible with other versions of .Nm and cannot be confused with the special target with the same name. +.It Va .MAKE.ALWAYS_PASS_JOB_QUEUE +Tells +.Nm +whether to pass the descriptors of the job token queue +even if the target is not tagged with +.Ic .MAKE +The default is +.Ql Pa yes +for backwards compatability with +.Fx 9 +and earlier. .It Va .MAKE.DEPENDFILE Names the makefile (default .Ql Pa .depend ) |