Changeset 3258 for trunk/kBuild/tools/GXX64.kmk
- Timestamp:
- Jan 3, 2019, 6:34:09 AM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/kBuild/tools/GXX64.kmk
r3121 r3258 38 38 TOOL_GXX64_CC ?= gcc$(HOSTSUFF_EXE) -m64 39 39 TOOL_GXX64_CXX ?= g++$(HOSTSUFF_EXE) -m64 40 TOOL_GXX64_PCH ?= $(TOOL_GXX64_CXX) 40 41 TOOL_GXX64_AS ?= gcc$(HOSTSUFF_EXE) -m64 41 42 TOOL_GXX64_AR ?= ar$(HOSTSUFF_EXE) … … 80 81 81 82 TOOL_GXX64_CXXOBJSUFF ?= .o 82 TOOL_GXX64_CXXOBJSUFF ?= .o83 83 TOOL_GXX64_CXXFLAGS ?= 84 84 TOOL_GXX64_CXXFLAGS.debug ?= -g … … 88 88 TOOL_GXX64_CXXDEFS ?= 89 89 90 TOOL_GXX64_PCHOBJSUFF ?= .h.gch 91 TOOL_GXX64_PCHFLAGS ?= $(TOOL_GXX64_CXXFLAGS) 92 TOOL_GXX64_PCHFLAGS.debug ?= $(TOOL_GXX64_CXXFLAGS.debug) 93 TOOL_GXX64_PCHFLAGS.profile ?= $(TOOL_GXX64_CXXFLAGS.profile) 94 TOOL_GXX64_PCHFLAGS.release ?= $(TOOL_GXX64_CXXFLAGS.release) 95 TOOL_GXX64_PCHINCS ?= $(TOOL_GXX64_CXXINCS) 96 TOOL_GXX64_PCHDEFS ?= $(TOOL_GXX64_CXXDEFS) 97 90 98 TOOL_GXX64_ASFLAGS ?= -x assembler-with-cpp 91 99 TOOL_GXX64_ASFLAGS.debug ?= -g … … 116 124 TOOL_GXX64_COMPILE_C_DEPEND = 117 125 TOOL_GXX64_COMPILE_C_DEPORD = 118 ifdef KBUILD_USE_KOBJCACHE 119 TOOL_GXX64_COMPILE_C_USES_KOBJCACHE = 1 120 TOOL_GXX64_COMPILE_C_OUTPUT = $(outbase).i 126 TOOL_GXX64_COMPILE_C_OUTPUT = $(if-expr "$(use_objcache)" != "",$(outbase).i,) 127 TOOL_GXX64_COMPILE_C_USES_KOBJCACHE = $(if-expr "$(use_objcache)" != "",1,) 121 128 define TOOL_GXX64_COMPILE_C_CMDS 129 if "$(use_objcache)" != "" 122 130 $(QUIET)$(KOBJCACHE) -f $(outbase).koc -d $(PATH_OBJCACHE) -t $(bld_trg).$(bld_trg_arch) -p\ 123 131 --kObjCache-cpp $(outbase).i\ … … 131 139 -o $(obj)\ 132 140 - 133 $(QUIET)$(APPEND) -n "$(dep)" "" "$(source):" "" 134 endef 135 else # !KBUILD_USE_KOBJCACHE 136 TOOL_GXX64_COMPILE_C_OUTPUT = 137 define TOOL_GXX64_COMPILE_C_CMDS 141 else 138 142 $(QUIET)$(TOOL_GXX64_CC) -c\ 139 143 $(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\ … … 141 145 -o $(obj)\ 142 146 $(abspath $(source)) 147 endif 143 148 $(QUIET)$(APPEND) -n "$(dep)" "" "$(source):" "" 144 149 endef 145 endif # !KBUILD_USE_KOBJCACHE146 150 147 151 148 152 ## Compile C++ source. 153 # @param $(target) Normalized main target name. 154 # @param $(source) Source filename (relative). 155 # @param $(obj) Object file name. This shall be (re)created by the compilation. 156 # @param $(dep) Dependcy file. This shall be (re)created by the compilation. 157 # @param $(flags) Flags. 158 # @param $(defs) Definitions. No -D or something. 159 # @param $(incs) Includes. No -I or something. 160 # @param $(dirdep) Directory creation dependency. 161 # @param $(deps) Other dependencies. 162 # @param $(outbase) Output basename (full). Use this for list files and such. 163 # @param $(objsuff) Object suffix. 164 TOOL_GXX64_COMPILE_CXX_OUTPUT = $(if-expr "$(use_objcache)" != "",$(outbase).ii,) 165 TOOL_GXX64_COMPILE_CXX_DEPEND = $($(target)_1_GCC_PCH_FILE) 166 TOOL_GXX64_COMPILE_CXX_DEPORD = 167 TOOL_GXX64_COMPILE_CXX_USES_KOBJCACHE = $(if-expr "$(use_objcache)" != "",1,) 168 define TOOL_GXX64_COMPILE_CXX_CMDS 169 if "$(use_objcache)" != "" 170 $(QUIET)$(KOBJCACHE) -f $(outbase).koc -d $(PATH_OBJCACHE) -t $(bld_trg).$(bld_trg_arch) -p\ 171 --kObjCache-cpp $(outbase).ii\ 172 $(TOOL_GXX64_CXX) -E -o - $(if-expr defined($(target)_PCH_HDR)\ 173 ,-fpch-preprocess -Winvalid-pch -I$($(target)_1_GCC_PCH_DIR) -include $(basename $($(target)_1_GCC_PCH_FILE)),)\ 174 $(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\ 175 -Wp,-MD,$(dep) -Wp,-MT,$(obj) -Wp,-MP\ 176 $(abspath $(source))\ 177 --kObjCache-cc $(obj)\ 178 $(TOOL_GXX64_CXX) -c\ 179 $(flags) -fpreprocessed $(if-expr defined($(target)_PCH_HDR),-fpch-preprocess,) -x c++\ 180 -o $(obj)\ 181 - 182 else 183 $(QUIET)$(TOOL_GXX64_CXX) -c\ 184 $(flags) $(addprefix -I, $($(target)_1_GCC_PCH_DIR) $(incs)) $(addprefix -D, $(defs))\ 185 -Wp,-MD,$(dep) -Wp,-MT,$(obj) -Wp,-MP\ 186 -o $(obj) $(if-expr defined($(target)_PCH_HDR) \ 187 ,-Winvalid-pch -include $(basename $($(target)_1_GCC_PCH_FILE)),) \ 188 $(abspath $(source)) 189 endif 190 $(QUIET)$(APPEND) -n "$(dep)" "" "$(source):" "" 191 endef 192 193 194 ## Precompile C++ header. 149 195 # @param $(target) Normalized main target name. 150 196 # @param $(source) Source filename (relative). … … 158 204 # @param $(outbase) Output basename (full). Use this for list files and such. 159 205 # @param $(objsuff) Object suffix. 160 TOOL_GXX64_COMPILE_CXX_DEPEND = 161 TOOL_GXX64_COMPILE_CXX_DEPORD = 162 ifdef KBUILD_USE_KOBJCACHE 163 TOOL_GXX64_COMPILE_CXX_USES_KOBJCACHE = 1 164 TOOL_GXX64_COMPILE_CXX_OUTPUT = $(outbase).ii 165 define TOOL_GXX64_COMPILE_CXX_CMDS 166 $(QUIET)$(KOBJCACHE) -f $(outbase).koc -d $(PATH_OBJCACHE) -t $(bld_trg).$(bld_trg_arch) -p\ 167 --kObjCache-cpp $(outbase).ii\ 168 $(TOOL_GXX64_CXX) -E -o -\ 169 $(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\ 170 -Wp,-MD,$(dep) -Wp,-MT,$(obj) -Wp,-MP\ 171 $(abspath $(source))\ 172 --kObjCache-cc $(obj)\ 173 $(TOOL_GXX64_CXX) -c\ 174 $(flags) -fpreprocessed -x c++\ 175 -o $(obj)\ 176 - 206 TOOL_GXX64_COMPILE_PCH_OUTPUT = $($(target)_1_GCC_PCH_FILE) 207 TOOL_GXX64_COMPILE_PCH_DEPEND = 208 TOOL_GXX64_COMPILE_PCH_DEPORD = $($(target)_1_GCC_PCH_DIR) 209 define TOOL_GXX64_COMPILE_PCH_CMDS 210 $(QUIET)$(TOOL_GXX64_PCH) -c\ 211 $(flags) $(addprefix -I, $($(target)_1_GCC_PCH_DIR) $(incs)) $(addprefix -D, $(defs))\ 212 -Wp,-MD,$(dep) -Wp,-MT,$(obj) -Wp,-MP\ 213 -o $(obj)\ 214 $(abspath $(source)) 215 $(INSTALL) --hard-link-files-when-possible -m 0644 -- "$(obj)" "$($(target)_1_GCC_PCH_FILE)" 177 216 $(QUIET)$(APPEND) -n "$(dep)" "" "$(source):" "" 178 217 endef 179 else # !KBUILD_USE_KOBJCACHE180 TOOL_GXX64_COMPILE_CXX_OUTPUT =181 define TOOL_GXX64_COMPILE_CXX_CMDS182 $(QUIET)$(TOOL_GXX64_CXX) -c\183 $(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\184 -Wp,-MD,$(dep) -Wp,-MT,$(obj) -Wp,-MP\185 -o $(obj)\186 $(abspath $(source))187 $(QUIET)$(APPEND) -n "$(dep)" "" "$(source):" ""188 endef189 endif # !KBUILD_USE_KOBJCACHE190 218 191 219 … … 231 259 $(QUIET)$(APPEND) $(out).ar-script 'CREATE $(out)' 232 260 $(QUIET)$(APPEND) -n $(out).ar-script \ 233 $(foreach o,$( objs), 'ADDMOD $(o)') \261 $(foreach o,$(filter-out %.h.gch,$(objs)), 'ADDMOD $(o)') \ 234 262 $(foreach o,$(othersrc), 'ADDLIB $(o)') 235 263 $(QUIET)$(APPEND) $(out).ar-script 'SAVE' … … 259 287 TOOL_GXX64_LINK_PROGRAM_DEPORD = 260 288 define TOOL_GXX64_LINK_PROGRAM_CMDS 261 $(QUIET)$(TOOL_GXX64_LD) $(flags) -o $(out) $( objs)\289 $(QUIET)$(TOOL_GXX64_LD) $(flags) -o $(out) $(filter-out %.h.gch,$(objs))\ 262 290 $(foreach p,$(libpath), -L$(p))\ 263 291 $(foreach lib,$(libs), $(if $(findstring $(lib),$(subst /,x,$(lib))), -l$(patsubst lib%,%,$(lib)), $(lib)))\ … … 293 321 $(QUIET)$(TOOL_GXX64_LD) $(TOOL_GXX64_LDFLAGS.dll) $(flags) -o $(out)\ 294 322 $(if $(filter-out win os2, $(KBUILD_TARGET)),$(call TOOL_GXX64_LD_SONAME,$(target),$(out)))\ 295 $( objs)\323 $(filter-out %.h.gch,$(objs))\ 296 324 $(foreach p,$(libpath), -L$(p))\ 297 325 $(foreach lib,$(libs), $(if $(findstring $(lib),$(subst /,x,$(lib))), -l$(patsubst lib%,%,$(lib)), $(lib)))\ … … 325 353 TOOL_GXX64_LINK_SYSMOD_DEPORD = 326 354 define TOOL_GXX64_LINK_SYSMOD_CMDS 327 $(QUIET)$(TOOL_GXX64_LD_SYSMOD) $(TOOL_GXX64_LDFLAGS.sysmod) $(flags) -o $(out) $( objs)\355 $(QUIET)$(TOOL_GXX64_LD_SYSMOD) $(TOOL_GXX64_LDFLAGS.sysmod) $(flags) -o $(out) $(filter-out %.h.gch,$(objs))\ 328 356 $(foreach p,$(libpath), -L$(p))\ 329 357 $(foreach lib,$(libs), $(if $(findstring $(lib),$(subst /,x,$(lib))), -l$(patsubst lib%,%,$(lib)), $(lib)))\
Note:
See TracChangeset
for help on using the changeset viewer.