Index: /trunk/src/VBox/Main/Makefile.kmk
===================================================================
--- /trunk/src/VBox/Main/Makefile.kmk	(revision 66635)
+++ /trunk/src/VBox/Main/Makefile.kmk	(revision 66636)
@@ -249,4 +249,5 @@
 	$(VBox-python-glue_0_OUTDIR)/VirtualBox_constants.py
 
+ ## @todo $(call KB_FN_AUTO_CMD_DEPS,$$(VBox-python-glue_0_OUTDIR)/VirtualBox_constants.py) - need to fix the double expansion here
 $$(VBox-python-glue_0_OUTDIR)/VirtualBox_constants.py:  \
 		$(VBOX_PATH_MAIN_SRC)/glue/constants-python.xsl \
@@ -647,5 +648,5 @@
 
 #
-# Generate some event stuff for VBoxSVC and VBoxC.
+# Generate some event stuff for VBoxSVC and VBoxC.       $(MAKEFILE
 #
 $(VBOX_AUTOGEN_EVENT_H): $(VBOX_PATH_MAIN_SRC)/idl/comimpl.xsl $(VBOX_XIDL_FILE) | $$(dir $$@)
@@ -940,4 +941,5 @@
 VBoxC_CLEAN.win  += $(VBoxC_0_OUTDIR)/VBoxC.rgs
 
+ ## @todo $(call KB_FN_AUTO_CMD_DEPS,$$(VBoxC_0_OUTDIR)/VBoxC.rgs) - need to fix the double expansion here
 $$(VBoxC_0_OUTDIR)/VBoxC.rgs: $(VBOX_PATH_MAIN_SRC)/src-all/win/VirtualBox_rgs.xsl $(VBOX_XIDL_FILE) | $$(dir $$@)
 	$(VBOX_XSLTPROC) --stringparam Application VirtualBox --stringparam Module VBoxC -o $@ $< $(VBOX_XIDL_FILE)
@@ -998,4 +1000,5 @@
  	$(VBoxCOM-x86_0_OUTDIR)/VirtualBox-x86.tlb
 
+ ## @todo $(call KB_FN_AUTO_CMD_DEPS,$$(VBoxClient-x86_0_OUTDIR)/VBoxClient-x86.rgs) - need to fix the double expansion here
  $$(VBoxClient-x86_0_OUTDIR)/VBoxClient-x86.rgs: \
  		$(VBOX_PATH_MAIN_SRC)/src-all/win/VirtualBox_rgs.xsl \
@@ -1206,24 +1209,33 @@
 glue/xpcom/helpers.cpp: $(VBOX_IDL_TYPELIB.XPCOM)
 
+$(call KB_FN_AUTO_CMD_DEPS_EX,$(VBOX_IDL_FILE.XPCOM),$(PATH_OUT)/VBOX_IDL_FILE.XPCOM.vbox-dep)
 $(VBOX_IDL_FILE.XPCOM): $(VBOX_PATH_MAIN_SRC)/idl/xpidl.xsl $(VBOX_XIDL_FILE) | $$(dir $$@)
-	$(call MSG_TOOL,xsltproc,VBoxSVC,$<,$@)
-	$(QUIET)$(VBOX_XSLTPROC) -o $@ $< $(VBOX_XIDL_FILE)
-
+	$(call KB_FN_AUTO_CMD_DEPS_COMMANDS_EX,$(PATH_OUT)/VBOX_IDL_FILE.XPCOM.vbox-dep)
+	$(call MSG_TOOL,xsltproc,VBoxSVC,$(VBOX_PATH_MAIN_SRC)/idl/xpidl.xsl,$@)
+	$(QUIET)$(VBOX_XSLTPROC) -o $@ $(VBOX_PATH_MAIN_SRC)/idl/xpidl.xsl $(VBOX_XIDL_FILE)
+
+$(call KB_FN_AUTO_CMD_DEPS_EX,$(VBOX_IDL_TYPELIB.XPCOM),$(PATH_OUT)/VBOX_IDL_TYPELIB.XPCOM.vbox-dep)
 $(VBOX_IDL_TYPELIB.XPCOM): $(VBOX_IDL_FILE.XPCOM) |  $$(dir $$@) $(VBOX_XPIDL)
-	$(call MSG_TOOL,xpidl,VBoxSVC,$<,$@)
-	$(QUIET)$(VBOX_XPIDL_ENV)$(VBOX_XPIDL) -m typelib -I $(VBOX_PATH_XPCOM_IDL) -e $@ $<
+	$(call KB_FN_AUTO_CMD_DEPS_COMMANDS_EX,$(PATH_OUT)/VBOX_IDL_TYPELIB.XPCOM.vbox-dep)
+	$(call MSG_TOOL,xpidl,VBoxSVC,$(VBOX_IDL_FILE.XPCOM),$@)
+	$(QUIET)$(VBOX_XPIDL_ENV)$(VBOX_XPIDL) -m typelib -I $(VBOX_PATH_XPCOM_IDL) -e $@ $(VBOX_IDL_FILE.XPCOM)
 	$(CHMOD) 0644 $@
 ## @todo ^^^^^^^^^^^^ fix horrible hack
 
+$(call KB_FN_AUTO_CMD_DEPS_EX,$(VBOX_IDL_HEADER.XPCOM),$(PATH_OUT)/VBOX_IDL_HEADER.XPCOM.vbox-dep)
 $(VBOX_IDL_HEADER.XPCOM): $(VBOX_IDL_FILE.XPCOM) | $$(dir $$@) $(VBOX_XPIDL)
-	$(call MSG_TOOL,xpidl,VBoxSVC,$<,$@)
-	$(QUIET)$(VBOX_XPIDL_ENV)$(VBOX_XPIDL) -m header  -I $(VBOX_PATH_XPCOM_IDL) -e $@ $<
-
+	$(call KB_FN_AUTO_CMD_DEPS_COMMANDS_EX,$(PATH_OUT)/VBOX_IDL_HEADER.XPCOM.vbox-dep)
+	$(call MSG_TOOL,xpidl,VBoxSVC,$(VBOX_IDL_FILE.XPCOM),$@)
+	$(QUIET)$(VBOX_XPIDL_ENV)$(VBOX_XPIDL) -m header  -I $(VBOX_PATH_XPCOM_IDL) -e $@ $(VBOX_IDL_FILE.XPCOM)
+
+$(call KB_FN_AUTO_CMD_DEPS_EX,$(VBOX_IDL_FILE.MSCOM),$(PATH_OUT)/VBOX_IDL_FILE.MSCOM.vbox-dep)
 $(VBOX_IDL_FILE.MSCOM): $(VBOX_PATH_MAIN_SRC)/idl/midl.xsl $(VBOX_XIDL_FILE) | $$(dir $$@)
+	$(call KB_FN_AUTO_CMD_DEPS_COMMANDS_EX,$(PATH_OUT)/VBOX_IDL_FILE.MSCOM.vbox-dep)
 	$(call MSG_TOOL,xsltproc,VBoxSVC,$<,$@)
 	$(QUIET)$(VBOX_XSLTPROC) -o $@ \
 		$(if $(VBOX_WITH_MIDL_PROXY_STUB),-stringparam g_fGenProxy yes,) \
 		$(if $(VBOX_WITH_SDS),-stringparam g_fVBoxWithSDS yes,) \
-		$< $(VBOX_XIDL_FILE)
+		$(VBOX_PATH_MAIN_SRC)/idl/midl.xsl $(VBOX_XIDL_FILE)
+
 
 # Aliases for testing purposes.
@@ -1368,4 +1380,5 @@
 VBoxJMscom-inst-jar_BLDDIRS += $(VBOX_JMSCOM_GEN)/java
 
+$(call KB_FN_AUTO_CMD_DEPS,$(VBOX_JMSCOM_GEN)/jmscomglue.list)
 $(VBOX_JMSCOM_GEN)/jmscomglue.list: \
 		$(VBOX_XIDL_FILE) \
@@ -1373,4 +1386,5 @@
 		$(VBOX_FILESPLIT) \
 		| $(VBOX_JMSCOM_GEN)/java/
+	$(call KB_FN_AUTO_CMD_DEPS_COMMANDS)
 	$(call MSG_L1,Generating Java MSCOM glue files from XIDL)
 	$(QUIET)$(RM) -f $(wildcard $(VBOX_JMSCOM_GEN)/java/*.java)
@@ -1380,8 +1394,9 @@
 		--stringparam G_vboxGlueStyle mscom \
 		--stringparam G_vboxDirPrefix "" \
-		-o $(VBOX_JMSCOM_GEN)/java/merged.file $(VBOX_GLUE_XSLT_DIR)/glue-java.xsl $<
+		-o $(VBOX_JMSCOM_GEN)/java/merged.file $(VBOX_GLUE_XSLT_DIR)/glue-java.xsl $(VBOX_XIDL_FILE)
 	$(QUIET)$(VBOX_FILESPLIT) $(VBOX_JMSCOM_GEN)/java/merged.file $(VBOX_JMSCOM_GEN)/java
 	$(QUIET)echo $(VBOX_JMSCOM_GEN)/java/*.java > $@
 
+## @todo $(call KB_FN_AUTO_CMD_DEPS,$(VBOX_JMSCOM_JAR)) - need to fix the double expansion here
 $$(VBOX_JMSCOM_JAR): $(VBOX_JMSCOM_GEN)/jmscomglue.list | $$(dir $$@)
 	$(call MSG_TOOL,javac,$(notdir $@),jmscomglue.list,)
@@ -1414,4 +1429,5 @@
 
 # Generate a make include file which lists the wrapper header and source files.
+$(call KB_FN_AUTO_CMD_DEPS,$(VBoxAPIWrap_VBOX_KMK_FILE).ts)
 $(VBoxAPIWrap_VBOX_KMK_FILE).ts \
 +| $(VBoxAPIWrap_VBOX_KMK_FILE): \
@@ -1419,13 +1435,15 @@
 		$(VBOX_PATH_MAIN_SRC)/idl/apiwrap-server-filelist.xsl \
 		$(VBOX_PATH_MAIN_SRC)/Makefile.kmk
+	$(call KB_FN_AUTO_CMD_DEPS_COMMANDS)
 	$(call MSG_GENERATE,,$(VBoxAPIWrap_VBOX_KMK_FILE))
 	$(QUIET)$(RM) -f $@
 	$(QUIET)$(MKDIR) -p $(@D)
 	$(QUIET)$(VBOX_XSLTPROC) --stringparam KBUILD_HOST $(KBUILD_HOST) \
-        $(if $(VBOX_WITH_SDS),-stringparam g_fVBoxWithSDS yes,) \
-		-o $@ $(VBOX_PATH_MAIN_SRC)/idl/apiwrap-server-filelist.xsl $<
+		$(if $(VBOX_WITH_SDS),-stringparam g_fVBoxWithSDS yes,) \
+		-o $@ $(VBOX_PATH_MAIN_SRC)/idl/apiwrap-server-filelist.xsl $(VBOX_XIDL_FILE)
 	$(QUIET)$(CP) --changed -fv $@ $(VBoxAPIWrap_VBOX_KMK_FILE)
 
 # Generate the header files for the wrappers.
+$(call KB_FN_AUTO_CMD_DEPS,$(VBoxAPIWrap_0_OUTDIR)/apiwrappers-headers)
 $(VBoxAPIWrap_0_OUTDIR)/apiwrappers-headers \
 +| $(VBOX_MAIN_APIWRAPPER_GEN_HDRS): \
@@ -1435,12 +1453,14 @@
 		$(VBOX_FILESPLIT) \
 		| $$(dir $$@)
+	$(call KB_FN_AUTO_CMD_DEPS_COMMANDS)
 	$(call MSG_L1,Generating C++ Server API wrapper header files from XIDL)
 	$(QUIET)$(RM) -f -- $(filter-out $(VBOX_MAIN_APIWRAPPER_GEN_HDRS), $(wildcard $(VBoxAPIWrap_0_OUTDIR)/*.h))
 	$(QUIET)$(VBOX_XSLTPROC) --stringparam KBUILD_HOST $(KBUILD_HOST) \
 		--stringparam generating "headers" \
-		-o $@ $(VBoxAPIWrap_VBOX_XSLT) $<
+		-o $@ $(VBoxAPIWrap_VBOX_XSLT) $(VBOX_XIDL_FILE)
 	$(QUIET)$(VBOX_FILESPLIT) $@ $(VBoxAPIWrap_0_OUTDIR)
 
 # Generate the DTrace probes for the wrappers and combine them with handcoded probes.
+$(call KB_FN_AUTO_CMD_DEPS,$(VBoxAPIWrap_0_OUTDIR)/VBoxAPI.d.ts)
 $(VBoxAPIWrap_0_OUTDIR)/VBoxAPI.d.ts \
 +| $(VBoxAPIWrap_0_OUTDIR)/VBoxAPI.d: \
@@ -1450,9 +1470,10 @@
 		$(VBOX_FILESPLIT) \
 		| $$(dir $$@)
+	$(call KB_FN_AUTO_CMD_DEPS_COMMANDS)
 	$(call MSG_L1,Generating DTrace Provider for the VBox API (from XIDL))
 	$(QUIET)$(RM) -f -- "$@" "$@.tmp"
 	$(QUIET)$(VBOX_XSLTPROC) --stringparam KBUILD_HOST $(KBUILD_HOST) \
 		--stringparam generating "dtrace-probes" \
-		-o "$@" $(VBoxAPIWrap_VBOX_XSLT) $<
+		-o "$@" $(VBoxAPIWrap_VBOX_XSLT) $(VBOX_XIDL_FILE)
 	$(QUIET)$(SED) -e '' -o "$@.tmp" \
 		"$(VBOX_PATH_MAIN_SRC)/src-all/VBoxAPI-start.d" \
@@ -1463,4 +1484,5 @@
 
 # Generate the wrapper source files - split in two due to long processing time
+$(call KB_FN_AUTO_CMD_DEPS,$(VBoxAPIWrap_0_OUTDIR)/apiwrappers-sources-even)
 $(VBoxAPIWrap_0_OUTDIR)/apiwrappers-sources-even \
 +| $(VBOX_MAIN_APIWRAPPER_GEN_SRCS_EVEN): \
@@ -1470,4 +1492,5 @@
 		$(VBOX_FILESPLIT) \
 		| $$(dir $$@)
+	$(call KB_FN_AUTO_CMD_DEPS_COMMANDS)
 	$(call MSG_L1,Generating C++ Server API wrapper files from XIDL - part 1)
 	$(QUIET)$(RM) -f -- $(filter-out $(VBOX_MAIN_APIWRAPPER_GEN_SRCS), $(wildcard $(VBoxAPIWrap_0_OUTDIR)/*.cpp))
@@ -1475,7 +1498,8 @@
 		--stringparam generating "sources" \
 		--param reminder 0 \
-		-o $@ $(VBoxAPIWrap_VBOX_XSLT) $<
+		-o $@ $(VBoxAPIWrap_VBOX_XSLT) $(VBOX_XIDL_FILE)
 	$(QUIET)$(VBOX_FILESPLIT) $@ $(VBoxAPIWrap_0_OUTDIR)
 
+$(call KB_FN_AUTO_CMD_DEPS,$(VBoxAPIWrap_0_OUTDIR)/apiwrappers-sources-odd)
 $(VBoxAPIWrap_0_OUTDIR)/apiwrappers-sources-odd \
 +| $(VBOX_MAIN_APIWRAPPER_GEN_SRCS_ODD): \
@@ -1485,4 +1509,5 @@
 		$(VBOX_FILESPLIT) \
 		| $$(dir $$@)
+	$(call KB_FN_AUTO_CMD_DEPS_COMMANDS)
 	$(call MSG_L1,Generating C++ Server API wrapper files from XIDL - part 2)
 	$(QUIET)$(RM) -f -- $(filter-out $(VBOX_MAIN_APIWRAPPER_GEN_SRCS), $(wildcard $(VBoxAPIWrap_0_OUTDIR)/*.cpp))
@@ -1490,5 +1515,5 @@
 		--stringparam generating "sources" \
 		--param reminder 1 \
-		-o $@ $(VBoxAPIWrap_VBOX_XSLT) $<
+		-o $@ $(VBoxAPIWrap_VBOX_XSLT) $(VBOX_XIDL_FILE)
 	$(QUIET)$(VBOX_FILESPLIT) $@ $(VBoxAPIWrap_0_OUTDIR)
 
