Changeset 3258 for trunk/kBuild/tools/GXX32.kmk
- Timestamp:
- Jan 3, 2019, 6:34:09 AM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/kBuild/tools/GXX32.kmk
r3121 r3258 38 38 TOOL_GXX32_CC ?= gcc$(HOSTSUFF_EXE) -m32 39 39 TOOL_GXX32_CXX ?= g++$(HOSTSUFF_EXE) -m32 40 TOOL_GXX32_PCH ?= $(TOOL_GXX32_CXX) 40 41 TOOL_GXX32_AS ?= gcc$(HOSTSUFF_EXE) -m32 41 42 TOOL_GXX32_AR ?= ar$(HOSTSUFF_EXE) … … 80 81 81 82 TOOL_GXX32_CXXOBJSUFF ?= .o 82 TOOL_GXX32_CXXOBJSUFF ?= .o83 83 TOOL_GXX32_CXXFLAGS ?= 84 84 TOOL_GXX32_CXXFLAGS.debug ?= -g … … 88 88 TOOL_GXX32_CXXDEFS ?= 89 89 90 TOOL_GXX32_PCHOBJSUFF ?= .h.gch 91 TOOL_GXX32_PCHFLAGS ?= $(TOOL_GXX32_CXXFLAGS) 92 TOOL_GXX32_PCHFLAGS.debug ?= $(TOOL_GXX32_CXXFLAGS.debug) 93 TOOL_GXX32_PCHFLAGS.profile ?= $(TOOL_GXX32_CXXFLAGS.profile) 94 TOOL_GXX32_PCHFLAGS.release ?= $(TOOL_GXX32_CXXFLAGS.release) 95 TOOL_GXX32_PCHINCS ?= $(TOOL_GXX32_CXXINCS) 96 TOOL_GXX32_PCHDEFS ?= $(TOOL_GXX32_CXXDEFS) 97 90 98 TOOL_GXX32_ASFLAGS ?= -x assembler-with-cpp 91 99 TOOL_GXX32_ASFLAGS.debug ?= -g … … 116 124 TOOL_GXX32_COMPILE_C_DEPEND = 117 125 TOOL_GXX32_COMPILE_C_DEPORD = 118 ifdef KBUILD_USE_KOBJCACHE 119 TOOL_GXX32_COMPILE_C_USES_KOBJCACHE = 1 120 TOOL_GXX32_COMPILE_C_OUTPUT = $(outbase).i 126 TOOL_GXX32_COMPILE_C_OUTPUT = $(if-expr "$(use_objcache)" != "",$(outbase).i,) 127 TOOL_GXX32_COMPILE_C_USES_KOBJCACHE = $(if-expr "$(use_objcache)" != "",1,) 121 128 define TOOL_GXX32_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_GXX32_COMPILE_C_OUTPUT = 137 define TOOL_GXX32_COMPILE_C_CMDS 141 else 138 142 $(QUIET)$(TOOL_GXX32_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_GXX32_COMPILE_CXX_OUTPUT = $(if-expr "$(use_objcache)" != "",$(outbase).ii,) 165 TOOL_GXX32_COMPILE_CXX_DEPEND = $($(target)_1_GCC_PCH_FILE) 166 TOOL_GXX32_COMPILE_CXX_DEPORD = 167 TOOL_GXX32_COMPILE_CXX_USES_KOBJCACHE = $(if-expr "$(use_objcache)" != "",1,) 168 define TOOL_GXX32_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_GXX32_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_GXX32_CXX) -c\ 179 $(flags) -fpreprocessed $(if-expr defined($(target)_PCH_HDR),-fpch-preprocess,) -x c++\ 180 -o $(obj)\ 181 - 182 else 183 $(QUIET)$(TOOL_GXX32_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_GXX32_COMPILE_CXX_DEPEND = 161 TOOL_GXX32_COMPILE_CXX_DEPORD = 162 ifdef KBUILD_USE_KOBJCACHE 163 TOOL_GXX32_COMPILE_CXX_USES_KOBJCACHE = 1 164 TOOL_GXX32_COMPILE_CXX_OUTPUT = $(outbase).ii 165 define TOOL_GXX32_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_GXX32_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_GXX32_CXX) -c\ 174 $(flags) -fpreprocessed -x c++\ 175 -o $(obj)\ 176 - 206 TOOL_GXX32_COMPILE_PCH_OUTPUT = $($(target)_1_GCC_PCH_FILE) 207 TOOL_GXX32_COMPILE_PCH_DEPEND = 208 TOOL_GXX32_COMPILE_PCH_DEPORD = $($(target)_1_GCC_PCH_DIR) 209 define TOOL_GXX32_COMPILE_PCH_CMDS 210 $(QUIET)$(TOOL_GXX32_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_GXX32_COMPILE_CXX_OUTPUT =181 define TOOL_GXX32_COMPILE_CXX_CMDS182 $(QUIET)$(TOOL_GXX32_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,$(filter-out %.def %.imp %.dll,$(othersrc)), 'ADDLIB $(o)') 235 263 $(if $(filter %.def %.imp %.dll,$(othersrc))\ 236 ,$(TOOL_GXX3 _AR_IMP) -o $(outbase).imp.a $(filter %.def %.imp %.dll,$(othersrc))\264 ,$(TOOL_GXX32_AR_IMP) -o $(outbase).imp.a $(filter %.def %.imp %.dll,$(othersrc))\ 237 265 $(NL)$(TAB)$(QUIET)$(APPEND) $(out).ar-script 'ADDLIB $(outbase).imp.a') 238 266 $(QUIET)$(APPEND) $(out).ar-script 'SAVE' … … 263 291 TOOL_GXX32_LINK_PROGRAM_DEPORD = 264 292 define TOOL_GXX32_LINK_PROGRAM_CMDS 265 $(QUIET)$(TOOL_GXX32_LD) $(flags) -o $(out) $( objs)\293 $(QUIET)$(TOOL_GXX32_LD) $(flags) -o $(out) $(filter-out %.h.gch,$(objs))\ 266 294 $(foreach p,$(libpath), -L$(p))\ 267 295 $(foreach lib,$(libs), $(if $(findstring $(lib),$(subst /,x,$(lib))), -l$(patsubst lib%,%,$(lib)), $(lib)))\ … … 298 326 $(QUIET)$(TOOL_GXX32_LD) $(TOOL_GXX32_LDFLAGS.dll) $(flags) -o $(out)\ 299 327 $(if $(filter-out win os2, $(KBUILD_TARGET)),$(call TOOL_GXX32_LD_SONAME,$(target),$(out)))\ 300 $( objs)\328 $(filter-out %.h.gch,$(objs))\ 301 329 $(foreach p,$(libpath), -L$(p))\ 302 330 $(foreach lib,$(libs), $(if $(findstring $(lib),$(subst /,x,$(lib))), -l$(patsubst lib%,%,$(lib)), $(lib)))\ … … 331 359 TOOL_GXX32_LINK_SYSMOD_DEPORD = 332 360 define TOOL_GXX32_LINK_SYSMOD_CMDS 333 $(QUIET)$(TOOL_GXX32_LD_SYSMOD) $(TOOL_GXX32_LDFLAGS.sysmod) $(flags) -o $(out) $( objs)\361 $(QUIET)$(TOOL_GXX32_LD_SYSMOD) $(TOOL_GXX32_LDFLAGS.sysmod) $(flags) -o $(out) $(filter-out %.h.gch,$(objs))\ 334 362 $(filter %.def, $(othersrc))\ 335 363 $(foreach p,$(libpath), -L$(p))\
Note:
See TracChangeset
for help on using the changeset viewer.