Changeset 971 for trunk/kBuild/tools/GXX3.kmk
- Timestamp:
- May 27, 2007, 6:45:22 PM (18 years ago)
- File:
-
- 1 copied
Legend:
- Unmodified
- Added
- Removed
-
trunk/kBuild/tools/GXX3.kmk
r965 r971 2 2 ## @file 3 3 # 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. 5 5 # 6 6 # Copyright (c) 2004-2007 knut st. osmundsen <bird-kBuild-spam@anduin.net> … … 25 25 # 26 26 27 TOOL_G CC3 := Generic GCC v3.2.x or later Using The System GCC and Binutils.27 TOOL_GXX3 := Generic GCC v3.2.x or later using the system GCC and Binutils, for building C++ code. 28 28 29 29 # Tool Specific Properties 30 TOOL_G CC3_CC ?= gcc$(HOSTSUFF_EXE)31 TOOL_G CC3_CXX ?= g++$(HOSTSUFF_EXE)32 TOOL_G CC3_AS ?= gcc$(HOSTSUFF_EXE)33 ifeq ($(BUILD_TARGET),solaris) ## @todo drop the MRI script!34 TOOL_G CC3_AR ?= gar$(HOSTSUFF_EXE)35 else 36 TOOL_G CC3_AR ?= ar$(HOSTSUFF_EXE)30 TOOL_GXX3_CC ?= gcc$(HOSTSUFF_EXE) 31 TOOL_GXX3_CXX ?= g++$(HOSTSUFF_EXE) 32 TOOL_GXX3_AS ?= gcc$(HOSTSUFF_EXE) 33 ifeq ($(BUILD_TARGET),solaris) 34 TOOL_GXX3_AR ?= gar$(HOSTSUFF_EXE) 35 else 36 TOOL_GXX3_AR ?= ar$(HOSTSUFF_EXE) 37 37 endif 38 38 ifeq ($(BUILD_TARGET),os2) 39 TOOL_G CC3_AR_IMP ?= emximp$(HOSTSTUFF_EXE)40 else 41 TOOL_G CC3_AR_IMP ?= $(ECHO) not supported!42 endif 43 TOOL_G CC3_LD ?= g++$(HOSTSUFF_EXE)44 TOOL_G CC3_LD_SYSMOD ?= ld$(HOSTSUFF_EXE)45 ifndef TOOL_G CC3_LDFLAGS.$(BUILD_TARGET)46 TOOL_G CC3_LDFLAGS.dll ?= -shared47 else 48 TOOL_G CC3_LDFLAGS.dll ?= $(TOOL_GCC3_LDFLAGS.$(BUILD_TARGET))49 endif 50 TOOL_G CC3_LDFLAGS.sysmod ?= -r51 TOOL_G CC3_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) 40 else 41 TOOL_GXX3_AR_IMP ?= $(ECHO) not supported! 42 endif 43 TOOL_GXX3_LD ?= g++$(HOSTSUFF_EXE) 44 TOOL_GXX3_LD_SYSMOD ?= ld$(HOSTSUFF_EXE) 45 ifndef TOOL_GXX3_LDFLAGS.$(BUILD_TARGET) 46 TOOL_GXX3_LDFLAGS.dll ?= -shared 47 else 48 TOOL_GXX3_LDFLAGS.dll ?= $(TOOL_GXX3_LDFLAGS.$(BUILD_TARGET)) 49 endif 50 TOOL_GXX3_LDFLAGS.sysmod ?= -r 51 TOOL_GXX3_LD_SONAME ?= -Wl,-soname=$(firstword $($(1)_SONAME.$(BUILD_TARGET).$(BUILD_TYPE)) $($(1)_SONAME.$(BUILD_TARGET)) $($(1)_SONAME.$(BUILD_TYPE)) $($(1)_SONAME) $(notdir $(2))) 52 52 ifeq ($(BUILD_TARGET),os2) 53 TOOL_G CC3_LD_MAP ?= -Zmap=$(1)54 TOOL_G CC3_LD_SYSMOD_MAP ?= -Zmap=$(1)53 TOOL_GXX3_LD_MAP ?= -Zmap=$(1) 54 TOOL_GXX3_LD_SYSMOD_MAP ?= -Zmap=$(1) 55 55 endif 56 56 ifdef SLKRUNS 57 TOOL_G CC3_CC += -fmessage-length=058 TOOL_G CC3_CXX += -fmessage-length=057 TOOL_GXX3_CC += -fmessage-length=0 58 TOOL_GXX3_CXX += -fmessage-length=0 59 59 endif 60 60 61 61 # General Properties used by kBuild 62 TOOL_G CC3_COBJSUFF ?= .o63 TOOL_G CC3_CFLAGS ?=64 TOOL_G CC3_CFLAGS.debug ?= -g65 TOOL_G CC3_CFLAGS.profile ?= -g -O2 #-pg66 TOOL_G CC3_CFLAGS.release ?= -O267 TOOL_G CC3_CINCS ?=68 TOOL_G CC3_CDEFS ?=69 70 TOOL_G CC3_CXXOBJSUFF ?= .o71 TOOL_G CC3_CXXOBJSUFF ?= .o72 TOOL_G CC3_CXXFLAGS ?=73 TOOL_G CC3_CXXFLAGS.debug ?= -g74 TOOL_G CC3_CXXFLAGS.profile ?= -g -O2 #-pg75 TOOL_G CC3_CXXFLAGS.release ?= -O276 TOOL_G CC3_CXXINCS ?=77 TOOL_G CC3_CXXDEFS ?=78 79 TOOL_G CC3_ASFLAGS ?= -x assembler-with-cpp80 TOOL_G CC3_ASFLAGS.debug ?= -g81 TOOL_G CC3_ASFLAGS.profile ?= -g82 TOOL_G CC3_ASOBJSUFF ?= .o83 84 TOOL_G CC3_ARFLAGS ?= cr85 TOOL_G CC3_ARLIBSUFF ?= .a86 87 TOOL_G CC3_LDFLAGS ?=88 TOOL_G CC3_LDFLAGS.debug ?= -g89 TOOL_G CC3_LDFLAGS.profile ?= -g62 TOOL_GXX3_COBJSUFF ?= .o 63 TOOL_GXX3_CFLAGS ?= 64 TOOL_GXX3_CFLAGS.debug ?= -g 65 TOOL_GXX3_CFLAGS.profile ?= -g -O2 #-pg 66 TOOL_GXX3_CFLAGS.release ?= -O2 67 TOOL_GXX3_CINCS ?= 68 TOOL_GXX3_CDEFS ?= 69 70 TOOL_GXX3_CXXOBJSUFF ?= .o 71 TOOL_GXX3_CXXOBJSUFF ?= .o 72 TOOL_GXX3_CXXFLAGS ?= 73 TOOL_GXX3_CXXFLAGS.debug ?= -g 74 TOOL_GXX3_CXXFLAGS.profile ?= -g -O2 #-pg 75 TOOL_GXX3_CXXFLAGS.release ?= -O2 76 TOOL_GXX3_CXXINCS ?= 77 TOOL_GXX3_CXXDEFS ?= 78 79 TOOL_GXX3_ASFLAGS ?= -x assembler-with-cpp 80 TOOL_GXX3_ASFLAGS.debug ?= -g 81 TOOL_GXX3_ASFLAGS.profile ?= -g 82 TOOL_GXX3_ASOBJSUFF ?= .o 83 84 TOOL_GXX3_ARFLAGS ?= cr 85 TOOL_GXX3_ARLIBSUFF ?= .a 86 87 TOOL_GXX3_LDFLAGS ?= 88 TOOL_GXX3_LDFLAGS.debug ?= -g 89 TOOL_GXX3_LDFLAGS.profile ?= -g 90 90 91 91 … … 103 103 # @param $(outbase) Output basename (full). Use this for list files and such. 104 104 # @param $(objsuff) Object suffix. 105 TOOL_G CC3_COMPILE_C_OUTPUT =106 TOOL_G CC3_COMPILE_C_DEPEND =107 TOOL_G CC3_COMPILE_C_DEPORD =108 define TOOL_G CC3_COMPILE_C_CMDS109 $(QUIET)$(TOOL_G CC3_CC) -c\105 TOOL_GXX3_COMPILE_C_OUTPUT = 106 TOOL_GXX3_COMPILE_C_DEPEND = 107 TOOL_GXX3_COMPILE_C_DEPORD = 108 define TOOL_GXX3_COMPILE_C_CMDS 109 $(QUIET)$(TOOL_GXX3_CC) -c\ 110 110 $(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\ 111 111 -Wp,-MD,$(dep) -Wp,-MT,$(obj) -Wp,-MP\ … … 127 127 # @param $(outbase) Output basename (full). Use this for list files and such. 128 128 # @param $(objsuff) Object suffix. 129 TOOL_G CC3_COMPILE_CXX_OUTPUT =130 TOOL_G CC3_COMPILE_CXX_DEPEND =131 TOOL_G CC3_COMPILE_CXX_DEPORD =132 define TOOL_G CC3_COMPILE_CXX_CMDS133 $(QUIET)$(TOOL_G CC3_CXX) -c\129 TOOL_GXX3_COMPILE_CXX_OUTPUT = 130 TOOL_GXX3_COMPILE_CXX_DEPEND = 131 TOOL_GXX3_COMPILE_CXX_DEPORD = 132 define TOOL_GXX3_COMPILE_CXX_CMDS 133 $(QUIET)$(TOOL_GXX3_CXX) -c\ 134 134 $(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\ 135 135 -Wp,-MD,$(dep) -Wp,-MT,$(obj) -Wp,-MP\ … … 152 152 # @param $(objsuff) Object suffix. 153 153 # 154 TOOL_G CC3_COMPILE_AS_OUTPUT =155 TOOL_G CC3_COMPILE_AS_DEPEND =156 TOOL_G CC3_COMPILE_AS_DEPORD =157 define TOOL_G CC3_COMPILE_AS_CMDS158 $(QUIET)$(TOOL_G CC3_AS) -c\154 TOOL_GXX3_COMPILE_AS_OUTPUT = 155 TOOL_GXX3_COMPILE_AS_DEPEND = 156 TOOL_GXX3_COMPILE_AS_DEPORD = 157 define TOOL_GXX3_COMPILE_AS_CMDS 158 $(QUIET)$(TOOL_GXX3_AS) -c\ 159 159 $(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\ 160 160 -Wp,-MD,$(dep) -Wp,-MT,$(obj) -Wp,-MP\ … … 173 173 # @param $(othersrc) Unhandled sources. 174 174 # @param $(outbase) Output basename (full). Use this for list files and such. 175 TOOL_G CC3_LINK_LIBRARY_OUTPUT = $(out).ar-script $(outbase).imp.a176 TOOL_G CC3_LINK_LIBRARY_DEPEND = $(othersrc)177 TOOL_G CC3_LINK_LIBRARY_DEPORD =175 TOOL_GXX3_LINK_LIBRARY_OUTPUT = $(out).ar-script $(outbase).imp.a 176 TOOL_GXX3_LINK_LIBRARY_DEPEND = $(othersrc) 177 TOOL_GXX3_LINK_LIBRARY_DEPORD = 178 178 ifeq ($(filter append-dash-n,$(KMK_FEATURES)),append-dash-n) 179 define TOOL_G CC3_LINK_LIBRARY_CMDS179 define TOOL_GXX3_LINK_LIBRARY_CMDS 180 180 $(QUIET)$(APPEND) $(out).ar-script 'CREATE $(out)' 181 181 $(QUIET)$(APPEND) -n $(out).ar-script \ … … 183 183 $(foreach o,$(filter-out %.def %.imp,$(othersrc)), 'ADDLIB $(o)') 184 184 $(if $(filter %.def %.imp,$(othersrc))\ 185 ,$(TOOL_G CC3_AR_IMP) -o $(outbase).imp.a $(filter %.def %.imp,$(othersrc))\185 ,$(TOOL_GXX3_AR_IMP) -o $(outbase).imp.a $(filter %.def %.imp,$(othersrc))\ 186 186 $(NL)$(TAB)$(QUIET)$(APPEND) $(out).ar-script 'ADDLIB $(outbase).imp.a') 187 187 $(QUIET)$(APPEND) $(out).ar-script 'SAVE' 188 188 $(QUIET)$(APPEND) $(out).ar-script 'END' 189 $(QUIET)$(TOOL_G CC3_AR) -M < $(out).ar-script190 endef 191 else 192 define TOOL_G CC3_LINK_LIBRARY_CMDS189 $(QUIET)$(TOOL_GXX3_AR) -M < $(out).ar-script 190 endef 191 else 192 define TOOL_GXX3_LINK_LIBRARY_CMDS 193 193 $(QUIET)$(APPEND) $(out).ar-script "CREATE $(out)" 194 194 $(foreach o, $(objs)\ … … 197 197 ,$(NL)$(TAB)$(QUIET)$(APPEND) $(out).ar-script "ADDLIB $(srclib)") 198 198 $(if $(filter %.def %.imp,$(othersrc))\ 199 ,$(TOOL_G CC3_AR_IMP) -o $(outbase).imp.a $(filter %.def %.imp,$(othersrc))\199 ,$(TOOL_GXX3_AR_IMP) -o $(outbase).imp.a $(filter %.def %.imp,$(othersrc))\ 200 200 $(NL)$(TAB)$(QUIET)$(APPEND) $(out).ar-script "ADDLIB $(outbase).imp.a") 201 201 $(QUIET)$(APPEND) $(out).ar-script "SAVE" 202 202 $(QUIET)$(APPEND) $(out).ar-script "END" 203 $(QUIET)$(TOOL_G CC3_AR) -M < $(out).ar-script203 $(QUIET)$(TOOL_GXX3_AR) -M < $(out).ar-script 204 204 endef 205 205 endif … … 219 219 # @param $(custom_post) Custom step invoked after linking. 220 220 # @param $(outbase) Output basename (full). Use this for list files and such. 221 TOOL_G CC3_LINK_PROGRAM_OUTPUT = $(outbase).map222 TOOL_G CC3_LINK_PROGRAM_DEPEND = $(foreach lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib)))\221 TOOL_GXX3_LINK_PROGRAM_OUTPUT = $(outbase).map 222 TOOL_GXX3_LINK_PROGRAM_DEPEND = $(foreach lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib)))\ 223 223 $(filter %.def, $(othersrc)) 224 TOOL_G CC3_LINK_PROGRAM_DEPORD =225 define TOOL_G CC3_LINK_PROGRAM_CMDS226 $(QUIET)$(TOOL_G CC3_LD) $(flags) -o $(out) $(objs)\224 TOOL_GXX3_LINK_PROGRAM_DEPORD = 225 define TOOL_GXX3_LINK_PROGRAM_CMDS 226 $(QUIET)$(TOOL_GXX3_LD) $(flags) -o $(out) $(objs)\ 227 227 $(filter %.def, $(othersrc))\ 228 228 $(foreach p,$(libpath), -L$(p))\ 229 229 $(foreach lib,$(libs), $(if $(findstring $(lib),$(subst /,x,$(lib))), -l$(patsubst lib%,%,$(basename $(lib))), $(lib)))\ 230 $(call TOOL_G CC3_LD_MAP,$(outbase).map)230 $(call TOOL_GXX3_LD_MAP,$(outbase).map) 231 231 endef 232 232 … … 245 245 # @param $(custom_post) Custom step invoked after linking. 246 246 # @param $(outbase) Output basename (full). Use this for list files and such. 247 TOOL_G CC3_LINK_DLL_OUTPUT = $(outbase).map248 TOOL_G CC3_LINK_DLL_DEPEND = $(foreach lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib)))\247 TOOL_GXX3_LINK_DLL_OUTPUT = $(outbase).map 248 TOOL_GXX3_LINK_DLL_DEPEND = $(foreach lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib)))\ 249 249 $(filter %.def, $(othersrc)) 250 TOOL_G CC3_LINK_DLL_DEPORD =251 define TOOL_G CC3_LINK_DLL_CMDS252 $(QUIET)$(TOOL_G CC3_LD) $(TOOL_GCC3_LDFLAGS.dll) $(flags) -o $(out)\253 $(if $(filter-out win32 os2, $(BUILD_TARGET)),$(call TOOL_G CC3_LD_SONAME,$(target),$(out)))\250 TOOL_GXX3_LINK_DLL_DEPORD = 251 define 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)))\ 254 254 $(objs)\ 255 255 $(filter %.def, $(othersrc))\ 256 256 $(foreach p,$(libpath), -L$(p))\ 257 257 $(foreach lib,$(libs), $(if $(findstring $(lib),$(subst /,x,$(lib))), -l$(patsubst lib%,%,$(basename $(lib))), $(lib)))\ 258 $(call TOOL_G CC3_LD_MAP,$(outbase).map)258 $(call TOOL_GXX3_LD_MAP,$(outbase).map) 259 259 endef 260 260 … … 273 273 # @param $(custom_post) Custom step invoked after linking. 274 274 # @param $(outbase) Output basename (full). Use this for list files and such. 275 TOOL_G CC3_LINK_SYSMOD_OUTPUT = $(outbase).map276 TOOL_G CC3_LINK_SYSMOD_DEPEND = $(foreach lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib)))\275 TOOL_GXX3_LINK_SYSMOD_OUTPUT = $(outbase).map 276 TOOL_GXX3_LINK_SYSMOD_DEPEND = $(foreach lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib)))\ 277 277 $(filter %.def, $(othersrc)) 278 TOOL_G CC3_LINK_SYSMOD_DEPORD =279 define TOOL_G CC3_LINK_SYSMOD_CMDS280 $(QUIET)$(TOOL_G CC3_LD_SYSMOD) $(TOOL_GCC3_LDFLAGS.sysmod) $(flags) -o $(out) $(objs)\278 TOOL_GXX3_LINK_SYSMOD_DEPORD = 279 define TOOL_GXX3_LINK_SYSMOD_CMDS 280 $(QUIET)$(TOOL_GXX3_LD_SYSMOD) $(TOOL_GXX3_LDFLAGS.sysmod) $(flags) -o $(out) $(objs)\ 281 281 $(filter %.def, $(othersrc))\ 282 282 $(foreach p,$(libpath), -L$(p))\ 283 283 $(foreach lib,$(libs), $(if $(findstring $(lib),$(subst /,x,$(lib))), -l$(patsubst lib%,%,$(basename $(lib))), $(lib)))\ 284 $(call TOOL_G CC3_LD_SYSMOD_MAP,$(outbase).map)285 endef 286 284 $(call TOOL_GXX3_LD_SYSMOD_MAP,$(outbase).map) 285 endef 286
Note:
See TracChangeset
for help on using the changeset viewer.