WITH_META_MODE: Move the kernel support to kern.pre.mk.

This allows using META_MODE directly from the kernel build directory.
This also allows removing a hack from the DIRDEPS_BUILD kernel target.

Sponsored by:	EMC / Isilon Storage Division
This commit is contained in:
Bryan Drewery 2016-05-26 23:20:01 +00:00
parent 2d86a958e2
commit 016448a507
3 changed files with 6 additions and 8 deletions

View File

@ -591,11 +591,6 @@ IMAKE_MTREE= MTREE_CMD="mtree ${MTREEFLAGS}"
# kernel stage
KMAKEENV= ${WMAKEENV}
KMAKE= ${KMAKEENV} ${MAKE} ${.MAKEFLAGS} ${KERNEL_FLAGS} KERNEL=${INSTKERNNAME}
.if ${MK_META_MODE} == "yes"
# meta mode normally is disallowed when building from curdir==objdir, but we
# want to allow it for the kernel build.
KMAKEENV+= META_MODE="${.MAKE.MODE} curdirOk=yes"
.endif
#
# buildworld

View File

@ -19,6 +19,11 @@ _srcconf_included_:
.include <bsd.compiler.mk>
.include "kern.opts.mk"
# The kernel build always occurs in the object directory which is .CURDIR.
.if ${.MAKE.MODE:Unormal:Mmeta}
.MAKE.MODE+= curdirOk=yes
.endif
# Can be overridden by makeoptions or /etc/make.conf
KERNEL_KO?= kernel
KERNEL?= kernel

View File

@ -15,10 +15,8 @@ ${KERNCONF}.config: .MAKE ${META_DEPS}
(cd ${KERN_CONFDIR} && \
${CONFIG} ${CONFIGARGS} -d ${KERN_OBJDIR} ${KERNCONF})
# we need to pass curdirOk=yes to meta mode, since we want .meta files
# in ${KERN_OBJDIR}
${KERNCONF}.build: .MAKE ${KERNCONF}.config
(cd ${KERN_OBJDIR} && META_MODE="${.MAKE.MODE} curdirOk=yes" ${.MAKE})
(cd ${KERN_OBJDIR} && ${.MAKE})
.if ${.MAKE.LEVEL} > 0
all: ${KERNCONF}.build