Changeset 1064 for trunk/kBuild/tools/GXX64.kmk
- Timestamp:
- Jul 10, 2007, 5:06:17 PM (18 years ago)
- File:
-
- 1 copied
Legend:
- Unmodified
- Added
- Removed
-
trunk/kBuild/tools/GXX64.kmk
r1062 r1064 2 2 ## @file 3 3 # 4 # kBuild Tool Config - Generic 32-bit GCC v3.2.x or later using the system GCC, for building C++ code.4 # kBuild Tool Config - Generic 64-bit GCC v3.2.x or later using the system GCC, 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_GXX 32 := Generic 32-bit GCC v3.2.x or later using the system GCC, for building C++ code. \27 TOOL_GXX64 := Generic 64-bit GCC v3.2.x or later using the system GCC, for building C++ code. \ 28 28 More or less Linux/ELF specfic. 29 29 30 30 # Tool Specific Properties 31 TOOL_GXX 32_CC ?= gcc$(HOSTSUFF_EXE) -m3232 TOOL_GXX 32_CXX ?= g++$(HOSTSUFF_EXE) -m3233 TOOL_GXX 32_AS ?= gcc$(HOSTSUFF_EXE) -m3234 TOOL_GXX 32_AR ?= ar$(HOSTSUFF_EXE)35 TOOL_GXX 32_LD ?= g++$(HOSTSUFF_EXE) -m3236 TOOL_GXX 32_LD_SYSMOD ?= ld$(HOSTSUFF_EXE)37 ifndef TOOL_GXX 32_LDFLAGS.$(BUILD_TARGET)38 TOOL_GXX 32_LDFLAGS.dll ?= -shared31 TOOL_GXX64_CC ?= gcc$(HOSTSUFF_EXE) -m64 32 TOOL_GXX64_CXX ?= g++$(HOSTSUFF_EXE) -m64 33 TOOL_GXX64_AS ?= gcc$(HOSTSUFF_EXE) -m64 34 TOOL_GXX64_AR ?= ar$(HOSTSUFF_EXE) 35 TOOL_GXX64_LD ?= g++$(HOSTSUFF_EXE) -m64 36 TOOL_GXX64_LD_SYSMOD ?= ld$(HOSTSUFF_EXE) 37 ifndef TOOL_GXX64_LDFLAGS.$(BUILD_TARGET) 38 TOOL_GXX64_LDFLAGS.dll ?= -shared 39 39 else 40 TOOL_GXX 32_LDFLAGS.dll ?= $(TOOL_GXX32_LDFLAGS.$(BUILD_TARGET))41 endif 42 TOOL_GXX 32_LDFLAGS.sysmod ?= -r -m elf_i38643 TOOL_GXX 32_LD_SONAME ?= -Wl,-soname=$(firstword $($(1)_SONAME.$(BUILD_TARGET).$(BUILD_TYPE)) $($(1)_SONAME.$(BUILD_TARGET)) $($(1)_SONAME.$(BUILD_TYPE)) $($(1)_SONAME) $(notdir $(2)))40 TOOL_GXX64_LDFLAGS.dll ?= $(TOOL_GXX64_LDFLAGS.$(BUILD_TARGET)) 41 endif 42 TOOL_GXX64_LDFLAGS.sysmod ?= -r -m elf_x86_64 43 TOOL_GXX64_LD_SONAME ?= -Wl,-soname=$(firstword $($(1)_SONAME.$(BUILD_TARGET).$(BUILD_TYPE)) $($(1)_SONAME.$(BUILD_TARGET)) $($(1)_SONAME.$(BUILD_TYPE)) $($(1)_SONAME) $(notdir $(2))) 44 44 ifeq ($(BUILD_TARGET),os2) 45 TOOL_GXX 32_LD_MAP ?= -Zmap=$(1)45 TOOL_GXX64_LD_MAP ?= -Zmap=$(1) 46 46 else 47 TOOL_GXX 32_LD_MAP ?= -Wl,-Map -Wl,$(1) -Wl,--cref47 TOOL_GXX64_LD_MAP ?= -Wl,-Map -Wl,$(1) -Wl,--cref 48 48 endif 49 49 ifeq ($(BUILD_TARGET),os2) 50 TOOL_GXX 32_LD_SYSMOD_MAP ?= -Zmap=$(1)50 TOOL_GXX64_LD_SYSMOD_MAP ?= -Zmap=$(1) 51 51 else 52 TOOL_GXX 32_LD_SYSMOD_MAP ?= -Map $(1) --cref52 TOOL_GXX64_LD_SYSMOD_MAP ?= -Map $(1) --cref 53 53 endif 54 54 ifdef SLKRUNS 55 TOOL_GXX 32_CC += -fmessage-length=056 TOOL_GXX 32_CXX += -fmessage-length=055 TOOL_GXX64_CC += -fmessage-length=0 56 TOOL_GXX64_CXX += -fmessage-length=0 57 57 endif 58 58 59 59 # General Properties used by kBuild 60 TOOL_GXX 32_COBJSUFF ?= .o61 TOOL_GXX 32_CFLAGS ?=62 TOOL_GXX 32_CFLAGS.debug ?= -g63 TOOL_GXX 32_CFLAGS.profile ?= -O2 #-g -pg64 TOOL_GXX 32_CFLAGS.release ?= -O265 TOOL_GXX 32_CINCS ?=66 TOOL_GXX 32_CDEFS ?=67 68 TOOL_GXX 32_CXXOBJSUFF ?= .o69 TOOL_GXX 32_CXXOBJSUFF ?= .o70 TOOL_GXX 32_CXXFLAGS ?=71 TOOL_GXX 32_CXXFLAGS.debug ?= -g72 TOOL_GXX 32_CXXFLAGS.profile ?= -O2 #-g -pg73 TOOL_GXX 32_CXXFLAGS.release ?= -O274 TOOL_GXX 32_CXXINCS ?=75 TOOL_GXX 32_CXXDEFS ?=76 77 TOOL_GXX 32_ASFLAGS ?= -x assembler-with-cpp78 TOOL_GXX 32_ASFLAGS.debug ?= -g79 TOOL_GXX 32_ASFLAGS.profile ?= -g80 TOOL_GXX 32_ASOBJSUFF ?= .o81 82 TOOL_GXX 32_ARFLAGS ?= cr83 TOOL_GXX 32_ARLIBSUFF ?= .a84 85 TOOL_GXX 32_LDFLAGS ?=86 TOOL_GXX 32_LDFLAGS.debug ?= -g87 TOOL_GXX 32_LDFLAGS.profile ?= -g60 TOOL_GXX64_COBJSUFF ?= .o 61 TOOL_GXX64_CFLAGS ?= 62 TOOL_GXX64_CFLAGS.debug ?= -g 63 TOOL_GXX64_CFLAGS.profile ?= -O2 #-g -pg 64 TOOL_GXX64_CFLAGS.release ?= -O2 65 TOOL_GXX64_CINCS ?= 66 TOOL_GXX64_CDEFS ?= 67 68 TOOL_GXX64_CXXOBJSUFF ?= .o 69 TOOL_GXX64_CXXOBJSUFF ?= .o 70 TOOL_GXX64_CXXFLAGS ?= 71 TOOL_GXX64_CXXFLAGS.debug ?= -g 72 TOOL_GXX64_CXXFLAGS.profile ?= -O2 #-g -pg 73 TOOL_GXX64_CXXFLAGS.release ?= -O2 74 TOOL_GXX64_CXXINCS ?= 75 TOOL_GXX64_CXXDEFS ?= 76 77 TOOL_GXX64_ASFLAGS ?= -x assembler-with-cpp 78 TOOL_GXX64_ASFLAGS.debug ?= -g 79 TOOL_GXX64_ASFLAGS.profile ?= -g 80 TOOL_GXX64_ASOBJSUFF ?= .o 81 82 TOOL_GXX64_ARFLAGS ?= cr 83 TOOL_GXX64_ARLIBSUFF ?= .a 84 85 TOOL_GXX64_LDFLAGS ?= 86 TOOL_GXX64_LDFLAGS.debug ?= -g 87 TOOL_GXX64_LDFLAGS.profile ?= -g 88 88 89 89 … … 101 101 # @param $(outbase) Output basename (full). Use this for list files and such. 102 102 # @param $(objsuff) Object suffix. 103 TOOL_GXX 32_COMPILE_C_DEPEND =104 TOOL_GXX 32_COMPILE_C_DEPORD =103 TOOL_GXX64_COMPILE_C_DEPEND = 104 TOOL_GXX64_COMPILE_C_DEPORD = 105 105 ifdef USE_KOBJCACHE 106 TOOL_GXX 32_COMPILE_C_USES_KOBJCACHE = 1107 TOOL_GXX 32_COMPILE_C_OUTPUT = $(outbase).i108 define TOOL_GXX 32_COMPILE_C_CMDS106 TOOL_GXX64_COMPILE_C_USES_KOBJCACHE = 1 107 TOOL_GXX64_COMPILE_C_OUTPUT = $(outbase).i 108 define TOOL_GXX64_COMPILE_C_CMDS 109 109 $(QUIET)$(KOBJCACHE) -f $(outbase).koc -d $(PATH_OBJCACHE) -t $(bld_trg).$(bld_trg_arch) -p\ 110 110 --kObjCache-cpp $(outbase).i\ 111 $(TOOL_GXX 32_CC) -E -o -\111 $(TOOL_GXX64_CC) -E -o -\ 112 112 $(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\ 113 113 -Wp,-MD,$(dep) -Wp,-MT,$(obj) -Wp,-MP\ 114 114 $(abspath $(source))\ 115 115 --kObjCache-cc $(obj)\ 116 $(TOOL_GXX 32_CC) -c\116 $(TOOL_GXX64_CC) -c\ 117 117 $(flags) -fpreprocessed -x c\ 118 118 -o $(obj)\ … … 120 120 endef 121 121 else # !USE_KOBJCACHE 122 TOOL_GXX 32_COMPILE_C_OUTPUT =123 define TOOL_GXX 32_COMPILE_C_CMDS124 $(QUIET)$(TOOL_GXX 32_CC) -c\122 TOOL_GXX64_COMPILE_C_OUTPUT = 123 define TOOL_GXX64_COMPILE_C_CMDS 124 $(QUIET)$(TOOL_GXX64_CC) -c\ 125 125 $(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\ 126 126 -Wp,-MD,$(dep) -Wp,-MT,$(obj) -Wp,-MP\ … … 143 143 # @param $(outbase) Output basename (full). Use this for list files and such. 144 144 # @param $(objsuff) Object suffix. 145 TOOL_GXX 32_COMPILE_CXX_DEPEND =146 TOOL_GXX 32_COMPILE_CXX_DEPORD =145 TOOL_GXX64_COMPILE_CXX_DEPEND = 146 TOOL_GXX64_COMPILE_CXX_DEPORD = 147 147 ifdef USE_KOBJCACHE 148 TOOL_GXX 32_COMPILE_CXX_USES_KOBJCACHE = 1149 TOOL_GXX 32_COMPILE_CXX_OUTPUT = $(outbase).ii150 define TOOL_GXX 32_COMPILE_CXX_CMDS148 TOOL_GXX64_COMPILE_CXX_USES_KOBJCACHE = 1 149 TOOL_GXX64_COMPILE_CXX_OUTPUT = $(outbase).ii 150 define TOOL_GXX64_COMPILE_CXX_CMDS 151 151 $(QUIET)$(KOBJCACHE) -f $(outbase).koc -d $(PATH_OBJCACHE) -t $(bld_trg).$(bld_trg_arch) -p\ 152 152 --kObjCache-cpp $(outbase).ii\ 153 $(TOOL_GXX 32_CXX) -E -o -\153 $(TOOL_GXX64_CXX) -E -o -\ 154 154 $(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\ 155 155 -Wp,-MD,$(dep) -Wp,-MT,$(obj) -Wp,-MP\ 156 156 $(abspath $(source))\ 157 157 --kObjCache-cc $(obj)\ 158 $(TOOL_GXX 32_CXX) -c\158 $(TOOL_GXX64_CXX) -c\ 159 159 $(flags) -fpreprocessed -x c++\ 160 160 -o $(obj)\ … … 162 162 endef 163 163 else # !USE_KOBJCACHE 164 TOOL_GXX 32_COMPILE_CXX_OUTPUT =165 define TOOL_GXX 32_COMPILE_CXX_CMDS166 $(QUIET)$(TOOL_GXX 32_CXX) -c\164 TOOL_GXX64_COMPILE_CXX_OUTPUT = 165 define TOOL_GXX64_COMPILE_CXX_CMDS 166 $(QUIET)$(TOOL_GXX64_CXX) -c\ 167 167 $(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\ 168 168 -Wp,-MD,$(dep) -Wp,-MT,$(obj) -Wp,-MP\ … … 186 186 # @param $(objsuff) Object suffix. 187 187 # 188 TOOL_GXX 32_COMPILE_AS_OUTPUT =189 TOOL_GXX 32_COMPILE_AS_DEPEND =190 TOOL_GXX 32_COMPILE_AS_DEPORD =191 define TOOL_GXX 32_COMPILE_AS_CMDS192 $(QUIET)$(TOOL_GXX 32_AS) -c\188 TOOL_GXX64_COMPILE_AS_OUTPUT = 189 TOOL_GXX64_COMPILE_AS_DEPEND = 190 TOOL_GXX64_COMPILE_AS_DEPORD = 191 define TOOL_GXX64_COMPILE_AS_CMDS 192 $(QUIET)$(TOOL_GXX64_AS) -c\ 193 193 $(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\ 194 194 -Wp,-MD,$(dep) -Wp,-MT,$(obj) -Wp,-MP\ … … 207 207 # @param $(othersrc) Unhandled sources. 208 208 # @param $(outbase) Output basename (full). Use this for list files and such. 209 TOOL_GXX 32_LINK_LIBRARY_OUTPUT = $(out).ar-script210 TOOL_GXX 32_LINK_LIBRARY_DEPEND = $(othersrc)211 TOOL_GXX 32_LINK_LIBRARY_DEPORD =209 TOOL_GXX64_LINK_LIBRARY_OUTPUT = $(out).ar-script 210 TOOL_GXX64_LINK_LIBRARY_DEPEND = $(othersrc) 211 TOOL_GXX64_LINK_LIBRARY_DEPORD = 212 212 ifeq ($(filter append-dash-n,$(KMK_FEATURES)),append-dash-n) 213 define TOOL_GXX 32_LINK_LIBRARY_CMDS213 define TOOL_GXX64_LINK_LIBRARY_CMDS 214 214 $(QUIET)$(APPEND) $(out).ar-script 'CREATE $(out)' 215 215 $(QUIET)$(APPEND) -n $(out).ar-script \ … … 218 218 $(QUIET)$(APPEND) $(out).ar-script 'SAVE' 219 219 $(QUIET)$(APPEND) $(out).ar-script 'END' 220 $(QUIET)$(TOOL_GXX 32_AR) -M < $(out).ar-script220 $(QUIET)$(TOOL_GXX64_AR) -M < $(out).ar-script 221 221 endef 222 222 else 223 define TOOL_GXX 32_LINK_LIBRARY_CMDS223 define TOOL_GXX64_LINK_LIBRARY_CMDS 224 224 $(QUIET)$(APPEND) $(out).ar-script "CREATE $(out)" 225 225 $(foreach o, $(objs)\ … … 229 229 $(QUIET)$(APPEND) $(out).ar-script "SAVE" 230 230 $(QUIET)$(APPEND) $(out).ar-script "END" 231 $(QUIET)$(TOOL_GXX 32_AR) -M < $(out).ar-script231 $(QUIET)$(TOOL_GXX64_AR) -M < $(out).ar-script 232 232 endef 233 233 endif … … 247 247 # @param $(custom_post) Custom step invoked after linking. 248 248 # @param $(outbase) Output basename (full). Use this for list files and such. 249 TOOL_GXX 32_LINK_PROGRAM_OUTPUT =250 TOOL_GXX 32_LINK_PROGRAM_OUTPUT_MAYBE = $(outbase).map251 TOOL_GXX 32_LINK_PROGRAM_DEPEND = $(foreach lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib)))252 TOOL_GXX 32_LINK_PROGRAM_DEPORD =253 define TOOL_GXX 32_LINK_PROGRAM_CMDS254 $(QUIET)$(TOOL_GXX 32_LD) $(flags) -o $(out) $(objs)\249 TOOL_GXX64_LINK_PROGRAM_OUTPUT = 250 TOOL_GXX64_LINK_PROGRAM_OUTPUT_MAYBE = $(outbase).map 251 TOOL_GXX64_LINK_PROGRAM_DEPEND = $(foreach lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib))) 252 TOOL_GXX64_LINK_PROGRAM_DEPORD = 253 define TOOL_GXX64_LINK_PROGRAM_CMDS 254 $(QUIET)$(TOOL_GXX64_LD) $(flags) -o $(out) $(objs)\ 255 255 $(foreach p,$(libpath), -L$(p))\ 256 256 $(foreach lib,$(libs), $(if $(findstring $(lib),$(subst /,x,$(lib))), -l$(patsubst lib%,%,$(basename $(lib))), $(lib)))\ 257 $(call TOOL_GXX 32_LD_MAP,$(outbase).map)257 $(call TOOL_GXX64_LD_MAP,$(outbase).map) 258 258 endef 259 259 … … 272 272 # @param $(custom_post) Custom step invoked after linking. 273 273 # @param $(outbase) Output basename (full). Use this for list files and such. 274 TOOL_GXX 32_LINK_DLL_OUTPUT =275 TOOL_GXX 32_LINK_DLL_OUTPUT_MAYBE = $(outbase).map276 TOOL_GXX 32_LINK_DLL_DEPEND = $(foreach lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib)))277 TOOL_GXX 32_LINK_DLL_DEPORD =278 define TOOL_GXX 32_LINK_DLL_CMDS279 $(QUIET)$(TOOL_GXX 32_LD) $(TOOL_GXX32_LDFLAGS.dll) $(flags) -o $(out)\280 $(if $(filter-out win 32 os2, $(BUILD_TARGET)),$(call TOOL_GXX32_LD_SONAME,$(target),$(out)))\274 TOOL_GXX64_LINK_DLL_OUTPUT = 275 TOOL_GXX64_LINK_DLL_OUTPUT_MAYBE = $(outbase).map 276 TOOL_GXX64_LINK_DLL_DEPEND = $(foreach lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib))) 277 TOOL_GXX64_LINK_DLL_DEPORD = 278 define TOOL_GXX64_LINK_DLL_CMDS 279 $(QUIET)$(TOOL_GXX64_LD) $(TOOL_GXX64_LDFLAGS.dll) $(flags) -o $(out)\ 280 $(if $(filter-out win os2, $(BUILD_TARGET)),$(call TOOL_GXX64_LD_SONAME,$(target),$(out)))\ 281 281 $(objs)\ 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_GXX 32_LD_MAP,$(outbase).map)284 $(call TOOL_GXX64_LD_MAP,$(outbase).map) 285 285 endef 286 286 … … 299 299 # @param $(custom_post) Custom step invoked after linking. 300 300 # @param $(outbase) Output basename (full). Use this for list files and such. 301 TOOL_GXX 32_LINK_SYSMOD_OUTPUT =302 TOOL_GXX 32_LINK_SYSMOD_OUTPUT_MAYBE = $(outbase).map303 TOOL_GXX 32_LINK_SYSMOD_DEPEND = $(foreach lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib)))304 TOOL_GXX 32_LINK_SYSMOD_DEPORD =305 define TOOL_GXX 32_LINK_SYSMOD_CMDS306 $(QUIET)$(TOOL_GXX 32_LD_SYSMOD) $(TOOL_GXX32_LDFLAGS.sysmod) $(flags) -o $(out) $(objs)\301 TOOL_GXX64_LINK_SYSMOD_OUTPUT = 302 TOOL_GXX64_LINK_SYSMOD_OUTPUT_MAYBE = $(outbase).map 303 TOOL_GXX64_LINK_SYSMOD_DEPEND = $(foreach lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib))) 304 TOOL_GXX64_LINK_SYSMOD_DEPORD = 305 define TOOL_GXX64_LINK_SYSMOD_CMDS 306 $(QUIET)$(TOOL_GXX64_LD_SYSMOD) $(TOOL_GXX64_LDFLAGS.sysmod) $(flags) -o $(out) $(objs)\ 307 307 $(foreach p,$(libpath), -L$(p))\ 308 308 $(foreach lib,$(libs), $(if $(findstring $(lib),$(subst /,x,$(lib))), -l$(patsubst lib%,%,$(basename $(lib))), $(lib)))\ 309 $(call TOOL_GXX 32_LD_SYSMOD_MAP,$(outbase).map)310 endef 311 309 $(call TOOL_GXX64_LD_SYSMOD_MAP,$(outbase).map) 310 endef 311
Note:
See TracChangeset
for help on using the changeset viewer.