Ignore:
Timestamp:
May 27, 2007, 6:45:22 PM (18 years ago)
Author:
bird
Message:

GCC -> GXX. (the GCC is going to do plain C linking using gcc instead of g++ to fix these incorrect dependencies on the C++ RT when linking C progs.)

File:
1 copied

Legend:

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

    r965 r971  
    22## @file
    33#
    4 # kBuild Tool Config - Generic GCC Using The System GCC.
     4# kBuild Tool Config - Generic GCC using the system GCC, for building C++ code.
    55#
    66# Copyright (c) 2004-2007 knut st. osmundsen <bird-kBuild-spam@anduin.net>
     
    2525#
    2626
    27 TOOL_GCC := Generic GCC Using The System GCC.
     27TOOL_GXX := Generic GCC using the system GCC, for building C++ code.
    2828
    2929# Tool Specific Properties
    30 TOOL_GCC_CC  ?= gcc$(HOSTSUFF_EXE)
    31 TOOL_GCC_CXX ?= g++$(HOSTSUFF_EXE)
    32 TOOL_GCC_AS  ?= gcc$(HOSTSUFF_EXE)
    33 TOOL_GCC_AR  ?= ar$(HOSTSUFF_EXE)
    34 TOOL_GCC_RANLIB ?= ranlib$(HOSTSUFF_EXE)
    35 TOOL_GCC_LD  ?= g++$(HOSTSUFF_EXE)
    36 TOOL_GCC_LDFLAGS.dll.os2 ?= -Zdll
    37 TOOL_GCC_LDFLAGS.dll.darwin ?= -dynamiclib
    38 ifndef TOOL_GCC_LDFLAGS.$(BUILD_TARGET)
    39 TOOL_GCC_LDFLAGS.dll ?= -shared
     30TOOL_GXX_CC  ?= gcc$(HOSTSUFF_EXE)
     31TOOL_GXX_CXX ?= g++$(HOSTSUFF_EXE)
     32TOOL_GXX_AS  ?= gcc$(HOSTSUFF_EXE)
     33TOOL_GXX_AR  ?= ar$(HOSTSUFF_EXE)
     34TOOL_GXX_RANLIB ?= ranlib$(HOSTSUFF_EXE)
     35TOOL_GXX_LD  ?= g++$(HOSTSUFF_EXE)
     36TOOL_GXX_LDFLAGS.dll.os2 ?= -Zdll
     37TOOL_GXX_LDFLAGS.dll.darwin ?= -dynamiclib
     38ifndef TOOL_GXX_LDFLAGS.$(BUILD_TARGET)
     39TOOL_GXX_LDFLAGS.dll ?= -shared
    4040else
    41 TOOL_GCC_LDFLAGS.dll ?= $(TOOL_GCC_LDFLAGS.$(BUILD_TARGET))
     41TOOL_GXX_LDFLAGS.dll ?= $(TOOL_GXX_LDFLAGS.$(BUILD_TARGET))
    4242endif
    4343
    4444# General Properties used by kBuild
    45 TOOL_GCC_COBJSUFF         ?= .o
    46 TOOL_GCC_CFLAGS           ?=
    47 TOOL_GCC_CFLAGS.debug     ?= -g
    48 TOOL_GCC_CFLAGS.profile   ?= -g -O2 #-pg
    49 TOOL_GCC_CFLAGS.release   ?= -O2
    50 TOOL_GCC_CINCS            ?=
    51 TOOL_GCC_CDEFS            ?=
    52 
    53 TOOL_GCC_CXXOBJSUFF       ?= .o
    54 TOOL_GCC_CXXOBJSUFF       ?= .o
    55 TOOL_GCC_CXXFLAGS         ?=
    56 TOOL_GCC_CXXFLAGS.debug   ?= -g -O0
    57 TOOL_GCC_CXXFLAGS.profile ?= -g -O2 #-pg
    58 TOOL_GCC_CXXFLAGS.release ?= -O2
    59 TOOL_GCC_CXXINCS          ?=
    60 TOOL_GCC_CXXDEFS          ?=
    61 
    62 TOOL_GCC_ASFLAGS          ?= -x assembler-with-cpp
    63 TOOL_GCC_ASFLAGS.debug    ?= -g
    64 TOOL_GCC_ASFLAGS.profile  ?= -g
    65 TOOL_GCC_ASOBJSUFF        ?= .o
    66 
    67 TOOL_GCC_ARFLAGS          ?= cr
    68 TOOL_GCC_ARLIBSUFF        ?= .a
    69 
    70 TOOL_GCC_LDFLAGS          ?=
    71 TOOL_GCC_LDFLAGS.debug    ?= -g
    72 TOOL_GCC_LDFLAGS.profile  ?= -g
     45TOOL_GXX_COBJSUFF         ?= .o
     46TOOL_GXX_CFLAGS           ?=
     47TOOL_GXX_CFLAGS.debug     ?= -g
     48TOOL_GXX_CFLAGS.profile   ?= -g -O2 #-pg
     49TOOL_GXX_CFLAGS.release   ?= -O2
     50TOOL_GXX_CINCS            ?=
     51TOOL_GXX_CDEFS            ?=
     52
     53TOOL_GXX_CXXOBJSUFF       ?= .o
     54TOOL_GXX_CXXOBJSUFF       ?= .o
     55TOOL_GXX_CXXFLAGS         ?=
     56TOOL_GXX_CXXFLAGS.debug   ?= -g -O0
     57TOOL_GXX_CXXFLAGS.profile ?= -g -O2 #-pg
     58TOOL_GXX_CXXFLAGS.release ?= -O2
     59TOOL_GXX_CXXINCS          ?=
     60TOOL_GXX_CXXDEFS          ?=
     61
     62TOOL_GXX_ASFLAGS          ?= -x assembler-with-cpp
     63TOOL_GXX_ASFLAGS.debug    ?= -g
     64TOOL_GXX_ASFLAGS.profile  ?= -g
     65TOOL_GXX_ASOBJSUFF        ?= .o
     66
     67TOOL_GXX_ARFLAGS          ?= cr
     68TOOL_GXX_ARLIBSUFF        ?= .a
     69
     70TOOL_GXX_LDFLAGS          ?=
     71TOOL_GXX_LDFLAGS.debug    ?= -g
     72TOOL_GXX_LDFLAGS.profile  ?= -g
    7373
    7474
     
    8686# @param    $(objsuff)  Object suffix.
    8787#
    88 TOOL_GCC_COMPILE_C_OUTPUT =
    89 TOOL_GCC_COMPILE_C_DEPEND =
    90 TOOL_GCC_COMPILE_C_DEPORD =
    91 define TOOL_GCC_COMPILE_C_CMDS
    92         $(QUIET)$(TOOL_GCC_CC) -c\
     88TOOL_GXX_COMPILE_C_OUTPUT =
     89TOOL_GXX_COMPILE_C_DEPEND =
     90TOOL_GXX_COMPILE_C_DEPORD =
     91define TOOL_GXX_COMPILE_C_CMDS
     92        $(QUIET)$(TOOL_GXX_CC) -c\
    9393                $(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\
    9494                -Wp,-MD,$(dep) -Wp,-MT,$(obj) \
     
    111111# @param    $(outbase)  Output basename (full). Use this for list files and such.
    112112# @param    $(objsuff)  Object suffix.
    113 TOOL_GCC_COMPILE_CXX_OUTPUT =
    114 TOOL_GCC_COMPILE_CXX_DEPEND =
    115 TOOL_GCC_COMPILE_CXX_DEPORD =
    116 define TOOL_GCC_COMPILE_CXX_CMDS
    117         $(QUIET)$(TOOL_GCC_CXX) -c\
     113TOOL_GXX_COMPILE_CXX_OUTPUT =
     114TOOL_GXX_COMPILE_CXX_DEPEND =
     115TOOL_GXX_COMPILE_CXX_DEPORD =
     116define TOOL_GXX_COMPILE_CXX_CMDS
     117        $(QUIET)$(TOOL_GXX_CXX) -c\
    118118                $(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\
    119119                -Wp,-MD,$(dep) -Wp,-MT,$(obj) \
     
    136136# @param    $(objsuff)  Object suffix.
    137137#
    138 TOOL_GCC_COMPILE_AS_OUTPUT =
    139 TOOL_GCC_COMPILE_AS_DEPEND =
    140 TOOL_GCC_COMPILE_AS_DEPORD =
    141 define TOOL_GCC_COMPILE_AS_CMDS
    142         $(QUIET)$(TOOL_GCC_AS) -c\
     138TOOL_GXX_COMPILE_AS_OUTPUT =
     139TOOL_GXX_COMPILE_AS_DEPEND =
     140TOOL_GXX_COMPILE_AS_DEPORD =
     141define TOOL_GXX_COMPILE_AS_CMDS
     142        $(QUIET)$(TOOL_GXX_AS) -c\
    143143                $(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\
    144144                -Wp,-MD,$(dep) -Wp,-MT,$(obj) \
     
    157157#
    158158# @param    $(outbase)  Output basename (full). Use this for list files and such.
    159 TOOL_GCC_LINK_LIBRARY_OUTPUT =
    160 TOOL_GCC_LINK_LIBRARY_DEPEND =
    161 TOOL_GCC_LINK_LIBRARY_DEPORD =
    162 define TOOL_GCC_LINK_LIBRARY_CMDS
    163         $(QUIET)$(TOOL_GCC_AR) $(flags) $(out) $(objs)
    164         $(call xargs,$(QUIET)$(TOOL_GCC_AR) $(flags) $(out),$(objs))
     159TOOL_GXX_LINK_LIBRARY_OUTPUT =
     160TOOL_GXX_LINK_LIBRARY_DEPEND =
     161TOOL_GXX_LINK_LIBRARY_DEPORD =
     162define TOOL_GXX_LINK_LIBRARY_CMDS
     163        $(QUIET)$(TOOL_GXX_AR) $(flags) $(out) $(objs)
     164        $(call xargs,$(QUIET)$(TOOL_GXX_AR) $(flags) $(out),$(objs))
    165165        $(foreach lib,$(othersrc)\
    166166                ,$(NL)$(TAB)$(call MSG_AR_MERGE,$(target),$(out),$(lib)) \
     
    168168                $(NL)$(TAB)$(QUIET)$(MKDIR) -p $(dir $(outbase))/ar.tmp.dir/ \
    169169                $(NL)$(TAB)$(QUIET)(cd $(dir $(outbase))ar.tmp.dir/ \
    170                         && $(TOOL_GCC_AR) x $(abspath $(lib)) \
    171                         && $(TOOL_GCC_AR) $(flags) $(out) *) \
     170                        && $(TOOL_GXX_AR) x $(abspath $(lib)) \
     171                        && $(TOOL_GXX_AR) $(flags) $(out) *) \
    172172                $(NL)$(TAB)$(QUIET)$(RM_EXT) -f $(dir $(outbase))/ar.tmp.dir/* \
    173173                $(NL)$(TAB)$(QUIET)$(RMDIR) $(dir $(outbase))ar.tmp.dir/)
    174         $(QUIET)$(TOOL_GCC_RANLIB) $(out)
     174        $(QUIET)$(TOOL_GXX_RANLIB) $(out)
    175175endef
    176176
     
    190190#
    191191# @param    $(outbase)  Output basename (full). Use this for list files and such.
    192 TOOL_GCC_LINK_PROGRAM_OUTPUT =
    193 TOOL_GCC_LINK_PROGRAM_DEPEND = $(foreach lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib)))
    194 TOOL_GCC_LINK_PROGRAM_DEPORD =
    195 define TOOL_GCC_LINK_PROGRAM_CMDS
    196         $(QUIET)$(TOOL_GCC_LD) $(flags) -o $(out) $(objs) \
     192TOOL_GXX_LINK_PROGRAM_OUTPUT =
     193TOOL_GXX_LINK_PROGRAM_DEPEND = $(foreach lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib)))
     194TOOL_GXX_LINK_PROGRAM_DEPORD =
     195define TOOL_GXX_LINK_PROGRAM_CMDS
     196        $(QUIET)$(TOOL_GXX_LD) $(flags) -o $(out) $(objs) \
    197197                $(foreach lib,$(libs), $(if $(findstring $(lib),$(subst /,x,$(lib))), -l$(patsubst lib%,%,$(basename $(lib))), $(lib)))
    198198endef
     
    212212# @param    $(custom_post)  Custom step invoked after linking.
    213213# @param    $(outbase)      Output basename (full). Use this for list files and such.
    214 TOOL_GCC_LINK_DLL_OUTPUT =
    215 TOOL_GCC_LINK_DLL_DEPEND = $(foreach lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib)))
    216 TOOL_GCC_LINK_DLL_DEPORD =
    217 define TOOL_GCC_LINK_DLL_CMDS
    218         $(QUIET)$(TOOL_GCC_LD) $(TOOL_GCC_LDFLAGS.dll) $(flags) -o $(out) $(objs) \
     214TOOL_GXX_LINK_DLL_OUTPUT =
     215TOOL_GXX_LINK_DLL_DEPEND = $(foreach lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib)))
     216TOOL_GXX_LINK_DLL_DEPORD =
     217define TOOL_GXX_LINK_DLL_CMDS
     218        $(QUIET)$(TOOL_GXX_LD) $(TOOL_GXX_LDFLAGS.dll) $(flags) -o $(out) $(objs) \
    219219                $(foreach lib,$(libs), $(if $(findstring $(lib),$(subst /,x,$(lib))), -l$(patsubst lib%,%,$(basename $(lib))), $(lib)))
    220220endef
Note: See TracChangeset for help on using the changeset viewer.