Index: /trunk/kBuild/tools/GCC3OMF.kmk
===================================================================
--- /trunk/kBuild/tools/GCC3OMF.kmk	(revision 2775)
+++ /trunk/kBuild/tools/GCC3OMF.kmk	(revision 2776)
@@ -50,4 +50,5 @@
 TOOL_GCC3OMF_LD_MAP ?= -Zmap=$(1)
 TOOL_GCC3OMF_LD_SYSMOD_MAP ?= -Zmap=$(1)
+TOOL_GCC3OMF_RC = rc$(HOSTSUFF_EXE)
 
 ifdef SLKRUNS
@@ -78,4 +79,9 @@
 TOOL_GCC3OMF_ASFLAGS.profile  ?= -g
 TOOL_GCC3OMF_ASOBJSUFF        ?= .obj
+
+TOOL_GCC3OMF_RCOBJSUFF        ?= .res
+TOOL_GCC3OMF_RCFLAGS          ?= -n
+TOOL_GCC3OMF_RCINCS           ?= $(shell $(TOOL_GCC3OMF_CXX) -E -x c++ - 2>&1 < /dev/null \
+	| $(SED_EXT) -e "/search starts here/,/[Ee]nd of search list/!d" -e "/^ /!d")
 
 TOOL_GCC3OMF_ARFLAGS          ?= cr
@@ -203,4 +209,26 @@
 
 
+## Compile resource source.
+# @param    $(target)   Normalized main target name.
+# @param    $(source)   Source filename (relative).
+# @param    $(obj)      Object file name. This shall be (re)created by the compilation.
+# @param    $(dep)      Dependcy file. This shall be (re)created by the compilation.
+# @param    $(flags)    Flags.
+# @param    $(defs)     Definitions. No -D or something.
+# @param    $(incs)     Includes. No -I or something.
+# @param    $(dirdep)   Directory creation dependency.
+# @param    $(deps)     Other dependencies.
+#
+# @param    $(outbase)  Output basename (full). Use this for list files and such.
+# @param    $(objsuff)  Object suffix.
+TOOL_GCC3OMF_COMPILE_RC_OUTPUT =
+TOOL_GCC3OMF_COMPILE_RC_DEPEND =
+TOOL_GCC3OMF_COMPILE_RC_DEPORD =
+define TOOL_GCC3OMF_COMPILE_RC_CMDS
+	$(QUIET)$(REDIRECT) -E 'INCLUDE=' -- $(TOOL_GCC3OMF_RC) -r \
+		$(flags) $(addprefix -i, $(subst /,\\,$(subst /@unixroot,$(UNIXROOT),$(incs)))) $(addprefix -d, $(defs))\
+		$(subst /,\\,$(abspath $(source))) \
+		$(obj)
+endef
 ## Link library
 # @param    $(target)   Normalized main target name.
Index: /trunk/kBuild/tools/GXX3OMF.kmk
===================================================================
--- /trunk/kBuild/tools/GXX3OMF.kmk	(revision 2775)
+++ /trunk/kBuild/tools/GXX3OMF.kmk	(revision 2776)
@@ -50,4 +50,5 @@
 TOOL_GXX3OMF_LD_MAP ?= -Zmap=$(1)
 TOOL_GXX3OMF_LD_SYSMOD_MAP ?= -Zmap=$(1)
+TOOL_GXX3OMF_RC = rc$(HOSTSUFF_EXE)
 
 ifdef SLKRUNS
@@ -78,4 +79,9 @@
 TOOL_GXX3OMF_ASFLAGS.profile  ?= -g
 TOOL_GXX3OMF_ASOBJSUFF        ?= .obj
+
+TOOL_GXX3OMF_RCOBJSUFF        ?= .res
+TOOL_GXX3OMF_RCFLAGS          ?= -n
+TOOL_GXX3OMF_RCINCS           ?= $(shell $(TOOL_GXX3OMF_CXX) -E -x c++ - 2>&1 < /dev/null \
+	| $(SED_EXT) -e "/search starts here/,/[Ee]nd of search list/!d" -e "/^ /!d")
 
 TOOL_GXX3OMF_ARFLAGS          ?= cr
@@ -200,4 +206,28 @@
 		$(abspath $(source))
 	$(QUIET)$(APPEND) -n "$(dep)" "" "$(source):" ""
+endef
+
+
+## Compile resource source.
+# @param    $(target)   Normalized main target name.
+# @param    $(source)   Source filename (relative).
+# @param    $(obj)      Object file name. This shall be (re)created by the compilation.
+# @param    $(dep)      Dependcy file. This shall be (re)created by the compilation.
+# @param    $(flags)    Flags.
+# @param    $(defs)     Definitions. No -D or something.
+# @param    $(incs)     Includes. No -I or something.
+# @param    $(dirdep)   Directory creation dependency.
+# @param    $(deps)     Other dependencies.
+#
+# @param    $(outbase)  Output basename (full). Use this for list files and such.
+# @param    $(objsuff)  Object suffix.
+TOOL_GXX3OMF_COMPILE_RC_OUTPUT =
+TOOL_GXX3OMF_COMPILE_RC_DEPEND =
+TOOL_GXX3OMF_COMPILE_RC_DEPORD =
+define TOOL_GXX3OMF_COMPILE_RC_CMDS
+	$(QUIET)$(REDIRECT) -E 'INCLUDE=' -- $(TOOL_GXX3OMF_RC) -r \
+		$(flags) $(addprefix -i, $(subst /,\\,$(subst /@unixroot,$(UNIXROOT),$(incs)))) $(addprefix -d, $(defs))\
+		$(subst /,\\,$(abspath $(source))) \
+		$(obj)
 endef
 
