Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 18 Nov 2017 20:01:15 +0000 (UTC)
From:      Bryan Drewery <bdrewery@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r325974 - in head: . share/mk
Message-ID:  <201711182001.vAIK1FHh002172@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: bdrewery
Date: Sat Nov 18 20:01:15 2017
New Revision: 325974
URL: https://svnweb.freebsd.org/changeset/base/325974

Log:
  Fix top-level targets with read-only OBJDIR.
  
  This also makes it so that top-level build targets do not immediately create
  the OBJDIR.  Only sub-make targets will do so.  This avoids creating object
  directories for targets like 'make check-old' or creating unneeded
  MACHINE.MACHINE_ARCH directories during 'make tinderbox'.
  
  Reported by:	npn, lifanov
  Tested by:	npn, Mark Millard
  Sponsored by:	Dell

Modified:
  head/Makefile.sys.inc
  head/share/mk/src.sys.obj.mk

Modified: head/Makefile.sys.inc
==============================================================================
--- head/Makefile.sys.inc	Sat Nov 18 20:01:12 2017	(r325973)
+++ head/Makefile.sys.inc	Sat Nov 18 20:01:15 2017	(r325974)
@@ -33,6 +33,11 @@ _CAN_USE_AUTO_OBJ?= yes
 .if !defined(_CAN_USE_AUTO_OBJ)
 _MAKEARGS+=		MK_AUTO_OBJ=no
 MK_AUTO_OBJ=		no
+# This will prevent src.sys.obj.mk from opportunistically enabling AUTO_OBJ
+# in this make execution and for sub-makes.  For all of these targets we
+# just want to read any existing OBJDIR but we don't care if we can create
+# or write to them.
+.MAKEOVERRIDES+=	MK_AUTO_OBJ
 .endif
 .endif	# empty(.MAKEOVERRIDES:MMK_AUTO_OBJ)
 

Modified: head/share/mk/src.sys.obj.mk
==============================================================================
--- head/share/mk/src.sys.obj.mk	Sat Nov 18 20:01:12 2017	(r325973)
+++ head/share/mk/src.sys.obj.mk	Sat Nov 18 20:01:15 2017	(r325974)
@@ -19,6 +19,12 @@
 #  TARGET.TARGET_ARCH added in as it assumes that MAKEOBJDIRPREFIX is
 #  nested in the existing OBJTOP with TARGET.TARGET_ARCH in it.
 #
+#  The expected OBJDIR is stored in __objdir for auto.obj.mk to use.
+#
+#  AUTO_OBJ is opportunistically enabled if the computed .OBJDIR is writable
+#  by the current user.  Some top-level targets disable this behavior in
+#  Makefile.sys.inc.
+#
 
 _default_makeobjdirprefix?=	/usr/obj
 _default_makeobjdir=	$${.CURDIR:S,^$${SRCTOP},$${OBJTOP},}



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201711182001.vAIK1FHh002172>