summaryrefslogtreecommitdiffstats
path: root/contrib/bmake
diff options
context:
space:
mode:
authorsjg <sjg@FreeBSD.org>2013-08-16 18:47:18 +0000
committersjg <sjg@FreeBSD.org>2013-08-16 18:47:18 +0000
commit42d7c6c92fee5183075f0133545d40f7150d8dac (patch)
tree47663db9834c599285ef0364ceb20edd57aba204 /contrib/bmake
parent750a378414b03aa9eb44514b557d6b6cf97f660d (diff)
downloadFreeBSD-src-42d7c6c92fee5183075f0133545d40f7150d8dac.zip
FreeBSD-src-42d7c6c92fee5183075f0133545d40f7150d8dac.tar.gz
Add .MAKE.ALWAYS_PASS_JOB_QUEUE knob (default yes)
for backwards compatability.
Diffstat (limited to 'contrib/bmake')
-rw-r--r--contrib/bmake/job.c13
-rw-r--r--contrib/bmake/make.111
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 )
OpenPOWER on IntegriCloud