Skip to content

Commit

Permalink
Fix top-level targets with read-only OBJDIR.
Browse files Browse the repository at this point in the history
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
  • Loading branch information
bdrewery committed Nov 18, 2017
1 parent a7fa261 commit 7e0aabd
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 0 deletions.
5 changes: 5 additions & 0 deletions Makefile.sys.inc
Original file line number Diff line number Diff line change
Expand Up @@ -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)

Expand Down
6 changes: 6 additions & 0 deletions share/mk/src.sys.obj.mk
Original file line number Diff line number Diff line change
Expand Up @@ -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},}
Expand Down

0 comments on commit 7e0aabd

Please sign in to comment.