Index: /trunk/src/VBox/VMM/Makefile.kmk
===================================================================
--- /trunk/src/VBox/VMM/Makefile.kmk	(revision 66637)
+++ /trunk/src/VBox/VMM/Makefile.kmk	(revision 66638)
@@ -344,15 +344,18 @@
 # Generate macro template for IEM instruction statistics.
 #
+$(call KB_FN_DO_PASS0_ON_TARGET,VBoxVMM) # Set VBoxVMM_0_OUTDIR
 VBoxVMM_INTERMEDIATES += $(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMInstructionStatisticsTmpl.h
 VBoxVMM_CLEAN         += \
 	$(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMInstructionStatisticsTmpl.h.ts \
 	$(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMInstructionStatisticsTmpl.h
-$$(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMInstructionStatisticsTmpl.h.ts \
-+| $$(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMInstructionStatisticsTmpl.h: \
+$(call KB_FN_AUTO_CMD_DEPS,$(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMInstructionStatisticsTmpl.h.ts)
+$(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMInstructionStatisticsTmpl.h.ts \
++| $(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMInstructionStatisticsTmpl.h: \
 		$(PATH_SUB_CURRENT)/VMMAll/IEMAllInstructions.cpp.h \
 		$(PATH_SUB_CURRENT)/VMMAll/IEMAllInstructionsOneByte.cpp.h \
 		$(PATH_SUB_CURRENT)/VMMAll/IEMAllInstructionsTwoByte0f.cpp.h \
 		$(PATH_SUB_CURRENT)/VMMAll/IEMAllInstructionsVexMap1.cpp.h
-	$(QUIET)$(call MSG_GENERATE,VBoxVMM,$@,$<)
+	$(call KB_FN_AUTO_CMD_DEPS_COMMANDS)
+	$(QUIET)$(call MSG_GENERATE,VBoxVMM,$@,VMMAll/IEMAllInstructions*.cpp.h)
 	$(QUIET)$(RM) -f -- "$@.tmp" "$@.tmp" "$@.sorted"
 	$(QUIET)$(MKDIR) -p -- "$(dir $@)"
@@ -394,5 +397,5 @@
 	$(QUIET)$(CP) -v -f --changed -- "$@" "$(patsubst %.ts,%,$@)"
 
-foobar: $$(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMInstructionStatisticsTmpl.h
+foobar: $(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMInstructionStatisticsTmpl.h
 
 if "$(KBUILD_TARGET)" == "win" && !defined(VBOX_ONLY_EXTPACKS_USE_IMPLIBS)
@@ -443,6 +446,9 @@
  VMMRCImp_SOURCES = $(VMMRCImp_0_OUTDIR)/VMMRC.def
  VMMRCImp_CLEAN   = $(VMMRCImp_0_OUTDIR)/VMMRC.def
-
- $$(VMMRCImp_0_OUTDIR)/VMMRC.def: $(PATH_SUB_CURRENT)/VMMRC/VMMRC.def | $$(dir $$@)
+ $(call KB_FN_DO_PASS0_ON_TARGET,VMMRCImp)
+
+ $(call KB_FN_AUTO_CMD_DEPS,$(VMMRCImp_0_OUTDIR)/VMMRC.def)
+ $(VMMRCImp_0_OUTDIR)/VMMRC.def: $(PATH_SUB_CURRENT)/VMMRC/VMMRC.def | $$(dir $$@)
+	$(call KB_FN_AUTO_CMD_DEPS_COMMANDS)
  ifeq ($(VBOX_LDR_FMT32),lx)
 	$(SED) \
@@ -451,5 +457,5 @@
 		-e 's/[ \t]DATA[ \t]*/ /' \
 		--output $@ \
-		$<
+		$(PATH_SUB_CURRENT)/VMMRC/VMMRC.def
 	$(APPEND) "$@" ""
 	$(APPEND) "$@" "    ___ehInit"
@@ -458,5 +464,5 @@
 		-e '/not-win/d' \
 		-e '/not-$(KBUILD_TARGET_ARCH)/d' \
-		--output $@ $<
+		--output $@ $(PATH_SUB_CURRENT)/VMMRC/VMMRC.def
  endif
 
@@ -475,6 +481,9 @@
   VMMR0Imp_POST_CMDS = $(KLIBTWEAKER_EXT) --clear-timestamps --fill-null_thunk_data $(out)
  endif
-
- $$(VMMR0Imp_0_OUTDIR)/VMMR0.def: $(PATH_SUB_CURRENT)/VMMR0/VMMR0.def | $$(dir $$@)
+ $(call KB_FN_DO_PASS0_ON_TARGET,VMMR0Imp)
+
+ $(call KB_FN_AUTO_CMD_DEPS,$(VMMR0Imp_0_OUTDIR)/VMMR0.def)
+ $(VMMR0Imp_0_OUTDIR)/VMMR0.def: $(PATH_SUB_CURRENT)/VMMR0/VMMR0.def | $$(dir $$@)
+	$(call KB_FN_AUTO_CMD_DEPS_COMMANDS)
  ifeq ($(VBOX_LDR_FMT),lx)
 	$(SED) \
@@ -483,5 +492,5 @@
 		-e 's/^[ \t][ \t]*\([a-zA-Z]\)/    _\1/' \
 		-e 's/[ \t]DATA[ \t]*/ /'  \
-		--output $@ $<
+		--output $@ $(PATH_SUB_CURRENT)/VMMR0/VMMR0.def
 	$(APPEND) "$@" ""
 	$(APPEND) "$@" "    ___ehInit"
@@ -490,5 +499,5 @@
 		-e '/not-win/d' \
 		-e '/not-$(KBUILD_TARGET_ARCH)/d' \
-		--output $@ $<
+		--output $@ $(PATH_SUB_CURRENT)/VMMR0/VMMR0.def
  endif
 endif # R0: pe + lx
@@ -510,6 +519,10 @@
  VMMR3LazyImp_SOURCES  = $(VMMR3LazyImp_0_OUTDIR)/VMMR3LazyLoad.asm
  VMMR3LazyImp_CLEAN    = $(VMMR3LazyImp_0_OUTDIR)/VMMR3LazyLoad.asm
- $$(VMMR3LazyImp_0_OUTDIR)/VMMR3LazyLoad.asm: $(PATH_SUB_CURRENT)/VMMR3/VMMR3.def $(VBOX_DEF_2_LAZY_LOAD) | $$(dir $$@)
-	$(VBOX_DEF_2_LAZY_LOAD) --output $@ --library VBoxVMM $<
+ $(call KB_FN_DO_PASS0_ON_TARGET,VMMR3LazyImp)
+
+ $(call KB_FN_AUTO_CMD_DEPS,$(VMMR3LazyImp_0_OUTDIR)/VMMR3LazyLoad.asm)
+ $(VMMR3LazyImp_0_OUTDIR)/VMMR3LazyLoad.asm: $(PATH_SUB_CURRENT)/VMMR3/VMMR3.def $(VBOX_DEF_2_LAZY_LOAD) | $$(dir $$@)
+	$(call KB_FN_AUTO_CMD_DEPS_COMMANDS)
+	$(VBOX_DEF_2_LAZY_LOAD) --output $@ --library VBoxVMM $(PATH_SUB_CURRENT)/VMMR3/VMMR3.def
 endif
 
@@ -853,5 +866,6 @@
  	$(VMMLibDTrace_0_OUTDIR)/cpum.d \
  	$(VMMLibDTrace_0_OUTDIR)/CPUMInternal.d \
- 	$(VMMLibDTrace_0_OUTDIR)/x86.d \
+ 	$(VMMLibDTrace_0_OUTDIR)/x86.d
+ $(call KB_FN_DO_PASS0_ON_TARGET,VMMLibDTrace)
 
 
@@ -860,6 +874,8 @@
  #
  define def_vmm_lib_dtrace_preprocess
-  $$$$(VMMLibDTrace_0_OUTDIR)/$1: $2 $$(VBOX_VBOXCPP) | $$$$(dir $$$$@)
-	$$(QUIET)$$(call MSG_GENERATE,VMMLibDTrace,$$@,$$<)
+  $$(call KB_FN_AUTO_CMD_DEPS,$$(VMMLibDTrace_0_OUTDIR)/$1)
+  $$(VMMLibDTrace_0_OUTDIR)/$1: $2 $$(VBOX_VBOXCPP) | $$$$(dir $$$$@)
+	$$(call KB_FN_AUTO_CMD_DEPS_COMMANDS)
+	$$(QUIET)$$(call MSG_GENERATE,VMMLibDTrace,$$@,$2)
 	$$(QUIET)$(VBOX_VBOXCPP) -d \
 		-D VBOX_FOR_DTRACE_LIB \
@@ -881,5 +897,5 @@
 			$$(ARCH_BITS_DEFS)\
 		   ,-D '$$(def)') \
-		$$< \
+		$2 \
 		$$@
 	$$(QUIET)$$(CHMOD) 644 $$@
@@ -965,6 +981,7 @@
  OTHERS      += $(PATH_TARGET)/undef-rc.run
  CLEANS      += $(PATH_TARGET)/undef-rc.run
- $(PATH_TARGET)/undef-rc.run: \
-		$$(VMMRC_1_TARGET)
+ $(call KB_FN_AUTO_CMD_DEPS,$(PATH_TARGET)/undef-rc.run)
+ $(PATH_TARGET)/undef-rc.run: $$(VMMRC_1_TARGET)
+	$(call KB_FN_AUTO_CMD_DEPS_COMMANDS)
  ifn1of ($(KBUILD_TARGET), linux solaris)
  else
