diff --git a/sys/conf/kern.pre.mk b/sys/conf/kern.pre.mk index 3081edcaae64..cf1b127bdf0a 100644 --- a/sys/conf/kern.pre.mk +++ b/sys/conf/kern.pre.mk @@ -198,6 +198,12 @@ SYSTEM_LD_TAIL= @${OBJCOPY} --strip-symbol gcc2_compiled. ${.TARGET} ; \ ${SIZE} ${.TARGET} ; chmod 755 ${.TARGET} SYSTEM_DEP+= ${LDSCRIPT} +# Calculate path for .m files early, if needed. +.if !defined(_MPATH) +__MPATH!=find ${S:tA}/ -name \*_if.m +_MPATH=${__MPATH:H:O:u} +.endif + # MKMODULESENV is set here so that port makefiles can augment # them. @@ -214,6 +220,7 @@ MKMODULESENV+= MODULES_OVERRIDE="${MODULES_OVERRIDE}" .if defined(DEBUG) MKMODULESENV+= DEBUG_FLAGS="${DEBUG}" .endif +MKMODULESENV+= _MPATH="${_MPATH}" # Detect kernel config options that force stack frames to be turned on. DDB_ENABLED!= grep DDB opt_ddb.h || true ; echo diff --git a/sys/conf/kmod.mk b/sys/conf/kmod.mk index 989d6813c186..87451df3f915 100644 --- a/sys/conf/kmod.mk +++ b/sys/conf/kmod.mk @@ -355,8 +355,10 @@ vnode_if_typedef.h: .endif # Build _if.[ch] from _if.m, and clean them when we're done. +.if !defined(_MPATH) __MPATH!=find ${SYSDIR:tA}/ -name \*_if.m _MPATH=${__MPATH:H:O:u} +.endif .PATH.m: ${_MPATH} .for _s in ${SRCS:M*_if.[ch]} .if eixsts(${_s:R}.m})