Index: /trunk/kBuild/tools/VCC100.kmk
===================================================================
--- /trunk/kBuild/tools/VCC100.kmk	(revision 2610)
+++ /trunk/kBuild/tools/VCC100.kmk	(revision 2611)
@@ -105,5 +105,5 @@
 
 TOOL_VCC100_COBJSUFF         ?= .obj
-TOOL_VCC100_CFLAGS           ?= -TC -c -nologo
+TOOL_VCC100_CFLAGS           ?= -TC -nologo
 TOOL_VCC100_CFLAGS.debug     ?= -Od -Zi
 TOOL_VCC100_CFLAGS.release   ?= -O2
@@ -113,5 +113,5 @@
 
 TOOL_VCC100_CXXOBJSUFF       ?= .obj
-TOOL_VCC100_CXXFLAGS         ?= -TP -c -nologo
+TOOL_VCC100_CXXFLAGS         ?= -TP -nologo
 TOOL_VCC100_CXXFLAGS.debug   ?= -Od -Zi
 TOOL_VCC100_CXXFLAGS.release ?= -O2
@@ -155,6 +155,26 @@
 TOOL_VCC100_COMPILE_C_DEPEND =
 TOOL_VCC100_COMPILE_C_DEPORD =
+TOOL_VCC100_COMPILE_C_OUTPUT_MAYBE = $(call TOOL_VCC100_PDB, $(outbase)-obj,pdb)
+ifdef KBUILD_USE_KOBJCACHE
+TOOL_VCC100_COMPILE_C_USES_KOBJCACHE = 1
+TOOL_VCC100_COMPILE_C_OUTPUT = $(call TOOL_VCC100_PDB, $(outbase)-obj,idb) $(outbase).i
+define TOOL_VCC100_COMPILE_C_CMDS
+	$(QUIET)$(KOBJCACHE) -f $(outbase).koc -d $(PATH_OBJCACHE) -t $(bld_trg).$(bld_trg_arch) -r\
+		--kObjCache-cpp $(outbase).i\
+		$(TOOL_VCC100_CC) -E\
+		$(flags)\
+		$(addprefix -I, $(incs)) $(addprefix -D, $(defs))\
+		$(subst /,\\,$(abspath $(source))) \
+		--kObjCache-cc $(obj)\
+		$(TOOL_VCC100_C) -c\
+		$(flags)\
+		-Fd$(outbase)-obj.pdb \
+		-FD\
+		-Fo$(obj)\
+		$(outbase).i
+	$(QUIET)$(DEP_IDB) -f -s -q -o $(dep) -t $(obj) $(call TOOL_VCC100_PDB,$(outbase)-obj,idb)
+endef
+else  # !KBUILD_USE_KOBJCACHE
 TOOL_VCC100_COMPILE_C_OUTPUT = $(call TOOL_VCC100_PDB, $(outbase)-obj,idb)
-TOOL_VCC100_COMPILE_C_OUTPUT_MAYBE = $(call TOOL_VCC100_PDB, $(outbase)-obj,pdb)
 define TOOL_VCC100_COMPILE_C_CMDS
 	$(QUIET)$(TOOL_VCC100_CC) -c\
@@ -166,4 +186,5 @@
 	$(QUIET)$(DEP_IDB) -f -s -q -o $(dep) -t $(obj) $(call TOOL_VCC100_PDB,$(outbase)-obj,idb)
 endef
+endif # !KBUILD_USE_KOBJCACHE
 
 
@@ -183,6 +204,26 @@
 TOOL_VCC100_COMPILE_CXX_DEPEND =
 TOOL_VCC100_COMPILE_CXX_DEPORD =
+TOOL_VCC100_COMPILE_CXX_OUTPUT_MAYBE = $(call TOOL_VCC100_PDB, $(outbase)-obj,pdb)
+ifdef KBUILD_USE_KOBJCACHE
+TOOL_VCC100_COMPILE_CXX_USES_KOBJCACHE = 1
+TOOL_VCC100_COMPILE_CXX_OUTPUT = $(call TOOL_VCC100_PDB, $(outbase)-obj,idb) $(outbase).ii
+define TOOL_VCC100_COMPILE_CXX_CMDS
+	$(QUIET)$(KOBJCACHE) -f $(outbase).koc -d $(PATH_OBJCACHE) -t $(bld_trg).$(bld_trg_arch) -r\
+		--kObjCache-cpp $(outbase).ii\
+		$(TOOL_VCC100_CXX) -E\
+		$(flags)\
+		$(addprefix -I, $(incs)) $(addprefix -D, $(defs))\
+		$(subst /,\\,$(abspath $(source))) \
+		--kObjCache-cc $(obj)\
+		$(TOOL_VCC100_CXX) -c\
+		$(flags)\
+		-Fd$(outbase)-obj.pdb \
+		-FD\
+		-Fo$(obj)\
+		$(outbase).ii
+	$(QUIET)$(DEP_IDB) -f -s -q -o $(dep) -t $(obj) $(call TOOL_VCC100_PDB,$(outbase)-obj,idb)
+endef
+else  # !KBUILD_USE_KOBJCACHE
 TOOL_VCC100_COMPILE_CXX_OUTPUT = $(call TOOL_VCC100_PDB, $(outbase)-obj,idb)
-TOOL_VCC100_COMPILE_CXX_OUTPUT_MAYBE = $(call TOOL_VCC100_PDB, $(outbase)-obj,pdb)
 define TOOL_VCC100_COMPILE_CXX_CMDS
 	$(QUIET)$(TOOL_VCC100_CXX) -c\
@@ -194,5 +235,7 @@
 	$(QUIET)$(DEP_IDB) -f -s -q -o $(dep) -t $(obj) $(call TOOL_VCC100_PDB,$(outbase)-obj,idb)
 endef
-
+endif # !KBUILD_USE_KOBJCACHE
+
+## @todo configure the assembler template.
 
 ## Compile resource source.
Index: /trunk/kBuild/tools/VCC100AMD64.kmk
===================================================================
--- /trunk/kBuild/tools/VCC100AMD64.kmk	(revision 2610)
+++ /trunk/kBuild/tools/VCC100AMD64.kmk	(revision 2611)
@@ -92,5 +92,5 @@
 
 TOOL_VCC100AMD64_COBJSUFF         ?= .obj
-TOOL_VCC100AMD64_CFLAGS           ?= -TC -c -nologo
+TOOL_VCC100AMD64_CFLAGS           ?= -TC -nologo
 TOOL_VCC100AMD64_CFLAGS.debug     ?= -Od -Zi
 TOOL_VCC100AMD64_CFLAGS.release   ?= -O2
@@ -100,5 +100,5 @@
 
 TOOL_VCC100AMD64_CXXOBJSUFF       ?= .obj
-TOOL_VCC100AMD64_CXXFLAGS         ?= -TP -c -nologo
+TOOL_VCC100AMD64_CXXFLAGS         ?= -TP -nologo
 TOOL_VCC100AMD64_CXXFLAGS.debug   ?= -Od -Zi
 TOOL_VCC100AMD64_CXXFLAGS.release ?= -O2
@@ -136,6 +136,26 @@
 TOOL_VCC100AMD64_COMPILE_C_DEPEND =
 TOOL_VCC100AMD64_COMPILE_C_DEPORD =
+TOOL_VCC100AMD64_COMPILE_C_OUTPUT_MAYBE = $(call TOOL_VCC100AMD64_PDB, $(outbase)-obj,pdb)
+ifdef KBUILD_USE_KOBJCACHE
+TOOL_VCC100AMD64_COMPILE_C_USES_KOBJCACHE = 1
+TOOL_VCC100AMD64_COMPILE_C_OUTPUT = $(call TOOL_VCC100AMD64_PDB, $(outbase)-obj,idb) $(outbase).i
+define TOOL_VCC100AMD64_COMPILE_C_CMDS
+	$(QUIET)$(KOBJCACHE) -f $(outbase).koc -d $(PATH_OBJCACHE) -t $(bld_trg).$(bld_trg_arch) -r\
+		--kObjCache-cpp $(outbase).i\
+		$(TOOL_VCC100AMD64_CC) -E\
+		$(flags)\
+		$(addprefix -I, $(incs)) $(addprefix -D, $(defs))\
+		$(subst /,\\,$(abspath $(source))) \
+		--kObjCache-cc $(obj)\
+		$(TOOL_VCC100AMD64_CC) -c\
+		$(flags)\
+		-Fd$(outbase)-obj.pdb \
+		-FD\
+		-Fo$(obj)\
+		$(outbase).i
+	$(QUIET)$(DEP_IDB) -f -s -q -o $(dep) -t $(obj) $(call TOOL_VCC100AMD64_PDB,$(outbase)-obj,idb)
+endef
+else  # !KBUILD_USE_KOBJCACHE
 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)
 define TOOL_VCC100AMD64_COMPILE_C_CMDS
 	$(QUIET)$(TOOL_VCC100AMD64_CC) -c\
@@ -147,4 +167,5 @@
 	$(QUIET)$(DEP_IDB) -f -s -q -o $(dep) -t $(obj) $(call TOOL_VCC100AMD64_PDB,$(outbase)-obj,idb)
 endef
+endif # !KBUILD_USE_KOBJCACHE
 
 
@@ -164,27 +185,8 @@
 TOOL_VCC100AMD64_COMPILE_CXX_DEPEND =
 TOOL_VCC100AMD64_COMPILE_CXX_DEPORD =
+TOOL_VCC100AMD64_COMPILE_CXX_OUTPUT_MAYBE = $(call TOOL_VCC100AMD64_PDB, $(outbase)-obj,pdb)
 ifdef KBUILD_USE_KOBJCACHE
 TOOL_VCC100AMD64_COMPILE_CXX_USES_KOBJCACHE = 1
 TOOL_VCC100AMD64_COMPILE_CXX_OUTPUT = $(call TOOL_VCC100AMD64_PDB, $(outbase)-obj,idb) $(outbase).ii
-TOOL_VCC100AMD64_COMPILE_CXX_OUTPUT_MAYBE = $(call TOOL_VCC100AMD64_PDB, $(outbase)-obj,pdb)
-if 1
-define TOOL_VCC100AMD64_COMPILE_CXX_CMDS
-	$(QUIET)$(KOBJCACHE) -f $(outbase).koc -d $(PATH_OBJCACHE) -t $(bld_trg).$(bld_trg_arch) -r\
-		--named-pipe-compile $(subst /,\\,//./pipe/kObjCache/$(translate $(outbase),:,_)/$(notdir $(source)))\
-		--kObjCache-cpp $(outbase).ii\
-		$(TOOL_VCC100AMD64_CXX) -E\
-		$(flags)\
-		$(addprefix -I, $(incs)) $(addprefix -D, $(defs))\
-		$(subst /,\\,$(abspath $(source))) \
-		--kObjCache-cc $(obj)\
-		windbg $(TOOL_VCC100AMD64_CXX) -c -TP\
-		$(flags)\
-		-Fd$(outbase)-obj.pdb \
-		-FD\
-		-Fo$(obj)\
-		$(subst /,\\,//./pipe/kObjCache/$(translate $(outbase),:,_)/$(notdir $(source)))
-	$(QUIET)$(DEP_IDB) -f -s -q -o $(dep) -t $(obj) $(call TOOL_VCC100AMD64_PDB,$(outbase)-obj,idb)
-endef
-else
 define TOOL_VCC100AMD64_COMPILE_CXX_CMDS
 	$(QUIET)$(KOBJCACHE) -f $(outbase).koc -d $(PATH_OBJCACHE) -t $(bld_trg).$(bld_trg_arch) -r\
@@ -195,5 +197,5 @@
 		$(subst /,\\,$(abspath $(source))) \
 		--kObjCache-cc $(obj)\
-		$(TOOL_VCC100AMD64_CXX) -c -TP\
+		$(TOOL_VCC100AMD64_CXX) -c\
 		$(flags)\
 		-Fd$(outbase)-obj.pdb \
@@ -203,8 +205,6 @@
 	$(QUIET)$(DEP_IDB) -f -s -q -o $(dep) -t $(obj) $(call TOOL_VCC100AMD64_PDB,$(outbase)-obj,idb)
 endef
-endif
 else  # !KBUILD_USE_KOBJCACHE
 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)
 define TOOL_VCC100AMD64_COMPILE_CXX_CMDS
 	$(QUIET)$(TOOL_VCC100AMD64_CXX) -c\
@@ -217,4 +217,6 @@
 endef
 endif # !KBUILD_USE_KOBJCACHE
+
+## @todo configure the assembler template.
 
 ## Compile resource source.
Index: /trunk/kBuild/tools/VCC100X86.kmk
===================================================================
--- /trunk/kBuild/tools/VCC100X86.kmk	(revision 2610)
+++ /trunk/kBuild/tools/VCC100X86.kmk	(revision 2611)
@@ -93,5 +93,5 @@
 # General Properties used by kBuild
 TOOL_VCC100X86_COBJSUFF         ?= .obj
-TOOL_VCC100X86_CFLAGS           ?= -TC -c -nologo
+TOOL_VCC100X86_CFLAGS           ?= -TC -nologo
 TOOL_VCC100X86_CFLAGS.debug     ?= -Zi
 TOOL_VCC100X86_CFLAGS.release   ?= -O2
@@ -101,5 +101,5 @@
 
 TOOL_VCC100X86_CXXOBJSUFF       ?= .obj
-TOOL_VCC100X86_CXXFLAGS         ?= -TP -c -nologo
+TOOL_VCC100X86_CXXFLAGS         ?= -TP -nologo
 TOOL_VCC100X86_CXXFLAGS.debug   ?= -Zi
 TOOL_VCC100X86_CXXFLAGS.release ?= -O2
@@ -137,6 +137,26 @@
 TOOL_VCC100X86_COMPILE_C_DEPEND =
 TOOL_VCC100X86_COMPILE_C_DEPORD =
+TOOL_VCC100X86_COMPILE_C_OUTPUT_MAYBE = $(call TOOL_VCC100X86_PDB, $(outbase)-obj,pdb)
+ifdef KBUILD_USE_KOBJCACHE
+TOOL_VCC100X86_COMPILE_C_USES_KOBJCACHE = 1
+TOOL_VCC100X86_COMPILE_C_OUTPUT = $(call TOOL_VCC100X86_PDB, $(outbase)-obj,idb) $(outbase).i
+define TOOL_VCC100X86_COMPILE_C_CMDS
+	$(QUIET)$(KOBJCACHE) -f $(outbase).koc -d $(PATH_OBJCACHE) -t $(bld_trg).$(bld_trg_arch) -r\
+		--kObjCache-cpp $(outbase).i\
+		$(TOOL_VCC100X86_CC) -E\
+		$(flags)\
+		$(addprefix -I, $(incs)) $(addprefix -D, $(defs))\
+		$(subst /,\\,$(abspath $(source))) \
+		--kObjCache-cc $(obj)\
+		$(TOOL_VCC100X86_CC) -c\
+		$(flags)\
+		-Fd$(outbase)-obj.pdb \
+		-FD\
+		-Fo$(obj)\
+		$(outbase).i
+	$(QUIET)$(DEP_IDB) -f -s -q -o $(dep) -t $(obj) $(call TOOL_VCC100X86_PDB,$(outbase)-obj,idb)
+endef
+else  # !KBUILD_USE_KOBJCACHE
 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)
 define TOOL_VCC100X86_COMPILE_C_CMDS
 	$(QUIET)$(TOOL_VCC100X86_CC) -c\
@@ -148,4 +168,5 @@
 	$(QUIET)$(DEP_IDB) -f -s -q -o $(dep) -t $(obj) $(call TOOL_VCC100X86_PDB,$(outbase)-obj,idb)
 endef
+endif # !KBUILD_USE_KOBJCACHE
 
 
@@ -165,6 +186,26 @@
 TOOL_VCC100X86_COMPILE_CXX_DEPEND =
 TOOL_VCC100X86_COMPILE_CXX_DEPORD =
+TOOL_VCC100X86_COMPILE_CXX_OUTPUT_MAYBE = $(call TOOL_VCC100X86_PDB, $(outbase)-obj,pdb)
+ifdef KBUILD_USE_KOBJCACHE
+TOOL_VCC100X86_COMPILE_CXX_USES_KOBJCACHE = 1
+TOOL_VCC100X86_COMPILE_CXX_OUTPUT = $(call TOOL_VCC100X86_PDB, $(outbase)-obj,idb) $(outbase).ii
+define TOOL_VCC100X86_COMPILE_CXX_CMDS
+	$(QUIET)$(KOBJCACHE) -f $(outbase).koc -d $(PATH_OBJCACHE) -t $(bld_trg).$(bld_trg_arch) -r\
+		--kObjCache-cpp $(outbase).ii\
+		$(TOOL_VCC100X86_CXX) -E\
+		$(flags)\
+		$(addprefix -I, $(incs)) $(addprefix -D, $(defs))\
+		$(subst /,\\,$(abspath $(source))) \
+		--kObjCache-cc $(obj)\
+		$(TOOL_VCC100X86_CXX) -c\
+		$(flags)\
+		-Fd$(outbase)-obj.pdb \
+		-FD\
+		-Fo$(obj)\
+		$(outbase).ii
+	$(QUIET)$(DEP_IDB) -f -s -q -o $(dep) -t $(obj) $(call TOOL_VCC100X86_PDB,$(outbase)-obj,idb)
+endef
+else  # !KBUILD_USE_KOBJCACHE
 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)
 define TOOL_VCC100X86_COMPILE_CXX_CMDS
 	$(QUIET)$(TOOL_VCC100X86_CXX) -c\
@@ -176,4 +217,5 @@
 	$(QUIET)$(DEP_IDB) -f -s -q -o $(dep) -t $(obj) $(call TOOL_VCC100X86_PDB,$(outbase)-obj,idb)
 endef
+endif # !KBUILD_USE_KOBJCACHE
 
 ## @todo configure the assembler template.
