diff --git a/Makefile.sys.inc b/Makefile.sys.inc index c21ed19bdc62..6bb597de2fd7 100644 --- a/Makefile.sys.inc +++ b/Makefile.sys.inc @@ -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) diff --git a/share/mk/src.sys.obj.mk b/share/mk/src.sys.obj.mk index fe15717d4f05..3671f974742a 100644 --- a/share/mk/src.sys.obj.mk +++ b/share/mk/src.sys.obj.mk @@ -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},}