Index: trunk/kBuild/header.kmk
===================================================================
--- trunk/kBuild/header.kmk	(revision 2891)
+++ trunk/kBuild/header.kmk	(revision 2895)
@@ -636,4 +636,8 @@
 DEP_IDB_INT := kmk_builtin_kDepIDB
 DEP_IDB     := $(DEP_IDB_INT)
+
+DEP_OBJ_EXT := $(KBUILD_BIN_PATH)/kDepObj$(HOSTSUFF_EXE)
+DEP_OBJ_INT := kmk_builtin_kDepObj
+DEP_OBJ     := $(DEP_OBJ_INT)
 
 DEP_PRE     := $(KBUILD_BIN_PATH)/kDepPre$(HOSTSUFF_EXE)
Index: trunk/kBuild/tools/OPENWATCOM-16.kmk
===================================================================
--- trunk/kBuild/tools/OPENWATCOM-16.kmk	(revision 2891)
+++ trunk/kBuild/tools/OPENWATCOM-16.kmk	(revision 2895)
@@ -44,5 +44,17 @@
 TOOL_OPENWATCOM-16_COMPILE_AS_DEPEND =
 TOOL_OPENWATCOM-16_COMPILE_AS_DEPORD =
-TOOL_OPENWATCOM-16_COMPILE_AS_OUTPUT = $(obj).err
+TOOL_OPENWATCOM-16_COMPILE_AS_OUTPUT_MAYBE = $(obj).err
+ifdef TOOL_OPENWATCOM_USE_KSUBMIT
+define TOOL_OPENWATCOM-16_COMPILE_AS_CMDS
+	$(QUIET)$(call TOOL_OPENWATCOM_ENV_SETUP_BD,, -P $(DEP_OBJ_INT) -s -f -q -o "$(dep)" -t "$(obj)" "$(obj)") \
+		$(TOOL_OPENWATCOM_AS) \
+		$(flags) \
+		$(addsuffix , $(addprefix -i=, $(call TOOL_OPENWATCOM_FIX_SLASHES,$(incs)))) \
+		$(addprefix -d, $(defs)) \
+		-fo=$(call TOOL_OPENWATCOM_FIX_SLASHES,$(obj)) \
+		-fr=$(call TOOL_OPENWATCOM_FIX_SLASHES,$(obj)).err \
+		$(call TOOL_OPENWATCOM_FIX_SLASHES,$(abspath $(source)))
+endef
+else
 define TOOL_OPENWATCOM-16_COMPILE_AS_CMDS
 	$(QUIET) $(call TOOL_OPENWATCOM_ENV_SETUP_BD) $(TOOL_OPENWATCOM_AS) \
@@ -53,37 +65,61 @@
 		-fr=$(call TOOL_OPENWATCOM_FIX_SLASHES,$(obj)).err \
 		$(call TOOL_OPENWATCOM_FIX_SLASHES,$(abspath $(source)))
-	$(QUIET)$(APPEND) -n $(obj).err
-## @todo dependencies
-endef
+	$(QUIET)$(DEP_OBJ) -s -f -q -o "$(dep)" -t "$(obj)" "$(obj)"
+endef
+endif
 
 TOOL_OPENWATCOM-16_COMPILE_C_DEPEND =
 TOOL_OPENWATCOM-16_COMPILE_C_DEPORD =
-TOOL_OPENWATCOM-16_COMPILE_C_OUTPUT = $(obj).err
+TOOL_OPENWATCOM-16_COMPILE_C_OUTPUT_MAYBE = $(obj).err
+ifdef TOOL_OPENWATCOM_USE_KSUBMIT
 define TOOL_OPENWATCOM-16_COMPILE_C_CMDS
-	$(QUIET) $(call TOOL_OPENWATCOM_ENV_SETUP_BD) $(TOOL_OPENWATCOM_CC16) \
-		$(flags) \
-		$(addsuffix , $(addprefix -i=, $(call TOOL_OPENWATCOM_FIX_SLASHES,$(incs)))) \
-		$(addprefix -d, $(defs)) \
-		-fo=$(call TOOL_OPENWATCOM_FIX_SLASHES,$(obj)) \
-		-fr=$(call TOOL_OPENWATCOM_FIX_SLASHES,$(obj)).err \
-		$(call TOOL_OPENWATCOM_FIX_SLASHES,$(abspath $(source)))
-	$(QUIET)$(APPEND) -n $(obj).err
-## @todo dependencies
-endef
+	$(QUIET)$(call TOOL_OPENWATCOM_ENV_SETUP_BD,, -P $(DEP_OBJ_INT) -s -f -q -o "$(dep)" -t "$(obj)" "$(obj)") \
+		$(TOOL_OPENWATCOM_CC16) \
+		$(flags) \
+		$(addsuffix , $(addprefix -i=, $(call TOOL_OPENWATCOM_FIX_SLASHES,$(incs)))) \
+		$(addprefix -d, $(defs)) \
+		-fo=$(call TOOL_OPENWATCOM_FIX_SLASHES,$(obj)) \
+		-fr=$(call TOOL_OPENWATCOM_FIX_SLASHES,$(obj)).err \
+		$(call TOOL_OPENWATCOM_FIX_SLASHES,$(abspath $(source)))
+endef
+else
+define TOOL_OPENWATCOM-16_COMPILE_C_CMDS
+	$(QUIET)$(call TOOL_OPENWATCOM_ENV_SETUP_BD) $(TOOL_OPENWATCOM_CC16) \
+		$(flags) \
+		$(addsuffix , $(addprefix -i=, $(call TOOL_OPENWATCOM_FIX_SLASHES,$(incs)))) \
+		$(addprefix -d, $(defs)) \
+		-fo=$(call TOOL_OPENWATCOM_FIX_SLASHES,$(obj)) \
+		-fr=$(call TOOL_OPENWATCOM_FIX_SLASHES,$(obj)).err \
+		$(call TOOL_OPENWATCOM_FIX_SLASHES,$(abspath $(source)))
+	$(QUIET)$(DEP_OBJ) -s -f -q -o "$(dep)" -t "$(obj)" "$(obj)"
+endef
+endif
 
 TOOL_OPENWATCOM-16_COMPILE_CXX_DEPEND =
 TOOL_OPENWATCOM-16_COMPILE_CXX_DEPORD =
-TOOL_OPENWATCOM-16_COMPILE_CXX_OUTPUT = $(obj).err
+TOOL_OPENWATCOM-16_COMPILE_CXX_OUTPUT_MAYBE = $(obj).err
+ifdef TOOL_OPENWATCOM_USE_KSUBMIT
 define TOOL_OPENWATCOM-16_COMPILE_CXX_CMDS
-	$(QUIET) $(call TOOL_OPENWATCOM_ENV_SETUP_BD) $(TOOL_OPENWATCOM_CXX16) \
-		$(flags) \
-		$(addsuffix , $(addprefix -i=, $(call TOOL_OPENWATCOM_FIX_SLASHES,$(incs)))) \
-		$(addprefix -d, $(defs)) \
-		-fo=$(call TOOL_OPENWATCOM_FIX_SLASHES,$(obj)) \
-		-fr=$(call TOOL_OPENWATCOM_FIX_SLASHES,$(obj)).err \
-		$(call TOOL_OPENWATCOM_FIX_SLASHES,$(abspath $(source)))
-	$(QUIET)$(APPEND) -n $(obj).err
-## @todo dependencies
-endef
+	$(QUIET)$(call TOOL_OPENWATCOM_ENV_SETUP_BD,, -P $(DEP_OBJ_INT) -s -f -q -o "$(dep)" -t "$(obj)" "$(obj)") \
+		$(TOOL_OPENWATCOM_CXX16) \
+		$(flags) \
+		$(addsuffix , $(addprefix -i=, $(call TOOL_OPENWATCOM_FIX_SLASHES,$(incs)))) \
+		$(addprefix -d, $(defs)) \
+		-fo=$(call TOOL_OPENWATCOM_FIX_SLASHES,$(obj)) \
+		-fr=$(call TOOL_OPENWATCOM_FIX_SLASHES,$(obj)).err \
+		$(call TOOL_OPENWATCOM_FIX_SLASHES,$(abspath $(source)))
+endef
+else
+define TOOL_OPENWATCOM-16_COMPILE_CXX_CMDS
+	$(QUIET)$(call TOOL_OPENWATCOM_ENV_SETUP_BD) $(TOOL_OPENWATCOM_CXX16) \
+		$(flags) \
+		$(addsuffix , $(addprefix -i=, $(call TOOL_OPENWATCOM_FIX_SLASHES,$(incs)))) \
+		$(addprefix -d, $(defs)) \
+		-fo=$(call TOOL_OPENWATCOM_FIX_SLASHES,$(obj)) \
+		-fr=$(call TOOL_OPENWATCOM_FIX_SLASHES,$(obj)).err \
+		$(call TOOL_OPENWATCOM_FIX_SLASHES,$(abspath $(source)))
+	$(QUIET)$(DEP_OBJ) -s -f -q -o "$(dep)" -t "$(obj)" "$(obj)"
+endef
+endif
 
 TOOL_OPENWATCOM-16_COMPILE_RC_OUTPUT =
@@ -91,5 +127,5 @@
 TOOL_OPENWATCOM-16_COMPILE_RC_DEPORD =
 define TOOL_OPENWATCOM-16_COMPILE_RC_CMDS
-	$(QUIET) $(call TOOL_OPENWATCOM_ENV_SETUP) \
+	$(QUIET)$(call TOOL_OPENWATCOM_ENV_SETUP) \
 		$(TOOL_OPENWATCOM_RC) -r\
 		$(flags) \
Index: trunk/kBuild/tools/OPENWATCOM.kmk
===================================================================
--- trunk/kBuild/tools/OPENWATCOM.kmk	(revision 2891)
+++ trunk/kBuild/tools/OPENWATCOM.kmk	(revision 2895)
@@ -54,4 +54,11 @@
  # Resolve any fancy stuff once and for all.
  PATH_TOOL_OPENWATCOM := $(PATH_TOOL_OPENWATCOM)
+endif
+
+# Clear the feature indicator if not available on the current host.
+ifdef TOOL_OPENWATCOM_USE_KSUBMIT
+ ifneq ($(KBUILD_HOST),win)
+  override TOOL_OPENWATCOM_USE_KSUBMIT :=
+ endif
 endif
 
@@ -149,5 +156,5 @@
 
 if $(KBUILD_KMK_REVISION) >= 2747
- TOOL_OPENWATCOM_ENV_SETUP_BD ?= $(call TOOL_OPENWATCOM_ENV_SETUP,$1,$2 --wcc-brain-damage)
+ TOOL_OPENWATCOM_ENV_SETUP_BD ?= $(call TOOL_OPENWATCOM_ENV_SETUP,$1, --wcc-brain-damage $2)
 else
  TOOL_OPENWATCOM_ENV_SETUP_BD ?= $(call TOOL_OPENWATCOM_ENV_SETUP,$1,$2)
@@ -208,21 +215,45 @@
 TOOL_OPENWATCOM_COMPILE_AS_DEPEND =
 TOOL_OPENWATCOM_COMPILE_AS_DEPORD =
-TOOL_OPENWATCOM_COMPILE_AS_OUTPUT = $(obj).err
+TOOL_OPENWATCOM_COMPILE_AS_OUTPUT_MAYBE = $(obj).err
+ifdef TOOL_OPENWATCOM_USE_KSUBMIT
 define TOOL_OPENWATCOM_COMPILE_AS_CMDS
-	$(QUIET) $(call TOOL_OPENWATCOM_ENV_SETUP_BD) $(TOOL_OPENWATCOM_AS) \
-		$(flags) \
-		$(addsuffix , $(addprefix -i=, $(call TOOL_OPENWATCOM_FIX_SLASHES,$(incs)))) \
-		$(addprefix -d, $(defs)) \
-		-fo=$(call TOOL_OPENWATCOM_FIX_SLASHES,$(obj)) \
-		-fr=$(call TOOL_OPENWATCOM_FIX_SLASHES,$(obj)).err \
-		$(call TOOL_OPENWATCOM_FIX_SLASHES,$(abspath $(source)))
-	$(QUIET)$(APPEND) -n $(obj).err
-## @todo dependencies
-endef
+	$(QUIET)$(call TOOL_OPENWATCOM_ENV_SETUP_BD,, -P $(DEP_OBJ_INT) -s -f -q -o "$(dep)" -t "$(obj)" "$(obj)") \
+		$(TOOL_OPENWATCOM_AS) \
+		$(flags) \
+		$(addsuffix , $(addprefix -i=, $(call TOOL_OPENWATCOM_FIX_SLASHES,$(incs)))) \
+		$(addprefix -d, $(defs)) \
+		-fo=$(call TOOL_OPENWATCOM_FIX_SLASHES,$(obj)) \
+		-fr=$(call TOOL_OPENWATCOM_FIX_SLASHES,$(obj)).err \
+		$(call TOOL_OPENWATCOM_FIX_SLASHES,$(abspath $(source)))
+endef
+else
+define TOOL_OPENWATCOM_COMPILE_AS_CMDS
+	$(QUIET)$(call TOOL_OPENWATCOM_ENV_SETUP_BD) $(TOOL_OPENWATCOM_AS) \
+		$(flags) \
+		$(addsuffix , $(addprefix -i=, $(call TOOL_OPENWATCOM_FIX_SLASHES,$(incs)))) \
+		$(addprefix -d, $(defs)) \
+		-fo=$(call TOOL_OPENWATCOM_FIX_SLASHES,$(obj)) \
+		-fr=$(call TOOL_OPENWATCOM_FIX_SLASHES,$(obj)).err \
+		$(call TOOL_OPENWATCOM_FIX_SLASHES,$(abspath $(source)))
+	$(QUIET)$(DEP_OBJ) -s -f -q -o "$(dep)" -t "$(obj)" "$(obj)"
+endef
+endif
 
 
 TOOL_OPENWATCOM_COMPILE_C_DEPEND =
 TOOL_OPENWATCOM_COMPILE_C_DEPORD =
-TOOL_OPENWATCOM_COMPILE_C_OUTPUT = $(obj).err
+TOOL_OPENWATCOM_COMPILE_C_OUTPUT_MAYBE = $(obj).err
+ifdef TOOL_OPENWATCOM_USE_KSUBMIT
+define TOOL_OPENWATCOM_COMPILE_C_CMDS
+	$(QUIET)$(call TOOL_OPENWATCOM_ENV_SETUP_BD,, -P $(DEP_OBJ_INT) -s -f -q -o "$(dep)" -t "$(obj)" "$(obj)") \
+		$(TOOL_OPENWATCOM_CC) \
+		$(flags) \
+		$(addsuffix , $(addprefix -i=, $(call TOOL_OPENWATCOM_FIX_SLASHES,$(incs)))) \
+		$(addprefix -d, $(defs)) \
+		-fo=$(call TOOL_OPENWATCOM_FIX_SLASHES,$(obj)) \
+		-fr=$(call TOOL_OPENWATCOM_FIX_SLASHES,$(obj)).err \
+		$(call TOOL_OPENWATCOM_FIX_SLASHES,$(abspath $(source)))
+endef
+else
 define TOOL_OPENWATCOM_COMPILE_C_CMDS
 	$(QUIET) $(call TOOL_OPENWATCOM_ENV_SETUP_BD) $(TOOL_OPENWATCOM_CC) \
@@ -233,22 +264,34 @@
 		-fr=$(call TOOL_OPENWATCOM_FIX_SLASHES,$(obj)).err \
 		$(call TOOL_OPENWATCOM_FIX_SLASHES,$(abspath $(source)))
-	$(QUIET)$(APPEND) -n $(obj).err
-## @todo dependencies
-endef
+	$(QUIET)$(DEP_OBJ) -s -f -q -o "$(dep)" -t "$(obj)" "$(obj)"
+endef
+endif
 
 TOOL_OPENWATCOM_COMPILE_CXX_DEPEND =
 TOOL_OPENWATCOM_COMPILE_CXX_DEPORD =
-TOOL_OPENWATCOM_COMPILE_CXX_OUTPUT = $(obj).err
+TOOL_OPENWATCOM_COMPILE_CXX_OUTPUT_MAYBE = $(obj).err
+ifdef TOOL_OPENWATCOM_USE_KSUBMIT
 define TOOL_OPENWATCOM_COMPILE_CXX_CMDS
-	$(QUIET) $(call TOOL_OPENWATCOM_ENV_SETUP_BD) $(TOOL_OPENWATCOM_CXX) \
-		$(flags) \
-		$(addsuffix , $(addprefix -i=, $(call TOOL_OPENWATCOM_FIX_SLASHES,$(incs)))) \
-		$(addprefix -d, $(defs)) \
-		-fo=$(call TOOL_OPENWATCOM_FIX_SLASHES,$(obj)) \
-		-fr=$(call TOOL_OPENWATCOM_FIX_SLASHES,$(obj)).err \
-		$(call TOOL_OPENWATCOM_FIX_SLASHES,$(abspath $(source)))
-	$(QUIET)$(APPEND) -n $(obj).err
-## @todo dependencies
-endef
+	$(QUIET)$(call TOOL_OPENWATCOM_ENV_SETUP_BD,, -P $(DEP_OBJ_INT) -s -f -q -o "$(dep)" -t "$(obj)" "$(obj)") \
+		$(TOOL_OPENWATCOM_CXX) \
+		$(flags) \
+		$(addsuffix , $(addprefix -i=, $(call TOOL_OPENWATCOM_FIX_SLASHES,$(incs)))) \
+		$(addprefix -d, $(defs)) \
+		-fo=$(call TOOL_OPENWATCOM_FIX_SLASHES,$(obj)) \
+		-fr=$(call TOOL_OPENWATCOM_FIX_SLASHES,$(obj)).err \
+		$(call TOOL_OPENWATCOM_FIX_SLASHES,$(abspath $(source)))
+endef
+else
+define TOOL_OPENWATCOM_COMPILE_CXX_CMDS
+	$(QUIET)$(call TOOL_OPENWATCOM_ENV_SETUP_BD) $(TOOL_OPENWATCOM_CXX) \
+		$(flags) \
+		$(addsuffix , $(addprefix -i=, $(call TOOL_OPENWATCOM_FIX_SLASHES,$(incs)))) \
+		$(addprefix -d, $(defs)) \
+		-fo=$(call TOOL_OPENWATCOM_FIX_SLASHES,$(obj)) \
+		-fr=$(call TOOL_OPENWATCOM_FIX_SLASHES,$(obj)).err \
+		$(call TOOL_OPENWATCOM_FIX_SLASHES,$(abspath $(source)))
+	$(QUIET)$(DEP_OBJ) -s -f -q -o "$(dep)" -t "$(obj)" "$(obj)"
+endef
+endif
 
 TOOL_OPENWATCOM_COMPILE_RC_OUTPUT =
@@ -256,5 +299,5 @@
 TOOL_OPENWATCOM_COMPILE_RC_DEPORD =
 define TOOL_OPENWATCOM_COMPILE_RC_CMDS
-	$(QUIET) $(call TOOL_OPENWATCOM_ENV_SETUP) \
+	$(QUIET)$(call TOOL_OPENWATCOM_ENV_SETUP) \
 		$(TOOL_OPENWATCOM_RC) -r\
 		$(flags) \
Index: trunk/kBuild/tools/VCC100AMD64.kmk
===================================================================
--- trunk/kBuild/tools/VCC100AMD64.kmk	(revision 2891)
+++ trunk/kBuild/tools/VCC100AMD64.kmk	(revision 2895)
@@ -78,7 +78,7 @@
  ifeq ($(KBUILD_HOST),win)
   ifneq ($(substr $(PATH_TOOL_VCC100AMD64_BIN),-9),x86_amd64)
-   TOOL_VCC100AMD64_KSUBMIT ?= kmk_builtin_kSubmit --64-bit --
+   TOOL_VCC100AMD64_KSUBMIT ?= kmk_builtin_kSubmit --64-bit
   else
-   TOOL_VCC100AMD64_KSUBMIT ?= kmk_builtin_kSubmit --32-bit --
+   TOOL_VCC100AMD64_KSUBMIT ?= kmk_builtin_kSubmit --32-bit
   endif
  endif
@@ -172,6 +172,8 @@
 TOOL_VCC100AMD64_COMPILE_C_OUTPUT = $(call TOOL_VCC100AMD64_PDB, $(outbase)-obj,idb)
 TOOL_VCC100AMD64_COMPILE_C_OUTPUT_MAYBE = $(call TOOL_VCC100AMD64_PDB, $(outbase)-obj,pdb)
+ ifdef TOOL_VCC100AMD64_KSUBMIT
 define TOOL_VCC100AMD64_COMPILE_C_CMDS
-	$(QUIET)$(TOOL_VCC100AMD64_KSUBMIT) $(TOOL_VCC100AMD64_CC) -c\
+	$(QUIET)$(TOOL_VCC100AMD64_KSUBMIT) -P $(DEP_OBJ_INT) -f -s -q -o $(dep) -t $(obj) $(obj)\
+		-- $(TOOL_VCC100AMD64_CC) -c\
 		$(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\
 		-Fd$(outbase)-obj.pdb \
@@ -179,6 +181,16 @@
 		-Fo$(obj)\
 		$(subst /,\\,$(abspath $(source)))
+endef
+ else
+define TOOL_VCC100AMD64_COMPILE_C_CMDS
+	$(QUIET)$(TOOL_VCC100AMD64_CC) -c\
+		$(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\
+		-Fd$(outbase)-obj.pdb \
+		-FD\
+		-Fo$(obj)\
+		$(subst /,\\,$(abspath $(source)))
 	$(QUIET)$(DEP_IDB) -f -s -q -o $(dep) -t $(obj) $(call TOOL_VCC100AMD64_PDB,$(outbase)-obj,idb)
 endef
+ endif # !TOOL_VCC100AMD64_KSUBMIT
 endif # !KBUILD_USE_KOBJCACHE
 
@@ -220,6 +232,8 @@
 TOOL_VCC100AMD64_COMPILE_CXX_OUTPUT = $(call TOOL_VCC100AMD64_PDB, $(outbase)-obj,idb)
 TOOL_VCC100AMD64_COMPILE_CXX_OUTPUT_MAYBE = $(call TOOL_VCC100AMD64_PDB, $(outbase)-obj,pdb)
+ ifdef TOOL_VCC100AMD64_KSUBMIT
 define TOOL_VCC100AMD64_COMPILE_CXX_CMDS
-	$(QUIET)$(TOOL_VCC100AMD64_KSUBMIT) $(TOOL_VCC100AMD64_CXX) -c\
+	$(QUIET)$(TOOL_VCC100AMD64_KSUBMIT) -P $(DEP_OBJ_INT) -f -s -q -o $(dep) -t $(obj) $(obj)\
+		-- $(TOOL_VCC100AMD64_CXX) -c\
 		$(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\
 		-Fd$(outbase)-obj.pdb \
@@ -227,6 +241,16 @@
 		-Fo$(obj)\
 		$(subst /,\\,$(abspath $(source)))
+endef
+ else
+define TOOL_VCC100AMD64_COMPILE_CXX_CMDS
+	$(QUIET)$(TOOL_VCC100AMD64_CXX) -c\
+		$(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\
+		-Fd$(outbase)-obj.pdb \
+		-FD\
+		-Fo$(obj)\
+		$(subst /,\\,$(abspath $(source)))
 	$(QUIET)$(DEP_IDB) -f -s -q -o $(dep) -t $(obj) $(call TOOL_VCC100AMD64_PDB,$(outbase)-obj,idb)
 endef
+ endif # !TOOL_VCC100AMD64_KSUBMIT
 endif # !KBUILD_USE_KOBJCACHE
 
Index: trunk/kBuild/tools/VCC100X86.kmk
===================================================================
--- trunk/kBuild/tools/VCC100X86.kmk	(revision 2891)
+++ trunk/kBuild/tools/VCC100X86.kmk	(revision 2895)
@@ -76,5 +76,5 @@
 ifdef TOOL_VCC100X86_USE_KSUBMIT
  ifeq ($(KBUILD_HOST),win)
-  TOOL_VCC100X86_KSUBMIT ?= kmk_builtin_kSubmit --32-bit --
+  TOOL_VCC100X86_KSUBMIT ?= kmk_builtin_kSubmit --32-bit
  endif
 endif
@@ -169,6 +169,8 @@
 TOOL_VCC100X86_COMPILE_C_OUTPUT = $(call TOOL_VCC100X86_PDB, $(outbase)-obj,idb)
 TOOL_VCC100X86_COMPILE_C_OUTPUT_MAYBE = $(call TOOL_VCC100X86_PDB, $(outbase)-obj,pdb)
+ ifdef TOOL_VCC100X86_KSUBMIT
 define TOOL_VCC100X86_COMPILE_C_CMDS
-	$(QUIET)$(TOOL_VCC100X86_KSUBMIT) $(TOOL_VCC100X86_CC) -c\
+	$(QUIET)$(TOOL_VCC100X86_KSUBMIT) -P $(DEP_OBJ_INT) -f -s -q -o $(dep) -t $(obj) $(obj)\
+		-- $(TOOL_VCC100X86_CC) -c\
 		$(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\
 		-Fd$(outbase)-obj.pdb \
@@ -176,6 +178,16 @@
 		-Fo$(obj)\
 		$(subst /,\\,$(abspath $(source)))
+endef
+ else
+define TOOL_VCC100X86_COMPILE_C_CMDS
+	$(QUIET)$(TOOL_VCC100X86_CC) -c\
+		$(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\
+		-Fd$(outbase)-obj.pdb \
+		-FD\
+		-Fo$(obj)\
+		$(subst /,\\,$(abspath $(source)))
 	$(QUIET)$(DEP_IDB) -f -s -q -o $(dep) -t $(obj) $(call TOOL_VCC100X86_PDB,$(outbase)-obj,idb)
 endef
+ endif # !TOOL_VCC100X86_KSUBMIT
 endif # !KBUILD_USE_KOBJCACHE
 
@@ -217,6 +229,8 @@
 TOOL_VCC100X86_COMPILE_CXX_OUTPUT = $(call TOOL_VCC100X86_PDB, $(outbase)-obj,idb)
 TOOL_VCC100X86_COMPILE_CXX_OUTPUT_MAYBE = $(call TOOL_VCC100X86_PDB, $(outbase)-obj,pdb)
+ ifdef TOOL_VCC100X86_KSUBMIT
 define TOOL_VCC100X86_COMPILE_CXX_CMDS
-	$(QUIET)$(TOOL_VCC100X86_KSUBMIT) $(TOOL_VCC100X86_CXX) -c\
+	$(QUIET)$(TOOL_VCC100X86_KSUBMIT) -P $(DEP_OBJ_INT) -f -s -q -o $(dep) -t $(obj) $(obj)\
+		-- $(TOOL_VCC100X86_CXX) -c\
 		$(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\
 		-Fd$(outbase)-obj.pdb \
@@ -224,6 +238,16 @@
 		-Fo$(obj)\
 		$(subst /,\\,$(abspath $(source)))
+endef
+ else
+define TOOL_VCC100X86_COMPILE_CXX_CMDS
+	$(QUIET)$(TOOL_VCC100X86_CXX) -c\
+		$(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\
+		-Fd$(outbase)-obj.pdb \
+		-FD\
+		-Fo$(obj)\
+		$(subst /,\\,$(abspath $(source)))
 	$(QUIET)$(DEP_IDB) -f -s -q -o $(dep) -t $(obj) $(call TOOL_VCC100X86_PDB,$(outbase)-obj,idb)
 endef
+ endif # !TOOL_VCC100X86_KSUBMIT
 endif # !KBUILD_USE_KOBJCACHE
 
