summaryrefslogtreecommitdiffstats
path: root/contrib/bmake/job.c
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/bmake/job.c')
-rw-r--r--contrib/bmake/job.c13
1 files changed, 12 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'
OpenPOWER on IntegriCloud