Changeset 3323 for trunk/kBuild/tools/VCC141AMD64.kmk
- Timestamp:
- Apr 17, 2020, 1:10:45 AM (5 years ago)
- File:
-
- 1 copied
Legend:
- Unmodified
- Added
- Removed
-
trunk/kBuild/tools/VCC141AMD64.kmk
r3313 r3323 1 1 # $Id$ 2 2 ## @file 3 # kBuild Tool Config - Visual C++ 1 2.0 (aka Visual 2013 and MSC v18), targeting AMD64.4 # 5 6 # 7 # Copyright (c) 2004-20 17 knut st. osmundsen <bird-kBuild-spam-xviiv@anduin.net>3 # kBuild Tool Config - Visual C++ 14.1 (aka Visual 2017 and MSC v19.10), targeting AMD64. 4 # 5 6 # 7 # Copyright (c) 2004-2020 knut st. osmundsen <bird-kBuild-spam-xx@anduin.net> 8 8 # 9 9 # This file is part of kBuild. … … 32 32 # 33 33 34 TOOL_VCC120AMD64 := Visual C++ 12.0 (aka Visual 2013 and MSC v18), targeting AMD64 35 34 ifndef TOOL_VCC141 35 include $(KBUILD_PATH)/tools/VCC141.kmk 36 endif 37 38 TOOL_VCC141AMD64 := Visual C++ 14.1 (aka Visual 2017 and MSC v19.1), targeting AMD64 39 40 # 36 41 # Tool Specific Properties 37 ifndef PATH_TOOL_VCC120AMD64 38 PATH_TOOL_VCC120AMD64 := $(wildcard $(KBUILD_DEVTOOLS)/win.x86/vcc/v12*) 39 ifeq ($(PATH_TOOL_VCC120AMD64),) 40 PATH_TOOL_VCC120AMD64 := $(PATH_TOOL_VCC120) 41 endif 42 ifeq ($(PATH_TOOL_VCC120AMD64),) 43 PATH_TOOL_VCC120AMD64 := $(PATH_TOOL_VCC120X86) 44 endif 45 ifeq ($(PATH_TOOL_VCC120AMD64),) 46 PATH_TOOL_VCC120AMD64 := $(wildcard $(KBUILD_DEVTOOLS)/win.x86/vcc/v12*) 47 endif 48 ifneq ($(PATH_TOOL_VCC120AMD64),) 49 PATH_TOOL_VCC120AMD64 := $(lastword $(sort $(PATH_TOOL_VCC120AMD64))) 50 else 51 $(warning kBuild: PATH_TOOL_VCC120AMD64 cannot be determined!) 52 PATH_TOOL_VCC120AMD64 := $(KBUILD_DEVTOOLS)/win.x86/vcc/v12 53 endif 42 # 43 ifndef PATH_TOOL_VCC141AMD64 44 PATH_TOOL_VCC141AMD64 := $(PATH_TOOL_VCC141) 54 45 else 55 46 # Resolve any fancy stuff once and for all. 56 PATH_TOOL_VCC1 20AMD64 := $(PATH_TOOL_VCC120AMD64)57 endif 58 if "$(KBUILD_HOST).$(KBUILD_HOST_ARCH)" == "win.amd64" && exists("$(PATH_TOOL_VCC120AMD64)/bin/amd64") # Missing in express edition. 59 PATH_TOOL_VCC120AMD64_BIN ?= $(PATH_TOOL_VCC120AMD64)/bin/amd64 60 #$(error works now: $(PATH_TOOL_VCC120AMD64)/bin/amd64) 47 PATH_TOOL_VCC141AMD64 := $(PATH_TOOL_VCC141AMD64) 48 endif 49 50 ifndef PATH_TOOL_VCC141AMD64_BIN 51 PATH_TOOL_VCC141AMD64_BIN := $(PATH_TOOL_VCC141_HOST_BIN)/x64 61 52 else 62 #$(error no joy: $(PATH_TOOL_VCC120AMD64)/bin/amd64) 63 PATH_TOOL_VCC120AMD64_BIN_DLL ?= $(PATH_TOOL_VCC120AMD64)/bin 64 PATH_TOOL_VCC120AMD64_BIN ?= $(PATH_TOOL_VCC120AMD64)/bin/x86_amd64 65 endif 66 PATH_TOOL_VCC120AMD64_LIB ?= $(PATH_TOOL_VCC120AMD64)/lib/amd64 67 PATH_TOOL_VCC120AMD64_INC ?= $(PATH_TOOL_VCC120AMD64)/include 68 PATH_TOOL_VCC120AMD64_ATLMFC ?= $(PATH_TOOL_VCC120AMD64)/atlmfc 69 PATH_TOOL_VCC120AMD64_ATLMFC_INC ?= $(PATH_TOOL_VCC120AMD64_ATLMFC)/include 70 PATH_TOOL_VCC120AMD64_ATLMFC_LIB ?= $(PATH_TOOL_VCC120AMD64_ATLMFC)/lib/amd64 71 TOOL_VCC120AMD64_CC ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC120AMD64_BIN)/cl.exe 72 TOOL_VCC120AMD64_CXX ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC120AMD64_BIN)/cl.exe 73 TOOL_VCC120AMD64_AS ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC120AMD64_BIN)/ml64.exe 74 #TOOL_VCC120AMD64_AR ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC120AMD64_BIN)/lib.exe - just an exec wrapper for the below 75 TOOL_VCC120AMD64_AR ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC120AMD64_BIN)/link.exe /LIB 76 TOOL_VCC120AMD64_LD ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC120AMD64_BIN)/link.exe 77 TOOL_VCC120AMD64_DUMPBIN ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC120AMD64_BIN)/dumpbin.exe 78 TOOL_VCC120AMD64_EDITBIN ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC120AMD64_BIN)/editbin.exe 79 TOOL_VCC120AMD64_RC ?= $(EXEC_X86_WIN32) $(call TOOL_VCC120_FN_FIND_SDK_TOOL,rc.exe,[Rr][Cc].[Ee][Xx][Ee],TOOL_VCC120_RC_CACHED) 80 TOOL_VCC120AMD64_MT ?= $(EXEC_X86_WIN32) $(call TOOL_VCC120_FN_FIND_SDK_TOOL,mt.exe,[Mm][Tt].[Ee][Xx][Ee],TOOL_VCC120_MT_CACHED) 81 ifdef TOOL_VCC120AMD64_USE_KSUBMIT 53 PATH_TOOL_VCC141AMD64_BIN := $(PATH_TOOL_VCC141_BIN) 54 endif 55 PATH_TOOL_VCC141AMD64_BIN_QSH := $(requote sh,$(PATH_TOOL_VCC141AMD64_BIN)) 56 57 ifndef PATH_TOOL_VCC141AMD64_LIB 58 PATH_TOOL_VCC141AMD64_LIB := $(PATH_TOOL_VCC141_LIB.amd64) 59 endif 60 ifndef PATH_TOOL_VCC141_ONECORE_LIB 61 PATH_TOOL_VCC141_ONECORE_LIB := $(PATH_TOOL_VCC141_ONECORE_LIB.amd64) 62 endif 63 64 ifndef PATH_TOOL_VCC141AMD64_INC 65 PATH_TOOL_VCC141AMD64_INC := $(PATH_TOOL_VCC141_INC) 66 endif 67 68 ifndef PATH_TOOL_VCC141AMD64_ATLMFC_INC 69 PATH_TOOL_VCC141AMD64_ATLMFC_INC := $(PATH_TOOL_VCC141_ATLMFC_INC.amd64) 70 endif 71 ifndef PATH_TOOL_VCC141AMD64_ATLMFC_LIB 72 PATH_TOOL_VCC141AMD64_ATLMFC_LIB := $(PATH_TOOL_VCC141_ATLMFC_LIB.amd64) 73 endif 74 75 TOOL_VCC141AMD64_CC ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC141AMD64_BIN_QSH)/cl.exe 76 TOOL_VCC141AMD64_CXX ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC141AMD64_BIN_QSH)/cl.exe 77 TOOL_VCC141AMD64_AS ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC141AMD64_BIN_QSH)/ml64.exe 78 #TOOL_VCC141AMD64_AR ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC141AMD64_BIN_QSH)/lib.exe - just an exec wrapper for the below 79 TOOL_VCC141AMD64_AR ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC141AMD64_BIN_QSH)/link.exe /LIB 80 TOOL_VCC141AMD64_LD ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC141AMD64_BIN_QSH)/link.exe 81 TOOL_VCC141AMD64_DUMPBIN ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC141AMD64_BIN_QSH)/dumpbin.exe 82 TOOL_VCC141AMD64_EDITBIN ?= $(EXEC_X86_WIN32) $(PATH_TOOL_VCC141AMD64_BIN_QSH)/editbin.exe 83 84 TOOL_VCC141AMD64_RC ?= $(EXEC_X86_WIN32) $(call TOOL_VCC141_FN_FIND_SDK_TOOL,rc.exe,[Rr][Cc].[Ee][Xx][Ee],TOOL_VCC141_RC_CACHED) 85 TOOL_VCC141AMD64_MT ?= $(EXEC_X86_WIN32) $(call TOOL_VCC141_FN_FIND_SDK_TOOL,mt.exe,[Mm][Tt].[Ee][Xx][Ee],TOOL_VCC141_MT_CACHED) 86 87 undefine TOOL_VCC141AMD64_USE_KSUBMIT # for now 88 ifdef TOOL_VCC141AMD64_USE_KSUBMIT 82 89 ifeq ($(KBUILD_HOST),win) 83 ifneq ($(substr $(PATH_TOOL_VCC120AMD64_BIN),-9),x86_amd64) 84 TOOL_VCC120AMD64_KSUBMIT ?= kmk_builtin_kSubmit --64-bit 85 ifdef PATH_TOOL_VCC120AMD64_BIN_DLL 86 TOOL_VCC120AMD64_KSUBMIT += --prepend 'PATH=$(PATH_TOOL_VCC120AMD64_BIN_DLL)$(HOST_PATH_SEP)' 87 endif 88 TOOL_VCC120AMD64_KSUBMIT_DD = $(TOOL_VCC120AMD64_KSUBMIT) -- 90 ifneq ($(substr $(qdir un,$(PATH_TOOL_VCC141AMD64_BIN)),-3),64/) 91 TOOL_VCC141AMD64_KSUBMIT ?= kmk_builtin_kSubmit --64-bit 92 TOOL_VCC141AMD64_KSUBMIT_DD = $(TOOL_VCC141AMD64_KSUBMIT) -- 89 93 else 90 # "fatal error C1902: Program database manager mismatch; please check your installation" when mixing with the 32-bit compiler. 91 #TOOL_VCC120AMD64_KSUBMIT ?= kmk_builtin_kSubmit --32-bit 92 #TOOL_VCC120AMD64_KSUBMIT_DD = $(TOOL_VCC120AMD64_KSUBMIT) -- 94 TOOL_VCC141AMD64_KSUBMIT ?= kmk_builtin_kSubmit --32-bit 95 TOOL_VCC141AMD64_KSUBMIT_DD = $(TOOL_VCC141AMD64_KSUBMIT) -- 93 96 endif 94 97 endif 95 else ifdef PATH_TOOL_VCC120AMD64_BIN_DLL 96 TOOL_VCC120AMD64_KSUBMIT_DD = $(REDIRECT) --prepend 'PATH=$(PATH_TOOL_VCC120AMD64_BIN_DLL)$(HOST_PATH_SEP)' -- 97 endif 98 99 # The following in duplicated in VCC120.kmk and VCC120X86.kmk. 100 TOOL_VCC120_FN_FIND_SDK_TOOL_SUB = $(eval $3 := $(firstword \ 101 $(if-expr defined(PATH_SDK_WINPSDK71_BIN), $(wildcard $(PATH_SDK_WINPSDK71_BIN)/$2)) \ 102 $(if-expr defined(PATH_SDK_WINPSDK_BIN) , $(wildcard $(PATH_SDK_WINPSDK_BIN)/$2)) \ 103 $(rsort $(wildcard $(KBUILD_DEVTOOLS_HST)/sdk/*/[Bb][Ii][Nn]/$2)) \ 104 $(rsort $(wildcard $(KBUILD_DEVTOOLS_HST_ALT)/sdk/*/[Bb][Ii][Nn]/$2)) \ 105 $1)) 106 TOOL_VCC120_FN_FIND_SDK_TOOL = $(if-expr !defined($3),$(TOOL_VCC120_FN_FIND_SDK_TOOL_SUB),)$($3) 107 108 ## Disabled fast DEP_IDB based dependencies. 109 #VCC120AMD64_OLD_DEPS = 1 110 111 ## Constructs the correct .pdb name (the name is lowercased). 112 # @param $(1) Base name, no extention. 113 # @param $(2) The extension. 114 TOOL_VCC120AMD64_PDB = $(dir $(1))$(tolower $(notdir $(1))).$(2) 115 116 117 # General Properties used by kBuild 118 TOOL_VCC120AMD64_COBJSUFF ?= .obj 119 TOOL_VCC120AMD64_CFLAGS ?= -TC -nologo -Zi 120 TOOL_VCC120AMD64_CFLAGS.debug ?= 121 TOOL_VCC120AMD64_CFLAGS.dbgopt ?= -O2 122 TOOL_VCC120AMD64_CFLAGS.release ?= -O2 123 TOOL_VCC120AMD64_CFLAGS.profile ?= -O2 124 TOOL_VCC120AMD64_CINCS ?= $(PATH_TOOL_VCC120AMD64_INC) 125 TOOL_VCC120AMD64_CDEFS ?= 126 127 TOOL_VCC120AMD64_CXXOBJSUFF ?= .obj 128 TOOL_VCC120AMD64_CXXFLAGS ?= -TP -nologo -Zi 129 TOOL_VCC120AMD64_CXXFLAGS.debug ?= 130 TOOL_VCC120AMD64_CXXFLAGS.dbgopt ?= -O2 131 TOOL_VCC120AMD64_CXXFLAGS.release ?= -O2 132 TOOL_VCC120AMD64_CXXFLAGS.profile ?= -O2 133 TOOL_VCC120AMD64_CXXINCS ?= $(PATH_TOOL_VCC120AMD64_INC) $(PATH_TOOL_VCC120AMD64_ATLMFC_INC) 134 TOOL_VCC120AMD64_CXXDEFS ?= 135 136 TOOL_VCC120AMD64_ASOBJSUFF ?= .obj 137 138 TOOL_VCC120AMD64_RCOBJSUFF ?= .res 139 TOOL_VCC120AMD64_RCINCS ?= $(PATH_TOOL_VCC120AMD64_INC) $(PATH_TOOL_VCC120AMD64_ATLMFC_INC) 140 141 TOOL_VCC120AMD64_ARFLAGS ?= -nologo -machine:amd64 142 TOOL_VCC120AMD64_ARLIBSUFF ?= .lib 143 144 TOOL_VCC120AMD64_LDFLAGS ?= -nologo -machine:amd64 145 TOOL_VCC120AMD64_LDFLAGS.debug ?= -debug 146 TOOL_VCC120AMD64_LDFLAGS.dbgopt ?= -debug 147 TOOL_VCC120AMD64_LDFLAGS.profile ?= -debug 148 TOOL_VCC120AMD64_LDFLAGS.release ?= 98 endif 99 100 101 # 102 # Properties used by kBuild 103 # 104 TOOL_VCC141AMD64_COBJSUFF ?= .obj 105 TOOL_VCC141AMD64_CFLAGS ?= -TC -nologo -Zi 106 TOOL_VCC141AMD64_CFLAGS.debug ?= 107 TOOL_VCC141AMD64_CFLAGS.dbgopt ?= -O2 108 TOOL_VCC141AMD64_CFLAGS.release ?= -O2 109 TOOL_VCC141AMD64_CFLAGS.profile ?= -O2 110 TOOL_VCC141AMD64_CINCS ?= $(PATH_TOOL_VCC141AMD64_INC) 111 TOOL_VCC141AMD64_CDEFS ?= 112 113 TOOL_VCC141AMD64_CXXOBJSUFF ?= .obj 114 TOOL_VCC141AMD64_CXXFLAGS ?= -TP -nologo -Zi 115 TOOL_VCC141AMD64_CXXFLAGS.debug ?= 116 TOOL_VCC141AMD64_CXXFLAGS.dbgopt ?= -O2 117 TOOL_VCC141AMD64_CXXFLAGS.release ?= -O2 118 TOOL_VCC141AMD64_CXXFLAGS.profile ?= -O2 119 TOOL_VCC141AMD64_CXXINCS ?= $(PATH_TOOL_VCC141AMD64_INC) $(PATH_TOOL_VCC141AMD64_ATLMFC_INC) 120 TOOL_VCC141AMD64_CXXDEFS ?= 121 122 TOOL_VCC141AMD64_ASOBJSUFF ?= .obj 123 124 TOOL_VCC141AMD64_RCOBJSUFF ?= .res 125 TOOL_VCC141AMD64_RCINCS ?= $(PATH_TOOL_VCC141AMD64_INC) $(PATH_TOOL_VCC141AMD64_ATLMFC_INC) 126 127 TOOL_VCC141AMD64_ARFLAGS ?= -nologo -machine:amd64 128 TOOL_VCC141AMD64_ARLIBSUFF ?= .lib 129 130 TOOL_VCC141AMD64_LDFLAGS ?= -nologo -machine:amd64 131 TOOL_VCC141AMD64_LDFLAGS.debug ?= -debug 132 TOOL_VCC141AMD64_LDFLAGS.dbgopt ?= -debug 133 TOOL_VCC141AMD64_LDFLAGS.profile ?= -debug 134 TOOL_VCC141AMD64_LDFLAGS.release ?= 149 135 150 136 … … 163 149 # @param $(outbase) Output basename (full). Use this for list files and such. 164 150 # @param $(objsuff) Object suffix. 165 TOOL_VCC1 20AMD64_COMPILE_C_DEPEND =166 TOOL_VCC1 20AMD64_COMPILE_C_DEPORD =167 TOOL_VCC1 20AMD64_COMPILE_C_OUTPUT =168 TOOL_VCC1 20AMD64_COMPILE_C_OUTPUT_MAYBE = $(call TOOL_VCC120AMD64_PDB, $(outbase)-obj,pdb) $(call TOOL_VCC120AMD64_PDB, $(outbase)-obj,idb)169 ifdef TOOL_VCC1 20AMD64_KSUBMIT170 TOOL_VCC1 20AMD64_COMPILE_C_DONT_PURGE_OUTPUT := 1 # speed171 define TOOL_VCC1 20AMD64_COMPILE_C_CMDS172 $(QUIET)$(TOOL_VCC1 20AMD64_KSUBMIT) -P $(DEP_OBJ_INT) -f -s -q -o $(dep) -t $(obj) $(obj)\173 -- $(TOOL_VCC1 20AMD64_CC) -c\174 $(flags) $( addprefix -I, $(incs)) $(addprefix-D, $(defs))\151 TOOL_VCC141AMD64_COMPILE_C_DEPEND = 152 TOOL_VCC141AMD64_COMPILE_C_DEPORD = 153 TOOL_VCC141AMD64_COMPILE_C_OUTPUT = 154 TOOL_VCC141AMD64_COMPILE_C_OUTPUT_MAYBE = $(call TOOL_VCC141_PDB, $(outbase)-obj,pdb) $(call TOOL_VCC141_PDB, $(outbase)-obj,idb) 155 ifdef TOOL_VCC141AMD64_KSUBMIT 156 TOOL_VCC141AMD64_COMPILE_C_DONT_PURGE_OUTPUT := 1 # speed 157 define TOOL_VCC141AMD64_COMPILE_C_CMDS 158 $(QUIET)$(TOOL_VCC141AMD64_KSUBMIT) -P $(DEP_OBJ_INT) -f -s -q -o $(dep) -t $(obj) $(obj)\ 159 -- $(TOOL_VCC141AMD64_CC) -c\ 160 $(flags) $(qaddprefix sh,-I, $(incs)) $(qaddprefix sh,-D, $(defs))\ 175 161 -Fd$(outbase)-obj.pdb \ 176 162 -Fo$(obj)\ … … 178 164 endef 179 165 else 180 define TOOL_VCC120AMD64_COMPILE_C_CMDS 181 $(QUIET)$(if-expr defined(PATH_TOOL_VCC120AMD64_BIN_DLL)\ 182 ,$(REDIRECT) --prepend 'PATH=$(PATH_TOOL_VCC120AMD64_BIN_DLL)$(HOST_PATH_SEP)' -- ,)$(TOOL_VCC120AMD64_CC) -c\ 183 $(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\ 166 define TOOL_VCC141AMD64_COMPILE_C_CMDS 167 $(QUIET)$(TOOL_VCC141AMD64_CC) -c\ 168 $(flags) $(qaddprefix sh,-I, $(incs)) $(qaddprefix sh,-D, $(defs))\ 184 169 -Fd$(outbase)-obj.pdb \ 185 170 -Fo$(obj)\ … … 187 172 $(QUIET)$(DEP_OBJ) -f -s -q -o $(dep) -t $(obj) $(obj) 188 173 endef 189 endif # !TOOL_VCC1 20AMD64_KSUBMIT174 endif # !TOOL_VCC141AMD64_KSUBMIT 190 175 191 176 … … 203 188 # @param $(outbase) Output basename (full). Use this for list files and such. 204 189 # @param $(objsuff) Object suffix. 205 TOOL_VCC1 20AMD64_COMPILE_CXX_DEPEND = $($(target)_1_VCC_PCH_FILE)206 TOOL_VCC1 20AMD64_COMPILE_CXX_DEPORD =207 TOOL_VCC1 20AMD64_COMPILE_CXX_OUTPUT =208 TOOL_VCC1 20AMD64_COMPILE_CXX_OUTPUT_MAYBE = $(if-expr defined($(target)_1_VCC_COMMON_OBJ_PDB)\209 ,,$(call TOOL_VCC1 20AMD64_PDB, $(outbase)-obj,pdb) $(call TOOL_VCC120AMD64_PDB, $(outbase)-obj,idb))210 ifdef TOOL_VCC1 20AMD64_KSUBMIT211 TOOL_VCC1 20AMD64_COMPILE_CXX_DONT_PURGE_OUTPUT := 1 # speed212 define TOOL_VCC1 20AMD64_COMPILE_CXX_CMDS213 $(QUIET)$(TOOL_VCC1 20AMD64_KSUBMIT) -P $(DEP_OBJ_INT) -f -s -q -o $(dep) -t $(obj) $(obj)\214 -- $(TOOL_VCC1 20AMD64_CXX) -c\215 $(flags) $( addprefix -I, $(incs)) $(addprefix-D, $(defs))\190 TOOL_VCC141AMD64_COMPILE_CXX_DEPEND = $($(target)_1_VCC_PCH_FILE) 191 TOOL_VCC141AMD64_COMPILE_CXX_DEPORD = 192 TOOL_VCC141AMD64_COMPILE_CXX_OUTPUT = 193 TOOL_VCC141AMD64_COMPILE_CXX_OUTPUT_MAYBE = $(if-expr defined($(target)_1_VCC_COMMON_OBJ_PDB)\ 194 ,,$(call TOOL_VCC141_PDB, $(outbase)-obj,pdb) $(call TOOL_VCC141_PDB, $(outbase)-obj,idb)) 195 ifdef TOOL_VCC141AMD64_KSUBMIT 196 TOOL_VCC141AMD64_COMPILE_CXX_DONT_PURGE_OUTPUT := 1 # speed 197 define TOOL_VCC141AMD64_COMPILE_CXX_CMDS 198 $(QUIET)$(TOOL_VCC141AMD64_KSUBMIT) -P $(DEP_OBJ_INT) -f -s -q -o $(dep) -t $(obj) $(obj)\ 199 -- $(TOOL_VCC141AMD64_CXX) -c\ 200 $(flags) $(qaddprefix sh,-I, $(incs)) $(qaddprefix sh,-D, $(defs))\ 216 201 $(if-expr defined($(target)_PCH_HDR)\ 217 202 ,-FI$($(target)_PCH_HDR) -Yu$($(target)_PCH_HDR) -Fp$($(target)_1_VCC_PCH_FILE) -FS,)\ … … 221 206 endef 222 207 else 223 define TOOL_VCC120AMD64_COMPILE_CXX_CMDS 224 $(QUIET)$(if-expr defined(PATH_TOOL_VCC120AMD64_BIN_DLL)\ 225 ,$(REDIRECT) --prepend 'PATH=$(PATH_TOOL_VCC120AMD64_BIN_DLL)$(HOST_PATH_SEP)' -- ,)$(TOOL_VCC120AMD64_CXX) -c\ 226 $(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\ 208 define TOOL_VCC141AMD64_COMPILE_CXX_CMDS 209 $(QUIET)$(TOOL_VCC141AMD64_CXX) -c\ 210 $(flags) $(qaddprefix sh,-I, $(incs)) $(qaddprefix sh,-D, $(defs))\ 227 211 $(if-expr defined($(target)_PCH_HDR)\ 228 212 ,-FI$($(target)_PCH_HDR) -Yu$($(target)_PCH_HDR) -Fp$($(target)_1_VCC_PCH_FILE) -FS,)\ … … 232 216 $(QUIET)$(DEP_OBJ) -f -s -q -o $(dep) -t $(obj) $(obj) 233 217 endef 234 endif # !TOOL_VCC1 20AMD64_KSUBMIT218 endif # !TOOL_VCC141AMD64_KSUBMIT 235 219 236 220 … … 241 225 # related _1_VCC_PCH_FILE and add -Yc. 242 226 # 243 TOOL_VCC1 20AMD64-PCH := Helper for creating precompiled header using CXX handling.244 TOOL_VCC1 20AMD64-PCH_EXTENDS := VCC120AMD64245 TOOL_VCC1 20AMD64-PCH_CXXOBJSUFF := .obj246 TOOL_VCC1 20AMD64-PCH_CXXINCS = $(TOOL_VCC120AMD64_CXXINCS)247 TOOL_VCC1 20AMD64-PCH_CXXFLAGS = $(TOOL_VCC120AMD64_CXXFLAGS) -FS248 TOOL_VCC1 20AMD64-PCH_CXXFLAGS.debug = $(TOOL_VCC120AMD64_CXXFLAGS.debug)249 TOOL_VCC1 20AMD64-PCH_CXXFLAGS.dbgopt = $(TOOL_VCC120AMD64_CXXFLAGS.dbgopt)250 TOOL_VCC1 20AMD64-PCH_CXXFLAGS.release = $(TOOL_VCC120AMD64_CXXFLAGS.release)251 TOOL_VCC1 20AMD64-PCH_CXXFLAGS.profile = $(TOOL_VCC120AMD64_CXXFLAGS.profile)252 TOOL_VCC1 20AMD64-PCH_COMPILE_CXX_DEPEND = $(NO_SUCH_VARIABLE)253 TOOL_VCC1 20AMD64-PCH_COMPILE_CXX_DEPORD = $(NO_SUCH_VARIABLE)254 TOOL_VCC1 20AMD64-PCH_COMPILE_CXX_OUTPUT = $($(target)_1_VCC_PCH_FILE) $($(target)_1_VCC_COMMON_OBJ_PDB)255 TOOL_VCC1 20AMD64-PCH_COMPILE_CXX_OUTPUT_MAYBE = $(NO_SUCH_VARIABLE)256 ifdef TOOL_VCC1 20AMD64_KSUBMIT257 define TOOL_VCC1 20AMD64-PCH_COMPILE_CXX_CMDS227 TOOL_VCC141AMD64-PCH := Helper for creating precompiled header using CXX handling. 228 TOOL_VCC141AMD64-PCH_EXTENDS := VCC141AMD64 229 TOOL_VCC141AMD64-PCH_CXXOBJSUFF := .obj 230 TOOL_VCC141AMD64-PCH_CXXINCS = $(TOOL_VCC141AMD64_CXXINCS) 231 TOOL_VCC141AMD64-PCH_CXXFLAGS = $(TOOL_VCC141AMD64_CXXFLAGS) -FS 232 TOOL_VCC141AMD64-PCH_CXXFLAGS.debug = $(TOOL_VCC141AMD64_CXXFLAGS.debug) 233 TOOL_VCC141AMD64-PCH_CXXFLAGS.dbgopt = $(TOOL_VCC141AMD64_CXXFLAGS.dbgopt) 234 TOOL_VCC141AMD64-PCH_CXXFLAGS.release = $(TOOL_VCC141AMD64_CXXFLAGS.release) 235 TOOL_VCC141AMD64-PCH_CXXFLAGS.profile = $(TOOL_VCC141AMD64_CXXFLAGS.profile) 236 TOOL_VCC141AMD64-PCH_COMPILE_CXX_DEPEND = $(NO_SUCH_VARIABLE) 237 TOOL_VCC141AMD64-PCH_COMPILE_CXX_DEPORD = $(NO_SUCH_VARIABLE) 238 TOOL_VCC141AMD64-PCH_COMPILE_CXX_OUTPUT = $($(target)_1_VCC_PCH_FILE) $($(target)_1_VCC_COMMON_OBJ_PDB) 239 TOOL_VCC141AMD64-PCH_COMPILE_CXX_OUTPUT_MAYBE = $(NO_SUCH_VARIABLE) 240 ifdef TOOL_VCC141AMD64_KSUBMIT 241 define TOOL_VCC141AMD64-PCH_COMPILE_CXX_CMDS 258 242 $(QUIET)$(RM) -f -- $($(target)_1_VCC_PCH_FILE) $($(target)_1_VCC_COMMON_OBJ_PDB) 259 $(QUIET)$(TOOL_VCC1 20AMD64_KSUBMIT) --no-pch-caching -P $(DEP_OBJ_INT) -f -s -q -e .pch -o $(dep) -t $(obj) $(obj)\260 -- $(TOOL_VCC1 20AMD64_CXX) -c -Yc\261 $(flags) $( addprefix -I, $(incs)) $(addprefix-D, $(defs))\243 $(QUIET)$(TOOL_VCC141AMD64_KSUBMIT) --no-pch-caching -P $(DEP_OBJ_INT) -f -s -q -e .pch -o $(dep) -t $(obj) $(obj)\ 244 -- $(TOOL_VCC141AMD64_CXX) -c -Yc\ 245 $(flags) $(qaddprefix sh,-I, $(incs)) $(qaddprefix sh,-D, $(defs))\ 262 246 -Fp$($(target)_1_VCC_PCH_FILE) \ 263 247 -Fd$($(target)_1_VCC_COMMON_OBJ_PDB) \ … … 267 251 endef 268 252 else 269 define TOOL_VCC1 20AMD64-PCH_COMPILE_CXX_CMDS253 define TOOL_VCC141AMD64-PCH_COMPILE_CXX_CMDS 270 254 $(QUIET)$(RM) -f -- $($(target)_1_VCC_PCH_FILE) $($(target)_1_VCC_COMMON_OBJ_PDB) 271 $(QUIET)$(if-expr defined(PATH_TOOL_VCC120AMD64_BIN_DLL)\ 272 ,$(REDIRECT) --prepend 'PATH=$(PATH_TOOL_VCC120AMD64_BIN_DLL)$(HOST_PATH_SEP)' -- ,)$(TOOL_VCC120AMD64_CXX) -c -Yc\ 273 $(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\ 255 $(QUIET)$(TOOL_VCC141AMD64_CXX) -c -Yc\ 256 $(flags) $(qaddprefix sh,-I, $(incs)) $(qaddprefix sh,-D, $(defs))\ 274 257 -Fp$($(target)_1_VCC_PCH_FILE) \ 275 258 -Fd$($(target)_1_VCC_COMMON_OBJ_PDB) \ … … 280 263 281 264 endef 282 endif # !TOOL_VCC1 20AMD64_KSUBMIT265 endif # !TOOL_VCC141AMD64_KSUBMIT 283 266 284 267 … … 298 281 # @param $(outbase) Output basename (full). Use this for list files and such. 299 282 # @param $(objsuff) Object suffix. 300 TOOL_VCC120AMD64_COMPILE_RC_DEPEND = 301 TOOL_VCC120AMD64_COMPILE_RC_DEPORD = 302 TOOL_VCC120AMD64_COMPILE_RC_OUTPUT = 303 ## @todo Fix kmk_redirect so we can use it for setting PATH without spawning a shell or two 304 define TOOL_VCC120AMD64_COMPILE_RC_CMDS 305 $(QUIET)$(if-expr defined(PATH_TOOL_VCC120AMD64_BIN_DLL)\ 306 ,$(REDIRECT) --prepend 'PATH=$(PATH_TOOL_VCC120AMD64_BIN_DLL)$(HOST_PATH_SEP)' -- ,)$(TOOL_VCC120AMD64_RC) \ 307 $(flags) $(addprefix /i, $(subst /,\\,$(incs))) $(addprefix /d, $(defs))\ 283 TOOL_VCC141AMD64_COMPILE_RC_DEPEND = 284 TOOL_VCC141AMD64_COMPILE_RC_DEPORD = 285 TOOL_VCC141AMD64_COMPILE_RC_OUTPUT = 286 define TOOL_VCC141AMD64_COMPILE_RC_CMDS 287 $(QUIET)$(TOOL_VCC141AMD64_RC) \ 288 $(flags) $(qaddprefix sh,/i, $(subst /,\\,$(incs))) $(qaddprefix sh,/d, $(defs))\ 308 289 /fo$(obj)\ 309 290 $(subst /,\\,$(abspath $(source))) … … 321 302 # @param $(outbase) Output basename (full). Use this for list files and such. 322 303 # 323 TOOL_VCC1 20AMD64_LINK_LIBRARY_DEPEND = $(othersrc)324 TOOL_VCC1 20AMD64_LINK_LIBRARY_DEPORD =325 TOOL_VCC1 20AMD64_LINK_LIBRARY_OUTPUT = $(outbase).rsp326 TOOL_VCC1 20AMD64_LINK_LIBRARY_OUTPUT_MAYBE = $(outbase).lst $(outbase).exp $(outbase).pdb327 define TOOL_VCC1 20AMD64_LINK_LIBRARY_CMDS304 TOOL_VCC141AMD64_LINK_LIBRARY_DEPEND = $(othersrc) 305 TOOL_VCC141AMD64_LINK_LIBRARY_DEPORD = 306 TOOL_VCC141AMD64_LINK_LIBRARY_OUTPUT = $(outbase).rsp 307 TOOL_VCC141AMD64_LINK_LIBRARY_OUTPUT_MAYBE = $(outbase).lst $(outbase).exp $(outbase).pdb 308 define TOOL_VCC141AMD64_LINK_LIBRARY_CMDS 328 309 $(QUIET)$(APPEND) -tn $(outbase).rsp \ 329 $(foreach arg,\ 330 $(subst /,\\,$(objs) \ 331 $(filter-out %.def,$(othersrc))) \ 332 $(addprefix /DEF:,$(filter %.def,$(othersrc))) \ 333 ,\"$(arg)\") 334 $(QUIET)$(TOOL_VCC120AMD64_KSUBMIT_DD) $(TOOL_VCC120AMD64_AR) $(flags) /OUT:$(out) @$(outbase).rsp 310 $(qforeachfile u,arg, $(objs) $(filter-out %.def,$(othersrc)),$(quote-sh "$(subst /,\,$(arg))")) \ 311 $(qforeachfile u,arg, $(filter %.def,$(othersrc)),$(quote-sh "/DEF:$(subst /,\,$(arg))")) 312 $(QUIET)$(TOOL_VCC141AMD64_KSUBMIT_DD) $(TOOL_VCC141AMD64_AR) $(flags) /OUT:$(out) @$(outbase).rsp 335 313 endef 336 314 … … 350 328 # @param $(outbase) Output basename (full). Use this for list files and such. 351 329 # 352 TOOL_VCC1 20AMD64_LINK_PROGRAM_DEPEND = $(foreachlib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib))) $(othersrc)353 TOOL_VCC1 20AMD64_LINK_PROGRAM_DEPORD =354 TOOL_VCC1 20AMD64_LINK_PROGRAM_OUTPUT_MAYBE_PRECIOUS = $(outbase).map $(outbase).rsp355 TOOL_VCC1 20AMD64_LINK_PROGRAM_OUTPUT_MAYBE = $(outbase).lib $(outbase).exp $(outbase).ilk $(out).manifest356 TOOL_VCC1 20AMD64_LINK_PROGRAM_OUTPUT_DEBUG = $(outbase).pdb357 TOOL_VCC1 20AMD64_LINK_PROGRAM_DEBUG_INSTALL_FN = $(2).pdb=>$(basename $(3)).pdb358 define TOOL_VCC1 20AMD64_LINK_PROGRAM_CMDS330 TOOL_VCC141AMD64_LINK_PROGRAM_DEPEND = $(foreachfile lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib))) $(othersrc) 331 TOOL_VCC141AMD64_LINK_PROGRAM_DEPORD = 332 TOOL_VCC141AMD64_LINK_PROGRAM_OUTPUT_MAYBE_PRECIOUS = $(outbase).map $(outbase).rsp 333 TOOL_VCC141AMD64_LINK_PROGRAM_OUTPUT_MAYBE = $(outbase).lib $(outbase).exp $(outbase).ilk $(out).manifest 334 TOOL_VCC141AMD64_LINK_PROGRAM_OUTPUT_DEBUG = $(outbase).pdb 335 TOOL_VCC141AMD64_LINK_PROGRAM_DEBUG_INSTALL_FN = $(2).pdb=>$(basename $(3)).pdb 336 define TOOL_VCC141AMD64_LINK_PROGRAM_CMDS 359 337 $(QUIET)$(APPEND) -tn $(outbase).rsp \ 360 $(foreach arg,\ 361 $(subst /,\\,$(objs)) \ 362 $(subst /,\\,$(libs)) \ 363 ,\"$(arg)\") 364 $(QUIET)$(TOOL_VCC120AMD64_KSUBMIT_DD) $(TOOL_VCC120AMD64_LD) $(flags) \ 338 $(qforeachfile u,arg, $(objs) $(libs),$(quote-sh "$(subst /,\,$(arg))")) 339 $(QUIET)$(TOOL_VCC141AMD64_KSUBMIT_DD) $(TOOL_VCC141AMD64_LD) $(flags) \ 365 340 /OUT:$(out) \ 366 341 /MAPINFO:EXPORTS /INCREMENTAL:NO \ … … 368 343 $(foreach def,$(filter %.def,$(othersrc)), /DEF:$(def)) \ 369 344 $(subst /,\\,$(filter %.exp %.res,$(othersrc))) \ 370 $( foreach p,$(libpath), /LIBPATH:$(p)) \345 $(qaddprefix sh,/LIBPATH:,$(libpath)) \ 371 346 @$(outbase).rsp 372 ifndef TOOL_VCC1 20AMD64_NO_AUTO_MANIFEST347 ifndef TOOL_VCC141AMD64_NO_AUTO_MANIFEST 373 348 $(QUIET)$(TEST) -f $(out).manifest -- \ 374 $(TOOL_VCC1 20AMD64_MT) -manifest $(subst /,\\,$(out)).manifest -outputresource:$(subst /,\\,$(out))349 $(TOOL_VCC141AMD64_MT) -manifest $(subst /,\\,$(out)).manifest -outputresource:$(subst /,\\,$(out)) 375 350 endif 376 351 endef … … 391 366 # 392 367 # @param $(outbase) Output basename (full). Use this for list files and such. 393 TOOL_VCC1 20AMD64_LINK_DLL_DEPEND = $(objs) $(foreachlib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib))) $(othersrc)394 TOOL_VCC1 20AMD64_LINK_DLL_DEPORD = $(call DIRDEP,$(PATH_STAGE_LIB))395 TOOL_VCC1 20AMD64_LINK_DLL_OUTPUT = $(outbase).lib $(outbase).exp396 TOOL_VCC1 20AMD64_LINK_DLL_OUTPUT_MAYBE = $(outbase).ilk $(out).manifest $(PATH_STAGE_LIB)/$(notdir $(outbase)).exp397 TOOL_VCC1 20AMD64_LINK_DLL_OUTPUT_MAYBE_PRECIOUS = $(PATH_STAGE_LIB)/$(notdir $(outbase)).lib $(outbase).map $(outbase).rsp398 TOOL_VCC1 20AMD64_LINK_DLL_OUTPUT_DEBUG = $(outbase).pdb399 TOOL_VCC1 20AMD64_LINK_DLL_DEBUG_INSTALL_FN = $(2).pdb=>$(basename $(3)).pdb400 define TOOL_VCC1 20AMD64_LINK_DLL_CMDS368 TOOL_VCC141AMD64_LINK_DLL_DEPEND = $(foreachfile lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib))) $(othersrc) 369 TOOL_VCC141AMD64_LINK_DLL_DEPORD = $(call DIRDEP,$(PATH_STAGE_LIB)) 370 TOOL_VCC141AMD64_LINK_DLL_OUTPUT = $(outbase).lib $(outbase).exp 371 TOOL_VCC141AMD64_LINK_DLL_OUTPUT_MAYBE = $(outbase).ilk $(out).manifest $(PATH_STAGE_LIB)/$(notdir $(outbase)).exp 372 TOOL_VCC141AMD64_LINK_DLL_OUTPUT_MAYBE_PRECIOUS = $(PATH_STAGE_LIB)/$(notdir $(outbase)).lib $(outbase).map $(outbase).rsp 373 TOOL_VCC141AMD64_LINK_DLL_OUTPUT_DEBUG = $(outbase).pdb 374 TOOL_VCC141AMD64_LINK_DLL_DEBUG_INSTALL_FN = $(2).pdb=>$(basename $(3)).pdb 375 define TOOL_VCC141AMD64_LINK_DLL_CMDS 401 376 $(QUIET)$(APPEND) -tn $(outbase).rsp \ 402 $(foreach arg,\ 403 $(subst /,\\,$(objs)) \ 404 $(subst /,\\,$(libs)) \ 405 ,\"$(arg)\") 406 $(QUIET)$(TOOL_VCC120AMD64_KSUBMIT_DD) $(TOOL_VCC120AMD64_LD) $(flags) \ 377 $(qforeachfile u,arg, $(objs) $(libs),$(quote-sh "$(subst /,\,$(arg))")) 378 $(QUIET)$(TOOL_VCC141AMD64_KSUBMIT_DD) $(TOOL_VCC141AMD64_LD) $(flags) \ 407 379 /OUT:$(out) \ 408 380 /IMPLIB:$(outbase).lib \ … … 412 384 $(foreach def,$(filter %.def,$(othersrc)), /DEF:$(def)) \ 413 385 $(subst /,\\,$(filter %.exp %.res,$(othersrc))) \ 414 $( foreach p,$(libpath), /LIBPATH:$(p)) \386 $(qaddprefix sh,/LIBPATH:,$(libpath)) \ 415 387 @$(outbase).rsp 416 ifndef TOOL_VCC1 20AMD64_NO_AUTO_MANIFEST388 ifndef TOOL_VCC141AMD64_NO_AUTO_MANIFEST 417 389 $(QUIET)$(TEST) -f $(out).manifest -- \ 418 $(TOOL_VCC1 20AMD64_MT) -manifest $(subst /,\\,$(out)).manifest '-outputresource:$(subst /,\\,$(out));#2'390 $(TOOL_VCC141AMD64_MT) -manifest $(subst /,\\,$(out)).manifest '-outputresource:$(subst /,\\,$(out));#2' 419 391 endif 420 392 $(QUIET)$(TEST) -f $(outbase).lib -- $(KLIBTWEAKER_EXT) --clear-timestamps $(outbase).lib … … 438 410 # 439 411 # @param $(outbase) Output basename (full). Use this for list files and such. 440 TOOL_VCC1 20AMD64_LINK_SYSMOD_DEPEND = $(foreachlib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib))) $(othersrc)441 TOOL_VCC1 20AMD64_LINK_SYSMOD_DEPORD =442 TOOL_VCC1 20AMD64_LINK_SYSMOD_OUTPUT_MAYBE = $(outbase).lib $(outbase).exp $(outbase).ilk $(out).manifest443 TOOL_VCC1 20AMD64_LINK_SYSMOD_OUTPUT_MAYBE_PRECIOUS = $(outbase).map $(outbase).rsp444 TOOL_VCC1 20AMD64_LINK_SYSMOD_OUTPUT_DEBUG = $(outbase).pdb445 TOOL_VCC1 20AMD64_LINK_SYSMOD_DEBUG_INSTALL_FN = $(2).pdb=>$(basename $(3)).pdb446 define TOOL_VCC1 20AMD64_LINK_SYSMOD_CMDS412 TOOL_VCC141AMD64_LINK_SYSMOD_DEPEND = $(foreachfile lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib))) $(othersrc) 413 TOOL_VCC141AMD64_LINK_SYSMOD_DEPORD = 414 TOOL_VCC141AMD64_LINK_SYSMOD_OUTPUT_MAYBE = $(outbase).lib $(outbase).exp $(outbase).ilk $(out).manifest 415 TOOL_VCC141AMD64_LINK_SYSMOD_OUTPUT_MAYBE_PRECIOUS = $(outbase).map $(outbase).rsp 416 TOOL_VCC141AMD64_LINK_SYSMOD_OUTPUT_DEBUG = $(outbase).pdb 417 TOOL_VCC141AMD64_LINK_SYSMOD_DEBUG_INSTALL_FN = $(2).pdb=>$(basename $(3)).pdb 418 define TOOL_VCC141AMD64_LINK_SYSMOD_CMDS 447 419 $(QUIET)$(APPEND) -tn $(outbase).rsp \ 448 $(foreach arg,\ 449 $(subst /,\\,$(objs)) \ 450 $(subst /,\\,$(libs)) \ 451 ,\"$(arg)\") 452 $(QUIET)$(TOOL_VCC120AMD64_KSUBMIT_DD) $(TOOL_VCC120AMD64_LD) $(flags) \ 420 $(qforeachfile u,arg, $(objs) $(libs),$(quote-sh "$(subst /,\,$(arg))")) 421 $(QUIET)$(TOOL_VCC141AMD64_KSUBMIT_DD) $(TOOL_VCC141AMD64_LD) $(flags) \ 453 422 /OUT:$(out) \ 454 423 /MAPINFO:EXPORTS /INCREMENTAL:NO \ … … 456 425 $(foreach def,$(filter %.def,$(othersrc)), /DEF:$(def)) \ 457 426 $(subst /,\\,$(filter %.exp %.res,$(othersrc))) \ 458 $( foreach p,$(libpath), /LIBPATH:$(p)) \427 $(qaddprefix sh,/LIBPATH:,$(libpath)) \ 459 428 @$(outbase).rsp 460 ifndef TOOL_VCC1 20AMD64_NO_AUTO_MANIFEST429 ifndef TOOL_VCC141AMD64_NO_AUTO_MANIFEST 461 430 $(QUIET)$(TEST) -f $(out).manifest -- \ 462 $(TOOL_VCC1 20AMD64_MT) -manifest $(subst /,\\,$(out)).manifest '-outputresource:$(subst /,\\,$(out));#2'431 $(TOOL_VCC141AMD64_MT) -manifest $(subst /,\\,$(out)).manifest '-outputresource:$(subst /,\\,$(out));#2' 463 432 endif 464 433 endef
Note:
See TracChangeset
for help on using the changeset viewer.