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/GXX3.kmk

    r965 r971  
    22## @file
    33#
    4 # kBuild Tool Config - Generic GCC v3.2.x or later Using The System GCC and Binutils.
     4# kBuild Tool Config - Generic GCC v3.2.x using the system GCC and Binutils, for building C++ code.
    55#
    66# Copyright (c) 2004-2007 knut st. osmundsen <bird-kBuild-spam@anduin.net>
     
    2525#
    2626
    27 TOOL_GCC3 := Generic GCC v3.2.x or later Using The System GCC and Binutils.
     27TOOL_GXX3 := Generic GCC v3.2.x or later using the system GCC and Binutils, for building C++ code.
    2828
    2929# Tool Specific Properties
    30 TOOL_GCC3_CC  ?= gcc$(HOSTSUFF_EXE)
    31 TOOL_GCC3_CXX ?= g++$(HOSTSUFF_EXE)
    32 TOOL_GCC3_AS  ?= gcc$(HOSTSUFF_EXE)
    33 ifeq ($(BUILD_TARGET),solaris) ## @todo drop the MRI script!
    34  TOOL_GCC3_AR ?= gar$(HOSTSUFF_EXE)
    35 else
    36  TOOL_GCC3_AR ?= ar$(HOSTSUFF_EXE)
     30TOOL_GXX3_CC  ?= gcc$(HOSTSUFF_EXE)
     31TOOL_GXX3_CXX ?= g++$(HOSTSUFF_EXE)
     32TOOL_GXX3_AS  ?= gcc$(HOSTSUFF_EXE)
     33ifeq ($(BUILD_TARGET),solaris)
     34 TOOL_GXX3_AR ?= gar$(HOSTSUFF_EXE)
     35else
     36 TOOL_GXX3_AR ?= ar$(HOSTSUFF_EXE)
    3737endif
    3838ifeq ($(BUILD_TARGET),os2)
    39  TOOL_GCC3_AR_IMP ?= emximp$(HOSTSTUFF_EXE)
    40 else
    41  TOOL_GCC3_AR_IMP ?= $(ECHO) not supported!
    42 endif
    43 TOOL_GCC3_LD ?= g++$(HOSTSUFF_EXE)
    44 TOOL_GCC3_LD_SYSMOD ?= ld$(HOSTSUFF_EXE)
    45 ifndef TOOL_GCC3_LDFLAGS.$(BUILD_TARGET)
    46  TOOL_GCC3_LDFLAGS.dll ?= -shared
    47 else
    48  TOOL_GCC3_LDFLAGS.dll ?= $(TOOL_GCC3_LDFLAGS.$(BUILD_TARGET))
    49 endif
    50 TOOL_GCC3_LDFLAGS.sysmod ?= -r
    51 TOOL_GCC3_LD_SONAME ?= -Wl,-soname=$(firstword $($(1)_SONAME.$(BUILD_TARGET).$(BUILD_TYPE)) $($(1)_SONAME.$(BUILD_TARGET)) $($(1)_SONAME.$(BUILD_TYPE)) $($(1)_SONAME) $(notdir $(2)))
     39 TOOL_GXX3_AR_IMP ?= emximp$(HOSTSTUFF_EXE)
     40else
     41 TOOL_GXX3_AR_IMP ?= $(ECHO) not supported!
     42endif
     43TOOL_GXX3_LD ?= g++$(HOSTSUFF_EXE)
     44TOOL_GXX3_LD_SYSMOD ?= ld$(HOSTSUFF_EXE)
     45ifndef TOOL_GXX3_LDFLAGS.$(BUILD_TARGET)
     46 TOOL_GXX3_LDFLAGS.dll ?= -shared
     47else
     48 TOOL_GXX3_LDFLAGS.dll ?= $(TOOL_GXX3_LDFLAGS.$(BUILD_TARGET))
     49endif
     50TOOL_GXX3_LDFLAGS.sysmod ?= -r
     51TOOL_GXX3_LD_SONAME ?= -Wl,-soname=$(firstword $($(1)_SONAME.$(BUILD_TARGET).$(BUILD_TYPE)) $($(1)_SONAME.$(BUILD_TARGET)) $($(1)_SONAME.$(BUILD_TYPE)) $($(1)_SONAME) $(notdir $(2)))
    5252ifeq ($(BUILD_TARGET),os2)
    53  TOOL_GCC3_LD_MAP ?= -Zmap=$(1)
    54  TOOL_GCC3_LD_SYSMOD_MAP ?= -Zmap=$(1)
     53 TOOL_GXX3_LD_MAP ?= -Zmap=$(1)
     54 TOOL_GXX3_LD_SYSMOD_MAP ?= -Zmap=$(1)
    5555endif
    5656ifdef SLKRUNS
    57  TOOL_GCC3_CC  += -fmessage-length=0
    58  TOOL_GCC3_CXX += -fmessage-length=0
     57 TOOL_GXX3_CC  += -fmessage-length=0
     58 TOOL_GXX3_CXX += -fmessage-length=0
    5959endif
    6060
    6161# General Properties used by kBuild
    62 TOOL_GCC3_COBJSUFF         ?= .o
    63 TOOL_GCC3_CFLAGS           ?=
    64 TOOL_GCC3_CFLAGS.debug     ?= -g
    65 TOOL_GCC3_CFLAGS.profile   ?= -g -O2 #-pg
    66 TOOL_GCC3_CFLAGS.release   ?= -O2
    67 TOOL_GCC3_CINCS            ?=
    68 TOOL_GCC3_CDEFS            ?=
    69 
    70 TOOL_GCC3_CXXOBJSUFF       ?= .o
    71 TOOL_GCC3_CXXOBJSUFF       ?= .o
    72 TOOL_GCC3_CXXFLAGS         ?=
    73 TOOL_GCC3_CXXFLAGS.debug   ?= -g
    74 TOOL_GCC3_CXXFLAGS.profile ?= -g -O2 #-pg
    75 TOOL_GCC3_CXXFLAGS.release ?= -O2
    76 TOOL_GCC3_CXXINCS          ?=
    77 TOOL_GCC3_CXXDEFS          ?=
    78 
    79 TOOL_GCC3_ASFLAGS          ?= -x assembler-with-cpp
    80 TOOL_GCC3_ASFLAGS.debug    ?= -g
    81 TOOL_GCC3_ASFLAGS.profile  ?= -g
    82 TOOL_GCC3_ASOBJSUFF        ?= .o
    83 
    84 TOOL_GCC3_ARFLAGS          ?= cr
    85 TOOL_GCC3_ARLIBSUFF        ?= .a
    86 
    87 TOOL_GCC3_LDFLAGS          ?=
    88 TOOL_GCC3_LDFLAGS.debug    ?= -g
    89 TOOL_GCC3_LDFLAGS.profile  ?= -g
     62TOOL_GXX3_COBJSUFF         ?= .o
     63TOOL_GXX3_CFLAGS           ?=
     64TOOL_GXX3_CFLAGS.debug     ?= -g
     65TOOL_GXX3_CFLAGS.profile   ?= -g -O2 #-pg
     66TOOL_GXX3_CFLAGS.release   ?= -O2
     67TOOL_GXX3_CINCS            ?=
     68TOOL_GXX3_CDEFS            ?=
     69
     70TOOL_GXX3_CXXOBJSUFF       ?= .o
     71TOOL_GXX3_CXXOBJSUFF       ?= .o
     72TOOL_GXX3_CXXFLAGS         ?=
     73TOOL_GXX3_CXXFLAGS.debug   ?= -g
     74TOOL_GXX3_CXXFLAGS.profile ?= -g -O2 #-pg
     75TOOL_GXX3_CXXFLAGS.release ?= -O2
     76TOOL_GXX3_CXXINCS          ?=
     77TOOL_GXX3_CXXDEFS          ?=
     78
     79TOOL_GXX3_ASFLAGS          ?= -x assembler-with-cpp
     80TOOL_GXX3_ASFLAGS.debug    ?= -g
     81TOOL_GXX3_ASFLAGS.profile  ?= -g
     82TOOL_GXX3_ASOBJSUFF        ?= .o
     83
     84TOOL_GXX3_ARFLAGS          ?= cr
     85TOOL_GXX3_ARLIBSUFF        ?= .a
     86
     87TOOL_GXX3_LDFLAGS          ?=
     88TOOL_GXX3_LDFLAGS.debug    ?= -g
     89TOOL_GXX3_LDFLAGS.profile  ?= -g
    9090
    9191
     
    103103# @param    $(outbase)  Output basename (full). Use this for list files and such.
    104104# @param    $(objsuff)  Object suffix.
    105 TOOL_GCC3_COMPILE_C_OUTPUT =
    106 TOOL_GCC3_COMPILE_C_DEPEND =
    107 TOOL_GCC3_COMPILE_C_DEPORD =
    108 define TOOL_GCC3_COMPILE_C_CMDS
    109         $(QUIET)$(TOOL_GCC3_CC) -c\
     105TOOL_GXX3_COMPILE_C_OUTPUT =
     106TOOL_GXX3_COMPILE_C_DEPEND =
     107TOOL_GXX3_COMPILE_C_DEPORD =
     108define TOOL_GXX3_COMPILE_C_CMDS
     109        $(QUIET)$(TOOL_GXX3_CC) -c\
    110110                $(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\
    111111                -Wp,-MD,$(dep) -Wp,-MT,$(obj) -Wp,-MP\
     
    127127# @param    $(outbase)  Output basename (full). Use this for list files and such.
    128128# @param    $(objsuff)  Object suffix.
    129 TOOL_GCC3_COMPILE_CXX_OUTPUT =
    130 TOOL_GCC3_COMPILE_CXX_DEPEND =
    131 TOOL_GCC3_COMPILE_CXX_DEPORD =
    132 define TOOL_GCC3_COMPILE_CXX_CMDS
    133         $(QUIET)$(TOOL_GCC3_CXX) -c\
     129TOOL_GXX3_COMPILE_CXX_OUTPUT =
     130TOOL_GXX3_COMPILE_CXX_DEPEND =
     131TOOL_GXX3_COMPILE_CXX_DEPORD =
     132define TOOL_GXX3_COMPILE_CXX_CMDS
     133        $(QUIET)$(TOOL_GXX3_CXX) -c\
    134134                $(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\
    135135                -Wp,-MD,$(dep) -Wp,-MT,$(obj) -Wp,-MP\
     
    152152# @param    $(objsuff)  Object suffix.
    153153#
    154 TOOL_GCC3_COMPILE_AS_OUTPUT =
    155 TOOL_GCC3_COMPILE_AS_DEPEND =
    156 TOOL_GCC3_COMPILE_AS_DEPORD =
    157 define TOOL_GCC3_COMPILE_AS_CMDS
    158         $(QUIET)$(TOOL_GCC3_AS) -c\
     154TOOL_GXX3_COMPILE_AS_OUTPUT =
     155TOOL_GXX3_COMPILE_AS_DEPEND =
     156TOOL_GXX3_COMPILE_AS_DEPORD =
     157define TOOL_GXX3_COMPILE_AS_CMDS
     158        $(QUIET)$(TOOL_GXX3_AS) -c\
    159159                $(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\
    160160                -Wp,-MD,$(dep) -Wp,-MT,$(obj) -Wp,-MP\
     
    173173# @param    $(othersrc) Unhandled sources.
    174174# @param    $(outbase)  Output basename (full). Use this for list files and such.
    175 TOOL_GCC3_LINK_LIBRARY_OUTPUT = $(out).ar-script $(outbase).imp.a
    176 TOOL_GCC3_LINK_LIBRARY_DEPEND = $(othersrc)
    177 TOOL_GCC3_LINK_LIBRARY_DEPORD =
     175TOOL_GXX3_LINK_LIBRARY_OUTPUT = $(out).ar-script $(outbase).imp.a
     176TOOL_GXX3_LINK_LIBRARY_DEPEND = $(othersrc)
     177TOOL_GXX3_LINK_LIBRARY_DEPORD =
    178178ifeq ($(filter append-dash-n,$(KMK_FEATURES)),append-dash-n)
    179 define TOOL_GCC3_LINK_LIBRARY_CMDS
     179define TOOL_GXX3_LINK_LIBRARY_CMDS
    180180        $(QUIET)$(APPEND) $(out).ar-script 'CREATE $(out)'
    181181        $(QUIET)$(APPEND) -n $(out).ar-script \
     
    183183                $(foreach o,$(filter-out %.def %.imp,$(othersrc)), 'ADDLIB $(o)')
    184184        $(if $(filter %.def %.imp,$(othersrc))\
    185                 ,$(TOOL_GCC3_AR_IMP) -o $(outbase).imp.a $(filter %.def %.imp,$(othersrc))\
     185                ,$(TOOL_GXX3_AR_IMP) -o $(outbase).imp.a $(filter %.def %.imp,$(othersrc))\
    186186                 $(NL)$(TAB)$(QUIET)$(APPEND) $(out).ar-script 'ADDLIB $(outbase).imp.a')
    187187        $(QUIET)$(APPEND) $(out).ar-script 'SAVE'
    188188        $(QUIET)$(APPEND) $(out).ar-script 'END'
    189         $(QUIET)$(TOOL_GCC3_AR) -M < $(out).ar-script
    190 endef
    191 else
    192 define TOOL_GCC3_LINK_LIBRARY_CMDS
     189        $(QUIET)$(TOOL_GXX3_AR) -M < $(out).ar-script
     190endef
     191else
     192define TOOL_GXX3_LINK_LIBRARY_CMDS
    193193        $(QUIET)$(APPEND) $(out).ar-script "CREATE $(out)"
    194194        $(foreach o, $(objs)\
     
    197197                ,$(NL)$(TAB)$(QUIET)$(APPEND) $(out).ar-script "ADDLIB $(srclib)")
    198198        $(if $(filter %.def %.imp,$(othersrc))\
    199                 ,$(TOOL_GCC3_AR_IMP) -o $(outbase).imp.a $(filter %.def %.imp,$(othersrc))\
     199                ,$(TOOL_GXX3_AR_IMP) -o $(outbase).imp.a $(filter %.def %.imp,$(othersrc))\
    200200                 $(NL)$(TAB)$(QUIET)$(APPEND) $(out).ar-script "ADDLIB $(outbase).imp.a")
    201201        $(QUIET)$(APPEND) $(out).ar-script "SAVE"
    202202        $(QUIET)$(APPEND) $(out).ar-script "END"
    203         $(QUIET)$(TOOL_GCC3_AR) -M < $(out).ar-script
     203        $(QUIET)$(TOOL_GXX3_AR) -M < $(out).ar-script
    204204endef
    205205endif
     
    219219# @param    $(custom_post)  Custom step invoked after linking.
    220220# @param    $(outbase)  Output basename (full). Use this for list files and such.
    221 TOOL_GCC3_LINK_PROGRAM_OUTPUT = $(outbase).map
    222 TOOL_GCC3_LINK_PROGRAM_DEPEND = $(foreach lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib)))\
     221TOOL_GXX3_LINK_PROGRAM_OUTPUT = $(outbase).map
     222TOOL_GXX3_LINK_PROGRAM_DEPEND = $(foreach lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib)))\
    223223                $(filter %.def, $(othersrc))
    224 TOOL_GCC3_LINK_PROGRAM_DEPORD =
    225 define TOOL_GCC3_LINK_PROGRAM_CMDS
    226         $(QUIET)$(TOOL_GCC3_LD) $(flags) -o $(out) $(objs)\
     224TOOL_GXX3_LINK_PROGRAM_DEPORD =
     225define TOOL_GXX3_LINK_PROGRAM_CMDS
     226        $(QUIET)$(TOOL_GXX3_LD) $(flags) -o $(out) $(objs)\
    227227                $(filter %.def, $(othersrc))\
    228228                $(foreach p,$(libpath), -L$(p))\
    229229                $(foreach lib,$(libs), $(if $(findstring $(lib),$(subst /,x,$(lib))), -l$(patsubst lib%,%,$(basename $(lib))), $(lib)))\
    230                 $(call TOOL_GCC3_LD_MAP,$(outbase).map)
     230                $(call TOOL_GXX3_LD_MAP,$(outbase).map)
    231231endef
    232232
     
    245245# @param    $(custom_post)  Custom step invoked after linking.
    246246# @param    $(outbase)  Output basename (full). Use this for list files and such.
    247 TOOL_GCC3_LINK_DLL_OUTPUT = $(outbase).map
    248 TOOL_GCC3_LINK_DLL_DEPEND = $(foreach lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib)))\
     247TOOL_GXX3_LINK_DLL_OUTPUT = $(outbase).map
     248TOOL_GXX3_LINK_DLL_DEPEND = $(foreach lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib)))\
    249249                $(filter %.def, $(othersrc))
    250 TOOL_GCC3_LINK_DLL_DEPORD =
    251 define TOOL_GCC3_LINK_DLL_CMDS
    252         $(QUIET)$(TOOL_GCC3_LD) $(TOOL_GCC3_LDFLAGS.dll) $(flags) -o $(out)\
    253                 $(if $(filter-out win32 os2, $(BUILD_TARGET)),$(call TOOL_GCC3_LD_SONAME,$(target),$(out)))\
     250TOOL_GXX3_LINK_DLL_DEPORD =
     251define TOOL_GXX3_LINK_DLL_CMDS
     252        $(QUIET)$(TOOL_GXX3_LD) $(TOOL_GXX3_LDFLAGS.dll) $(flags) -o $(out)\
     253                $(if $(filter-out win32 os2, $(BUILD_TARGET)),$(call TOOL_GXX3_LD_SONAME,$(target),$(out)))\
    254254                $(objs)\
    255255                $(filter %.def, $(othersrc))\
    256256                $(foreach p,$(libpath), -L$(p))\
    257257                $(foreach lib,$(libs), $(if $(findstring $(lib),$(subst /,x,$(lib))), -l$(patsubst lib%,%,$(basename $(lib))), $(lib)))\
    258                 $(call TOOL_GCC3_LD_MAP,$(outbase).map)
     258                $(call TOOL_GXX3_LD_MAP,$(outbase).map)
    259259endef
    260260
     
    273273# @param    $(custom_post)  Custom step invoked after linking.
    274274# @param    $(outbase)  Output basename (full). Use this for list files and such.
    275 TOOL_GCC3_LINK_SYSMOD_OUTPUT = $(outbase).map
    276 TOOL_GCC3_LINK_SYSMOD_DEPEND = $(foreach lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib)))\
     275TOOL_GXX3_LINK_SYSMOD_OUTPUT = $(outbase).map
     276TOOL_GXX3_LINK_SYSMOD_DEPEND = $(foreach lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib)))\
    277277                $(filter %.def, $(othersrc))
    278 TOOL_GCC3_LINK_SYSMOD_DEPORD =
    279 define TOOL_GCC3_LINK_SYSMOD_CMDS
    280         $(QUIET)$(TOOL_GCC3_LD_SYSMOD) $(TOOL_GCC3_LDFLAGS.sysmod) $(flags) -o $(out) $(objs)\
     278TOOL_GXX3_LINK_SYSMOD_DEPORD =
     279define TOOL_GXX3_LINK_SYSMOD_CMDS
     280        $(QUIET)$(TOOL_GXX3_LD_SYSMOD) $(TOOL_GXX3_LDFLAGS.sysmod) $(flags) -o $(out) $(objs)\
    281281                $(filter %.def, $(othersrc))\
    282282                $(foreach p,$(libpath), -L$(p))\
    283283                $(foreach lib,$(libs), $(if $(findstring $(lib),$(subst /,x,$(lib))), -l$(patsubst lib%,%,$(basename $(lib))), $(lib)))\
    284                 $(call TOOL_GCC3_LD_SYSMOD_MAP,$(outbase).map)
    285 endef
    286 
     284                $(call TOOL_GXX3_LD_SYSMOD_MAP,$(outbase).map)
     285endef
     286
Note: See TracChangeset for help on using the changeset viewer.