svn commit: r254419 - head/contrib/bmake

Simon J. Gerraty sjg at FreeBSD.org
Fri Aug 16 18:47:19 UTC 2013


Author: sjg
Date: Fri Aug 16 18:47:18 2013
New Revision: 254419
URL: http://svnweb.freebsd.org/changeset/base/254419

Log:
  Add .MAKE.ALWAYS_PASS_JOB_QUEUE knob (default yes)
  for backwards compatability.

Modified:
  head/contrib/bmake/job.c
  head/contrib/bmake/make.1

Modified: head/contrib/bmake/job.c
==============================================================================
--- head/contrib/bmake/job.c	Fri Aug 16 16:55:39 2013	(r254418)
+++ head/contrib/bmake/job.c	Fri Aug 16 18:47:18 2013	(r254419)
@@ -172,6 +172,14 @@ __RCSID("$NetBSD: job.c,v 1.175 2013/07/
 # 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'

Modified: head/contrib/bmake/make.1
==============================================================================
--- head/contrib/bmake/make.1	Fri Aug 16 16:55:39 2013	(r254418)
+++ head/contrib/bmake/make.1	Fri Aug 16 18:47:18 2013	(r254419)
@@ -721,6 +721,17 @@ The preferred variable to use is the env
 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 )


More information about the svn-src-all mailing list