Changeset 2356 for trunk/kBuild/tools


Ignore:
Timestamp:
Oct 12, 2009, 9:51:08 AM (16 years ago)
Author:
bird
Message:

kBuild: Objective-C++ support.

Location:
trunk/kBuild/tools
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/kBuild/tools/GCC4MACHO.kmk

    r2243 r2356  
    3535
    3636# Tool Specific Properties
    37 TOOL_GCC4MACHO_CC  ?= gcc$(HOSTSUFF_EXE)
    38 TOOL_GCC4MACHO_CXX ?= g++$(HOSTSUFF_EXE)
    39 TOOL_GCC4MACHO_OBJC?= gcc$(HOSTSUFF_EXE)
    40 TOOL_GCC4MACHO_AS  ?= gcc$(HOSTSUFF_EXE)
    41 TOOL_GCC4MACHO_LD  ?= gcc$(HOSTSUFF_EXE)
     37TOOL_GCC4MACHO_CC        ?= gcc$(HOSTSUFF_EXE)
     38TOOL_GCC4MACHO_CXX       ?= g++$(HOSTSUFF_EXE)
     39TOOL_GCC4MACHO_OBJC      ?= gcc$(HOSTSUFF_EXE)
     40TOOL_GCC4MACHO_OBJCXX    ?= gcc$(HOSTSUFF_EXE)
     41TOOL_GCC4MACHO_AS        ?= gcc$(HOSTSUFF_EXE)
     42TOOL_GCC4MACHO_LD        ?= gcc$(HOSTSUFF_EXE)
    4243TOOL_GCC4MACHO_LD_SYSMOD ?= gcc$(HOSTSUFF_EXE)
    4344ifndef TOOL_GCC4MACHO_LDFLAGS.$(KBUILD_TARGET)
     
    5051
    5152ifdef SLKRUNS
    52 TOOL_GCC4MACHO_CC  += -fmessage-length=0
    53 TOOL_GCC4MACHO_CXX += -fmessage-length=0
    54 TOOL_GCC4MACHO_OBJC+= -fmessage-length=0
     53TOOL_GCC4MACHO_CC        += -fmessage-length=0
     54TOOL_GCC4MACHO_CXX       += -fmessage-length=0
     55TOOL_GCC4MACHO_OBJC      += -fmessage-length=0
     56TOOL_GCC4MACHO_OBJCXX    += -fmessage-length=0
    5557endif
    5658
     
    6567
    6668TOOL_GCC4MACHO_CXXOBJSUFF       ?= .o
    67 TOOL_GCC4MACHO_CXXOBJSUFF       ?= .o
    6869TOOL_GCC4MACHO_CXXFLAGS         ?=
    6970TOOL_GCC4MACHO_CXXFLAGS.debug   ?= -g
     
    7374TOOL_GCC4MACHO_CXXDEFS          ?=
    7475
    75 TOOL_GCC4MACHO_OBJCOBJSUFF      ?= .o
    7676TOOL_GCC4MACHO_OBJCOBJSUFF      ?= .o
    7777TOOL_GCC4MACHO_OBJCFLAGS        ?=
     
    8181TOOL_GCC4MACHO_OBJCINCS         ?=
    8282TOOL_GCC4MACHO_OBJCDEFS         ?=
     83
     84TOOL_GCC4MACHO_OBJCXXOBJSUFF        ?= .o
     85TOOL_GCC4MACHO_OBJCXXFLAGS          ?=
     86TOOL_GCC4MACHO_OBJCXXFLAGS.debug    ?= -g
     87TOOL_GCC4MACHO_OBJCXXFLAGS.profile  ?= -O2 #-g -pg
     88TOOL_GCC4MACHO_OBJCXXFLAGS.release  ?= -O2
     89TOOL_GCC4MACHO_OBJCXXINCS           ?=
     90TOOL_GCC4MACHO_OBJCXXDEFS           ?=
    8391
    8492TOOL_GCC4MACHO_ASFLAGS          ?= -x assembler-with-cpp
     
    215223define TOOL_GCC4MACHO_COMPILE_OBJC_CMDS
    216224        $(QUIET)$(TOOL_GCC4MACHO_OBJC) -c\
     225                $(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\
     226                -Wp,-MD,$(dep) -Wp,-MT,$(obj) -Wp,-MP\
     227                -o $(obj)\
     228                $(abspath $(source))
     229endef
     230endif # !KBUILD_USE_KOBJCACHE
     231
     232
     233## Compile Objective-C++ source.
     234# @param    $(target)   Normalized main target name.
     235# @param    $(source)   Source filename (relative).
     236# @param    $(obj)      Object file name. This shall be (re)created by the compilation.
     237# @param    $(dep)          Dependcy file. This shall be (re)created by the compilation.
     238# @param    $(flags)    Flags.
     239# @param    $(defs)     Definitions. No -D or something.
     240# @param    $(incs)     Includes. No -I or something.
     241# @param    $(dirdep)   Directory creation dependency.
     242# @param    $(deps)             Other dependencies.
     243# @param    $(outbase)  Output basename (full). Use this for list files and such.
     244# @param    $(objsuff)  Object suffix.
     245TOOL_GCC4MACHO_COMPILE_OBJCXX_DEPEND =
     246TOOL_GCC4MACHO_COMPILE_OBJCXX_DEPORD =
     247ifdef KBUILD_USE_KOBJCACHE
     248TOOL_GCC4MACHO_COMPILE_OBJCXX_USES_KOBJCACHE = 1
     249TOOL_GCC4MACHO_COMPILE_OBJCXX_OUTPUT = $(outbase).mii
     250define TOOL_GCC4MACHO_COMPILE_OBJCXX_CMDS
     251        $(QUIET)$(KOBJCACHE) -f $(outbase).koc -d $(PATH_OBJCACHE) -t $(bld_trg).$(bld_trg_arch) -p\
     252                --kObjCache-cpp $(outbase).mii\
     253                $(TOOL_GCC4MACHO_OBJCXX) -E -o -\
     254                $(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\
     255                -Wp,-MD,$(dep) -Wp,-MT,$(obj) -Wp,-MP\
     256                $(abspath $(source))\
     257                --kObjCache-cc $(obj)\
     258                $(TOOL_GCC4MACHO_OBJCXX) -c\
     259                $(flags) -fpreprocessed -x cbjective-c\
     260                -o $(obj)\
     261                -
     262endef
     263else  # !KBUILD_USE_KOBJCACHE
     264TOOL_GCC4MACHO_COMPILE_OBJCXX_OUTPUT =
     265define TOOL_GCC4MACHO_COMPILE_OBJCXX_CMDS
     266        $(QUIET)$(TOOL_GCC4MACHO_OBJCXX) -c\
    217267                $(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\
    218268                -Wp,-MD,$(dep) -Wp,-MT,$(obj) -Wp,-MP\
  • trunk/kBuild/tools/GXX4MACHO.kmk

    r2243 r2356  
    3535
    3636# Tool Specific Properties
    37 TOOL_GXX4MACHO_CC  ?= gcc$(HOSTSUFF_EXE)
    38 TOOL_GXX4MACHO_CXX ?= g++$(HOSTSUFF_EXE)
    39 TOOL_GXX4MACHO_OBJC?= gcc$(HOSTSUFF_EXE)
    40 TOOL_GXX4MACHO_AS  ?= gcc$(HOSTSUFF_EXE)
    41 TOOL_GXX4MACHO_LD  ?= g++$(HOSTSUFF_EXE)
     37TOOL_GXX4MACHO_CC        ?= gcc$(HOSTSUFF_EXE)
     38TOOL_GXX4MACHO_CXX       ?= g++$(HOSTSUFF_EXE)
     39TOOL_GXX4MACHO_OBJC      ?= gcc$(HOSTSUFF_EXE)
     40TOOL_GXX4MACHO_OBJCXX    ?= gcc$(HOSTSUFF_EXE)
     41TOOL_GXX4MACHO_AS        ?= gcc$(HOSTSUFF_EXE)
     42TOOL_GXX4MACHO_LD        ?= g++$(HOSTSUFF_EXE)
    4243TOOL_GXX4MACHO_LD_SYSMOD ?= g++$(HOSTSUFF_EXE)
    4344ifndef TOOL_GXX4MACHO_LDFLAGS.$(KBUILD_TARGET)
     
    5051
    5152ifdef SLKRUNS
    52 TOOL_GXX4MACHO_CC  += -fmessage-length=0
    53 TOOL_GXX4MACHO_CXX += -fmessage-length=0
    54 TOOL_GXX4MACHO_OBJC+= -fmessage-length=0
     53TOOL_GXX4MACHO_CC     += -fmessage-length=0
     54TOOL_GXX4MACHO_CXX    += -fmessage-length=0
     55TOOL_GXX4MACHO_OBJC   += -fmessage-length=0
     56TOOL_GXX4MACHO_OBJCXX += -fmessage-length=0
    5557endif
    5658
     
    6567
    6668TOOL_GXX4MACHO_CXXOBJSUFF       ?= .o
    67 TOOL_GXX4MACHO_CXXOBJSUFF       ?= .o
    6869TOOL_GXX4MACHO_CXXFLAGS         ?=
    6970TOOL_GXX4MACHO_CXXFLAGS.debug   ?= -g
     
    7374TOOL_GXX4MACHO_CXXDEFS          ?=
    7475
    75 TOOL_GXX4MACHO_OBJCOBJSUFF      ?= .o
    7676TOOL_GXX4MACHO_OBJCOBJSUFF      ?= .o
    7777TOOL_GXX4MACHO_OBJCFLAGS        ?=
     
    8181TOOL_GXX4MACHO_OBJCINCS         ?=
    8282TOOL_GXX4MACHO_OBJCDEFS         ?=
     83
     84TOOL_GXX4MACHO_OBJCXXOBJSUFF        ?= .o
     85TOOL_GXX4MACHO_OBJCXXFLAGS          ?=
     86TOOL_GXX4MACHO_OBJCXXFLAGS.debug    ?= -g
     87TOOL_GXX4MACHO_OBJCXXFLAGS.profile  ?= -O2 #-g -pg
     88TOOL_GXX4MACHO_OBJCXXFLAGS.release  ?= -O2
     89TOOL_GXX4MACHO_OBJCXXINCS           ?=
     90TOOL_GXX4MACHO_OBJCXXDEFS           ?=
    8391
    8492TOOL_GXX4MACHO_ASFLAGS          ?= -x assembler-with-cpp
     
    215223define TOOL_GXX4MACHO_COMPILE_OBJC_CMDS
    216224        $(QUIET)$(TOOL_GXX4MACHO_OBJC) -c\
     225                $(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\
     226                -Wp,-MD,$(dep) -Wp,-MT,$(obj) -Wp,-MP\
     227                -o $(obj)\
     228                $(abspath $(source))
     229endef
     230endif # !KUSE_OBJCACHE
     231
     232
     233## Compile Objective-C++ source.
     234# @param    $(target)   Normalized main target name.
     235# @param    $(source)   Source filename (relative).
     236# @param    $(obj)      Object file name. This shall be (re)created by the compilation.
     237# @param    $(dep)          Dependcy file. This shall be (re)created by the compilation.
     238# @param    $(flags)    Flags.
     239# @param    $(defs)     Definitions. No -D or something.
     240# @param    $(incs)     Includes. No -I or something.
     241# @param    $(dirdep)   Directory creation dependency.
     242# @param    $(deps)             Other dependencies.
     243# @param    $(outbase)  Output basename (full). Use this for list files and such.
     244# @param    $(objsuff)  Object suffix.
     245TOOL_GXX4MACHO_COMPILE_OBJCXX_DEPEND =
     246TOOL_GXX4MACHO_COMPILE_OBJCXX_DEPORD =
     247ifdef KBUILD_USE_KOBJCACHE
     248TOOL_GXX4MACHO_COMPILE_OBJCXX_USES_KOBJCACHE = 1
     249TOOL_GXX4MACHO_COMPILE_OBJCXX_OUTPUT = $(outbase).mii
     250define TOOL_GXX4MACHO_COMPILE_OBJCXX_CMDS
     251        $(QUIET)$(KOBJCACHE) -f $(outbase).koc -d $(PATH_OBJCACHE) -t $(bld_trg).$(bld_trg_arch) -p\
     252                --kObjCache-cpp $(outbase).mii\
     253                $(TOOL_GXX4MACHO_OBJCXX) -E -o -\
     254                $(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\
     255                -Wp,-MD,$(dep) -Wp,-MT,$(obj) -Wp,-MP\
     256                $(abspath $(source))\
     257                --kObjCache-cc $(obj)\
     258                $(TOOL_GXX4MACHO_OBJCXX) -c\
     259                $(flags) -fpreprocessed -x objective-c \
     260                -o $(obj)\
     261                -
     262endef
     263else  # !KBUILD_USE_KOBJCACHE
     264TOOL_GXX4MACHO_COMPILE_OBJCXX_OUTPUT =
     265define TOOL_GXX4MACHO_COMPILE_OBJCXX_CMDS
     266        $(QUIET)$(TOOL_GXX4MACHO_OBJCXX) -c\
    217267                $(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\
    218268                -Wp,-MD,$(dep) -Wp,-MT,$(obj) -Wp,-MP\
Note: See TracChangeset for help on using the changeset viewer.