Index: /trunk/kBuild/header.kmk
===================================================================
--- /trunk/kBuild/header.kmk	(revision 3030)
+++ /trunk/kBuild/header.kmk	(revision 3031)
@@ -1646,7 +1646,9 @@
 
 
-#
-# An internal define used by subheader.kmk and subfooter.kmk.
-# We keep them here to avoid redefining them for each sub-makefile.
+##
+# An internal define used by subheader.kmk, subfooter.kmk, and
+# KB_FN_PASS_0_ON_TARGET.
+#
+# @param target    The target to process.
 #
 define def_subfooter_header_target_pass
@@ -1668,4 +1670,11 @@
 endef
 
+##
+# Function to call to set _0_OUTDIR, _DEFPATH, and _MAKEFILE earlier than subfooter.
+# Can be used to avoid exploiting double expansion.
+#
+# @param 1     The target name.
+KB_FN_DO_PASS0_ON_TARGET = $(foreach target,$1,$(if-expr defined($(target)_0_OUTDIR),,$(evalval def_subfooter_header_target_pass)))
+
 
 #
