Ticket #109: kbuild-007-gcc3omf_add_rc_support-NEW.patch

File kbuild-007-gcc3omf_add_rc_support-NEW.patch, 8.1 KB (added by dmik, 11 years ago)
  • kBuild/tools/GCC3OMF.kmk

    diff -u -r ../old/kBuild/tools/GCC3OMF.kmk ./kBuild/tools/GCC3OMF.kmk
    old new  
    3636# Tool Specific Properties
    3737TOOL_GCC3OMF_CC  ?= gcc$(HOSTSUFF_EXE)
    3838TOOL_GCC3OMF_CXX ?= g++$(HOSTSUFF_EXE)
    39 TOOL_GCC3OMF_RC  ?= rc$(HOSTSUFF_EXE)
    4039TOOL_GCC3OMF_AS  ?= gcc$(HOSTSUFF_EXE)
    4140TOOL_GCC3OMF_AR  ?= emxomfar$(HOSTSUFF_EXE)
    4241TOOL_GCC3OMF_AR_IMP ?= emximp$(HOSTSUFF_EXE)
     
    5655TOOL_GCC3OMF_CXX += -fmessage-length=0
    5756endif
    5857
     58ifndef TOOL_GCC3OMF_RC
     59 TOOL_GCC3OMF_RC      := $(if $(EMXOMFLD_RC),$(EMXOMFLD_RC),rc$(HOSTSUFF_EXE))
     60endif
     61ifndef TOOL_GCC3OMF_RC_TYPE
     62 TOOL_GCC3OMF_RC_TYPE := $(if $(EMXOMFLD_RC_TYPE),$(EMXOMFLD_RC_TYPE),RC)
     63endif
     64
     65TOOL_GCC3OMF_ENV_SETUP ?= $(REDIRECT) \
     66        -E 'EMXOMFLD_RC=$(TOOL_GCC3OMF_RC)' \
     67        -E 'EMXOMFLD_RC_TYPE=$(TOOL_GCC3OMF_RC_TYPE)' \
     68        --
     69
     70# Functions for changing slashes (SQ = single quoted).
     71if1of ($(KBUILD_HOST), os2 win)
     72 TOOL_GCC3OMF_FIX_SLASHES = $(subst /,\\,$1)
     73 TOOL_GCC3OMF_FIX_SLASHES_SQ = $(subst /,\,$1)
     74else
     75 TOOL_GCC3OMF_FIX_SLASHES = $1
     76 TOOL_GCC3OMF_FIX_SLASHES_SQ = $1
     77endif
     78
    5979# General Properties used by kBuild
    6080TOOL_GCC3OMF_COBJSUFF         ?= .o
    6181TOOL_GCC3OMF_CFLAGS           ?= -Zomf
     
    7494TOOL_GCC3OMF_CXXINCS          ?=
    7595TOOL_GCC3OMF_CXXDEFS          ?=
    7696
     97ifeq ($(TOOL_GCC3OMF_RC_TYPE),WRC)
     98TOOL_GCC3OMF_RCOBJSUFF        ?= .res
     99TOOL_GCC3OMF_RCFLAGS          ?= -q
     100TOOL_GCC3OMF_RCFLAGS.os2      ?= -bt=os2
     101TOOL_GCC3OMF_RCFLAGS.win      ?= -bt=nt
     102else
    77103TOOL_GCC3OMF_RCOBJSUFF        ?= .res
    78104TOOL_GCC3OMF_RCFLAGS          ?= -n
    79105TOOL_GCC3OMF_RCINCS           ?=
    80106TOOL_GCC3OMF_RCDEFS           ?=
     107endif
    81108
    82109TOOL_GCC3OMF_ASFLAGS          ?= -x assembler-with-cpp -Zomf
    83110TOOL_GCC3OMF_ASFLAGS.debug    ?= -g
     
    183210
    184211
    185212## Compile resource file.
     213ifeq ($(TOOL_GCC3OMF_RC_TYPE),WRC)
     214TOOL_GCC3OMF_COMPILE_RC_OUTPUT =
     215TOOL_GCC3OMF_COMPILE_RC_DEPEND =
     216TOOL_GCC3OMF_COMPILE_RC_DEPORD =
     217define TOOL_GCC3OMF_COMPILE_RC_CMDS
     218        $(QUIET)$(TOOL_GCC3OMF_RC) -r\
     219                $(flags) \
     220                $(addprefix -i=, $(dir $(source)) $(call TOOL_GCC3OMF_FIX_SLASHES,$(incs))) \
     221                $(addprefix -d, $(defs))\
     222                -fo=$(call TOOL_GCC3OMF_FIX_SLASHES,$(obj)) \
     223                $(call TOOL_GCC3OMF_FIX_SLASHES,$(abspath $(source)))
     224endef
     225else # ifeq ($(TOOL_GCC3OMF_RC_TYPE),WRC)
    186226TOOL_GCC3OMF_COMPILE_RC_DEPEND =
    187227TOOL_GCC3OMF_COMPILE_RC_DEPORD =
    188228TOOL_GCC3OMF_COMPILE_RC_OUTPUT =
     
    193233                $(addprefix -D ,$(defs))\
    194234                $(source) $(obj)
    195235endef
     236endif # ifeq ($(TOOL_GCC3OMF_RC_TYPE),WRC)
    196237
    197238
    198239## Compile Assembly source.
     
    270311                $(othersrc)\
    271312                $(foreach lib,$(libs), $(if $(findstring $(lib),$(subst /,x,$(lib))), -l$(patsubst lib%,%,$(lib)), $(lib)))\
    272313                -Zmap=$(outbase).map
    273         $(QUIET)$(TOOL_GCC3OMF_LD) @$(outbase).rsp
    274         $(if $(filter %.res,$(objs)), \
    275                 $(QUIET)$(TOOL_GCC3OMF_RC) $(filter %.res,$(objs)) $(out))
     314        $(QUIET)$(call TOOL_GCC3OMF_ENV_SETUP) \
     315                $(TOOL_GCC3OMF_LD) @$(outbase).rsp
    276316endef
    277317
    278318
     
    304344                $(othersrc)\
    305345                $(foreach lib,$(libs), $(if $(findstring $(lib),$(subst /,x,$(lib))), -l$(patsubst lib%,%,$(lib)), $(lib)))\
    306346                -Zmap=$(outbase).map
    307         $(QUIET)$(TOOL_GCC3OMF_LD) @$(outbase).rsp
     347        $(QUIET)$(call TOOL_GCC3OMF_ENV_SETUP) \
     348                $(TOOL_GCC3OMF_LD) @$(outbase).rsp
    308349        $(if $(filter KMK_NOIMPLIB,$(flags)),, \
    309350                $(QUIET)$(TOOL_GCC3OMF_AR_IMP) -o $(PATH_STAGE_LIB)/$(notdir $(outbase)).lib $(out))
    310         $(if $(filter %.res,$(objs)), \
    311                 $(QUIET)$(TOOL_GCC3OMF_RC) $(filter %.res,$(objs)) $(out))
    312351endef
    313352
    314353
     
    339378                $(othersrc)\
    340379                $(foreach lib,$(libs), $(if $(findstring $(lib),$(subst /,x,$(lib))), -l$(patsubst lib%,%,$(lib)), $(lib)))\
    341380                -Zmap=$(outbase).map
    342         $(QUIET)$(TOOL_GCC3OMF_LD_SYSMOD) @$(outbase).rsp
    343         $(if $(filter %.res,$(objs)), \
    344                 $(QUIET)$(TOOL_GCC3OMF_RC) $(filter %.res,$(objs)) $(out))
     381        $(QUIET)$(call TOOL_GCC3OMF_ENV_SETUP) \
     382                $(TOOL_GCC3OMF_LD_SYSMOD) @$(outbase).rsp
    345383endef
    346384
  • kBuild/tools/GXX3OMF.kmk

    diff -u -r ../old/kBuild/tools/GXX3OMF.kmk ./kBuild/tools/GXX3OMF.kmk
    old new  
    3636# Tool Specific Properties
    3737TOOL_GXX3OMF_CC  ?= gcc$(HOSTSUFF_EXE)
    3838TOOL_GXX3OMF_CXX ?= g++$(HOSTSUFF_EXE)
    39 TOOL_GXX3OMF_RC  ?= rc$(HOSTSUFF_EXE)
    4039TOOL_GXX3OMF_AS  ?= gcc$(HOSTSUFF_EXE)
    4140TOOL_GXX3OMF_AR  ?= emxomfar$(HOSTSUFF_EXE)
    4241TOOL_GXX3OMF_AR_IMP ?= emximp$(HOSTSUFF_EXE)
     
    5655TOOL_GXX3OMF_CXX += -fmessage-length=0
    5756endif
    5857
     58ifndef TOOL_GXX3OMF_RC
     59 TOOL_GXX3OMF_RC      := $(if $(EMXOMFLD_RC),$(EMXOMFLD_RC),rc$(HOSTSUFF_EXE))
     60endif
     61ifndef TOOL_GXX3OMF_RC_TYPE
     62 TOOL_GXX3OMF_RC_TYPE := $(if $(EMXOMFLD_RC_TYPE),$(EMXOMFLD_RC_TYPE),RC)
     63endif
     64
     65TOOL_GXX3OMF_ENV_SETUP ?= $(REDIRECT) \
     66        -E 'EMXOMFLD_RC=$(TOOL_GXX3OMF_RC)' \
     67        -E 'EMXOMFLD_RC_TYPE=$(TOOL_GXX3OMF_RC_TYPE)' \
     68        --
     69
     70# Functions for changing slashes (SQ = single quoted).
     71if1of ($(KBUILD_HOST), os2 win)
     72 TOOL_GXX3OMF_FIX_SLASHES = $(subst /,\\,$1)
     73 TOOL_GXX3OMF_FIX_SLASHES_SQ = $(subst /,\,$1)
     74else
     75 TOOL_GXX3OMF_FIX_SLASHES = $1
     76 TOOL_GXX3OMF_FIX_SLASHES_SQ = $1
     77endif
     78
    5979# General Properties used by kBuild
    6080TOOL_GXX3OMF_COBJSUFF         ?= .o
    6181TOOL_GXX3OMF_CFLAGS           ?= -Zomf
     
    7494TOOL_GXX3OMF_CXXINCS          ?=
    7595TOOL_GXX3OMF_CXXDEFS          ?=
    7696
     97ifeq ($(TOOL_GXX3OMF_RC_TYPE),WRC)
     98TOOL_GXX3OMF_RCOBJSUFF        ?= .res
     99TOOL_GXX3OMF_RCFLAGS          ?= -q
     100TOOL_GXX3OMF_RCFLAGS.os2      ?= -bt=os2
     101TOOL_GXX3OMF_RCFLAGS.win      ?= -bt=nt
     102else
    77103TOOL_GXX3OMF_RCOBJSUFF        ?= .res
    78104TOOL_GXX3OMF_RCFLAGS          ?= -n
    79105TOOL_GXX3OMF_RCINCS           ?=
    80106TOOL_GXX3OMF_RCDEFS           ?=
     107endif
    81108
    82109TOOL_GXX3OMF_ASFLAGS          ?= -x assembler-with-cpp -Zomf
    83110TOOL_GXX3OMF_ASFLAGS.debug    ?= -g
     
    183210
    184211
    185212## Compile resource file.
     213ifeq ($(TOOL_GXX3OMF_RC_TYPE),WRC)
     214TOOL_GXX3OMF_COMPILE_RC_OUTPUT =
     215TOOL_GXX3OMF_COMPILE_RC_DEPEND =
     216TOOL_GXX3OMF_COMPILE_RC_DEPORD =
     217define TOOL_GXX3OMF_COMPILE_RC_CMDS
     218        $(QUIET)$(TOOL_GXX3OMF_RC) -r\
     219                $(flags) \
     220                $(addprefix -i=, $(dir $(source)) $(call TOOL_GXX3OMF_FIX_SLASHES,$(incs))) \
     221                $(addprefix -d, $(defs))\
     222                -fo=$(call TOOL_GXX3OMF_FIX_SLASHES,$(obj)) \
     223                $(call TOOL_GXX3OMF_FIX_SLASHES,$(abspath $(source)))
     224endef
     225else # ifeq ($(TOOL_GXX3OMF_RC_TYPE),WRC)
    186226TOOL_GXX3OMF_COMPILE_RC_DEPEND =
    187227TOOL_GXX3OMF_COMPILE_RC_DEPORD =
    188228TOOL_GXX3OMF_COMPILE_RC_OUTPUT =
     
    193233                $(addprefix -D ,$(defs))\
    194234                $(source) $(obj)
    195235endef
     236endif # ifeq ($(TOOL_GXX3OMF_RC_TYPE),WRC)
    196237
    197238
    198239## Compile Assembly source.
     
    270311                $(othersrc)\
    271312                $(foreach lib,$(libs), $(if $(findstring $(lib),$(subst /,x,$(lib))), -l$(patsubst lib%,%,$(lib)), $(lib)))\
    272313                -Zmap=$(outbase).map
    273         $(QUIET)$(TOOL_GXX3OMF_LD) @$(outbase).rsp
    274         $(if $(filter %.res,$(objs)), \
    275                 $(QUIET)$(TOOL_GXX3OMF_RC) $(filter %.res,$(objs)) $(out))
     314        $(QUIET)$(call TOOL_GXX3OMF_ENV_SETUP) \
     315                $(TOOL_GXX3OMF_LD) @$(outbase).rsp
    276316endef
    277317
    278318
     
    304344                $(othersrc)\
    305345                $(foreach lib,$(libs), $(if $(findstring $(lib),$(subst /,x,$(lib))), -l$(patsubst lib%,%,$(lib)), $(lib)))\
    306346                -Zmap=$(outbase).map
    307         $(QUIET)$(TOOL_GXX3OMF_LD) @$(outbase).rsp
     347        $(QUIET)$(call TOOL_GXX3OMF_ENV_SETUP) \
     348                $(TOOL_GXX3OMF_LD) @$(outbase).rsp
    308349        $(if $(filter KMK_NOIMPLIB,$(flags)),, \
    309350                $(QUIET)$(TOOL_GXX3OMF_AR_IMP) -o $(PATH_STAGE_LIB)/$(notdir $(outbase)).lib $(out))
    310         $(if $(filter %.res,$(objs)), \
    311                 $(QUIET)$(TOOL_GXX3OMF_RC) $(filter %.res,$(objs)) $(out))
    312351endef
    313352
    314353
     
    339378                $(othersrc)\
    340379                $(foreach lib,$(libs), $(if $(findstring $(lib),$(subst /,x,$(lib))), -l$(patsubst lib%,%,$(lib)), $(lib)))\
    341380                -Zmap=$(outbase).map
    342         $(QUIET)$(TOOL_GXX3OMF_LD_SYSMOD) @$(outbase).rsp
    343         $(if $(filter %.res,$(objs)), \
    344                 $(QUIET)$(TOOL_GXX3OMF_RC) $(filter %.res,$(objs)) $(out))
     381        $(QUIET)$(call TOOL_GXX3OMF_ENV_SETUP) \
     382                $(TOOL_GXX3OMF_LD_SYSMOD) @$(outbase).rsp
    345383endef
    346384