Index: trunk/Config.kmk
===================================================================
--- trunk/Config.kmk	(revision 16675)
+++ trunk/Config.kmk	(revision 16676)
@@ -3615,4 +3615,15 @@
 endif
 
+#
+# Shared definitions of the XIDL file to use as a source for
+# generating various other files (VBoxSVC, webservice, docs, front-ends, ...)
+#
+
+# Real XIDL source file; from this we strip the <desc> elements to generate
+# a second XIDL file, from which the COM/XPCOM IDL files are then generated:
+VBOX_XIDL_FILE_SRC     = $(VBOX_PATH_MAIN_SRC)/idl/VirtualBox.xidl
+# second XIDL file to use as source for COM/XPCOM IDL (with stripped docs):
+VBOX_XIDL_FILE         = $(PATH_OUT)/obj/VirtualBox_stripped.xidl
+
 
 #
Index: trunk/src/VBox/Frontends/VirtualBox/Makefile.kmk
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/Makefile.kmk	(revision 16675)
+++ trunk/src/VBox/Frontends/VirtualBox/Makefile.kmk	(revision 16676)
@@ -441,5 +441,5 @@
 
 $$(PATH_VirtualBox)/include/COMWrappers.h: \
-		$(PATH_ROOT)/src/VBox/Main/idl/VirtualBox.xidl \
+		$(VBOX_XIDL_FILE) \
 		$(VBOX_VIRTUALBOX4_SRC)/include/COMWrappers.xsl \
 		| $$(dir $$@)
Index: trunk/src/VBox/Main/Makefile.kmk
===================================================================
--- trunk/src/VBox/Main/Makefile.kmk	(revision 16675)
+++ trunk/src/VBox/Main/Makefile.kmk	(revision 16676)
@@ -118,4 +118,12 @@
 endif # xpcom
 
+#
+# Strip documentation from source XIDL so that we don't get a full
+#	recompile every time a comma in the documentation is changed.
+#
+$(VBOX_XIDL_FILE): $(VBOX_XIDL_FILE_SRC) $(VBOX_PATH_MAIN_SRC)/idl/docstrip.xsl
+# 	$(CP) -fv $< $(VBOX_XIDL_FILE).tmp
+	$(VBOX_XSLTPROC) -o $(VBOX_XIDL_FILE).tmp $(VBOX_PATH_MAIN_SRC)/idl/docstrip.xsl $<
+	$(CP) --changed -fv $(VBOX_XIDL_FILE).tmp $@
 
 #
@@ -128,9 +136,9 @@
 		$(VBOX_PATH_MAIN_SRC)/Doxyfile.Main \
 		$(VBOX_PATH_MAIN_SRC)/idl/doxygen.xsl \
-		$(VBOX_PATH_MAIN_SRC)/idl/VirtualBox.xidl \
+		$(VBOX_XIDL_FILE_SRC) \
 		| $(PATH_TARGET)/ \
 		$(VBOX_MAIN_DOC_DIR)/
 	$(RM) -f $(wildcard $(VBOX_MAIN_DOC_DIR)/html/*) $(PATH_TARGET)/docs.Main
-	$(VBOX_XSLTPROC) -o $(PATH_TARGET)/VirtualBox.idl $(VBOX_PATH_MAIN_SRC)/idl/doxygen.xsl $(VBOX_PATH_MAIN_SRC)/idl/VirtualBox.xidl
+	$(VBOX_XSLTPROC) -o $(PATH_TARGET)/VirtualBox.idl $(VBOX_PATH_MAIN_SRC)/idl/doxygen.xsl $(VBOX_XIDL_FILE_SRC)
 	$(REDIRECT) -E 'DOCDIR=$(VBOX_MAIN_DOC_DIR)' -E 'PATH_TARGET=$(PATH_TARGET)' -E 'PATH_CHM=$(subst /,\,$(VBOX_MAIN_DOC_DIR)/VirtualBoxAPI.chm)' \
 		-- doxygen $(VBOX_PATH_MAIN_SRC)/Doxyfile.Main
@@ -149,5 +157,5 @@
 INSTALLS += VBox-main-xidl
 VBox-main-xidl_INST = $(INST_SDK)bindings/
-VBox-main-xidl_SOURCES = idl/VirtualBox.xidl
+VBox-main-xidl_SOURCES = $(VBOX_XIDL_FILE_SRC)
 
 
@@ -625,6 +633,4 @@
 #
 
-VBOX_XIDL_FILE = $(VBOX_PATH_MAIN_SRC)/idl/VirtualBox.xidl
-
 ## @todo this hack ain't cutting it any longer. (the file name is abspath'ed since ages now.)
 xpcom/helpers.cpp: $(VBOX_IDL_TYPELIB.XPCOM)
Index: trunk/src/VBox/Main/cbinding/Makefile.kmk
===================================================================
--- trunk/src/VBox/Main/cbinding/Makefile.kmk	(revision 16675)
+++ trunk/src/VBox/Main/cbinding/Makefile.kmk	(revision 16676)
@@ -45,5 +45,5 @@
 $$(XpComCHeaders_0_OUTDIR)/VirtualBox_CXPCOM.h: \
 		$(PATH_SUB_CURRENT)/xpcidl.xsl \
-		$(PATH_SUB_CURRENT)/../idl/VirtualBox.xidl \
+		$(VBOX_XIDL_FILE) \
 		| $$(dir $$@)
 	$(VBOX_XSLTPROC) -o $@ $^
Index: trunk/src/VBox/Main/webservice/Makefile.kmk
===================================================================
--- trunk/src/VBox/Main/webservice/Makefile.kmk	(revision 16675)
+++ trunk/src/VBox/Main/webservice/Makefile.kmk	(revision 16676)
@@ -111,5 +111,5 @@
 PATH_TARGET_WEBTEST           := $(VBOXWEB_OUT_DIR)/webtest
 
-VBOXWEB_IDL_SRC_ORIG          := $(VBOX_PATH_WEBSERVICE)/../idl/VirtualBox.xidl
+VBOXWEB_IDL_SRC_ORIG          := $(VBOX_XIDL_FILE)
 VBOXWEB_IDL_SRC               := $(VBOXWEB_OUT_DIR)/VirtualBox.xidl
 
Index: trunk/src/VBox/Runtime/Makefile.kmk
===================================================================
--- trunk/src/VBox/Runtime/Makefile.kmk	(revision 16675)
+++ trunk/src/VBox/Runtime/Makefile.kmk	(revision 16676)
@@ -1484,5 +1484,5 @@
 $(IPRT_OUT_DIR)/errmsgvboxcomdata.h: \
 		$(VBOX_PATH_RUNTIME_SRC)/VBox/errmsgvboxcom.xsl \
-		$(VBOX_PATH_RUNTIME_SRC)/../Main/idl/VirtualBox.xidl \
+		$(VBOX_XIDL_FILE) \
 		| $$(dir $$@)
 	$(call MSG_GENERATE,,$@,$(filter %.xidl,$^))
