Ticket #109: 004-gcc3omf_add_rc_support.patch

File 004-gcc3omf_add_rc_support.patch, 4.8 KB (added by dmik, 12 years ago)
  • kBuild/tools/GCC3OMF.kmk

     
    3636# Tool Specific Properties
    3737TOOL_GCC3OMF_CC  ?= gcc$(HOSTSUFF_EXE)
    3838TOOL_GCC3OMF_CXX ?= g++$(HOSTSUFF_EXE)
     39TOOL_GCC3OMF_RC  ?= rc$(HOSTSUFF_EXE)
    3940TOOL_GCC3OMF_AS  ?= gcc$(HOSTSUFF_EXE)
    4041TOOL_GCC3OMF_AR  ?= emxomfar$(HOSTSUFF_EXE)
    4142TOOL_GCC3OMF_AR_IMP ?= emximp$(HOSTSUFF_EXE)
     
    7374TOOL_GCC3OMF_CXXINCS          ?=
    7475TOOL_GCC3OMF_CXXDEFS          ?=
    7576
     77TOOL_GCC3OMF_RCOBJSUFF        ?= .res
     78TOOL_GCC3OMF_RCFLAGS          ?= -n
     79TOOL_GCC3OMF_RCINCS           ?=
     80TOOL_GCC3OMF_RCDEFS           ?=
     81
    7682TOOL_GCC3OMF_ASFLAGS          ?= -x assembler-with-cpp -Zomf
    7783TOOL_GCC3OMF_ASFLAGS.debug    ?= -g
    7884TOOL_GCC3OMF_ASFLAGS.profile  ?= -g
     
    176182endif # !KBUILD_USE_KOBJCACHE
    177183
    178184
     185## Compile resource file.
     186TOOL_GCC3OMF_COMPILE_RC_DEPEND =
     187TOOL_GCC3OMF_COMPILE_RC_DEPORD =
     188TOOL_GCC3OMF_COMPILE_RC_OUTPUT =
     189define TOOL_GCC3OMF_COMPILE_RC_CMDS
     190        $(QUIET)cd $(subst /,\\,$(patsubst %/,%,$(dir $(source)))) &&\
     191                $(TOOL_GCC3OMF_RC) -r $(flags)\
     192                $(subst /@unixroot,$(UNIXROOT),$(addprefix -i ,$(incs) $(subst ;, ,$(C_INCLUDE_PATH))))\
     193                $(addprefix -D ,$(defs))\
     194                $(source) $(obj)
     195endef
     196
     197
    179198## Compile Assembly source.
    180199# @param    $(target)   Normalized main target name.
    181200# @param    $(source)   Source filename (relative).
     
    252271                $(foreach lib,$(libs), $(if $(findstring $(lib),$(subst /,x,$(lib))), -l$(patsubst lib%,%,$(lib)), $(lib)))\
    253272                -Zmap=$(outbase).map
    254273        $(QUIET)$(TOOL_GCC3OMF_LD) @$(outbase).rsp
     274        $(if $(filter %.res,$(objs)), \
     275                $(QUIET)$(TOOL_GCC3OMF_RC) $(filter %.res,$(objs)) $(out))
    255276endef
    256277
    257278
     
    283304                $(foreach lib,$(libs), $(if $(findstring $(lib),$(subst /,x,$(lib))), -l$(patsubst lib%,%,$(lib)), $(lib)))\
    284305                -Zmap=$(outbase).map
    285306        $(QUIET)$(TOOL_GCC3OMF_LD) @$(outbase).rsp
     307        $(if $(filter %.res,$(objs)), \
     308                $(QUIET)$(TOOL_GCC3OMF_RC) $(filter %.res,$(objs)) $(out))
    286309endef
    287310
    288311
     
    314337                $(foreach lib,$(libs), $(if $(findstring $(lib),$(subst /,x,$(lib))), -l$(patsubst lib%,%,$(lib)), $(lib)))\
    315338                -Zmap=$(outbase).map
    316339        $(QUIET)$(TOOL_GCC3OMF_LD_SYSMOD) @$(outbase).rsp
     340        $(if $(filter %.res,$(objs)), \
     341                $(QUIET)$(TOOL_GCC3OMF_RC) $(filter %.res,$(objs)) $(out))
    317342endef
    318343
  • kBuild/tools/GXX3OMF.kmk

     
    3636# Tool Specific Properties
    3737TOOL_GXX3OMF_CC  ?= gcc$(HOSTSUFF_EXE)
    3838TOOL_GXX3OMF_CXX ?= g++$(HOSTSUFF_EXE)
     39TOOL_GXX3OMF_RC  ?= rc$(HOSTSUFF_EXE)
    3940TOOL_GXX3OMF_AS  ?= gcc$(HOSTSUFF_EXE)
    4041TOOL_GXX3OMF_AR  ?= emxomfar$(HOSTSUFF_EXE)
    4142TOOL_GXX3OMF_AR_IMP ?= emximp$(HOSTSUFF_EXE)
     
    7374TOOL_GXX3OMF_CXXINCS          ?=
    7475TOOL_GXX3OMF_CXXDEFS          ?=
    7576
     77TOOL_GXX3OMF_RCOBJSUFF        ?= .res
     78TOOL_GXX3OMF_RCFLAGS          ?= -n
     79TOOL_GXX3OMF_RCINCS           ?=
     80TOOL_GXX3OMF_RCDEFS           ?=
     81
    7682TOOL_GXX3OMF_ASFLAGS          ?= -x assembler-with-cpp -Zomf
    7783TOOL_GXX3OMF_ASFLAGS.debug    ?= -g
    7884TOOL_GXX3OMF_ASFLAGS.profile  ?= -g
     
    176182endif # !KBUILD_USE_KOBJCACHE
    177183
    178184
     185## Compile resource file.
     186TOOL_GXX3OMF_COMPILE_RC_DEPEND =
     187TOOL_GXX3OMF_COMPILE_RC_DEPORD =
     188TOOL_GXX3OMF_COMPILE_RC_OUTPUT =
     189define TOOL_GXX3OMF_COMPILE_RC_CMDS
     190        $(QUIET)cd $(subst /,\\,$(patsubst %/,%,$(dir $(source)))) &&\
     191                $(TOOL_GXX3OMF_RC) -r $(flags)\
     192                $(subst /@unixroot,$(UNIXROOT),$(addprefix -i ,$(incs) $(subst ;, ,$(C_INCLUDE_PATH))))\
     193                $(addprefix -D ,$(defs))\
     194                $(source) $(obj)
     195endef
     196
     197
    179198## Compile Assembly source.
    180199# @param    $(target)   Normalized main target name.
    181200# @param    $(source)   Source filename (relative).
     
    252271                $(foreach lib,$(libs), $(if $(findstring $(lib),$(subst /,x,$(lib))), -l$(patsubst lib%,%,$(lib)), $(lib)))\
    253272                -Zmap=$(outbase).map
    254273        $(QUIET)$(TOOL_GXX3OMF_LD) @$(outbase).rsp
     274        $(if $(filter %.res,$(objs)), \
     275                $(QUIET)$(TOOL_GXX3OMF_RC) $(filter %.res,$(objs)) $(out))
    255276endef
    256277
    257278
     
    283304                $(foreach lib,$(libs), $(if $(findstring $(lib),$(subst /,x,$(lib))), -l$(patsubst lib%,%,$(lib)), $(lib)))\
    284305                -Zmap=$(outbase).map
    285306        $(QUIET)$(TOOL_GXX3OMF_LD) @$(outbase).rsp
     307        $(if $(filter %.res,$(objs)), \
     308                $(QUIET)$(TOOL_GXX3OMF_RC) $(filter %.res,$(objs)) $(out))
    286309endef
    287310
    288311
     
    314337                $(foreach lib,$(libs), $(if $(findstring $(lib),$(subst /,x,$(lib))), -l$(patsubst lib%,%,$(lib)), $(lib)))\
    315338                -Zmap=$(outbase).map
    316339        $(QUIET)$(TOOL_GXX3OMF_LD_SYSMOD) @$(outbase).rsp
     340        $(if $(filter %.res,$(objs)), \
     341                $(QUIET)$(TOOL_GXX3OMF_RC) $(filter %.res,$(objs)) $(out))
    317342endef
    318343